Python으로 배우는 공급망 분석
Aaren Stubberfield
Supply Chain Analytics Mgr.
PuLP는 Python으로 작성된 선형계획법(LP) 및 정수계획법(IP) 문제용 모델링 프레임워크입니다.
COIN-OR 재단(Computational Infrastructure for Operations Research)이 유지 관리합니다.
PuLP는 다음 솔버와 연동됩니다
CPLEXCOINGurobi| Cake A | Cake B | |
|---|---|---|
| 오븐 | 0.5일 | 1일 |
| 제빵사 | 1일 | 2.5일 |
| 포장 | 1일 | 2일 |
.
| Cake A | Cake B | |
|---|---|---|
| 이익 | $20.00 | $40.00 |
LpProblem(name='NoName', sense=LpMinimize)
name = 출력 .lp 파일에 사용될 문제 이름, 예: "My LP Problem"sense = 목적함수 최대화/최소화LpMinimize (기본값)LpMaximizefrom pulp import *
# Initialize Class
model = LpProblem("Maximize Bakery Profits", LpMaximize)
LpVariable(name, lowBound=None, upBound=None, cat='Continuous', e=None)
name = 출력 .lp 파일에 사용될 변수 이름lowBound = 하한upBound = 상한cat = 변수 유형e = 열 기반 모델링에 사용# Define Decision Variables
A = LpVariable('A', lowBound=0, cat='Integer')
B = LpVariable('B', lowBound=0, cat='Integer')
# Define Objective Function
model += 20 * A + 40 * B
# Define Constraints
model += 0.5 * A + 1 * B <= 30
model += 1 * A + 2.5 * B <= 60
model += 1 * A + 2 * B <= 22
# Solve Model
model.solve()
print("Produce {} Cake A".format(A.varValue))
print("Produce {} Cake B".format(B.varValue))
from pulp import *
# Initialize Class
model = LpProblem("Maximize Bakery Profits",
LpMaximize)
# Define Decision Variables
A = LpVariable('A', lowBound=0,
cat='Integer')
B = LpVariable('B', lowBound=0,
cat='Integer')
# Define Objective Function
model += 20 * A + 40 * B
# Define Constraints
model += 0.5 * A + 1 * B <= 30
model += 1 * A + 2.5 * B <= 60
model += 1 * A + 2 * B <= 22
# Solve Model
model.solve()
print("Produce {} Cake A".format(A.varValue))
print("Produce {} Cake B".format(B.varValue))
PuLP 모델링 5단계를 검토했습니다
자원 스케줄링 예제를 완료했습니다
Python으로 배우는 공급망 분석