Oefening met schaduwprijs en speling pt1
Je plant welke cupcakes een bakkerij moet maken. De bakkerij kan ofwel:
- cupcake normaal formaat: winst = $5
- een jumbo cupcake, twee keer zo groot: winst = $10
Er zijn 2 randvoorwaarden: ovenuren (30) en arbeidsuren (65). Dit scenario is voor je gemodelleerd in PuLP en er is een oplossing gevonden. De modelstatus, waarden van de beslissingsvariabelen, de doelfunctiewaarde (dus de winst), de schaduwprijzen en de speling van de randvoorwaarden zijn in de shell afgedrukt.
Het voorbeeldscript is een kopie van die code. Je past de randvoorwaarden aan om te zien hoe de optimale oplossing verandert.
Deze oefening maakt deel uit van de cursus
Supply Chain Analytics in Python
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))