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