获取多项式pyomo约束的系数

时间:2019-02-12 13:03:39

标签: python pyomo

除了问题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].

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