Esercizio sui vincoli logici
Il tuo cliente ha ordinato sei prodotti da consegnare nel prossimo mese. Dovrai effettuare più viaggi con il camion per consegnarli tutti. I camion hanno un limite di peso di 25.000 libbre. Per ragioni di flusso di cassa vuoi spedire la combinazione di prodotti più redditizia che possa entrare nel camion.
| Product | Weight (lbs) | Profitability ($US) |
|---|---|---|
| A | 12,583 | 102,564 |
| B | 9,204 | 130,043 |
| C | 12,611 | 127,648 |
| D | 12,131 | 155,058 |
| E | 12,889 | 238,846 |
| F | 11,529 | 197,030 |
Sono stati creati per te due dizionari Python weight e prof, e una lista prod, che contengono rispettivamente il peso, la redditività e il nome di ciascun prodotto. Puoi esplorarli nella console.
Questo esercizio fa parte del corso
Analytics per la supply chain con Python
Istruzioni dell'esercizio
- Aggiungi un vincolo per garantire che il peso totale del camion sia minore o uguale a 25.000 libbre.
- Aggiungi un vincolo in modo che il modello selezioni, al massimo, solo uno dei prodotti tra D, E ed F.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Initialized model, defined decision variables and objective
model = LpProblem("Loading Truck Problem", LpMaximize)
x = LpVariable.dicts('ship_', prod, cat='Binary')
model += lpSum([prof[i] * x[i] for i in prod])
# Define Constraint
model += lpSum([weight[i] * x[i] for i in prod]) ____ ____
model += ____
model.solve()
for i in prod:
print("{} status {}".format(i, x[i].varValue))