Przykład. Hodowca drobiu musi uzupełnić zawartość dwóch składników odżywczych (A i B) w produktach, które kupuje. Rozważa cztery mieszanki: M : M, M i M. Zawartość składników odżywczych w poszczególnych mieszankach oraz ceny mieszanek podano w tabl.. Tablica Składniki odżywcze A B Zawartość składnika w kg mieszanki M M M M 6 5 Minimalne ilości składnika 8 Cena kg 6. W jakiej ilości należy zakupić poszczególne mieszanki, aby dostarczyć potrzebne składniki odżywcze i aby koszt zakupu mieszanek był minimalny?. Określić wrażliwość rozwiązania optymalnego na: a) zmiany cen poszczególnych mieszanek, b) zmiany norm żywienia", czyli minimalnych ilości składników odżywczych, jakie należy dostarczyć. Rozwiązanie Ad. Model zadania jest następujący: x + x + 6x + x min, x + x + 5x, x + 6x + x + x 8, x, x, x, x Model rozwiązano stosując algorytm simpleks. Końcową tablicę simpleksową przedstawiono w tabl.. Tablica c b c j 6 M M Zmienne bazowe x x x x x x x 5 x 6 s s,8 -,,8 /5 -, /5 -/6, -/5 -/ó Rozwiązanie z j,, -,6 -,5,6,5 6 c j -z j,6,6,6,5 M-,6 M-,5
Tak więc rozwiązanie optymalne jest następujące: x xb = =, x = x =, F ( x,..., x ) = 6. x Z tablicy można także odczytać rozwiązanie programu dualnego ( y =, 6 y =,5 ). Ponieważ w analizie wrażliwości wykorzystujemy obecnie zapis macierzowy tablic simpleksowych, zdefiniujemy na początek poszczególne jego elementy dla naszego zadania: x 5 x A= b c [ ] c x 6 = = = = 8 x,, 6, b,. x ponieważ x x =. b x 5 B = zatem macierz 6 gdzie jak pamiętamy macierz B jest macierzą współczynników przy zmiennych występujących w optymalnym rozwiązaniu w I tablicy simpleksowej, czyli w modelu zadania. Wobec tego Ad a. Analiza wrażliwości rozwiązania optymalnego na zmiany współczynników funkcji celu (cen mieszanek). Aby określić przedział dopuszczalnych zmian ceny mieszanki M podstawiamy: c = c + = + Uwzględniająca to podstawienie tablica simpleksowa będzie ' mieć zatem postać tabl.. 6 B 5 = 5 = 5 6
Tablica c b c j + 6 M M Rozwiązanie Zmienne bazowe x x x x x x x 5 x 6 s s,8 -,,8 /5 -, /5 -/6, -/5 z j,, -,6 -,5,6,5 6 -/ó c j -z j,6+,6,6,5 M-,6 M-,5 Ponieważ w tym przykładzie funkcja celu jest minimalizowana, zatem elementy wiersza zerowego powinny być nieujemne. Parametr występuje tu tylko w jednym elemencie, powinien więc spełniać warunek:,6 +, czyli,6, a zatem,6;, a c, ;. Analogicznie dla x, podstawiamy: c ' = c + = +, ostatnia tablica simpleksowa przyjmuje postać tabl. 5 i jedynym warunkiem jakie musi spełniać jest:, 6 +, czyli, 6, a zatem, 6;,, a c,;.. Tablica 5 c b c j 6+ M M Rozwiązanie Zmienne bazowe x x x x x x x 5 x 6 s s,8 -,,8 /5 -, /5 -/6, -/5 z j,, -,6 -,5,6,5 6 -/ó c j -z j,6,6+,6,5 M-,6 M-,5 Zauważmy, że x i x są zmiennymi niebazowymi, dlatego dla każdej z nich wystarczy rozwiązać jedno równanie (w pozostałych kolumnach C J Z J parametr nie występuje). Natomiast w przypadku x, po podstawieniu c ' = c + = + ostatnia tablica simpleks ma postać tabl. 6.
Tablica 6 c b c j + 6 M M Rozwiąz anie Zmienne x bazowe x x x x 5 x 6 s s x x,8 -,,8 /5 -, /5 -/6, -/5 -/ó z j,-, +,+ /5 -,6+ /5 -,5-/6 6 c j -z j,6+,,6+ /5,6- /5,5+/6 Parametr musi spełniać następujący układ warunków:,6 +,,, 6 +, 5, 6, 5, 5 +. 6 Warunek pierwszy jest spełniony dla, warunek drugi dla 7, warunek trzeci dla i warunek czwarty dla. Rozwiązaniem układu jest ;,, a c ;+. czyli c ;. Podobnie dla ceny mieszanki M, po podstawieniu c = c + = +, ostatnia tablica simpleks przybierze postać tabl. 7. ' Tablica 7 c b c j 6 + M M Rozwiąz anie Zmienne bazowe x x x x x 5 x 6 s s + x x z j,8 -,,+,8,+,8 /5,8 + -, /5 U -,6-, -,5- -/6 /6, -/5 -/ó 6 c j -z j,6-,8,6-,8,6+,,5+/6
Układ warunków:, 6,8,, 6,8,, 6,. jest spełniony dla jest 8;, 5,, a zatem c 8; +,5, czyli c 6;7,5.. Ad b. Aby określić dopuszczalne zmiany prawostronnych ograniczeń (w tym przypadku norm żywienia) przyjmujemy na początek: b = b + ε i wektor ' ' b ma postać ' + ε b = 8 A zatem ' 5 + ε + ε 5 B b = 8 = ε 5 6 5 a układ nierówności: + ε, 5 ε. 5 jest spełniony dla ε ;5,. Stąd b ; + 5,, czyli b ;5.. Dla wyrazu wolnego z warunku drugiego ' b = 8 ε + a zatem B b ' 5 = 8 ε = ε + + 6 5 6 warunek + 6 ε jest spełniony dla ε 8;, a wobec tego b 8 8;,, czylib 6;.. Jeżeli zatem przykładowo norma żywienia" dla składnika S wzrośnie do 5 ( ε =, co mieści się w wyznaczonym przedziale), nowe wartości zmiennych bazowych będą następujące: 5
x x 5 5 = = = = = 8 8 5 6 ' b B b x y a wartość funkcji celu (koszty zakupu mieszanek) wzrosną o ε =,6 = 8 i będą wynosić 6 + 8 = 5. Analogicznie (Czytelnik zechce sprawdzić), spadek normy żywienia" dla składnika ε S (przy niezmienionej normie dla składnika S), np. do 6 ( = - 8), spowoduje iż x rozwiązaniem optymalnym będą: x = i =, a wartość funkcji celu zmieni się o yε =,5 (-8) = -7, tzn. do 5 zł. Przykład 5. Trzy magazyny: M, M i M zaopatrują w mąkę cztery piekarnie: P P, P P. Jednostkowe koszty transportu (w zł za tonę), oferowane miesięcznie wielkości dostaw A i (w tonach) oraz miesięczne zapotrzebowania piekarni B j (w tonach) podaje tablica. Tablica Magazyny M M M Piekarnie P P P P 5 6 8 5 7 7 8 A i 7 5 SO B J 6 5 5 Opracować plan przewozu mąki z magazynów do piekarń, minimalizujący całkowite koszty transportu. Rozwią zanie. A = Bj = t, a więc jest to przykład zamkniętego i i= j= zagadnienia transportowego (ZZT). Zmienne decyzyjne x ij oznaczają ilość ton mąki, jaka powinna być dostarczona z r-tego magazynu (i =,, ) do y-ej piekarni (j =,,,,); jest ich =. Ponieważ jest to zagadnienie transportowe zamknięte (zbilansowane), dostawcy sprzedadzą całą ilość oferowanego towaru, a zapotrzebowania piekarń zostaną w całości zaspokojone. Wyrażają 6
to warunki: a) dla dostawców: x + x + x + x = x = 7. j j= tzn, suma wielkości dostaw mąki z magazynu M do wszystkich piekarń powinna być równa podaży magazynu; i analogicznie dla magazynów M i M : x + x + x + x = x = 5. j j= x + x + x + x = x = 8. j j= b) dla odbiorców: x + x + x = x =. i i= tzn. suma dostaw mąki otrzymanych przez piekarnię P ze wszystkich trzech magazynów powinna być równa całkowitemu jej zapotrzebowaniu; podobnie dla pozostałych odbiorców (piekarń): x + x + x = x = 6. i i= Muszą być także spełnione warunki brzegowe x ij >= (i=,, ; j=,,, ), a funkcji celu należy zminimalizować łączne koszty transportu, czyli: x + x + x = x = 5. i i= x + x + x = x = 5. i i= K( x ) = 5x + x + 5x + x ij + x + 8x + 7x + x + 6x + x + 7x + 8x min Dla tak sformułowanego modelu wyznaczymy początkowe rozwiązanie dopuszczalne przykładowo za pomocą dwu wybranych metod. Pierwsza z nich metoda kąta północno-zachodniego polega na tym, że wypełnianie macierzy 7
przewozów [x ij ] rozpoczyna się od klatki w lewym górnym rogu (stąd nazwa kąta nocnozachodniego). Wpisuje się do niej mniejszą z liczb (A, B ) odpowiadających tej klatce, a następnie przesuwa się w prawo lub w dół: w prawo, gdy towar pierwszego dostawcy nie został jeszcze całkowicie rozdysponowany, a w dół, gdy całą podaż tego dostawcy rozdzielono odbiorcom. W rozpatrywanym przykładzie do klatki M, P wpisujemy t (x =) i przesuwamy się w prawo (ponieważ zapotrzebowanie piekarni P zostało zaspokojone, a magazynowi M, pozostało jeszcze t, które dostarczy do piekarni P (x = ). Obecnie przesuwamy się w dół do magazynu M, który dostarczy brakujące t mąki do piekarni P (x = ) i pozostałe t mąki do piekarni P (x = ). Przesuwamy się powtórnie w dół do magazynu M, który dostarczy brakujące t mąki do piekarni P (x = ) i pozostałe 5 t mąki do piekarni P (x =5). Rozwiązanie to przedstawiono w tabl.. Tablica Piekarnie Magazyny A i P P P P M 7 M 5 M 5 8 B j 6 5 5 Rozwiązaniu temu odpowiadają następujące koszty transportu: K( x ij ) = 5 + + + 8 + 7 + + 7 + 8 5 = zl. Rozwiązanie powyższe będzie poprawiane w kolejnych iteracjach algorytmu transportowego, aż do momentu uzyskania rozwiązania optymalnego. Ponieważ jednak metoda kąta północno -zachodniego abstrahuje od kosztów transportu, dlatego też algorytm transportowy wymaga zwykle większej liczby iteracji niż wówczas, gdy rozwiązanie początkowe wyznaczymy metodą minimalnego elementu macierzy. Metoda minimalnego elementu macierzy polega, bowiem na rozmieszczeniu przewozów przede wszystkim po tych trasach, na- których koszty są najniższe. Punktem wyjścia jest przekształcenie macierzy kosztów do takiej postaci, by w każdym wierszu i w każdej kolumnie występowało, co najmniej jedno zero. Można to uzyskać, odejmując od elementów poszczególnych wierszy macierzy kosztów najmniejszy element znajdujący się w danym wierszu, a następnie od poszczególnych kolumn otrzymanej w ten sposób macierzy, odejmując element 8
najmniejszy, znajdujący się w danej kolumnie. Mając tak przekształconą macierz kosztów, staramy się rozmieścić przewozy na trasy, gdzie koszty są najniższe, czyli gdzie występują zera. Rozmieszczanie przewozów rozpoczynamy od dowolnej klatki zerowej". Jeżeli uda się rozmieścić przewozy wyłącznie w klatkach, w których występują zera, to otrzymane rozwiązanie jest już optymalnym planem przewozów. Jeżeli nie, należy je poprawiać stosując algorytm transportowy. Wróćmy obecnie do rozpatrywanego przykładu. Odejmując najmniejszy element każdego wiersza od pozostałych elementów tego wiersza, otrzymujemy tab. 5. Magazyny M M M Tablica 5 Piekarnie P P P P 5 B j 6 5 5 A i 7 5 8 Ponieważ jeszcze nie we wszystkich kolumnach występują zera, również od poszczególnych kolumn odejmujemy ich najmniejsze elementy. Rezultatem jest tablica 6. Tablica 6 Magazyny M M M Piekarnie P P P P 5 A i 7 5 8 B j 6 5 5 Rozdysponowanie przewozów rozpoczynamy np. od klatki M P (Jak zaznaczono wcześniej, wypełnianie macierzy przewozów rozpoczynamy od klatki zerowej", jednak najlepiej jest zacząć od tych wierszy lub kolumn, w których występuje jedno zero, a więc nie mamy wyboru.), gdzie możemy wpisać tylko (tyle wynosi zapotrzebowanie P ). Przechodząc do drugiej kolumny do klatki M P wpisujemy 6, w kolumnie trzeciej wpisujemy np. na trasę M P i na trasę M P. Dla zbilansowania wpisujemy na trasę M P i na trasę M P., Ponieważ w tym wypadku udało się rozmieścić wszystkie przewozy w klatkach z zerami otrzymane rozwiązanie jest optymalne. Rozwiązanie to przedstawiono w tabl. 7.
Tablica 7 Piekarnie Magazyny A i P P P P M 7 M 5 M 6 8 B j 6 5 5 Związane są z nim następujące koszty transportu: K( x ij ) = 5 + + + + + + 6 + 7 = 8 zl. A zatem najniższe całkowite koszty transportu (8 zł) ( Nawet gdyby rozwiązanie to nie było jeszcze optymalne, to koszty będą znacznie niższe niż wtedy, gdy rozwiązanie początkowe wyznaczono metodą kata północno zachodniego.) Można osiągnąć, jeżeli magazyn M dostarczy t mąki do piekarni P i t mąki do piekarni P, magazyn M t mąki do piekarni P i t mąki do piekarni P, a magazyn M 6 t mąki do piekarni P i t mąki do piekarni P.