Linjärt begränsad kexoptimering
Grattis! Din kexverksamhet har vuxit. Nu har du två bagerier, \(A\) och \(B\), som hjälper dig att leverera kex över hela landet.
Varje bageri kan tillverka 100 kex per dag. Kostnaden för att tillverka ett kex i bageri \(A\) är \(1{,}5\) gånger kvantiteten \(q\), och i bageri \(B\) är den \(1{,}75q\).
Priset definieras av \(150 - q\).
Affärerna går bra och du har redan 140 förbeställningar på kex för dagen. Du vill maximera dagens vinst. Hur många kex bör du tillverka i respektive bageri?
minimize, Bounds och LinearConstraint har redan importerats, och intäktsfunktionen R är definierad.
Den här övningen är en del av kursen
Introduktion till optimering i Python
Övningsinstruktioner
- Definiera kostnadsfunktionen
Cmedq[0]för kvantiteterna i bageri \(A\) ochq[1]för bageri \(B\). - Definiera funktionen
profit. - Definiera
boundsochconstraintsför ditt optimeringsproblem. - Utför optimeringen och spara resultatet i
result.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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}')