Exercițiu privind prețul umbră și slack – partea 1
Planifici ce brioche ar trebui să producă o patiserie. Patiseria poate face:
- brioche de mărime normală: profit = 5$
- brioche jumbo, de două ori mai mare decât cea normală: profit = 10$
Există 2 constrângeri: orele de cuptor (30) și orele de muncă (65). Acest scenariu a fost deja modelat în PuLP și s-a găsit o soluție. Statusul modelului, valorile variabilelor de decizie, valoarea obiectivului (adică profitul), prețurile umbră și slack-ul constrângerilor au fost afișate în consolă.
Scriptul exemplu este o copie a acelui cod. Vei ajusta constrângerile pentru a vedea cum se schimbă soluția optimă.
Acest exercițiu face parte din cursul
Analitică în lanțul de aprovizionare cu Python
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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))