CommencerCommencer gratuitement

Prix d’ombre avec des jus

Une entreprise utilise deux machines \(M_1\) et \(M_2\) pour embouteiller du jus de pamplemousse (\(g\)) et du jus d’orange (\(o\)). Son objectif est de maximiser le profit sous les contraintes suivantes :

M1 : \(6g + 5.5o \leq 40\) et M2 : \(3g + 2.5o \leq 20\)

Ces contraintes reflètent la productivité et la disponibilité des machines. Par exemple, M1 est disponible 40 heures par semaine et nécessite 6 heures pour embouteiller 1 tonne de jus de pamplemousse et 5,5 heures pour 1 tonne de jus d’orange.

Il existe également une contrainte d’approvisionnement : l’entreprise ne reçoit au maximum que 6 tonnes de pamplemousses par semaine et 12 tonnes d’oranges. Ce sont les bornes supérieures.

pulp a été importé pour vous et model a été défini, ainsi que les variables g et o pour les jus de pamplemousse et d’orange.

Cet exercice fait partie du cours

Introduction à l’optimisation en Python

Afficher le cours

Instructions

  • Complétez la boucle for pour inclure une vérification du fait que le prix d’ombre est positif.
  • Indiquez la variable qui mesure l’augmentation marginale de l’objectif lorsque la contrainte est relâchée.
  • Indiquez la variable qui mesure à quel point la contrainte est serrée.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

print(LpStatus[model.status])
print(f'The optimal amount of {g.name} embottled is: {g.varValue:.2f} tons')
print(f'The optimal amount of {o.name} embottled is: {o.varValue:.2f} tons')

for name, c in model.constraints.items():
    # Check if shadow value is positive 
    if c.____ > 0:
    # Enter the variable that measures marginal increase in objective when constraint is relaxed
        print(f"Increasing the capacity of {name} by one unit would increase profit by {c.____} units.")
    else:
    # Enter the variable that measures how tight the constraint is
        print(f"{name} has {c.____} units of unused capacity.")
Modifier et exécuter le code