ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Define la función de coste C usando q[0] para las cantidades de la panadería \(A\) y q[1] para la panadería \(B\).
  • Define la función de profit.
  • Define los bounds y constraints para 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}')
Editar y ejecutar código