Problema de planificare logistică 2
Ești din nou consultant pentru un producător de cuptoare de bucătărie și ajuți la planificarea logisticii. De această dată, încerci să elaborezi un plan pentru următoarele șase luni (ian.–iun.). Există în continuare două locații de depozitare (New York și Atlanta) și patru locații regionale ale clienților (Est, Sud, Midwest, Vest). Costurile de transport de la fiecare depozit la clienții regionali sunt prezentate în tabelul de mai jos. Obiectivul tău este să determini numărul de livrări din fiecare depozit către clienți, astfel încât costurile totale să fie minime.
| Client | New York | Atlanta |
|---|---|---|
| Est | $211 | $232 |
| Sud | $232 | $212 |
| Midwest | $240 | $230 |
| Vest | $300 | $280 |
A fost creat pentru tine un dicționar Python numit costs, care conține costurile modelului, precum și trei liste: months, warehouse și customers. Dicționarul costs a fost afișat pentru tine; poți explora și listele în consolă. De asemenea, modelul a fost inițializat pentru tine.
Acest exercițiu face parte din cursul
Analitică în lanțul de aprovizionare cu Python
Instrucțiuni pentru exercițiu
- Definește variabilele de decizie din model folosind list comprehension pentru a itera peste listele
months,warehouseșicustomersși a crea o listă de chei. Folosește această listă de chei împreună cuLpVariable.dicts()pentru a defini variabilele necesare. - Definește funcția obiectiv adunând toate costurile de transport de la un anumit depozit la un anumit client pe parcursul celor șase luni.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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])