物流計画問題 2
あなたは再び、キッチン用オーブンのメーカーの物流計画を支援しています。今回は、今後6か月(1月〜6月)の計画を作成します。倉庫は引き続き2拠点(New York と Atlanta)、顧客は4つの地域(East、South、Midwest、West)です。各倉庫から各地域顧客への配送コストは下表のとおりです。目標は、総コストが最小になるように、各倉庫から各顧客への月ごとの出荷数量を決定することです。
| Customer | New York | Atlanta |
|---|---|---|
| East | $211 | $232 |
| South | $232 | $212 |
| Midwest | $240 | $230 |
| West | $300 | $280 |
モデルのコストを保持する Python の辞書 costs と、months、warehouse、customers の3つのリストが用意されています。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])