建议 ILP 求解器的下限
Posted
技术标签:
【中文标题】建议 ILP 求解器的下限【英文标题】:Suggesting a lower bound for an ILP solver 【发布时间】:2017-02-24 05:27:12 【问题描述】:我有一个整数线性规划问题,我尝试过的求解器(CPLEX、CBC)需要很长时间才能解决,即使他们很早就找到了最优解。他们只需要很长时间才能完全证明这一点。
为我的最小化问题的目标值计算一个微不足道的下限很容易,但在 CPLEX 的输出(最佳边界列)中,我可以看到它甚至在很长很长一段时间内都没有接近。它几乎可以立即找到非常好的解决方案,但它错误地认为最佳解决方案可能会更好。
现在我不得不承认我真的不知道这些求解器是如何工作的,但看起来他们正在浪费时间试图改进极其弱的下限,寻找不可能乐观的解决方案。所以我的问题是:
告诉求解器一个合适的目标下限是否有助于它更快地通过?
如果是这样,哪些求解器可以接受作为附加输入提供的已知下限?
作为说明,我粘贴了示例运行中 CPLEX 输出的前几行(运行时间更长,目标没有任何进一步的改进,最佳界限的改进也非常缓慢):
Nodes Cuts/
Node Left Objective IInf Best Integer Best Bound ItCnt Gap
0 0 -388.6997 178 -388.6997 9
* 0+ 0 297.0000 -388.6997 9 230.88%
* 0+ 0 275.0000 -388.6997 9 241.35%
0 2 -388.6997 178 275.0000 -387.8106 9 241.02%
* 20+ 20 185.0000 -307.6363 80 266.29%
* 30+ 30 135.0000 -307.6363 90 327.88%
* 30+ 30 94.0000 -307.6363 90 427.27%
* 60+ 60 90.0000 -307.6363 120 441.82%
* 160+ 126 77.0000 -307.6363 272 499.53%
* 200+ 93 12.0000 -307.4836 325 ---
300 182 -135.2988 107 12.0000 -268.6638 466 ---
1200 934 -50.6022 85 12.0000 -206.2938 1480 ---
2197 1755 -96.9612 93 12.0000 -189.8013 2470 ---
3226 2600 -2.8316 87 12.0000 -179.9669 3480 ---
4374 3521 -156.2442 110 12.0000 -170.4183 4567 ---
5490 4421 -128.0871 97 12.0000 -167.3696 5623 ---
6971 5603 -147.5022 108 12.0000 -162.4180 7055 ---
8739 6997 -103.5374 113 12.0000 -156.3532 8673 ---
我希望我可以告诉求解器不要费心寻找目标低于 10 的解决方案(因为我可以用更简单的方法证明这一点),尤其是没有负目标值的解决方案(因为在我的型号)。
【问题讨论】:
(1) 您始终可以添加一个约束,使所有解决方案低于您的先验已知界限不可行。就足够了 (2) 关于商业求解器,我读过不止一次,开发人员认为这通常会适得其反。但也许它对您的情况有所帮助(遗憾的是我无法提供链接;也许谷歌搜索 gurobi 邮件列表中的问题)。 (3) 根据您的成就,您可能会调整您的求解器选项。 Gurobi 可以选择 MIPFocus。也许你也可以做到这一点。例如,为了更好地证明界限而进行许多削减;更多启发式方法以获得更快的良好解决方案 你是如何找到微不足道的下限的?您是否只是放松了完整性约束并解决了(实际)线性程序? @sascha 添加对目标的约束没有帮助,但我会研究 Gurobi 和 (3),谢谢。这可能正是我所需要的。 另请阅读this。 @RodrigodeAzevedo 不,这只是对数据的一些操作,一个比我想要解决的更简单的组合问题。但是我的目标的非消极性已经足够好了:下限的进展需要很长时间才能达到微不足道的零,之后不需要太长时间。 【参考方案1】:如果您有一个良好的下限,则可以从可行的解决方案中将其作为 MIP 开始提供给 CPLEX。
然后,CPLEX 将尝试改进该解决方案并忽略其分支定界算法中边界低于该值的任何分支。
您可以在此处查看更多详细信息: https://www.ibm.com/support/knowledgecenter/SS9UKU_12.5.0/com.ibm.cplex.zos.help/UsrMan/topics/discr_optim/mip/para/49_mipStarts.html
【讨论】:
以上是关于建议 ILP 求解器的下限的主要内容,如果未能解决你的问题,请参考以下文章
Chrome 建议 Angular Material 日期选择器的密码