CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Définissez la fonction de coût C en utilisant q[0] pour la quantité de la boulangerie \(A\) et q[1] pour la boulangerie \(B\).
  • Définissez la fonction de profit.
  • Définissez les bounds et les constraints de 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}')
Modifier et exécuter le code