물류 계획 문제 2
당신은 다시 한 번 주방용 오븐 제조업체의 물류 계획을 자문하고 있어요. 이번에는 앞으로 6개월(1월~6월) 계획을 세우려 합니다. 두 개의 창고 위치(뉴욕, 애틀랜타)와 네 개의 지역 고객 위치(동부, 남부, 중서부, 서부)는 동일합니다. 각 창고에서 지역 고객으로 배송하는 비용은 아래 표와 같습니다. 목표는 각 창고에서 각 고객으로 보내야 할 배송 건수를 결정하여 총비용을 최소화하는 것입니다.
| Customer | New York | Atlanta |
|---|---|---|
| East | $211 | $232 |
| South | $232 | $212 |
| Midwest | $240 | $230 |
| West | $300 | $280 |
모형의 비용을 담은 costs라는 Python 딕셔너리와 months, warehouse, customers 세 개의 리스트가 준비되어 있습니다. costs는 이미 출력해 두었고, 콘솔에서 리스트들도 확인하실 수 있어요. 또한 모델 초기화도 완료되어 있습니다.
이 연습은 강의의 일부입니다
Python으로 배우는 공급망 분석
연습 안내
- 먼저
months,warehouse,customers리스트를 리스트 컴프리헨션으로 순회하여 키 목록을 만든 뒤, 그 키 목록을LpVariable.dicts()와 함께 사용해 모델의 의사결정변수를 정의하세요. - 특정 창고와 고객 조합에 대해 6개월 동안의 모든 배송비를 합해 목적 함수를 정의하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Define decision variables
key = [(m, w, ____) for m in months for w in warehouse for c in customers]
var_dict = LpVariable.dicts('num_of_shipments',
key,
lowBound=____, cat=____)
# Use the LpVariable dictionary variable to define objective
model += lpSum([costs[(w, c)] * ____[(____, ____, ____)]
for m in months for w in warehouse for c in customers])