논리 제약 연습 문제
고객이 다음 한 달 동안 배송할 여섯 가지 제품을 주문했습니다. 모든 제품을 배송하려면 여러 대의 트럭이 필요해요. 트럭에는 25,000 lbs의 중량 제한이 있습니다. 현금 흐름 관점에서 트럭에 실을 수 있는 조합 중 수익성이 가장 높은 제품들을 보내고자 합니다.
| Product | Weight (lbs) | Profitability ($US) |
|---|---|---|
| A | 12,583 | 102,564 |
| B | 9,204 | 130,043 |
| C | 12,611 | 127,648 |
| D | 12,131 | 155,058 |
| E | 12,889 | 238,846 |
| F | 11,529 | 197,030 |
두 개의 Python 딕셔너리 weight와 prof, 그리고 리스트 prod가 각 제품의 무게, 수익성, 이름을 담고 제공되어 있습니다. 콘솔에서 확인해 보세요.
이 연습은 강의의 일부입니다
Python으로 배우는 공급망 분석
연습 안내
- 트럭의 총중량이 25,000 lbs 이하가 되도록 제약을 추가하세요.
- 모델이 D, E, F 중에서 최대 한 개만 선택하도록 제약을 추가하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Initialized model, defined decision variables and objective
model = LpProblem("Loading Truck Problem", LpMaximize)
x = LpVariable.dicts('ship_', prod, cat='Binary')
model += lpSum([prof[i] * x[i] for i in prod])
# Define Constraint
model += lpSum([weight[i] * x[i] for i in prod]) ____ ____
model += ____
model.solve()
for i in prod:
print("{} status {}".format(i, x[i].varValue))