Kom igångKom igång gratis

Skuggpriser med juice

Ett företag använder två maskiner \(M_1\) och \(M_2\) för att tappa grapefruktjuice (\(g\)) och apelsinjuice (\(o\)) på flaskor. Målet är att maximera vinsten med hänsyn till begränsningarna

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

Begränsningarna återspeglar maskinernas produktivitet och tillgänglighet. Till exempel är M1 tillgänglig 40 timmar per vecka och behöver 6 timmar för att tappa 1 ton grapefruktjuice samt 5,5 timmar för ett ton apelsinjuice.

Det finns även en tillförselbegränsning där företaget tar emot maximalt 6 ton grapefrukt per vecka och 12 ton apelsiner. Dessa är övre gränser.

pulp har importerats åt dig och model har definierats tillsammans med variablerna g och o för grapefrukt- respektive apelsinjuice.

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

Introduktion till optimering i Python

Visa kurs

Övningsinstruktioner

  • Komplettera for-loopen med en kontroll som undersöker om skuggpriset är positivt.
  • Ange variabeln som mäter den marginella ökningen av målfunktionen när begränsningen lättas.
  • Ange variabeln som mäter hur tight begränsningen är.

Interaktiv övning med praktiskt arbete

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

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