Programowanie liniowe problem diety

Transkrypt

Programowanie liniowe problem diety
Programowanie liniowe
problem diety
Wojciech Rafajłowicz
Zadanie programowania liniowego jest jednym z ważniejszych zadań optymalizacynych. Problem ma liniową funkcję celu i liniowe ograniczenia tj.
min ~c~x
x
(1)
A~x ≤ b ~x ≥ 0
~ ≤ ~x ≤ ub
~
Aeq ~x = b~eq lb
Rozwiązywanie takich problemów było jednym z pierwszych zastosowań
komputerów. Pakiet Matlab oferuje funkcję linprog(c,A,b,...). Narzędzia
do rozwiązywania zadań programowania liniowego są również zaimplementowane w arkuszach kalkulacyjnych jak MS Excel lub OpenOffice/LibreOffice
Calc.
Bezpośrednią i prostą interpretacją zadania programowania liniowego jest
problem optymalnego zakupu. Wektor c jest wówczas wektorem cen, elementy
wektora zmiennej decyzyjnej xi odpowiadają ilości zakupioneg produktu po
cenie ci .
Oczywistym jest że bez ograniczeń problem taki nie ma sensu. W cenowej interpretacji ograniczenia wskazują jakich cech zakupionych produktów
wymagamy.
Rozważmy problem optymalnej diety studenckiej. W tym zadaniu rozważamy jakie produkty należy umieścić w diecie aby spełnić kryterium najniższej ceny i zachować normy składników odżywczych. W tabeli podano
pewien wybór tych składników z zaleceniami. Należy traktować je ostrożnie
przy planowaniu własnej diety.
1
Parametr
Rodzaj ogr. Wartość Parametr
Rodzaj ogr.
Wart. odżywcze
=
2600kcal Białko
≥
Tłuszcz
≥
30g
Węglowodany
=
Wapń
≥
400mg
Magnez
≥
Żelazo
≥
10mg
Potas
≥
Wit. A
≥
550RE
Wit. C
≥
Wit. B1
≥
1mg
B2
≥
Wit. PP (niacyna) ≥ 17mg
Należy pamiętać o ~x ≥ ~0.
Zadanie: wybrać sensowną grupę produktów o znanych parametrach i
cenach – najprostsze źródło to sklepy internetowe. Opisać problem w postaci wektora cen i macierzy ograniczeń. Sprawdzić niesprzeczność ograniczeń.
Rozwiązać zadanie i zaproponować dietę. Sporządzić sprawozdanie obejmujące produkty, postawiony problem oraz wnioski.
2
Wartość
55g
130g
300mg
2000mg
30mg
1,4mg

Podobne dokumenty