METODA SYMPLEKS Maciej Patan Uniwersytet Zielonogórski
WSTĘP Algorytm Sympleks najpotężniejsza metoda rozwiązywania programów liniowych Metoda generuje ciąg dopuszczalnych rozwiązań x k w taki sposób, aby kolejne rozwiązania były lepsze (w przypadku degeneracji niegorsze) od poprzednich Dane o rozwiązaniu bazowym x k (k-ta iteracja) są gromadzone w tablicy sympleksowej Y k Uniwersytet Zielonogórski
Tablica sympleksowa Y k = A k. b k......... (c k ) T. z k 0 gdzie A k = B k A, bk = B k b, ck = c A T k c k B, zk 0 = c T x k B k macierz bazowa c k B wektor kosztów bazowych (wektor złożony ze współczynników c j odpowiadającym zmiennym bazowym) c k wektor kosztów zredukowanych (powstaje w wyniku eliminacji z funkcji celu aktualnych zmiennych bazowych Uniwersytet Zielonogórski 2
Algorytm SYMPLEKS Dane: Początkowe dopuszczalne rozwiązanie bazowe x 0 i tablica Y 0 Krok : Podstaw k := 0 Krok 2: Sprawdź kryterium stopu ym+,j k = c k j 0 dla j =,..., n. Jeżeli tak, to znaleziono optymalne rozwiązanie ˆx B = b k, w przeciwnym razie idź do kroku 3 Krok 3: Wyznacz indeks s, s n, kolumny macierzy A wprowadzonej do bazy (s jest indeksem zmiennej niebazowej, która stanie się bazową) y k m+,s = max j n yk m+,j Krok 4: Sprawdź, czy jest spełnione kryterium nieograniczoności y k i,s 0 i =,..., m Jeżeli tak, to ZPL jest nieograniczone, w przeciwnym razie kontynuuj obliczenia Uniwersytet Zielonogórski 3
Algorytm SYMPLEKS - cd Krok 5: Wyznacz indeks r, r m, kolumny macierzy B k usuwanej z bazy y k r,n+ y k r,s = min i m { y k i,n+ y k i,s : y k i,s > 0 } Krok 6: Zmień zmienne bazowe zastępując współrzędną r wektora x b współrzędną x s. Wyznacz nową tablicę sympleksową Y k+ stosując przekształcenia y k+ i,j = y k i,j yk i,s yk r,j y k r,s y k+ r,j i =,..., m +, i r, j =,..., n + = yk r,j, j =,..., n + yr,s k Krok 7: Podstaw k := k + i przejdź do kroku 2. Uniwersytet Zielonogórski 4
Algorytm sympleks właściwości Jeżeli w trakcie obliczeń metodą sympleksową nie wystąpi zdegenerowane rozwiązanie bazowe, a rozwiązanie zadania istnieje (nie występuje nieograniczoność), to w skończonej liczbie iteracji uzyska się optymalne rozwiązanie bazowe 2 Rozpoczęcie obliczeń metodą sympleksową jest uwarunkowane znajomością początkowego dopuszczalnego rozwiązania bazowego 3 Jeśli układ równań Ax = b ma postać kanoniczną to wtedy bardzo łatwo można określić początkowe dopuszczalne rozwiązanie bazowe Uniwersytet Zielonogórski 5
Postać kanoniczna Układ równań Ax = b ma postać kanoniczną, jeżeli w macierzy A można znaleźć macierz bazową składającą się z wektorów jednostkowych Przykład 2.. Rozważmy układ 2x + x 2 + x 3 = 7 x + 2x 2 + x 4 = 5 Macierz A ma postać A = 2 0 2 0 Kolumny a 3 i a 4 tworzą jednostkową macierz bazową, którek odpowiada rozwiązanie x B = B b = b = 7 5 Uniwersytet Zielonogórski 6
DWUFAZOWA METODA SYMPLEKSOWA Jeżeli początkowe dopuszczalne rozwiązanie bazowe nie jest łatwo dostępne, to można je wygenerować rozwiązując następujące zadanie pomocnicze min[w = T x a ] Ax + Ix a = b x 0, x a 0 gdzie b 0 x a m-wymiarowy wektorem zmiennych sztucznych m-wymiarowy wektor jednostkowy I macierz jednostkowa o wymiarach m n Uniwersytet Zielonogórski 7
Początkowe dopuszczalne rozwiązanie bazowe zadania pomocniczego x0 x 0 a = 0 b Tablica sympleksowa Y 0 = A I. b............ T A 0. T b Rozwiązanie zadania pomocniczego nosi nazwę fazy I Uniwersytet Zielonogórski 8
Po zakończeniu fazy I mogą wystąpić przypadki:. ŵ > 0 (pusty zbiór rozwiązań dopuszczalnych zadania początkowego) 2. ŵ = 0 i wśród zmiennych bazowych nie występują zmienne sztuczne, wyznaczono początkowe rozwiązanie bazowe i tablice sympleksową 3. ŵ = 0, ale wśród zmiennych bazowych występują zmienne sztuczne (a) zmienna bazowa x Bi jest zmienną sztuczną, oraz y i,j = 0, j =,..., n w zadaniu początkowym występuje redundancja, wiersz o numerze i jest usuwany z tablicy (b) zmienna bazowa x Bi jest zmienną sztuczną, oraz y i,j 0, dla pewnego j n. Zastępujemy zmienną x Bi zmienną x j i wyznaczamy nową tablicę sympleksową. Uzyskane rozwiązanie będzie zdegenerowane W przypadku 2 oraz po usunięciu sztucznych zmiennych bazowych w przypadku 3 realizuję się fazę II rozwiązywanie zadania uzyskanego w fazie I Uniwersytet Zielonogórski 9
ZADANIA Przykład 2.2. Zakład produkuje dwa wyroby, które są wykonywane na dwóch obrabiarkach i na frezarce. Czas pracy tych maszyn jest ograniczony i wynosi odpowiednio dla obrabiarki O 33000h, dla obrabiarki O 2 3000h i dla frezarki F 80000h. Zużycie czasu pracy maszyn (w h) na produkcję każdego z 2 wyrobów przedstawia poniższa tablica Maszyny Zużycie czasu pracy na jednostkę wyrobu I II O 3 O 2 F 5 8 Zysk ze sprzedaży wyrobu I wynosi 000zł, ze sprzedaży wyrobu II - 3000zł. Z analizy sprzedaży z lat ubiegłych wynika, że wyrobu II nie będzie można sprzedać więcej niż 7000 szt. Zaplanować strukturę asortymentową produkcji tak, aby przy przyjętych ograniczeniach zysk ze sprzedaży był jak największy. Czy optymalna struktura asortymentowa ulegnie zmianie, jeśli dzięki importowi surowca zysk ze sprzedaży wyrobu I wzrośnie do 4000zł? Uniwersytet Zielonogórski 0
Funkcja celu niech x - liczba wyrobu I, x 2 - liczba wyrobu II, wtedy Ograniczenia max[z = 000x + 3000x 2 ] czas pracy obrabiarki O : 3x + x 2 33000 czas pracy obrabiarki O 2 : x + x 2 3000 czas pracy frezarki F : 5x + 8x 2 80000 ograniczenie liczby sprzedanych wyrobów typu II : x 2 7000 Postać problemu max [z = 000x + 3000x 2 ] 3x + x 2 33000 x + x 2 3000 5x + 8x 2 80000 x 2 7000 x, x 2 0 Postać standardowa min[z = 000x 3000x 2 ] 3x + x 2 +x 3 =33000 x + x 2 +x 4 =3000 5x +8x 2 +x 5 =80000 x 2 +x 6 = 7000 x i 0, i =... 6 Uniwersytet Zielonogórski
Jest to postać kanoniczna, więc macierz bazowa: B = I skojarzony z nią wektor bazowy: x 0 B = [x 3 x 4 x 5 x 6 ] T = [33000 3000 80000 7000] T m = 4, n = 6 Y 0 = warunek stopu nie jest spełniony 3 0 0 0 33000 0 0 0 3000 5 8 0 0 0 80000 0 0 0 0 7000 000 3000 0 0 0 0 0 znajdujemy indeks s: max{y 5,j j =... 6}, s = 2 problem jest ograniczony znajdujemy indeks r: min{ y j,7 y j,2 j =... 4}, min{ 33000, 3000, 80000 8, 7000 }, r = 4 nowy wektor bazowy: x B = [x 3 x 4 x 5 x 2 ] T Uniwersytet Zielonogórski 2
Przeliczamy tablicę sympleksową Y = 3 0 0 0 26000 0 0 0 6000 5 0 0 0 8 24000 0 0 0 0 7000 000 0 0 0 0 3000 2000000 warunek stopu nie jest spełniony s =, r = 3 problem jest ograniczony x 2 B = [x 3 x 4 x x 2 ] T Uniwersytet Zielonogórski 3
Przeliczamy tablicę sympleksową Y 2 = 0 0 0 3 5 0 0 0 5 0 0 9 5 600 3 5 200 5 8 5 4800 0 0 0 0 7000 0 0 0 0 200 400 25800000 spełniony warunek stopu: y 5,j 0 dla j =... 5 optymalny wektor bazowy: x 2 B = [x 3 x 4 x x 2 ] T rozwiązanie: x = 4800, x 2 = 7000 koszt: z (x, x 2 ) = 000 4800 + 3000 7000 = 25800000 Uniwersytet Zielonogórski 4
Po zmianie ceny wyrobu I do 4000 zł Y 0 = 3 0 0 0 33000 0 0 0 3000 5 8 0 0 0 80000 0 0 0 0 7000 4000 3000 0 0 0 0 0 s =, r = x 0 B = [x 3 x 4 x 5 x 6 ] T = [33000 3000 80000 7000] T x B = [x x 4 x 5 x 6 ] T Uniwersytet Zielonogórski 5
Y = 0 0 3 3 0 0 0 000 2 3 3 0 0 2000 9 3 5 3 0 0 25000 0 0 0 0 0 7000 0 5000 3 4000 3 0 0 0 44000000 s = 2, r = 2, x B = [x x 4 x 5 x 6 ] T, x 2 B = [x x 2 x 5 x 6 ] T Y 2 = 0 0 2 2 0 0 0 0000 3 2 0 0 3000 0 0 9 6 9 2 0 6000 0 0 0 0 0 7000 0 0 500 2500 0 0 49000000 x 2 B = [x x 2 x 5 x 6 ] T z (x, x 2 ) = 4000 0000 + 3000 3000 = 40000000 + 9000000 = 49000000 Uniwersytet Zielonogórski 6
Przykład 2.3. Rozwiązać metodą sympleksową zadanie min[z = 2x + x 2 ] x + x 2 3 x + 2x 4 x, x 2 0 Postać standardowa min[z = 2x + x 2 ] x + x 2 x 3 = 3 x + 2x x 4 = 4 x i 0, i =,..., 4 Uniwersytet Zielonogórski 7
Nie jest to postać kanoniczna, więc należy zastosować metodę dwufazową Wprowadzamy wektor zmiennych sztucznych x a = [x 5 x 6 ] T Rozwiązujemy zadanie pomocnicze min[w = T x a ] Ax + I x a = b x 0, x a 0 Y 0 = 0 0 3 2 0-0 4 2 3 0 0 7 Wektor zmiennych bazowych x 0 B = [x 5 x 6 ] T = [3 4] T Uniwersytet Zielonogórski 8
Y = 2 0 2 0 2 0 2 0 2 2 2 2 2 0 3 2 Wektor zmiennych bazowych x B = [x 5 x 2 ] T = [ 2] T Y 2 = 0 2 2 2 0 0 0 0 0 0 Wektor zmiennych bazowych x 2 B = [x x 2 ] T = [2 ] T Koniec fazy I w = 0 i wśród zmiennych bazowych nie występują zmienne sztuczne. Początkowe rozwiązanie bazowe x 0 = [2 0 0] T odpowiada mu postać kanoniczna A 0 x = b 0 2 0 x x 2 x 3 x 4 = 2 Uniwersytet Zielonogórski 9
Uniwersytet Zielonogórski 20
Wektor kosztów bazowych c 0 B = [2 ] T ; wektor c 0 = c A T 0 c 0 B c 0 = [2 0 0] 0 0 2 T [2 ] T = [0 0 3 ] z 0 0 = c T x 0 = [2 0 0] T [2 0 0] = 5 Przebieg Fazy II Y 0 2 = 0-2 2 0-0 0 3 5 x 0 B = [x x 2 ] T = [2 ] T Y 2 = 0 2 2 0 3 0 0 3 x B = [x 4 x 2 ] T = [2 3] T Rozwiązanie optymalne: x = [0 3 0 2] T, wartość funkcji kosztu z (x) = 3 Uniwersytet Zielonogórski 2
Przykład 2.4. Przedsiębiorstwo produkuje 2 wyroby w i w 2. Dwa z wielu środków produkcji są limitowane. Limity te wynoszą: środek I - 36000, środek II - 50000. Nakłady limitowanych środków na jednostkę produkcji zawiera poniższa tablica. Środki produkcji Jednostkowe nakłady w w 2 I 6 6 II 0 5 Zdolność produkcyjna jednego z agregatów nie pozwala wyprodukować więcej niż 4000 szt. wyrobu w 2. Nie ma natomiast żadnych dodatkowych ograniczeń w stosunku do wyrobu w. Ustalić optymalne rozmiary produkcji przy założeniu, że zysk realizowany na obu wyrobach jest jednakowy Uniwersytet Zielonogórski 22
Funkcja celu niech x - wielkość produkcji wyrobu w, x 2 - wielkość produkcji wyrobu w 2 max[z = x + x 2 ] Ograniczenia limit środków produkcji I : 6x + 6x 2 36000 limit środków produkcji II : 0x + 5x 2 5000 warunek brzegowy dla zmiennej x : x 0 warunek brzegowy dla zmiennej x 2 : 4000 x 2 0 Postać standardowa 6x + 6x 2 +x 3 = 36000 0x + 5x 2 +x 4 = 50000 + x 2 +x 5 = 4000 x 0, x 2 0 Uniwersytet Zielonogórski 23
Tablice sympleksowe mają postać: 6 6 0 0 36000 Y 0 0 5 0 0 50000 = 0 0 0 4000 0 0 0 0 Y = Y 2 = 0 3 6 0 6000 0 0 0 5000 2 0 0 0 0 4000 0 0 2 0 0 0 5000 0 6 0 0 3 3 2 0 0 2000 2 0 0 4000 2 0 2000 0 0 6 0 0 6000 x 0 B = [x 3 x 4 x 5 ] T x B = [x 3 x x 5 ] T x 2 B = [x 2 x x 5 ] T Rozwiązanie: x = 4000, x 2 = 2000, z = 6000 Uniwersytet Zielonogórski 24
W pierwszym kroku metody sympleksowej można było wybrać również kolumnę drugą 6 6 0 0 36000 Y 0 0 5 0 0 50000 = x 0 0 0 0 4000 B = [x 3 x 4 x 5 ] T 0 0 0 0 6 0 0 6 2000 Y 0 0 0 5 30000 = 0 0 0 4000 0 0 0 4000 0 0 2000 6 Y 2 0 0 0 5 0000 6 = 0 0 0 4000 0 0 0 0 6000 6 Rozwiązanie: x = 2000, x 2 = 4000, z = 6000 x B = [x 3 x 4 x 2 ] T x 2 B = [x x 4 x 2 ] T Uniwersytet Zielonogórski 25
W obu przypadkach otrzymano tę samą wartość funkcji celu z = 6000 dla różnych wartości x i x 2:. I rozwiązanie: x = 4000 i x 2 = 2000 2. II rozwiązanie: x = 2000 i x 2 = 4000 Jest to przypadek specjalny kiedy mamy do czynienia z nieskończoną liczbą rozwiązań Uniwersytet Zielonogórski 26
ANALIZA POOPTYMALIZACYJNA Zadaniem analizy pooptymalizacyjnej jest odpowiedź na pytania typu:. czy wzrost jednego z zasobów produkcyjnych może zwiększyć zysk? 2. jeżeli możliwy jest wzrost zysku to w jakim zakresie należy zwiększyć zasoby? 3. po uzupełnieniu zasobów jakie będzie nowe rozwiązanie optymalne? 4. czy niedobór jednego z zasobów może obniżyć zysk? 5. jeśli tak to w jakim stopniu i jakie będzie nowe rozwiązanie optymalne? W celu odpowiedzi na te pytania należy przeprowadzić analizę ostatniej tabeli sympleksowej Odejmując ostatni wiersz tej tabeli od wektora kosztów c otrzymujemy wiersz s. Wartości tego wiersza określają wartości zasobów produkcyjnych. Jest to dodatkowy zysk, jaki jest możliwy do uzyskania przy zwiększaniu danych zasobów o jedną jednostkę Uniwersytet Zielonogórski 27
Rozpatrzmy przykład 2.2. Ostatnia tablica ma postać x x 2 x 3 x 4 x 5 x 6 0 0 0 3 600 5 5 0 0 0 3 200 5 5 0 0 8 200 5 5 0 0 0 0 7000 c k 0 0 0 0 200 400 25800000 c 000 3000 0 0 0 0 s = c c k 000 3000 0 0 200 400 W celu wyznaczenia zakresu zmienności zasobów:. dzielimy liczby w ostatniej kolumnie przez odpowiadające im liczby w kolumnie zmiennej pomocniczej rozważanego zasobu 2. wyznaczamy najmniejszy dodatni iloraz i największy ujemny 3. dodając otrzymane liczby do wielkości rozważanego zasobu otrzymujemy największy dopuszczalny wzrost i najmniejszy dopuszczalny spadek zasobu 9 Uniwersytet Zielonogórski 28
0 3 5 9 600 5 600 x 3 x 4 x 5 x 6 600 = 600 0 = 600 0.6 = 9333.3 600 3.8 = 3052.6 3 200 5 200 0 = 200 200 = 200 0.2 = 6000 200 0.6 = 2000 0 5 0 0 5 8 4800 4800 4800 5 4800 0 = 0 = 0.2 = 24000 4800.6 = 3000 0 0 0 7000 7000 0 = 7000 0 = 7000 0 = 7000 = 7000 0 0 200 400 25, 8 mln wektor s wartość wyjściowa 33000 3000 80000 7000 górny zakres 86000 0000 dolny zakres 2400 800 56000 5000 Dodatkowy zysk: z h pracy O wynosi 0 zł, z h pracy O 2 wynosi 0 zł, zysk z h pracy F wynosi 200 zł i zysk za egzemplarz wyrobu II wynosi 400 zł Zakresy ważności tych zysków dla zasobów wynoszą odpowiednio: 2400 - (dla O ), 800 - (dla O 2 ), 56000-86000 (dla F ) i 5000-0000 (dla wyr. II) Uniwersytet Zielonogórski 29
Przykład 2.5. WYZNACZANIE NOWEGO ROZWIĄZANIA OPTYMALNEGO Załóżmy że możliwa jest zmiana czasu pracy obrabiarki F o +5000h i +0000h. przypadek I 80000 + 5000 = 85000 < 86000 przypadek II 80000 + 0000 = 90000 > 86000 należy przeliczyć całe zadanie Dla pierwszego przypadku otrzymujemy: Baza x 5 wartość nowa wartość x 3 3 5 600 600 + 5000 ( 3 ) = 600 3000 = 8600 5 x 4 5 200 200 + 5000 ( ) = 200 000 = 200 5 x 5 4800 4800 + 5000 ( ) = 4800 + 000 = 5800 5 x 2 0 7000 7000 + 5000 0 = 7000 s 200 25, 8mln 25, 8mln 5000 200 = 25, 8mln mln = 26, 8mln Nowe wartości x = 5800, x 2 = 7000, z = 26, 8mln Uniwersytet Zielonogórski 30
Załóżmy, że z powodu starości należy zmniejszyć wykorzystanie frezarki o 0000h. Nowe rozwiązanie optymalne otrzymujemy następująco: Baza x 5 wartość nowa wartość x 3 3 5 600 600 0000 ( 3 ) = 600 + 6000 = 7600 5 x 4 5 200 200 0000 ( ) = 200 + 2000 = 3200 5 x 5 4800 4800 0000 ( ) = 4800 2000 = 2800 5 x 2 0 7000 7000 0000 0 = 7000 s 200 25, 8mln 25, 8mln + 0000 200 = 25, 8mln + 2mln = 23, 8mln Nowe wartości x = 2800, x 2 = 7000, z = 23, 8mln Uniwersytet Zielonogórski 3
WPŁYW ZMIAN CEN NA ZYSK Warto wiedzieć przy jakich wahaniach cen danej zmiennej decyzyjnej, rozwiązanie optymalne pozostaje bez zmian Dla zmiennej x i która jest w bazie obowiązuje reguła:. Dopuszczalny wzrost współczynnika c i to najmniejszy dodatni iloraz wyrazu c kj przez a ij 2. Dopuszczalny spadek współczynnika c i to największy ujemny iloraz wyrazu c kj przez a ij Przykład 2.6. Rozważmy końcową tablicę sympleksową w przykładu 2.2. Y 2 = 0 0 0 3 5 0 0 0 5 9 600 5 3 200 5 0 0 0 8 200 5 5 0 0 0 0 7000 0 0 0 0 200 400 25800000 Uniwersytet Zielonogórski 32
Po przeliczeniu otrzymujemy: x 0 = 0 200 0.2 = 000 x 2 400.6 = 875 0 = 0 400 = 400 Zakres współczynnika c : od 000 000 = 0 do 000 + 875 = 875 Zakres współczynnika c 2 : od 3000 400 = 600 do 3000 + = Rozwiązanie problemu: x = 4800, x 2 = 7000 Wartość funkcji kosztu: wartości nominalne kosztu: c = 000, c 2 = 3000 po zmianie na: c = 500, c 2 = 3000, z = 500 4800 + 3000 7000 = 28.2mln po zmianie na c = 000, c 2 = 650, z = 000 4800 + 650 7000 = 6.35mln UWAGA! Rozwiązanie optymalne nie ulegnie zmianie tylko wtedy gdy ulegnie zmianie tylko jeden! koszt Uniwersytet Zielonogórski 33