邏輯式限制條件練習 2
你在一個卡車配送中心工作,需要決定在 6 個客戶地點中要派車到哪些地點。你的目標是讓卡車行駛的距離最短。
| Location | Distance |
|---|---|
| A | 86 |
| B | 95 |
| C | 205 |
| D | 229 |
| E | 101 |
| F | 209 |
已為你建立字典 dist 與清單 cust,分別包含每個客戶地點的距離與名稱。這些輸入已在主控台列印出來供你參考。
本練習屬於課程
Python 的供應鏈分析
練習說明
- 更新限制條件,讓模型至少選擇 1 個地點。
- 新增限制條件:如果選擇地點 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))