Exercițiu cu constrângeri logice 2
Lucrezi la un centru de distribuție pentru camioane și trebuie să decizi care dintre cele 6 locații ale clienților vor primi o livrare. Obiectivul tău este să minimizezi distanța parcursă de camion.
| Locație | Distanță |
|---|---|
| A | 86 |
| B | 95 |
| C | 205 |
| D | 229 |
| E | 101 |
| F | 209 |
Au fost create pentru tine un dicționar dist și o listă cust, care conțin distanța, respectiv numele fiecărei locații client. Aceste date au fost afișate deja în consolă.
Acest exercițiu face parte din cursul
Analitică în lanțul de aprovizionare cu Python
Instrucțiuni pentru exercițiu
- Actualizează constrângerile astfel încât modelul să selecteze cel puțin o locație.
- Adaugă constrângerea conform căreia, dacă locația A este selectată, atunci locația D trebuie selectată și ea.
- Adaugă constrângerea conform căreia, dacă locația B este selectată, atunci locația E trebuie selectată și ea.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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))