除了问题here外,我还想知道如何获取pyomo模型的任意多项式约束的系数。所以,对于
m= ConcreteModel()
m.x_1 = Var()
m.x_2 = Var()
m.x_3 = Var(within = Integers)
m.x_4 = Var(within = Integers)
m.c= Constraint(expr=2*m.x_1**2 + 5*m.x_1*m.x_2 + m.x_4 <= 2)
我想拥有
coeff[c] = [2, 5, 1].
答案 0 :(得分:0)
据我所知,如果不对任意多项式的表达式树进行遍历,就没有简便的方法(因为您可能拥有(x-3)^2+5x+6
)。
一种方法可能是sympy
-验证pyomo表达式并向sympy询问这些值:How to extract all coefficients in sympy
different的当前实现实际上使用了sympy:https://github.com/Pyomo/pyomo/blob/4997726dd1f11bdb86589ff1c2f4badc654a69ad/pyomo/core/base/symbolic.py#L128