Aan de slagGa gratis aan de slag

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

Cursus bekijken

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))
Code bewerken en uitvoeren