GLPK/已知問題
外觀
< GLPK
此頁面列出了 GLPK 的已知問題。大多數問題與底層庫有關,因此會影響 GLPSOL 使用者和 API 程式設計師。儘管陳詞濫調,但問題需要“變通方法”,而 bug 需要“修復”。如果您發現 bug,請將其報告給[bug-glpk]郵件列表。
當 MIP 問題例項的 LP 鬆弛沒有有限的最大值並且整數可行域為空時,可能會出現此問題。在這種情況下,MIP 預處理器可能會陷入無限迴圈。此問題存在於 4.45 版本中,本質上是固有的。
一種解決方法是指定一些額外的邊界,以便預處理器能夠成功地檢測到例項沒有整數可行解。另一種方法是停用 MIP 預處理器。此問題在 此帖 和 此帖 中進行了更詳細的討論。
從 4.47 版本開始,函式ios_relative_gap計算相對間隙如下
gap = |best_mip - best_bnd| / (|best_mip| + DBL_EPSILON)
這意味著當您的解改進時,間隙可能會增加!但是,它與 CPLEX 函式使用的公式相同CPXgetmiprelgap. 請參閱 此處,瞭解 2012 年中關於替代公式的討論。
GLPSOL 選項 --tmlim nnn 將求解時間限制為nnn秒。但是,計時器並不總是在解的各個階段都處於活動狀態。請參閱 此處,瞭解 2012 年中關於該主題的討論。
在 Linux 上,可以使用來自 GNU coreutils 的 timeout 實用程式來限制經過時間。在此示例中,如果 GLPSOL 呼叫仍在執行,它將在兩小時後終止
timeout 2.0h glpsol --model problem.mod