【问题标题】:How to get all variables in a constraint in Pyomo?如何在 Pyomo 的约束中获取所有变量?
【发布时间】:2020-03-28 05:13:58
【问题描述】:

我的问题很简单。给定一个 Pyomo 约束,如何轻松提取约束中出现的变量?

这个问题已经被问过几次了。我相信 Pyomo 的内部结构已经过修改,建议的解决方案不再有效。

How to get variables of a constraint in Pyomo

Access all variables occurring in a pyomo constraint

最小工作测试问题:

from pyomo.environ import *

m = ConcreteModel()

m.I = Set(initialize=[i for i in range(5)])

m.x = Var(m.I,bounds=(-10,10),initialize=1.0)
m.z = Var(bounds=(-100,100), initialize=5.0)

m.con1 = Constraint(expr=m.x[0] + m.x[1] - m.x[3] >= 10)
m.con2 = Constraint(expr=m.x[0]*m.x[3] + m.x[1] >= 0)
m.con3 = Constraint(expr=m.x[4]*m.x[3] + m.x[0]*m.x[3] - m.x[4] == 0)

m.obj = Objective(expr=sum(m.x[i]**2 for i in m.I))

m.pprint()

opt = SolverFactory('ipopt')
opt.options['max_iter'] = 0
opt.solve(m, tee=True)

在本例中,我想以编程方式检查 con1 中的变量。

【问题讨论】:

    标签: pyomo


    【解决方案1】:

    第二个链接有正确解法:Access all variables occurring in a pyomo constraint

    identify_variables() 仍然存在,但看起来它已移至 pyomo.core.expr.visitor。 可能值得将其推广到 pyomo.core.expr 命名空间。

    【讨论】:

      猜你喜欢
      • 2018-07-09
      • 2018-07-10
      • 1970-01-01
      • 2021-09-12
      • 2022-11-27
      • 2022-08-15
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      相关资源
      最近更新 更多