跳至內容

GLPK/已知問題

來自華夏公益教科書,開放的書籍,開放的世界

此頁面列出了 GLPK 的已知問題。大多數問題與底層庫有關,因此會影響 GLPSOL 使用者和 API 程式設計師。儘管陳詞濫調,但問題需要“變通方法”,而 bug 需要“修復”。如果您發現 bug,請將其報告給[bug-glpk]郵件列表。


無界整數變數

[編輯 | 編輯原始碼]

當 MIP 問題例項的 LP 鬆弛沒有有限的最大值並且整數可行域為空時,可能會出現此問題。在這種情況下,MIP 預處理器可能會陷入無限迴圈。此問題存在於 4.45 版本中,本質上是固有的。

一種解決方法是指定一些額外的邊界,以便預處理器能夠成功地檢測到例項沒有整數可行解。另一種方法是停用 MIP 預處理器。此問題在 此帖此帖 中進行了更詳細的討論。

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 coreutilstimeout 實用程式來限制經過時間。在此示例中,如果 GLPSOL 呼叫仍在執行,它將在兩小時後終止

timeout 2.0h glpsol --model problem.mod
華夏公益教科書