Esercizio su shadow price e slack pt1
Stai pianificando quali cupcake dovrebbe produrre una pasticceria. La pasticceria può produrre:
- cupcake di dimensione standard: profitto = $5
- jumbo cupcake, il doppio della dimensione standard: profitto = $10
Ci sono 2 vincoli: ore di forno (30) e ore di lavoro (65). Questo scenario è stato modellato in PuLP per te e ne è stata trovata una soluzione. Nella shell sono stati stampati lo stato del modello, i valori delle variabili decisionali, il valore dell'obiettivo (cioè il profitto), gli shadow price e lo slack dei vincoli.
Lo script di esempio è una copia di quel codice. Modificherai i vincoli per vedere come cambia la soluzione ottimale.
Questo esercizio fa parte del corso
Analytics per la supply chain con Python
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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))