Schattenpreise mit Saft
Ein Unternehmen setzt zwei Maschinen \(M_1\) und \(M_2\) ein, um Grapefruitsaft (\(g\)) und Orangensaft (\(o\)) in Flaschen abzufüllen. Ziel ist es, den Gewinn zu maximieren, unter den Nebenbedingungen
M1: \(6g + 5.5o \leq 40\) und M2: \(3g + 2.5o \leq 20\)
Die Nebenbedingungen spiegeln Produktivität und Verfügbarkeit der Maschinen wider. Zum Beispiel steht M1 40 Stunden pro Woche zur Verfügung und benötigt 6 Stunden, um 1 Tonne Grapefruitsaft abzufüllen, und 5,5 Stunden für eine Tonne Orangensaft.
Zusätzlich gibt es eine Beschaffungsbeschränkung: Das Unternehmen erhält pro Woche maximal 6 Tonnen Grapefruit und 12 Tonnen Orangen. Das sind die oberen Schranken.
pulp wurde bereits importiert und model sowie die Variablen g und o für Grapefruit- bzw. Orangensaft wurden definiert.
Diese Übung ist Teil des Kurses
Einführung in Optimierung mit Python
Anleitung zur Übung
- Vervollständige die for-Schleife, um zu prüfen, ob der Schattenpreis positiv ist.
- Gib die Variable ein, die die marginale Erhöhung der Zielgröße misst, wenn die Nebenbedingung gelockert wird.
- Gib die Variable ein, die misst, wie eng die Nebenbedingung ist.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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.")