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

Тіньові ціни для соків

Підприємство використовує дві машини \(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.")
Редагувати та запускати код