Python 供应链分析
Aaren Stubberfield
Supply Chain Analytics Mgr.
PuLP 是一个用 Python 编写的线性(LP)与整数规划(IP)建模框架
由 COIN-OR 基金会(运筹学计算基础设施)维护
PuLP 可对接求解器
CPLEXCOINGurobi| 蛋糕A | 蛋糕B | |
|---|---|---|
| 烤箱 | 0.5 天 | 1 天 |
| 烘焙师 | 1 天 | 2.5 天 |
| 包装工 | 1 天 | 2 天 |
.
| 蛋糕A | 蛋糕B | |
|---|---|---|
| 利润 | $20.00 | $40.00 |
LpProblem(name='NoName', sense=LpMinimize)
name = 输出 .lp 文件中问题的名称,如 "My LP Problem"sense = 目标函数求最大化或最小化LpMinimize (默认)LpMaximizefrom pulp import *
# 初始化类
model = LpProblem("Maximize Bakery Profits", LpMaximize)
LpVariable(name, lowBound=None, upBound=None, cat='Continuous', e=None)
name = 输出 .lp 文件中变量名称lowBound = 下界upBound = 上界cat = 变量类型e = 用于基于列的建模# 定义决策变量
A = LpVariable('A', lowBound=0, cat='Integer')
B = LpVariable('B', lowBound=0, cat='Integer')
# 定义目标函数
model += 20 * A + 40 * B
# 定义约束
model += 0.5 * A + 1 * B <= 30
model += 1 * A + 2.5 * B <= 60
model += 1 * A + 2 * B <= 22
# 求解模型
model.solve()
print("Produce {} Cake A".format(A.varValue))
print("Produce {} Cake B".format(B.varValue))
from pulp import *
# 初始化类
model = LpProblem("Maximize Bakery Profits",
LpMaximize)
# 定义决策变量
A = LpVariable('A', lowBound=0,
cat='Integer')
B = LpVariable('B', lowBound=0,
cat='Integer')
# 定义目标函数
model += 20 * A + 40 * B
# 定义约束
model += 0.5 * A + 1 * B <= 30
model += 1 * A + 2.5 * B <= 60
model += 1 * A + 2 * B <= 22
# 求解模型
model.solve()
print("Produce {} Cake A".format(A.varValue))
print("Produce {} Cake B".format(B.varValue))
回顾 PuLP 建模的 5 个步骤
完成资源排程示例
Python 供应链分析