Лінійні обмеження для печива
Вітаємо! Ваш бізнес із печивом розширився. Тепер у вас є дві пекарні, \(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}')