Le problème du régime alimentaire, revisité
Vous réexaminez les données financières d’un agriculteur qui vous a demandé de revoir l’alimentation de ses porcs et de réduire les coûts si possible. Le régime actuel de minimisation des coûts suit la recommandation du vétérinaire : au moins 17 % de protéines, 2 % de matières grasses, et 7 lb de nourriture, selon les spécifications suivantes
| Food | Cost ($/lb) | Protein (%) | Fat (%) |
|---|---|---|---|
| corn | 0.11 | 10 | 2.5 |
| soybean | 0.28 | 40 | 1 |
Vous savez que les 7 lb sont une valeur arrondie et pourraient être réduites à 6,6 lb. On vous demande d’analyser comment la modification, une par une, de la contrainte de poids ou de matières grasses affecte le coût minimal. Vous allez d’abord résoudre le problème initial tel quel, puis examiner l’écart (slack) et le prix d’ombre.
pulp a été importé pour vous et model a été défini, ainsi que les variables C et S pour le maïs et le soja.
Cet exercice fait partie du cours
Introduction à l’optimisation en Python
Instructions
- Affichez l’écart (slack) de la contrainte Weight.
- Vérifiez si le prix d’ombre (shadow price) de la contrainte Weight est supérieur à 0.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
model.constraints['Weight'] = C + S >= 7
model.solve()
print(f"Status: {LpStatus[model.status]}\n")
# Print the slack of the weight constraint
print("The slack of the Weight constraint is {}",
____.constraints['Weight'].____)
# Check if the shadow price is greater than 0
if ____.constraints['Weight'].____ > 0:
print('Tightening the constraint will increase minimum cost')