Esercizio sui vincoli logici 2
Lavori in un centro di distribuzione per autotrasporti e devi decidere a quali di 6 località di clienti inviare un camion. Il tuo obiettivo è minimizzare la distanza percorsa dal camion.
| Location | Distance |
|---|---|
| A | 86 |
| B | 95 |
| C | 205 |
| D | 229 |
| E | 101 |
| F | 209 |
Sono stati creati per te un dizionario dist e una lista cust che contengono rispettivamente la distanza e il nome di ogni località cliente. Questi input sono stati stampati in console per te.
Questo esercizio fa parte del corso
Analytics per la supply chain con Python
Istruzioni dell'esercizio
- Aggiorna i vincoli in modo che il modello selezioni almeno una località
- Aggiungi il vincolo per cui se la località A è selezionata allora lo è anche la località D.
- Aggiungi il vincolo per cui se la località B è selezionata allora lo è anche la località E.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
model = LpProblem("Loading Truck Problem", LpMinimize)
x = LpVariable.dicts('ship_', cust, cat='Binary')
model += lpSum([dist[i]*x[i] for i in cust])
# Define Constraint
model += ____ + ____ + ____ + ____ + ____ + ____ >= ____
model += ____ - ____ <= ___
model += ____ - ____ <= 0
model.solve()
for i in cust:
print("{} status {}".format(i, x[i].varValue))