CommencezCommencez gratuitement

Contraintes logiques exercice 2

Vous travaillez dans un centre de distribution de camionnage et vous devez décider vers lesquels des 6 emplacements clients vous enverrez un camion. Votre objectif est de minimiser la distance parcourue par un camion.

Emplacement 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 emplacement client. Ces entrées ont été affichées dans la console pour vous.

Cette activité fait partie du cours

Analytique de la chaîne d'approvisionnement avec Python

Voir le cours

Instructions de l’exercice

  • Mettez à jour les contraintes pour que le modèle sélectionne au moins un emplacement.
  • Ajoutez la contrainte pour que si l'emplacement A est sélectionné, l'emplacement D le soit aussi.
  • Ajoutez la contrainte pour que si l'emplacement B est sélectionné, l'emplacement E le soit 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))
Modifier et exécuter le code