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