Galletas con restricciones lineales
¡Enhorabuena! Tu negocio de galletas ha crecido. Ahora tienes dos panaderías, \(A\) y \(B\), para ayudarte a distribuir tus galletas por todo el país.
Cada panadería puede producir 100 galletas al día y el coste de hacer una galleta en la panadería \(A\) es \(1.5\) por la cantidad \(q\), mientras que en la panadería \(B\) es \(1.75q\).
El precio viene definido por \(150 - q\).
Tu negocio va viento en popa y ya tienes 140 preventas de galletas para hoy. Quieres maximizar el beneficio del día. ¿Cuántas galletas deberías hacer en cada panadería?
minimize, Bounds y LinearConstraint ya se han cargado por ti y la función de ingresos R ya está definida.
Este ejercicio forma parte del curso
Introducción a la optimización en Python
Instrucciones del ejercicio
- Define la función de coste
Cusandoq[0]para las cantidades de la panadería \(A\) yq[1]para la panadería \(B\). - Define la función de
profit. - Define los
boundsyconstraintspara tu problema de optimización. - Realiza la optimización y guarda el resultado en
result.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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}')