Kom igångKom igång gratis

Skuggpris och slack – övning del 1

Du planerar vilka muffins ett bageri ska baka. Bageriet kan baka antingen:

  • en vanlig muffin: vinst = $5
  • en jättestor muffin, dubbelt så stor som den vanliga: vinst = $10

Det finns 2 begränsningar: ugntimmar (30) och arbetstimmar (65). Det här scenariot har modellerats i PuLP åt dig och en lösning har hittats. Modellens status, beslutsvariabler, målfunktionsvärde (dvs. vinst), skuggpriser och slack för begränsningarna har skrivits ut i konsolen.

Exempelskriptet är en kopia av den koden. Du kommer att justera begränsningarna för att se hur den optimala lösningen förändras.

Den här övningen är en del av kursen

Supply Chain Analytics i Python

Visa kurs

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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))
Redigera och kör kod