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

Вправа: тіньова ціна та запас міцності, ч. 1

Ви плануєте, які кекси має випікати пекарня. Пекарня може робити:

  • кекс звичайного розміру: прибуток = $5
  • «джамбо»-кекс удвічі більший за звичайний: прибуток = $10

Є 2 обмеження: години роботи печі (30) та години праці працівників (65). Цей сценарій змодельовано в PuLP, і для нього вже знайдено розв'язок. У консолі виведено статус моделі, значення змінних рішення, значення цільової функції (тобто прибутку), тіньові ціни та запас міцності обмежень.

Зразковий скрипт є копією цього коду. Ви зміните обмеження, щоб побачити, як змінюється оптимальний розв'язок.

Ця вправа є частиною курсу

Аналітика ланцюга постачань у Python

Переглянути курс

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Define Constraints, Solve, Print Status, Variables, Objective
model = LpProblem("Maximize Bakery Profits", LpMaximize)
R = LpVariable('Regular_production', lowBound=0, cat='Continuous')
J = LpVariable('Jumbo_production', lowBound=0, cat='Continuous')
model += 5 * R + 10 * J, "Profit"

# Adjust the constraint
model += 0.5 * R + 1 * J <= ____
model += 1 * R + 2.5 * J <= 65

# Solve Model, Print Status, Variables, Objective, Shadow and Slack
model.solve()
print("Model Status: {}".format(LpStatus[model.status]))
for v in model.variables():
    print(v.name, "=", v.varValue)
print("Objective = $", value(model.objective))
o = [{'name':name, 'shadow price':c.pi, 'slack': c.slack} 
     for name, c in model.constraints.items()]
print(pd.DataFrame(o))
Редагувати та запускати код