Aan de slagGa gratis aan de slag

Schaduwprijzen bij sap

Een bedrijf gebruikt twee machines \(M_1\) en \(M_2\) om grapefruitsap (\(g\)) en sinaasappelsap (\(o\)) in flessen te doen. Het doel is om de winst te maximaliseren met de volgende restricties

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

De restricties weerspiegelen de productiviteit en beschikbaarheid van de machines. M1 is bijvoorbeeld 40 uur per week beschikbaar en heeft 6 uur nodig om 1 ton grapefruitsap te bottelen en 5,5 uur voor een ton sinaasappelsap.

Er is een extra aanvoerrestrictie: het bedrijf ontvangt maximaal 6 ton grapefruit per week en 12 ton sinaasappels. Dit zijn de bovengrenzen.

pulp is al voor je geïmporteerd en model is gedefinieerd, net als de variabelen g en o voor grapefruit- en sinaasappelsap.

Deze oefening maakt deel uit van de cursus

Introductie tot optimalisatie in Python

Cursus bekijken

Oefeninstructies

  • Maak de for-lus af en voeg een controle toe om te kijken of de schaduwprijs positief is.
  • Vul de variabele in die de marginale toename in de doelfunctie meet wanneer de restrictie wordt versoepeld.
  • Vul de variabele in die meet hoe strak de restrictie is.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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