논리 제약 연습 2
여러분은 트럭 배송 센터에서 근무하며, 6개의 고객 위치 중 어느 곳에 트럭을 보낼지 결정해야 합니다. 목표는 트럭이 이동하는 총 거리를 최소화하는 것입니다.
| Location | Distance |
|---|---|
| A | 86 |
| B | 95 |
| C | 205 |
| D | 229 |
| E | 101 |
| F | 209 |
각 고객 위치의 이름과 거리를 담은 사전 dist와 리스트 cust가 준비되어 있습니다. 이 입력 값들은 콘솔에 출력되어 있어요.
이 연습은 강의의 일부입니다
Python으로 배우는 공급망 분석
연습 안내
- 모델이 적어도 한 곳의 위치를 선택하도록 제약을 수정하세요.
- 위치 A가 선택되면 위치 D도 반드시 선택되도록 제약을 추가하세요.
- 위치 B가 선택되면 위치 E도 반드시 선택되도록 제약을 추가하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
model = LpProblem("Loading Truck Problem", LpMinimize)
x = LpVariable.dicts('ship_', cust, cat='Binary')
model += lpSum([dist[i]*x[i] for i in cust])
# Define Constraint
model += ____ + ____ + ____ + ____ + ____ + ____ >= ____
model += ____ - ____ <= ___
model += ____ - ____ <= 0
model.solve()
for i in cust:
print("{} status {}".format(i, x[i].varValue))