Logistická optimalizace 2
Opět pomáháš výrobci kuchyňských trub s plánováním logistiky. Tentokrát sestavuješ plán na příštích šest měsíců (leden–červen). K dispozici jsou stále dvě skladová místa (New York a Atlanta) a čtyři regionální zákaznická místa (East, South, Midwest, West). Náklady na přepravu z jednotlivých skladů k zákazníkům jsou uvedeny v tabulce níže. Tvým cílem je určit počet zásilek z každého skladu k zákazníkům tak, aby byly celkové náklady co nejnižší.
| Zákazník | New York | Atlanta |
|---|---|---|
| East | $211 | $232 |
| South | $232 | $212 |
| Midwest | $240 | $230 |
| West | $300 | $280 |
Pythonový slovník costs obsahující náklady modelu a tři seznamy months, warehouse a customers jsou už připravené. Slovník costs je vytištěný, ostatní seznamy si můžeš prohlédnout v konzoli. Model je také již inicializovaný.
Toto cvičení je součástí kurzu
Supply Chain Analytics v Pythonu
Pokyny k cvičení
- Definuj rozhodovací proměnné modelu tak, že nejprve pomocí list comprehension iteruješ přes seznamy
months,warehouseacustomersa vytvoříš seznam klíčů. Tento seznam klíčů pak použij spolu sLpVariable.dicts()k definování potřebných proměnných. - Definuj účelovou funkci součtem všech nákladů na přepravu z daného skladu k zákazníkovi za všech šest měsíců.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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])