Линейно ограниченная задача о печенье
Поздравляем! Ваш бизнес по производству печенья вырос. Теперь у вас есть две пекарни — \(A\) и \(B\), — которые помогают доставлять продукцию по всей стране.
Каждая пекарня может выпускать до 100 штук печенья в день. Стоимость производства одного печенья в пекарне \(A\) составляет \(1{,}5q\), а в пекарне \(B\) — \(1{,}75q\), где \(q\) — количество штук.
Цена задаётся выражением \(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}')