首页 > 解决方案 > 解读 Gurobi 的 LP 优化结果

问题描述

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

最小化 z

st x + y <= z

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

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

标签: optimizationlinear-programminggurobi

解决方案


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

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

推荐阅读