使用Python/PuLp解决线性规划问题

Python中有许多第三方的工具可以解决这类问题,本教程介绍pulp工具包的使用。

一 · 教程讲解视频

讲解视频已经上传到b站 使用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

你可能感兴趣的:(使用Python/PuLp解决线性规划问题)