30 Programowanie liniowe
Ze względu na to, że funkcja celu jest liniowa, wartości pochodnych cząstkowych są stale. Wykreślamy gradient funkcji celu, zaczepiając jego początek w początku układu współrzędnych. Każda warstwica funkcji celu jest prostopadła do wykreślonego gradientu. Jego zwrot wskazuje na to, w jaki sposób należy rozpatrywać kolejne (równolegle do siebie) warstwice funkcji celu, by znaleźć rozwiązanie dopuszczalne, maksymalizujące jej wartość (rys. 1.10)s.
Rysunek 1.10
A
Z;
Rozwiązywanie zadań programowania liniowego metodą geometryczną, choć nie nastręcza kłopotów, nie jest jednak sposobem zadowalającym w przypadku poszukiwania rozwiązań optymalnych problemów praktycznych, gdyż zazwyczaj liczba zmiennych decyzyjnych jest w nich znacznie większa od dwóch. Wykorzystujemy wówczas metodę simpleks. Aby ją zastosować, należy najpierw przekształcić zbiór warunków ograniczających do postaci układu równań liniowych. Zadanie, w którym wszystkie warunki ograniczające są w postaci równości, nazwiemy zadaniem w postaci standardowej.
W przykładzie 1.1 mamy ograniczenie związane z wykorzystaniem zasobu środka ,Sj:
2*1 + 2jc2 < 14.
5 W przypadku zadania minimalizacji należy zmienić zwrot wektora gradientu na przeciwny i następnie postępować w analogiczny sposób.
Możemy zapisać je w postaci równania:
2x, + 2x2+x3 = 14,
dodając do lewej strony zmienną bilansującą x3, określoną jako różnicę wartości prawej i lewej strony rozpatrywanej nierówności, czyli: jc3= 14— 2jc, —0.
Wartość x3 określa, jaka ilość środka S, pozostanie niewykorzystana w przypadku realizacji planu (jc,, x2).
Dwa pozostałe warunki ograniczające przekształcamy do postaci równań liniowych przez wprowadzenie dodatkowych zmiennych bilansujących: xA do warunku (1.2) oraz x3 do warunku (1.3). Otrzymujemy:
X|+2x2+J.4=8, przy czym: j = 8—jc i — 2*2 > 0, oraz
4x, + x5 = 16, przy czym: x5 = 16 — 4jc , > 0.
Wartości x4 i .c5 określają, jakie ilości środków, odpowiednio, S2 i S3 pozostaną niewykorzystane w przypadku realizacji planu (.r,, x2).
W dalszych rozważaniach rozpatrzymy zadanie w postaci standardowej, w której wszystkie warunki ograniczające (z wyjątkiem warunków nieujemności) są równaniami. Dla rozpatrywanego przez nas zadania postać ta jest następująca:
(~)
/(jc,, x2, x3, x4, xj) = 2x, + 3x2 —¥ max, 2x,+2x2+X3 =14,
x, + 2x2 +.c4 = 8,
4x, +xs=16,
xb x2, x,, x4, x5 > 0.
Współczynniki funkcji celu tworzą wektor funkcji celu c, współczynniki warunków ograniczających wchodzą w skład macierzy współczynników A., prawe strony warunków ograniczających przedstawiamy w postaci wektora warunków ograniczających b, natomiast zmienne występujące w zadaniu — jako wektor zmiennych x. Ponadto symbolem 0 oznaczymy wektor, którego wszystkie składowe są zerami. Problem programowania liniowego możemy zapisać jako zadanie w postaci macierzowej. Mamy:
cx —> max, Ax= b. x2ł0.