용량 제한 공장 입지 - 사례 연구 P2

Python으로 배우는 공급망 분석

Aaren Stubberfield

SuSupply Chain Analytics Mgr.

용량 제한 공장 입지 모형

모형화

  • 지역 설비의 생산
    • 두 가지 공장 규모(소/대)
  • 타 지역으로 생산물 출하
  • 생산 설비 개폐 결정

지역별 생산이 있는 지구본 이미지

Python으로 배우는 공급망 분석

의사결정변수

제어 변수:

  • x$_{\text{ij}}$ = 위치 _i_에서 생산해 _j_로 배송하는 수량
  • y$_{\text{is}}$ = 위치 _i_의 _s_ 용량 공장이 가동이면 1, 폐쇄면 0
    • s = _소_ 또는 _대_ 용량 공장
Python으로 배우는 공급망 분석

제약식

  • 총 생산 = 총 수요
    • $\sum_{i=1}^{n}$ x$_{ij}$ = D$_{\text{j}}$ for $j = 1, ..., m$
    • $n$ = 생산 설비 수
    • $m$ = 시장(지역 수요지) 수
Python으로 배우는 공급망 분석

제약식

  • 총 생산 ≤ 총 생산 능력
    • $\sum_{j=1}^{m}$ x$_{ij}$ ≤ $\sum_{s=1}$ K$_{is}$y$_{is}$
    • K$_{is}$ = 위치 _i_, 규모 _s_ 공장의 잠재 생산 능력
Python으로 배우는 공급망 분석
from pulp import *

# Initialize Class
model = LpProblem("Capacitated Plant Location Model", LpMinimize)

# Define Decision Variables
loc = ['A', 'B', 'C', 'D', 'E']
size = ['Low_Cap','High_Cap']
x = LpVariable.dicts("production_", [(i,j) for i in loc for j in loc], 
                      lowBound=0, upBound=None, cat='Continuous')
y = LpVariable.dicts("plant_", [(i,s) for s in size for i in loc], cat='Binary')

# Define Objective Function
model += (lpSum([fix_cost.loc[i,s]*y[(i,s)] for s in size for i in loc])
          + lpSum([var_cost.loc[i,j]*x[(i,j)] for i in loc for j in loc]))
Python으로 배우는 공급망 분석

코드 예시 계속

# Define the Constraints
for j in loc:
   model += lpSum([x[(i, j)] for i in loc]) == demand.loc[j,'Dmd']

for i in loc: model += lpSum([x[(i, j)] for j in loc]) <= lpSum([cap.loc[i,s]*y[(i,s)] for s in size])
Python으로 배우는 공급망 분석

요약

용량 제한 공장 입지 모델:

  • 제약식
    • 총 생산 = 총 수요
    • 총 생산 ≤ 총 생산 능력
Python으로 배우는 공급망 분석

복습 시간

Python으로 배우는 공급망 분석

Preparing Video For Download...