gpt4 book ai didi

python - 皮莫/IPOPT : retrieving computed variables

转载 作者:行者123 更新时间:2023-12-01 09:10:39 26 4
gpt4 key购买 nike

我想知道检索解值的 Pyomo 式方法是什么(特别是仅针对求解器计算的变量)。

在我的例子中,变量“x”由三个集合索引,因此它的键是三元组,例如x[CC,N5R_0,ntg]。在求解之前,变量“x”有 7626 个元素。求解器 (IPOPT) 报告它正在求解包含 1339 个元素的问题:

Total number of variables............................:     1339

求解后,instance.x组件仍然有7626个元素。 但在查看结果时,我只想提取 1339 个计算变量的值。

我尝试只获取非零值,但如果初始值不全为零,则不起作用。

是否有一种快速且编程的方式来提取这 1339 个变量组件的值?(除了对 IPOPT 输出文件进行单独的后解析?)

例如,此信息是否以某种方式嵌入在 .solve() 之后的模型实例对象中?

谢谢

最佳答案

简短的回答是肯定的,每个 Var 组件都有一个 stale 标志,指示上次求解模型时变量的值是否已更新。如果您对 Var 调用 pprint,您将看到一个“Stale”列,其中变量中的每个索引都有此值。您可以使用以下方法仅循环使用非过时变量:

for v in m.component_data_objects(Var):
if v.stale:
continue
print(str(v), ' = ', value(v))

关于python - 皮莫/IPOPT : retrieving computed variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51680010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com