Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Definiera kostnadsfunktionen C med q[0] för kvantiteterna i bageri \(A\) och q[1] för bageri \(B\).
  • Definiera funktionen profit.
  • Definiera bounds och constraints fö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}')
Redigera och kör kod