作者gozule (好冷啊~~)
看板Python
标题Re: [问题] python版本 与gurobi、conda的问题
时间Thu Nov 24 14:36:24 2016
※ 引述《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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.117.168.49
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1479969390.A.683.html
1F:推 Muhaosic: 推G大的用心回覆 11/24 17:52
2F:推 xakg: 感谢!gurobi已安装好了~ 学术上是free的 11/25 00:52
3F:推 xakg: 不过cplex还在寻找中,当初老板对cplex还蛮有兴趣的 11/25 08:22
4F:推 xakg: CPLEX 在pypi有一个docplex是一样的东西吗? 11/25 09:04
5F:推 xakg: 谢谢g大提供网址,我会在研究研究的 11/25 09:10
6F:推 carylorrk: 专业! 11/26 02:19
7F:推 kyuudonut: gurobi现在比cplex强了阿! 12/01 19:24