【发布时间】:2018-07-06 14:57:25
【问题描述】:
我正在努力寻找一种有效的方法来检索优化问题的解决方案。该解决方案包含大约 200K 个变量,我希望在 pandas DataFrame 中使用这些变量。在网上搜索后,我发现访问变量的唯一方法是通过一个看起来像这样的 for 循环:
instance = M.create_instance('input.dat') # reading in a datafile
results = opt.solve(instance, tee=True)
results.write()
instance.solutions.load_from(results)
for v in instance.component_objects(Var, active=True):
print ("Variable",v)
varobject = getattr(instance, str(v))
for index in varobject:
print (" ",index, varobject[index].value)
我知道我可以使用这个 for 循环将它们存储在数据框中,但这非常低效。 我发现了如何使用访问索引
import pandas as pd
index = pd.DataFrame(instance.component_objects(Var, active=True))
但我不知道如何获得解决方案
【问题讨论】:
-
您可以通过
model.some_var.pprint()单独检查变量。您需要将.pprint()添加到末尾,然后您可能会看到带有所有索引的变量。
标签: pyomo