論理制約 演習 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))