Zacznij terazZacznij za darmo

Liniowo ograniczona produkcja ciasteczek

Gratulacje! Twój biznes ciasteczkowy się rozrósł. Masz teraz dwie piekarnie, \(A\) i \(B\), które pomagają ci dostarczać ciasteczka w całym kraju.

Każda piekarnia może wyprodukować 100 ciasteczek dziennie. Koszt wyprodukowania ciasteczka w piekarni \(A\) wynosi \(1{,}5\) razy ilość \(q\), a w piekarni \(B\) – \(1{,}75q\).

Cena zdefiniowana jest wzorem \(150 - q\).

Interesy idą świetnie – masz już 140 zamówień na ciasteczka na dziś. Chcesz zmaksymalizować dzienny zysk. Ile ciasteczek powinna wyprodukować każda piekarnia?

Funkcje minimize, Bounds i LinearConstraint zostały już załadowane, a funkcja przychodu R jest gotowa do użycia.

To ćwiczenie jest częścią kursu

Wprowadzenie do optymalizacji w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj funkcję kosztu C, używając q[0] dla ilości w piekarni \(A\) i q[1] dla piekarni \(B\).
  • Zdefiniuj funkcję profit (zysk).
  • Zdefiniuj bounds (ograniczenia brzegowe) i constraints (ograniczenia) dla swojego problemu optymalizacyjnego.
  • Przeprowadź optymalizację i zapisz wynik do zmiennej result.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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}')
Edytuj i uruchom kod