簡體   English   中英

CPLEX 與 Gurobi 的比較

[英]Comparison between CPLEX and Gurobi

Gurobi 和 CPLEX 是近年來非常流行的求解器。 就許可證而言,CPLEX 對學者來說更容易。 據說它的性能也非常高。 但 Gurobi 據稱是近年來最快的求解器,而且還在不斷改進。 但是,據說當約束數量增加時,其性能會下降。

在速度和性能方面,一般推薦哪種求解器專門用於具有二次目標函數的大規模問題,沒有太多約束?

它們在 Python 中的使用會影響它們的性能嗎?

數學編程本質上是困難的,並且很可能總是存在一個求解器比另一個求解器更快的情況。 通常,問題很快就解決了,因為某些啟發式方法是“幸運的”。

此外,僅憑問題的大小並不是衡量其難度的可靠指標。 雖然我們可以在很短的時間內解決具有數百萬個約束的實例,但仍有一些微小的實例尚未解決。

當您正在尋找最佳性能時,您應該通過檢查日志文件來分析求解器的行為,然后嘗試相應地調整參數。 如果您有機會測試不同的求解器,您應該選擇它以獲得更多可用選項。 對於已建立的、最先進的求解器中的任何一個的建議,您都應該小心 - 尤其是在沒有動手計算實驗的情況下。

您還需要考慮建模環境/語言的難度以及完成建模部分可能需要多少時間。

回答您關於 Gurobi 的 Python 界面的問題:這是一個非常高效且流行的工具,適用於各種應用程序,並且很可能不會影響整體求解時間。 在大多數情況下,實際求解時間仍然是主導因素,而模型構建時間可以忽略不計。

正如 mattmilten 已經說過的,如果您比較主要商業求解器在一系列問題上的性能,您發現其中一個明顯優於其他的實例。 然而,這將取決於許多看似無關的細節。 我們對我們自己的問題實例集合(保存為 MPS 文件)進行了並排比較,這些實例都是從針對大型優化問題的不同子問題的相同 C++ 代碼生成的。 所以它們本質上只是同一模型中的不同數據集,我們仍然發現求解器之間存在很大差異。 確實取決於您的具體問題的細節。

暫無
暫無

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

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