簡體   English   中英

cplex:將EPGAP設置為非零,但上限和下限相同

[英]cplex: Setting the EPGAP not zero but upper bound and lower bound are the same

我知道將EpGap設置為零時,上限和下限相同,解決方案是最好的。 但是,當我將EpGap設置為不為零時,為什么上限和下限也相同?

EpGap (也稱為“相對MIP間隙公差”)參數的文檔中,我們可以得到以下信息:

當值|bestbound-bestinteger|/(1e-10+|bestinteger|) 低於該參數的值,將混合整數優化停止。 例如,要指示CPLEX在發現可行的整數解決方案被證明在最佳值的百分之五之內時立即停止,請將相對MIP間隙公差設置為0.05。

一旦CPLEX找到比間隙指定的解決方案更好的解決方案,優化就會停止,這就是您所得到的(甚至可能是最佳的)。

不要誤以為通過將EpGap設置為零,您總會得到更好的解決方案。 將EpGap參數設置為零意味着您要CPLEX 證明沒有更好的解決方案

默認情況下會構建和設置CPLEX,以嘗試在搜索過程的早期找到好的解決方案。 我見過很多情況,即使是結構良好的相當大的問題,它都可以在幾秒鍾內找到最佳解決方案,但是隨后可能需要花費數小時來搜索B&B樹的其余部分,以證明沒有更好的解決方案,並且將差距減小到(接近)零。

除了在一些非常特定的情況下之外,將EpGap設置為零幾乎總是一個主意。

您可能會基於精確的某些數據而遇到一個結構良好的小數學問題,在這種情況下,它可以正常運行。 例如,我正在考慮數學或理論物理學中的抽象問題。

但是,大多數使用CPLEX(或任何其他類似求解器)的實際應用程序都在進行無法准確確定的預測和測量。 考慮一下一個混合問題(例如制造合金,食品),其中1e-6的間隙意味着該解決方案在每噸物料大約1克變化的水平上是最佳的。 或對於運輸問題,我們知道要訪問的站點之間的距離可能相距幾公里,這是最接近的厘米左右的正確距離。 每天旅行和工作時間的精確度為十分之一秒。 基本上,請考慮一下您的數字的實際含義,不要被虛假的精度所吸引。 在許多域中,預測中有5%的誤差被認為是非常好的。

即使在這種情況下,您可能仍想證明解決方案接近最佳,例如間隙為0.1%,但是在實踐中試圖為零間隙找到可證明的最佳解決方案可能毫無意義。

同樣,許多現實世界中的問題很大,有成千上萬個變量。 在這種情況下,要求CPLEX證明達到零MIP差距的最優性可能需要幾天或幾年的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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