簡體   English   中英

建議ILP求解器的下限

[英]Suggesting a lower bound for an ILP solver

我有一個整數線性規划問題需要很長時間來解決我嘗試過的求解器(CPLEX,CBC),即使他們在早期找到了最佳解決方案。 他們只需要永遠充分證明它。

我很容易計算出最小化問題的客觀值的平凡下界,但在CPLEX的輸出(Best Bound專欄)中,我可以看到它甚至連長時間都沒有接近。 它幾乎可以立即找到非常好的解決方案,但它錯誤地認為最佳解決方案可能會更好。

現在我不得不承認我並不知道這些求解器是如何工作的,但看起來他們正在浪費時間來改善可笑的弱下界,尋求不可思議的樂觀解決方案。 所以我的問題是:

  1. 可以告訴求解者目標的下限有助於它更快地運行嗎?

  2. 如果是這樣,哪個求解器可以接受作為附加輸入提供的已知下界?

作為一個例子,我從示例運行中粘貼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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM