Začněte nyníZačněte zdarma

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

Zobrazit kurz

Pokyny k cvičení

  • Definuj rozhodovací proměnné modelu tak, že nejprve pomocí list comprehension iteruješ přes seznamy months, warehouse a customers a vytvoříš seznam klíčů. Tento seznam klíčů pak použij spolu s LpVariable.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])
Upravit a spustit kód