시작하기무료로 시작하기

물류 계획 문제 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])
코드 편집 및 실행