CommencerCommencez gratuitement

Exercice sur une contrainte logique

Votre client a commandé six produits à livrer au cours du mois prochain. Vous devrez expédier plusieurs chargements de camion pour livrer tous les produits. La limite de poids de vos camions est de 25 000 lb. Pour des raisons de trésorerie, vous souhaitez expédier la combinaison de produits la plus rentable pouvant tenir dans votre camion.

Produit Poids (lb) Rentabilité ($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

Deux dictionnaires Python weight et prof, ainsi qu’une liste prod, ont été créés pour vous et contiennent respectivement le poids, la rentabilité et le nom de chaque produit. Vous pouvez les explorer dans la console.

Cet exercice fait partie du cours

<cours>Analyse de la chaîne d’approvisionnement en Python</cours>
Voir le cours

Instructions de l’exercice

  • Ajoutez une contrainte pour que le poids total du camion soit inférieur ou égal à 25 000 lb.
  • Ajoutez une contrainte afin que le modèle sélectionne au plus un seul produit parmi D, E et F.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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))
Modifier et exécuter le code