НачатьНачать бесплатно

Линейно ограниченная задача о печенье

Поздравляем! Ваш бизнес по производству печенья вырос. Теперь у вас есть две пекарни — \(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}')
Редактировать и запускать код