![](/img/trans.png)
[英]Matlab optimproblem: Possible to use 3rd party ILP solver?
[英]Suggesting a lower bound for an ILP solver
我有一個整數線性規划問題需要很長時間來解決我嘗試過的求解器(CPLEX,CBC),即使他們在早期找到了最佳解決方案。 他們只需要永遠充分證明它。
我很容易計算出最小化問題的客觀值的平凡下界,但在CPLEX的輸出(Best Bound專欄)中,我可以看到它甚至連長時間都沒有接近。 它幾乎可以立即找到非常好的解決方案,但它錯誤地認為最佳解決方案可能會更好。
現在我不得不承認我並不知道這些求解器是如何工作的,但看起來他們正在浪費時間來改善可笑的弱下界,尋求不可思議的樂觀解決方案。 所以我的問題是:
可以告訴求解者目標的下限有助於它更快地運行嗎?
如果是這樣,哪個求解器可以接受作為附加輸入提供的已知下界?
作為一個例子,我從示例運行中粘貼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的解決方案(因為我可以用更簡單的方法證明這一點),特別是沒有負目標值(因為它在我的模型中甚至不可能)。
如果您有一個很好的下限,從可行的解決方案中,您可以將其作為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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.