Biscuits avec contraintes linéaires
Félicitations! Votre entreprise de biscuits a pris de l'ampleur. Vous avez maintenant deux boulangeries, \(A\) et \(B\), pour vous aider à livrer vos biscuits partout au pays.
Chaque boulangerie peut fabriquer 100 biscuits par jour. Le coût de fabrication d'un biscuit dans la boulangerie \(A\) est \(1.5\) fois la quantité \(q\), tandis que dans la boulangerie \(B\) il est de \(1.75q\).
Le prix est défini par \(150 - q\).
Les affaires vont très bien et vous avez déjà 140 précommandes de biscuits pour la journée. Vous voulez maximiser votre profit aujourd'hui. Combien de biscuits devriez-vous produire dans chaque boulangerie?
minimize, Bounds et LinearConstraint ont été importés pour vous, et la fonction de revenus R est déjà définie.
Cette activité fait partie du cours
Introduction à l'optimisation en Python
Instructions de l’exercice
- Définissez la fonction de coût
Cen utilisantq[0]pour les quantités de la boulangerie \(A\) etq[1]pour la boulangerie \(B\). - Définissez la fonction
profit. - Définissez les
boundset lesconstraintspour votre problème d'optimisation. - Effectuez l'optimisation et enregistrez le résultat dans
result.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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}')