ÎncepețiÎncepe gratuit

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

Vezi cursul

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))
Editează și rulează codul