解读来自 Gurobi 的 LP 优化结果

Interpret the LP optimization result from Gurobi

我想用 Gurobi 求解一个非常简单的 LP:

最小化 z

s.t。 x + y <= z

其中 x、y、z 是由 gp.Model().addVar() 生成的决策变量,应该是默认变量。模型的objective设置为m.setObjective(1.0*z, GRB.MINIMIZE).

然后我求解模型,程序returnsz的最优值为0.000。我不明白为什么这是最优值? Gurobi 的默认决策变量是否有任何约束,比如它们是非正的。否则,当 x、y 和 z 无界时,为什么 0.0 是此 LP 的最佳值?

Gurobi 和其他 LP/MIP 求解器的约定是决策变量的下限为零。如果你想要另一个下界,那么要么设置 LB 属性,要么在调用 Model.addVar() 时定义它,例如:

m = Model()
x = m.addVar(lb=-20, name='x')