Inizia subitoInizia gratis

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

Visualizza corso

Istruzioni dell'esercizio

  • Definisci le variabili decisionali nel modello usando prima una list comprehension per iterare sulle liste months, warehouse e customers e creare un elenco di chiavi. Usa quell’elenco di chiavi con LpVariable.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])
Modifica ed esegui il codice