Aan de slagGa gratis aan de slag

Lineair begrensde koekjes

Gefeliciteerd! Je koekjesbedrijf is gegroeid. Je hebt nu twee bakkerijen, \(A\) en \(B\), die je helpen je koekjes landelijk te leveren.

Elke bakkerij kan 100 koekjes per dag maken. De kosten per koekje in bakkerij \(A\) zijn \(1.5\) maal de hoeveelheid \(q\), en in bakkerij \(B\) zijn ze \(1.75q\).

De prijs is gedefinieerd als \(150 - q\).

Je bedrijf floreert en je hebt al 140 koekjes-preorders voor vandaag. Je wilt je dagwinst maximaliseren. Hoeveel koekjes moet je in elke bakkerij maken?

minimize, Bounds en LinearConstraint zijn voor je geladen en de omzetfunctie R is al gedefinieerd.

Deze oefening maakt deel uit van de cursus

Introductie tot optimalisatie in Python

Cursus bekijken

Oefeninstructies

  • Definieer de kostenfunctie C met q[0] voor de hoeveelheden in bakkerij \(A\) en q[1] voor bakkerij \(B\).
  • Definieer de functie profit.
  • Definieer de bounds en constraints voor je optimalisatieprobleem.
  • Voer de optimalisatie uit en sla op in result.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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}')
Code bewerken en uitvoeren