ПочатиПочніть безкоштовно

Лінійні обмеження для печива

Вітаємо! Ваш бізнес із печивом розширився. Тепер у вас є дві пекарні, \(A\) та \(B\), щоб доставляти печиво по всій країні.

Кожна пекарня може виготовляти 100 печив на день. Собівартість виготовлення одного печива в пекарні \(A\) становить \(1.5\) від кількості \(q\), а в пекарні \(B\) — \(1.75q\).

Ціну задано як \(150 - q\).

Справи йдуть чудово, і у вас уже є 140 передзамовлень печива на сьогодні. Ви хочете максимізувати денний прибуток. Скільки печив слід виготовити в кожній пекарні?

minimize, Bounds і LinearConstraint уже завантажено для вас, а функцію виручки R визначено.

Ця вправа є частиною курсу

Вступ до оптимізації в Python

Переглянути курс

Інструкції до вправи

  • Визначте функцію собівартості C, використовуючи q[0] для кількості в пекарні \(A\) та q[1] для пекарні \(B\).
  • Визначте функцію profit.
  • Задайте bounds і constraints для вашої задачі оптимізації.
  • Виконайте оптимізацію та збережіть результат у result.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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}')
Редагувати та запускати код