2017-07-26 10 views
2

當在同一ILP問題(完全相同的輸入文件)運行CPLEX:CPLEX給予不同的最佳解決方案具有非常不同的目標值

  • 隨着MIPEmphasis = 3我得到6.81613e-06的客觀價值
  • 隨着MIPEmphasis = 4我得到1.03858
的客觀價值

在這兩種情況下,CPLEX都會返回OPTIMAL狀態。

從CPLEX用戶手冊:

明確指出,已經提到迄今爲止點:的MIPEmphasis結果的方式,搜索算法程序,最終會發現並證明了一個最佳的每一次選擇解決方案,或將證明沒有整數可行的解決方案存在。強調的選擇只會指導CPLEX以符合用戶特定目的的方式生成可行的解決方案,但在此過程中不會犧牲算法的準確性和完整性。

我在這裏錯過了什麼嗎?我不僅在MIPEmphasis參數中遇到了這個問題,而且還遇到了其他參數(例如ScaInd),其中通過改變參數我得到了質量差異很大的不同解決方案OPTIMAL

這裏有一些我似乎無法破譯的信息。

對於MIPEmphasis = 3

Maximum condition number = 5.03484e+12, 
Attention level = 0.290111, 
Suspicious bases: 0.0111111, 
Unstable bases = 0.966667, 
Ill-posed bases = 0, 
CPLEX Status = `OptimalTol` 

對於MIPEmphasis = 4

Maximum condition number = 4.73342e+08, 
Attention level = 0.00925, 
Suspicious bases: 0.925, 
Unstable bases = 0, 
Ill-posed bases = 0, 
CPLEX Status = `Optimal` 

回答

2

這看起來像數字,麻煩是常見的,在你的造型(例如大-M常量使用)很大程度上依賴。

我從來沒有使用過CPLEX,但是這個official page談論了有條件的MIP模型。

小摘錄與此有關:

你應該重新考慮你的模型,如果CPLEX報告任何病態的基地或超過5%的不穩定基地。

在你的情況A,你有95%以上的不穩定基地:

For MIPEmphasis = 3: .... Unstable bases = 0.966667 ... 

所以它很可能,即A的結果不能被信任。此外,我會嘗試重新制定我的模型。

如果我們看看B,你的可疑基數大於92.5%,所以在這種情況下甚至可能是模型要求麻煩。由於我不熟悉所有的調音和默認設置,因此我無法對您的MIPE強調和合作關於這些非常不同的計算結果的來源提供任何見解。 (可能由於MIPE強調產生更多的切割平面導致更穩定的問題;只是猜測)。

+0

感謝您的洞察!我跟着那個領導發現了主要的罪魁禍首。我的變量是具有非連續範圍的整數變量:每個變量可以是'x = 0','a <= x <= b'或'x = c'。去除這些OR中的至少一個導致0個不穩定的鹼基。任何有關如何最好地表達這一點的見解? –

相關問題