運籌學有哪些值得關注的先進軟體工具?


如果狹隘地理解話,我就理解你說的運籌學是優化了。

首先不得不提的就是CPLEX,GUROBI還有XPRESS這三個優化的工具包了。這三個都是商業的,但是對於學院都是有免費的許可。CPLEX跟GUROBI申請起來都很方便。開源的方面COIN-OR是必須要提的,裡面有一整套的工具。lp_solve也是一個應用很廣泛的包,另外就是GNU的GLPK了。

最近Python在科學計算方面好像用得越來越多,python下面也有很幾個包,比如cvxopt用來做convex optimization的。

關於建模語言方面,AMPL也是不得不提的。此外還有GAMS,AIMMS以及ILOG(現在已經是IBM的了)的OPL, MPL。開源方面的比如GLPK implement了AMPL的一個子集。 另外Python下面有個PuLP, Sandia國家實驗室的開發的pyomo。

上面提到的都是偏convex以及linear的。nonlinear的這一塊比較不熟。但是搜相應演算法的話,也能找出很多工具包。那樣列出來就列不完了。

其他比較知名的還有:Knitro,Matlab的優化工具包等等。越想越多了。只要翻開INFORMS的 OR/MS Today http://www.orms-today.org/ 上面打廣告的都是市場上用得蠻多的。這算是邪招了。

Arizona State University的Hanns Mittleman定期評測市面上的各種優化軟體,還給出了一個 Decision Tree for Optimization Software, 你可以參考一下。

http://plato.asu.edu/guide.html


樓主運籌學Phd在讀,在IBM Cplex實習過半年,和一個Cplex的developer合作過半年,輕聊一下運籌的軟體。

商業的優化軟體,排名從高到低, IBM Cplex, Gurobi, FICO Xpress.由於是商業軟體,也就是幾十號擁有PHD職位的高端碼農沒日沒夜地改進演算法和code有效性,因此和開源軟體的質量不在一個層次上。General solver,LP,IP,MIP,QP,MIQP都是可以解的,目前好像大都不支持MINLP。
當然了,這些是general solver,一些非常特殊的問題,自己寫個code有可能可以beat商業軟體,因為你知道這個特殊問題的特殊結構,因此自己寫code可以利用好的性質,通常這樣也就是一篇不錯的paper。

開源軟體, SCIP,由柏林ZIB開發並維護,也是general solver。那個開創者畢業後先去了Cplex,最近跳槽去了Gurobi,上個月在邁阿密開會的時候還和他聊了聊。

還有很多個別研究者開發的開源軟體,用來解決specific問題,比如我碩士導師 Petrio Belotti的
Couenne, 用來解MINLP的問題的,MINLP那三個商業軟體都不支持。

還有很多個別研究者對個別問題開發的Matlab包,比如奧地利的Frenz Rendl的SDP問題的包。

還有很多教授或phd閑著無聊自己寫個solver,然後放到github上,樓主最近也有此想法,因為新學期會帶幾個小碩做coding project。

當然不得不提GAMS和AMPL,這倆個商業軟體把絕大多數求解器集成在一起並且簡易化他們的使用。

最後提供點乾貨,這個網站是運籌學各個opensource solver的集散地,在這裡你可以找到很多很多熱心人士自己開發並維護的solver。
COIN-OR Projects

歡迎關注我的運籌學專欄,會陸續發布運籌相關知識:

[運籌帷幄]大數據和人工智慧時代下的運籌學 - 知乎專欄

最後按照慣例廣告一波

優化數據科學領域尋博士碩士學術合作,承接工業界項目,歡迎訪問海德堡組合優化實驗室 - Ruobing Shen的文章 - 知乎專欄


管理運籌學3.0簡單好用,就是找不到資源


Lingo吧,比較簡單


反正我一直用MATLAB


lingo 或者 winqsb 好吧這些都是比較基本的本科學習時候用的 到的。


感覺沒有什麼特別讓人眼前一亮的好軟體啊!


推薦閱讀:

TAG:軟體 | 工具軟體 |