GLPK/評論和基準測試
獨立評論和數值基準測試是任何最佳化求解器專案的重要組成部分。此頁面列出了一些對 GLPK 的獨立評估,並試圖說明 GLPK 通常在哪些方面表現出色。
GLPK 是自由軟體——這可能是優點也可能是缺點,具體取決於您的需求和觀點。訪問原始碼使研究人員,尤其是,能夠修改 GLPK 以滿足他們的需求,並在以後將他們的改進提交給 GLPK 維護者以供可能包含。
GLPK 無法與頂級商業求解器在超大型規模例項上的效能(或價格)相匹配。舉一個例子,可以預期CPLEX在雙單純形問題上快 10-100 倍。透過檢視一些當前的基準測試調查,可以進行更具體的比較。
GLPK 求解器提供以下方法和功能
- 針對非整數問題,採用改進的單純形和原始對偶內點方法
- 針對整數和混合整數問題,採用分支定界演算法以及Gomory 混合整數切割
- 針對圖論問題,提供一些圖、流網路和關鍵路徑例程
- 包含用於解決布林可滿足性問題的MiniSat 求解器
- 支援任意精度算術
- 支援ODBC 連線,以與關係資料庫和電子表格進行互動。
除圖例程外,所有功能都可以透過 GLPSOL 命令列實用程式使用。
GLPK 對變數和約束的數量沒有具體限制。當然,大型或困難問題可能會超過可用記憶體或無法在合理時間內解決。
- Fourer, Robert (2009). "Software survey : linear programming". OR/MS Today. 36 (3): 46–55.
{{cite journal}}: Unknown parameter|month=ignored (help) — 可供下載(需要註冊)。
基準測試故意具有挑戰性,並不一定代表使用者想要解決的問題型別。
為了避免不可避免的維護延遲,官方的 GLPK 基準測試結果未在此處釋出。相反,它們作為官方 GLPK 文件的一部分包含在內。相比之下,Mittelmann 基準測試可以直接檢視——同時要注意 Mittelmann 未涵蓋 GLPK 功能的某些方面,包括圖論例程。
MIPLIB 是來自ZIB 的混合整數測試問題套件,目前為 MIPLIB 2003 版本[1]。GLPK 專案定期針對此測試套件的 2.0 和 3.0 測試集進行基準測試。最新的結果報告在以下文字檔案中doc/miplib2.txt和doc/miplib3.txt在官方 GLPK 文件中。
GLPK 專案定期針對來自netlib 的ftp://ftp.netlib.org/lp/data 的套件進行基準測試。最新的結果報告在以下文字檔案中doc/netlib.txt在官方 GLPK 文件中。
亞利桑那州立大學數學與統計學院的 Hans Mittelmann 在plato.asu.edu/bench.html 上維護著一個基準測試網站。雖然 GLPK 未列在起始頁面上,但它包含在適當的測試類別中。基準測試使用NEOS 伺服器 進行。GLPK 以下列測試套件中的形式出現
- plato.asu.edu/ftp/lpfree.html — 用於序列(單執行緒)求解器的線性規劃測試
- plato.asu.edu/ftp/milpf.html — 用於序列(單執行緒)求解器的混合整數線性規劃測試。
測試結果中包含問題大小指標。
NEOS 最佳化伺服器 提供了一個門戶,用於試用 GLPK。由於門戶的組織方式,問題例項必須以GAMS 語言提交,而不是以本機 MathProg 語言提交。[2]
GLPK 專案不進行正式的程式碼審查。但是,使用者有時會向 GLPK 郵件列表釋出非請求的評論。例如
"非常感謝大家提供如此一流的軟體包。程式碼是我見過的最好的程式碼之一,如果不是最好的。這些年來,我一直是數百萬行其他人程式碼的唯一支持者。因此,看到如此精心編寫的程式碼真是令人欣慰。"來源:GLPK 幫助列表,2011 年 1 月 13 日。
評論:使用者可以在這裡釋出他們的問題和解決方案指標(本節將根據需求遷移到一個獨立頁面)。
- ↑ Achterberg,Tobias;Koch,Thorsten;Martin,Alexander(2006)。"MIPLIB 2003"。運籌學通訊。愛思唯爾。34(4):1-12。 doi:10.1016/j.orl.2005.07.00.
- ↑ Bob Fourer 指出,在 2011 年 2 月 1 日,運營 NEOS 的威斯康星大學有可能被說服也支援 MathProg。