问题描述
我正在尝试在 gurobipy 中执行以下操作:
当使用 linear(使用 addLConstr()
)表达式执行此操作时,一切正常,但我在使用二次函数时遇到了一些麻烦(尝试了 addQConstr()
和 {{ 1}})。
我已经看过 here 但我无法弄清楚如何使这件事起作用,因为我得到了我想用作传递给函数的参数的二次表达式。
在下面找到代码和错误。
代码:
addConstr()
错误:
from gurobipy import Model
from gurobipy import GRB
m = Model()
x1 = m.addVar(vtype = GRB.CONTINUOUS,name = 'x1',ub = 5,lb = 0)
x2 = m.addVar(vtype = GRB.CONTINUOUS,name = 'x2',lb = 0)
# a linear expression
lin_expr = x1 + x2
# a quadratic expression
quad_expr = x1 * x2
m.addLConstr(lin_expr <= 3)
m.addQConstr(quad_expr <= 6)
m.update()
m_copy = m.copy()
# works
m_copy.addLConstr(lin_expr <= 2)
# doesn't work
m_copy.addQConstr(quad_expr <= 5)
P.S.:在线性表达式中使用 Traceback (most recent call last):
File "quadtest.py",line 24,in <module>
m_copy.addQConstr(quad_expr <= 5)
File "src/gurobipy/model.pxi",line 3398,in gurobipy.Model.addQConstr
File "src/gurobipy/model.pxi",line 3234,in gurobipy.Model.__addConstr
gurobipy.GurobiError: Variable not in model
时,会抛出同样的错误...
编辑:添加了 P.S.
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)