Contraintes logiques : exercice 2
Vous travaillez dans un centre de distribution routier et vous devez décider vers lequel des 6 sites clients envoyer un camion. Votre objectif est de minimiser la distance parcourue par le camion.
| Location | Distance |
|---|---|
| A | 86 |
| B | 95 |
| C | 205 |
| D | 229 |
| E | 101 |
| F | 209 |
Un dictionnaire dist et une liste cust ont été créés pour vous, contenant respectivement la distance et le nom de chaque site client. Ces entrées ont été affichées dans la console pour vous.
Cet exercice fait partie du cours
<cours>Analyse de la chaîne d’approvisionnement en Python</cours>Instructions de l’exercice
- Mettez à jour les contraintes pour que le modèle sélectionne au moins un site.
- Ajoutez la contrainte : si le site A est sélectionné, alors le site D l’est aussi.
- Ajoutez la contrainte : si le site B est sélectionné, alors le site E l’est aussi.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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))