在Gurobi中使用LinExpr()类型创建约束 - Python
我正在学习如何使用gurobi,希望有人能帮我。
我有一个类型为 LinExpr() 的变量,叫它a。
经过一些操作,我得到了这样的表达式:
gurobi.LinExpr: X1 + -0.18 X1010 + -0.72 X11 + -0.18 X1011 + -0.72 X12 + -0.18 X1012 + -0.72 X13 + -0.18 X1013 + X2 + -0.72 X1000 + -0.18 X1010 + -0.72 X1001 + -0.18 X1011 + -0.72 X1002 + -0.18 X1012 + -0.18 X1013
我可以通过例如这样来创建一个约束吗:
m.addConstr(a==0.5)
?
此外,我的实际线性规划模型总是显示不可行模型。有没有有效的方法来调试使用gurobi的代码?
相关文章:
- 暂无相关问题
1 个回答
2
是的,如果 a
是一个 LinExpr()
,你可以使用 m.addConstr(a==0.5)
来添加一个约束。
如果你的线性规划(LP)被判定为不可行,你可以尝试计算一个不可简化的不一致子系统(IIS)。这个子系统是一些无法同时满足的约束条件。通常,你可以通过IIS来找出模型中哪些约束组合导致了不可行。这是一个很有用的调试工具。
在Python中计算IIS的方法是:
model.computeIIS()
model.write('mymodel.ilp')
这会生成一个名为 mymodel.ilp 的文件,里面包含了IIS的信息。