Biscuits avec contraintes linéaires
Félicitations ! Votre entreprise de biscuits a grandi. Vous avez désormais deux boulangeries, \(A\) et \(B\), pour livrer vos biscuits dans tout le pays.
Chaque boulangerie peut produire 100 biscuits par jour. Le coût de production d’un biscuit dans la boulangerie \(A\) est \(1{,}5\) multiplié par la quantité \(q\), tandis que dans la boulangerie \(B\) il est de \(1{,}75q\).
Le prix est défini par \(150 - q\).
Les affaires marchent fort et vous avez déjà 140 précommandes de biscuits pour la journée. Vous souhaitez maximiser votre profit pour la journée. Combien de biscuits devez-vous produire dans chaque boulangerie ?
minimize, Bounds et LinearConstraint ont été chargés pour vous et la fonction de chiffre d’affaires R est déjà définie.
Cet exercice fait partie du cours
Introduction à l’optimisation en Python
Instructions
- Définissez la fonction de coût
Cen utilisantq[0]pour la quantité de la boulangerie \(A\) etq[1]pour la boulangerie \(B\). - Définissez la fonction de
profit. - Définissez les
boundset lesconstraintsde votre problème d’optimisation. - Réalisez l’optimisation et stockez le résultat dans
result.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
def R(q):
return (150 - q[0] - q[1]) * (q[0] + q[1])
# Define the cost function
def C(q):
return ____
# Define the profit function
def profit(q):
return ____
# Define the bounds and constraints
bounds = Bounds(____, ____)
constraints = LinearConstraint([1, 1], ____)
# Perform optimization
result = ____(lambda q: ____,
[50, 50],
bounds=bounds,
constraints=constraints)
print(result.message)
print(f'The optimal number of biscuits to bake in bakery A is: {result.x[0]:.2f}')
print(f'The optimal number of biscuits to bake in bakery B is: {result.x[1]:.2f}')
print(f'The bakery company made: ${-result.fun:.2f}')