Python中有许多第三方的工具可以解决这类问题,本教程介绍pulp工具包的使用。
一 · 教程讲解视频
二 · 常用的线性规划求解软件
1、Excel
2、Lingo
3、Matlab
三 · Python interface for optimization
使用python进行优化的函数库有很多,这里介绍两种函数库
1、PuLp ,该函数库只能用于线性模型。
2、OpenOpt , 该函数库可用于线性模型也可用于非线性模型的求解
四 · 使用PuLp求解
1、安装PuLp (pip install pulp)
2、导入PuLp (from pulp import *)
3、定义线性规划问题
PB = LpProblem ( problem name , sense )
构造函数,用来构造一个LP问题实例,其中name指定问题名(输出信息用),sense值是LpMinimize或LpMaximize中的一个,用来指定目标函数是求最大值还是最小值。
4、定义决策变量
DV = LPVariable ( decision variable name , lowbound , upbound ,category )
decision variable name指定变量名,lowBound和upBound是下界和上界, 默认分别是负无穷到正无穷,cat用来指定变量是离散(LpInteger,LpBinary)还是连续(LpContinuous)
5、添加目标函数
PB += linear objective in equantion from objective name
6、添加约束条件
PB += linear objective in equantion from constraint name
7、写入LP文件
PB.writeLP ( filename )
8、模型求解
PB.slove ( )
9、结果显示
check status : pulp.LpStatus[PB.status]
五 · Example:The Reddy Mikks Company
Reddy Mikks produce 3 paints ( interior ,exterior and theme ) from 2 materials M1 and M2 . The following table providersthe basic data of the problem
Exterior Interior Theme limit
M1 1 2 3 10
M2 0 1 2 5
Profit 1000 2000 3000
Reddy Mikky wants to determine the best product mix of interior , exterior and theme points that maximizes the total daily profit
具体的案例讲解过程见视频以及附件中的 PuLp.pdf 文档
六 · 相关文档下载
提供Python代码(lp.py & lp2.py ) 、教案 ( PuLp.pdf ) 以及讲解视频(lulp.mov )下载,下载链接:https://pan.baidu.com/s/1ht1FUcc 密码:jpxh