Google
 
maslowski.pl
O MNIE
BADANIA OPERACYJNE
- zadania
- nauka
- konkurs
- literatura
KOLARSTWO
- Giro 2004
- Giro 2005
- Giro 2006
- TdF 2004
- TdF 2005
- TdF 2006
- TdF 2007

POCZTA NA maslowski.pl
DOWNLOAD
maslowski.pl > badania operacyjne > nauka > lekcja 2

ABC programowania liniowego - ZADANIE DIETY



Na tej stronie znajdziesz treść prostego zadania programowania liniowego oraz jego rozwiązanie „krok po kroku".



TREŚĆ ZADANIA

Zawodowy kulturysta stosuje jako suplementację diety dwa rodzaje odżywek: Olimp 60 i Olimp 80. 1 kg odżywki Olimp 60 kosztuje 40 zł, a Olimp 80 - 55 zł. Wiadomo, że dziennie kulturysta nie powinien zjeść więcej niż 200 g odżywek. Ułożyć zadanie programowania liniowego minimalizujące koszt dziennej diety, którą kulturysta spożywa w postaci odżywek, jeżeli wiadomo, że powinien on z odżywek pozyskać dziennie przynajmniej 50 g białka i 20 g węglowodanów. Zawartość białka i węglowodanów, w gramach na 100 gram odżywki, podaje tabela.

BiałkoWęglowodany
Olimp 606030
Olimp 808010



ROZWIĄZANIE

Każde zadanie programowania liniowego składa się z następujących elementów:
  • Definicja zmiennych
  • Układ ograniczeń
  • Funkcja celu (kryterium)
Zanim zabierzesz się do rozwiązywania, przeczytaj dokładnie treść zadania, zwracaj uwagę na szczegóły. W razie potrzeby czytaj treść kilka razy, aż do pełnego zrozumienia. Nie zaczynaj układać ograniczeń przed zdefiniowaniem zmiennych. Postaraj się zrozumieć znaczenie każdej liczby zawartej w tabeli, np. wiedz, że w 100 gramach odżywki Olimp 60 znajduje się 60 gram białka, a w 100 gramach odżywki Olimp 80 znajduje się 10 gram węglowodanów.

1. DEFINICJA ZMIENNYCH

Każde zadanie programowania liniowego należy rozpocząć od zdefiniowania zmiennych. Podane zadanie jest zadaniem „diety". W takich zadaniach, w zdecydowanej większości przypadków jako zmienne należy obrać ilości spożywanych produktów. Generalnie, prawidłowo zdefinowane zmienne powinny w rozwiązaniu zadania dostarczyć informacji o sposobie postępowania, tj. o szczegółowym składzie diety, bez konieczności wykonywania dodatkowych obliczeń. Zatem, w tym przypadku należy zmienne zdefiniować następująco:

x1 - ilość spożywanej odżywki Olimp 60 [g]
x2 - ilość spożywanej odżywki Olimp 80 [g]

Należy obowiązkowo pamiętać o podaniu jednostek w jakich definiuje się zmienne. Podstawowym kryterium doboru jednostek jest to, „aby się dobrze skracało". Zostanie to szczegółowo wyjaśnione w kolejnym kroku.

Należy unikać skrótowego definiowania zmiennych, np. w ten sposób:

x1 - Olimp 60
x2 - Olimp 80

Pamiętaj! Tak nie wolno!

2. UKŁAD OGRANICZEŃ

W zadaniach typu „problem diety" większość ograniczeń dotyczy wymaganych ilości jakie należy spożyć. Ograniczenie o tym, iż należy spożyć przynajmniej 50 g białka dziennie, będzie wyglądało następująco:

0,6x1 + 0,8x2 ≥ 50

Aby nie popełnić błędów, należy zawsze sprawdzić jednostki! Lewa strona powyższej nierówności ma następujące jednostki:

0,6[g/g]*x1[g]+0,8[g/g]*x2[g],

co po skróceniu (patrz uwaga o tym „aby się dobrze skracało") daje nam jednostkę lewej strony g. Prawa strona nierówności musi mieć również tę samą jednostkę. Jest tak istotnie, gdyż ograniczenie podane w treści zadania mówi o minimalnym spożyciu na poziomie 50 g.
Podobnie, uważając na jednostki, tworzymy ograniczenie dotyczące ilości spożytych węglowodanów:

0,3x1 + 0,1x2 ≥ 20

W układzie ograniczeń należy jeszcze uwzględnić informację o maksymalnym możliwym spożyciu wszystkich odżywek przez kulturystę. Z treści zadania wiadomo, że nie powinien ich zjeść więcej niż 200 g dziennie.

x1 + x2 ≤ 200

Aby układ ograniczeń był pełny, należy go uzupełnić o ograniczenia brzegowe:

x1 ≥ 0
x2 ≥ 0

3. FUNKCJA CELU

W tym zadaniu funkcja celu mówi o minimalizacji kosztów diety:

z = 0,04x1 + 0,055x2 → min

Pamiętajmy, że w podano ceny za 1 kg odżywki, a zmienne zostały zdefiniowane w gramach.



Podsumowując, rozwiązanie całego zadania będzie wyglądało następująco:

x1 - ilość spożywanej odżywki Olimp 60 [g]
x2 - ilość spożywanej odżywki Olimp 80 [g]

z = 0,04x1 + 0,055x2 → min

0,6x1 + 0,8x2 ≥ 50
0,3x1 + 0,1x2 ≥ 20
x1 + x2 ≤ 200
x1 ≥ 0, x2 ≥ 0
Get Firefox! statystyka