Problema di pianificazione logistica 2
Stai di nuovo facendo consulenza per un produttore di forni da cucina per aiutarlo a pianificare la logistica. Questa volta stai cercando di mettere insieme un piano per i prossimi sei mesi (gen.-giu.). Ci sono ancora due sedi di magazzino (New York e Atlanta) e quattro aree clienti regionali (East, South, Midwest, West). I costi di spedizione da ciascun magazzino ai clienti regionali sono riportati nella tabella seguente. Il tuo obiettivo è determinare il numero di spedizioni da ciascun magazzino ai clienti che minimizza i costi.
| Customer | New York | Atlanta |
|---|---|---|
| East | $211 | $232 |
| South | $232 | $212 |
| Midwest | $240 | $230 |
| West | $300 | $280 |
È stato creato per te un dizionario Python, costs, che contiene i costi del modello, insieme a tre liste months, warehouse e customers. costs è già stato stampato; puoi anche esplorare le liste nella console. Inoltre, il modello è già stato inizializzato.
Questo esercizio fa parte del corso
Analytics per la supply chain con Python
Istruzioni dell'esercizio
- Definisci le variabili decisionali nel modello usando prima una list comprehension per iterare sulle liste
months,warehouseecustomerse creare un elenco di chiavi. Usa quell’elenco di chiavi conLpVariable.dicts()per definire le variabili necessarie. - Definisci la funzione obiettivo sommando tutti i costi di spedizione da un certo magazzino a un cliente nell’arco dei sei mesi.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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])