Začněte nyníZačněte zdarma

Stínové ceny s džusy

Firma využívá dva stroje \(M_1\) a \(M_2\) k plnění grapefruitového džusu (\(g\)) a pomerančového džusu (\(o\)) do lahví. Cílem je maximalizovat zisk při splnění následujících omezení:

M1: \(6g + 5.5o \leq 40\) a M2: \(3g + 2.5o \leq 20\)

Omezení odrážejí produktivitu a dostupnost strojů. Například stroj M1 je k dispozici 40 hodin týdně a potřebuje 6 hodin na stočení 1 tuny grapefruitového džusu a 5,5 hodiny na tunu pomerančového džusu.

Existuje také omezení dodávek – firma dostává maximálně 6 tun grapefruitů a 12 tun pomerančů týdně. To jsou horní meze.

pulp je již naimportován a model je definován spolu s proměnnými g a o pro grapefruitový a pomerančový džus.

Toto cvičení je součástí kurzu

Introduction to Optimization in Python

Zobrazit kurz

Pokyny k cvičení

  • Doplň cyklus for tak, aby obsahoval podmínku ověřující, zda je stínová cena kladná.
  • Zadej proměnnou, která měří mezní nárůst účelové funkce při uvolnění omezení.
  • Zadej proměnnou, která měří, jak těsné je dané omezení.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

print(LpStatus[model.status])
print(f'The optimal amount of {g.name} embottled is: {g.varValue:.2f} tons')
print(f'The optimal amount of {o.name} embottled is: {o.varValue:.2f} tons')

for name, c in model.constraints.items():
    # Check if shadow value is positive 
    if c.____ > 0:
    # Enter the variable that measures marginal increase in objective when constraint is relaxed
        print(f"Increasing the capacity of {name} by one unit would increase profit by {c.____} units.")
    else:
    # Enter the variable that measures how tight the constraint is
        print(f"{name} has {c.____} units of unused capacity.")
Upravit a spustit kód