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

Теневые цены для сока

Фирма использует два станка — \(M_1\) и \(M_2\) — для розлива грейпфрутового (\(g\)) и апельсинового (\(o\)) сока по бутылкам. Цель — максимизировать прибыль при следующих ограничениях:

M1: \(6g + 5.5o \leq 40\) и M2: \(3g + 2.5o \leq 20\)

Ограничения отражают производительность и доступность станков. Например, станок M1 доступен 40 часов в неделю и требует 6 часов для розлива 1 тонны грейпфрутового сока и 5,5 часа для тонны апельсинового.

Дополнительное ограничение по поставкам: фирма получает не более 6 тонн грейпфрутов и 12 тонн апельсинов в неделю. Это верхние границы переменных.

pulp уже импортирован, модель model определена, а также переменные g и o для грейпфрутового и апельсинового сока.

Это упражнение является частью курса

Введение в оптимизацию на Python

Посмотреть курс

Инструкции к упражнению

  • Дополните цикл for проверкой того, является ли теневая цена положительной.
  • Введите переменную, которая измеряет предельное увеличение целевой функции при ослаблении ограничения.
  • Введите переменную, которая измеряет степень жёсткости ограничения.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

print(LpStatus[model.status])
print(f'The optimal amount of {g.name} embottled is: {g.varValue:.2f} tons')
print(f'The optimal amount of {o.name} embottled is: {o.varValue:.2f} tons')

for name, c in model.constraints.items():
    # Check if shadow value is positive 
    if c.____ > 0:
    # Enter the variable that measures marginal increase in objective when constraint is relaxed
        print(f"Increasing the capacity of {name} by one unit would increase profit by {c.____} units.")
    else:
    # Enter the variable that measures how tight the constraint is
        print(f"{name} has {c.____} units of unused capacity.")
Редактировать и запускать код