Re: [問題] python版本 與gurobi、conda的問題

作者: gozule (好冷啊~~)   2016-11-24 14:36:24
※ 引述《xakg (夤)》之銘言:
: 大家好,
: 小弟新手入門,有些觀念跟問題請教:
: 1. 很多書上有推anaconda,是不是裝了以後就不要再裝python的核心(直譯器)?
: 我本來安裝了官方python 3.5 又安裝了anaconda,這樣在ipython 在執行新檔案時會
: 出現兩個核心,是不是代表我兩個都可以裝?
: 2. 因為研究需要,我需要gurobi 最佳化求解軟體,我已經安裝好了,後來發現anaconda
: 也有提供他的安裝方法,那我還要在安裝一次嗎?我用pip裝的套件 conda的核心讀的到
: 嗎?
: 3. 我執行gurobi 後 核心出來是 2.7.X版本的 可是我的python原先是裝3.5x版本的
: 為什麼會這樣呀?
: http://imgur.com/a/RBjaW
: http://imgur.com/a/PCLHs
: 4. 版友有推薦pyomo +gurobi 但我不太了解pyomo的作用是如何,他的效果是屬於?
: ==
: 我發覺python真的還蠻有趣的,就像excel一樣有好多函數可以拿來使用;
: 跟其它程式有一點小差別,光是基因演算法都有套件可以解,
: 好酷呀!!
1,2,3已經有人解釋了,我解釋一下pyomo的用途。
解設我們在解一個最佳化問題(例:線性規劃(LP)、兩次規劃(QP)等),
LP的標準式是 min c^T x s.t. Ax <= b, x >=0。
如果我們的LP可以很簡單的化簡成標準式時,即可以直接呼叫解LP的函數求解,
比如說scipy的optimize套件中就有直接求LP標準式的套件, https://goo.gl/65FSX0
但是當我們在依據資料建立數學模型時,雖然可以知道模型是LP、QP或是其它規劃,
但非標準型式,如果要用基本的function call求解的話,就必須要自行轉換成標準式,
非常的麻煩,而且容易發生錯誤,特別是在問題較大時(比如說大於100個決策變數的
問題),因此有許多的建模語言幫助使用者達成此轉換的工作,如AMPL、GAMS等,而
pyomo是用python實際此功能的軟體。
但要注意的事這些建模語言只是幫忙做翻譯,實際上問題還需要用演算法求解,
因此還需要後端的solver幫忙解答,常見的商用solver有cplex, gurobi, xpress等,
雖然也有open source的版本如glpk,但是性能差異過大。
Prof. Mittelmann有在對市面上大多數的solver做性能測試,更新的非常頻繁,
最新的比較是2016年11月,可看出很明顯的商用 vs 開源solver性能差異。
pyomo後端支援相當多的solver,cplex, gurobi, glpk等都支援,而商用軟體
也大多有搭配自已的建模語言,所以不管用那一種方式都可以解答出問題,只
是在於方便性而已。
順便一提,cplex和gurobi校園使用都可以申請academic use,免費使用,只要免年
更新license即可。
http://plato.asu.edu/bench.html
作者: Muhaosic (Muhaosic)   2016-11-24 17:52:00
推G大的用心回覆
作者: xakg (夤)   2016-11-25 00:52:00
感謝!gurobi已安裝好了~ 學術上是free的
作者: carylorrk (carylorrk)   2016-11-26 02:19:00
專業!
作者: kyuudonut (善良老百姓)   2016-12-01 19:24:00
gurobi現在比cplex強了阿!

Links booklink

Contact Us: admin [ a t ] ucptt.com