Inizia subitoInizia gratis

Esercizio sulla combinazione di vincoli

Stai lavorando a un piano di distribuzione per una rete di magazzini. La rete ha due magazzini (W1 e W2) e ciascuno può spedire tre diversi tipi di prodotti (A, B e C). W1 è piccolo e può spedire a settimana o 10 prodotti A, oppure 15 prodotti B, oppure 20 prodotti C. Vuoi minimizzare i costi totali.

Un DataFrame di Pandas chiamato demand è stampato nella console e contiene la domanda mensile per ciascun prodotto. Inoltre, è presente il codice del modello PuLP per inizializzare, definire le variabili decisionali, la funzione obiettivo e il vincolo affinché la spedizione totale di ciascun prodotto sia uguale alla sua domanda.

Questo esercizio fa parte del corso

Analytics per la supply chain con Python

Visualizza corso

Istruzioni dell'esercizio

  • Completa il codice per il vincolo che modella le limitazioni di spedizione del magazzino W1 per 4 settimane.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# Initialize, Define Decision Vars., Objective Function, and Constraints
model = LpProblem("Distribution Planning", LpMinimize)
wh = ['W1','W2']
prod = ['A', 'B', 'C']
X = LpVariable.dicts("ship", [(w, p, c) for c in cust for p in prod for w in wh], 
                     lowBound=0, cat="Integer")
model += lpSum([X[(w, p, c)]*costs.loc[(w, p), c]  for c in cust for p in prod for w in wh])
for c in cust:
    for p in prod:
        model += lpSum([X[(w, p, c)] for w in wh]) == demand.loc[p, c]

# Define Dependent Demand Constraints
model += ((1/10) * lpSum([X[('W1', 'A', c)] for c in cust]) 
          + ____ * lpSum([X[(____, ____, c)] for c in cust])
          + ____ * lpSum([X[(____, ____, ____)] for c in cust])) <= ____
Modifica ed esegui il codice