Python PuLP and Glpk 安装步骤

PuLP 是一个 Python 的线性规划库,使用起来相当的简单方便:

http://pypi.python.org/pypi/PuLP/1.5.3

还需要 GLPK (GNU Linear Programming Kit)

http://www.gnu.org/software/glpk/

先编译 glpk

cmd

cd D:\glpk-4.47\w32

Build_GLPK_with_VC9.bat

Build_GLPK_with_VC9_DLL.bat

# 安装 pulp

cd D:\python\PuLP-1.5.3

setup.py install

方式一:声明绝对路径

#prob.solve(GLPK("D:\\glpk-4.47\\w32\\glpsol.exe"))

方式二:设环境变量

SET PATH=D:\glpk-4.47\w32\;%PATH%

这样可以简化为:

prob.solve(GLPK(msg=0))

最后看了D:\python\PuLP-1.5.3\examples 发现最简单的也行:

prob.solve()

样例:求解“鸡兔同笼”问题的源码见下载栏 jttl_lp.py

“鸡兔同笼”是我国隋朝时期的数学著作《孙子算经》中的一个有趣而具有深远影响的题目:“今有雉兔同笼,上有三十五头,下有九十四足.问雉兔各几何.”

设鸡的数量为 x,兔子的数量为 y,求解

x + y = 35
2 x + 4 y = 94

Python PuLP 求解最大化问题 , 源码见下载栏 test1_lp.py

问题是使生产商品利润最大,x,y为两种不同商品的生产量。具体描述如下:
max 3600x+5400y
s.t.
6x+10.5y <= 48000
4x+2y <= 20000
y <= 3500
x,y >=0

Windows 7上安装pulpglpk步骤: 亲测环境: Windows 6.1.7601 Service Pack 1 Build 7601 x64 Python 2.7.11 PuLP 1.6.8 GLPK 4.34 安装步骤: 1、下载PuLP安装包:前提是,已安装python2.6以及2.6以上版本,在网页(https://pythonhosted.org/PuLP/main/installing_pulp_at_home.html)上点击PuLP zipfile下载pulp包,当然,也可以在我的资源里下载 2、安装PuLP:将zipfile解压缩,并在命令行窗口中,进入解压缩的目录,然后输入命令:setup.py install 3、下载glpk安装包:在网页(https://sourceforge.net/projects/gnuwin32/files/glpk/4.34/)上,下载glpk-4.34-setup.exe(也可以在我的资源里下载),然后双击默认安装 4、按照以上步骤,安装完以后,写一个.py的脚本并运行,脚本内容: from pulp import * pulp.pulpTestAll() 然后,会看到以下类似输出结果: D:\002-Task_150524\117-17data_thesis\004-code\testPulp.py Testing zero subtraction Testing inconsistant lp solution Testing continuous LP solution Testing maximize continuous LP solution Testing unbounded continuous LP solution Testing Long Names Testing repeated Names Testing zero constraint Testing zero objective Testing LpVariable (not LpAffineExpression) objective Testing Long lines in LP Testing LpAffineExpression divide Testing MIP solution Testing MIP solution with floats in objective Testing MIP relaxation Testing feasibility problem (no objective) Testing an infeasible problem Testing an integer infeasible problem Testing column based modelling Testing dual variables and slacks reporting Testing fractional constraints Testing elastic constraints (no change) Testing elastic constraints (freebound) Testing elastic constraints (penalty unchanged) Testing elastic constraints (penalty unbounded) * Solver pulp.solvers.PULP_CBC_CMD passed. Solver pulp.solvers.CPLEX_DLL unavailable Solver pulp.solvers.CPLEX_CMD unavailable Solver pulp.solvers.CPLEX_PY unavailable Solver pulp.solvers.COIN_CMD unavailable Solver pulp.solvers.COINMP_DLL unavailable Testing zero subtraction Testing inconsistant lp solut
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值