Powrót do problemu diety
Analizujesz finanse pewnego rolnika, który poprosił cię o ponowne przyjrzenie się diecie jego świń i ewentualne obniżenie kosztów. Aktualna dieta minimalizująca koszty opiera się na zaleceniach weterynarza: co najmniej 17% białka, 2% tłuszczu i 7 funtów paszy zgodnie z poniższymi specyfikacjami.
| Pasza | Koszt ($/funt) | Białko (%) | Tłuszcz (%) |
|---|---|---|---|
| kukurydza | 0,11 | 10 | 2,5 |
| soja | 0,28 | 40 | 1 |
Wiesz, że wartość 7 funtów była zaokrąglona i mogłaby spaść do 6,6 funta. Twoim zadaniem jest sprawdzenie, jak zmiana ograniczenia dotyczącego masy lub tłuszczu (każdego z osobna) wpływa na minimalny koszt. Rozwiążesz oryginalny problem i przeanalizujesz luz (slack) oraz wartość dualną (shadow price).
Biblioteka pulp została już zaimportowana, a model wraz ze zmiennymi C i S (kukurydza i soja) są już zdefiniowane.
To ćwiczenie jest częścią kursu
Wprowadzenie do optymalizacji w Pythonie
Instrukcje do ćwiczenia
- Wyświetl luz (slack) ograniczenia dotyczącego masy (Weight).
- Sprawdź, czy wartość dualna (shadow price) ograniczenia dotyczącego masy (Weight) jest większa od 0.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
model.constraints['Weight'] = C + S >= 7
model.solve()
print(f"Status: {LpStatus[model.status]}\n")
# Print the slack of the weight constraint
print("The slack of the Weight constraint is {}",
____.constraints['Weight'].____)
# Check if the shadow price is greater than 0
if ____.constraints['Weight'].____ > 0:
print('Tightening the constraint will increase minimum cost')