0

我正在学习如何使用 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)

?

此外,我的实际 LP 模型总是发出Infeasible model。是否有有效的方法来调试使用 gurobi 的代码?

4

1 回答 1

2

是的,如果aLinExpr()你可以做的m.addConstr(a==0.5)

如果您的 LP 被归类为不可行,您可以尝试计算不可约不一致子系统 ( IIS )。这是不可行的约束的子集。您通常可以使用 IIS 来找出模型中的哪些约束组合导致它不可行。它是一个有用的调试工具。

要在 Python 中计算 IIS,请执行以下操作:

model.computeIIS()
model.write('mymodel.ilp')

这将写出一个名为 mymodel.ilp 的文件,其中包含 IIS。

于 2014-10-27T14:13:19.933 回答