CommencezCommencez gratuitement

Prix implicite et marge de manœuvre — exercice, partie 1

Vous planifiez quels petits gâteaux une boulangerie devrait produire. La boulangerie peut faire soit :

  • petit gâteau de taille régulière : profit = 5 $
  • gros petit gâteau (deux fois la taille régulière) : profit = 10 $

Il y a 2 contraintes : heures de four (30) et heures de travail des employés (65). Ce scénario a été modélisé dans PuLP pour vous, et une solution a été trouvée. L'état du modèle, les valeurs des variables de décision, la valeur de l'objectif (c.-à-d. le profit), ainsi que les prix implicites et la marge de manœuvre des contraintes ont été imprimés dans le terminal.

Le script d'exemple est une copie de ce code. Vous allez ajuster les contraintes pour voir comment la solution optimale change.

Cette activité fait partie du cours

Analytique de la chaîne d'approvisionnement avec Python

Voir le cours

Exercice interactif pratique

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

# Define Constraints, Solve, Print Status, Variables, Objective
model = LpProblem("Maximize Bakery Profits", LpMaximize)
R = LpVariable('Regular_production', lowBound=0, cat='Continuous')
J = LpVariable('Jumbo_production', lowBound=0, cat='Continuous')
model += 5 * R + 10 * J, "Profit"

# Adjust the constraint
model += 0.5 * R + 1 * J <= ____
model += 1 * R + 2.5 * J <= 65

# Solve Model, Print Status, Variables, Objective, Shadow and Slack
model.solve()
print("Model Status: {}".format(LpStatus[model.status]))
for v in model.variables():
    print(v.name, "=", v.varValue)
print("Objective = $", value(model.objective))
o = [{'name':name, 'shadow price':c.pi, 'slack': c.slack} 
     for name, c in model.constraints.items()]
print(pd.DataFrame(o))
Modifier et exécuter le code