optimization - 解读 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 的最佳值?
解决方案
Gurobi 和其他 LP/MIP 求解器的约定是决策变量的下限为零。如果你想要另一个下限,那么要么设置 LB 属性,要么在调用 Model.addVar() 时定义它,例如:
m = Model()
x = m.addVar(lb=-20, name='x')
推荐阅读
- python - 从 Lambda 函数即发即弃上传到 S3
- c - 令牌识别外壳报价空
- java - 如何在尝试使用资源时调用方法
- c# - 使用 Auto with Split Preference 动态调整网格大小
- linux - chmod 仅在当前目录中的文件,但不是子目录和主目录
- javascript - my-component.js:24 未捕获的类型错误:window.open 不是函数
- azure-devops - 在 Azure Devops 管道中通过 VSTest 适配器运行超过 21 个测试时出现 RPC 错误
- python - 如何在不使用数据透视表的情况下创建数据框以加快执行速度?
- django - docker django:为什么要将上下文复制到 docker 映像中,如果我们通过在 docker compose 中安装一些东西来覆盖它
- php - 错误 session_start():当文件头已经发送到 PHP 中时无法启动会话?