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