Pobierz Metoda sympleks: charakterystyka i więcej Prezentacje w PDF z Computer Science tylko na Docsity! METODA SYMPLEKS Maciej Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Badania operacyjne Metoda Sympleks WSTĘP ➣ Algorytm Sympleks – najpotężniejsza metoda rozwiązywania programów liniowych ➣ Metoda generuje ciąg dopuszczalnych rozwiązań xk w taki sposób, aby kolejne rozwiązania były lepsze (w przypadku degeneracji niegorsze) od poprzednich ➣ Dane o rozwiązaniu bazowym xk (k-ta iteracja) są gromadzone w tablicy sympleksowej Yk Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 1 Badania operacyjne Metoda Sympleks Algorytm SYMPLEKS - cd Krok 5: Wyznacz indeks r, 1 6 r 6 m, kolumny macierzy Bk usuwanej z bazy ykr,n+1 ykr,s = min 16i6m { yki,n+1 yki,s : yki,s > 0 } Krok 6: Zmień zmienne bazowe zastępując współrzędną r wektora xb współrzędną xs. Wyznacz nową tablicę sympleksową Yk+1 stosując przekształcenia yk+1i,j = y k i,j − yki,sy k r,j ykr,s i = 1, . . . , m + 1, i 6= r, j = 1, . . . , n + 1 yk+1r,j = ykr,j ykr,s , j = 1, . . . , n + 1 Krok 7: Podstaw k := k + 1 i przejdź do kroku 2. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 4 Badania operacyjne Metoda Sympleks 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 ② Rozpoczęcie obliczeń metodą sympleksową jest uwarunkowane znajomością początkowego dopuszczalnego rozwiązania bazowego ③ 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 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 5 Badania operacyjne Metoda Sympleks 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.1. Rozważmy układ 2x1 + x2 + x3 = 7 − x1 + 2x2 + x4 = 5 Macierz A ma postać A = 2 1 1 0 −1 2 0 1 Kolumny a3 i a4 tworzą jednostkową macierz bazową, którek odpowiada rozwiązanie xB = B −1b = b = 7 5 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 6 Badania operacyjne Metoda Sympleks • Po zakończeniu fazy I mogą wystąpić przypadki: 1. ŵ > 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 xBi jest zmienną sztuczną, oraz yi,j = 0, j = 1, . . . , n w zadaniu początkowym występuje redundancja, wiersz o numerze i jest usuwany z tablicy (b) zmienna bazowa xBi jest zmienną sztuczną, oraz yi,j 6= 0, dla pewnego j 6 n. Zastępujemy zmienną xBi zmienną xj 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 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 9 Badania operacyjne Metoda Sympleks 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 O1 −−33000h, dla obrabiarki O2 −−13000h 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 O1 3 1 O2 1 1 F 5 8 Zysk ze sprzedaży wyrobu I wynosi 1000zł, 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ł? Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 10 Badania operacyjne Metoda Sympleks • Funkcja celu niech x1 - liczba wyrobu I, x2 - liczba wyrobu II, wtedy max[z = 1000x1 + 3000x2] • Ograniczenia czas pracy obrabiarkiO1 : 3x1 + x2 6 33000 czas pracy obrabiarkiO2 : x1 + x2 6 13000 czas pracy frezarki F : 5x1 + 8x2 6 80000 ograniczenie liczby sprzedanych wyrobów typu II : x2 6 7000 • Postać problemu max [z = 1000x1 + 3000x2] 3x1 + x2 6 33000 x1 + x2 6 13000 5x1 + 8x2 6 80000 x2 6 7000 x1, x2 > 0 • Postać standardowa min[z = −1000x1 − 3000x2] 3x1+ x2+x3 =33000 x1+ x2 +x4 =13000 5x1+8x2 +x5 =80000 x2 +x6= 7000 xi > 0, i = 1 . . . 6 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 11 Badania operacyjne Metoda Sympleks Przeliczamy tablicę sympleksową Y2 = 0 0 1 0 − 3 5 19 5 11600 0 0 0 1 − 1 5 3 5 1200 1 0 0 1 1 5 − 8 5 4800 0 1 0 0 0 1 7000 0 0 0 0 −200 −1400 −25800000 • spełniony warunek stopu: y5,j 6 0 dla j = 1 . . . 5 • optymalny wektor bazowy: x2B = [x3 x4 x1 x2]T • rozwiązanie: x1 = 4800, x2 = 7000 • koszt: z∗(x1, x2) = 1000 · 4800 + 3000 · 7000 = 25800000 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 14 Badania operacyjne Metoda Sympleks Po zmianie ceny wyrobu I do 4000 zł Y0 = 3 1 1 0 0 0 33000 1 1 0 1 0 0 13000 5 8 0 0 1 0 80000 0 1 0 0 0 1 7000 4000 3000 0 0 0 0 0 s = 1, r = 1 x0B = [x3 x4 x5 x6]T = [33000 13000 80000 7000]T x1B = [x1 x4 x5 x6]T Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 15 Badania operacyjne Metoda Sympleks Y1 = 1 1 3 1 3 0 0 0 11000 0 2 3 −1 3 1 0 0 2000 0 19 3 − 5 3 0 1 0 25000 0 0 0 0 0 1 7000 0 5000 3 − 4000 3 0 0 0 −44000000 s = 2, r = 2, x1B = [x1 x4 x5 x6] T , x2B = [x1 x2 x5 x6] T Y2 = 1 0 1 2 0 0 0 10000 0 1 − 1 2 3 2 0 0 3000 0 0 − 9 6 − 19 2 1 0 6000 0 0 0 0 0 1 7000 0 0 −500 −2500 0 0 −49000000 x2B = [x1 x2 x5 x6] T z∗(x1, x2) = 4000 · 10000 + 3000 · 3000 = 40000000 + 9000000 = 49000000 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 16 Badania operacyjne Metoda Sympleks Y11 = 1 2 0 −1 1 2 1 −1 2 1 1 2 1 0 − 1 2 0 1 2 2 1 2 0 −1 1 2 0 − 3 2 1 Wektor zmiennych bazowych x1B = [x5 x2] T = [1 2]T Y21 = 1 0 −2 1 2 −1 2 0 1 1 −1 −1 1 1 0 0 0 0 −1 −1 0 Wektor zmiennych bazowychx2B = [x1 x2]T = [2 1]T Koniec fazy I – w = 0 i wśród zmiennych bazowych nie występują zmienne sztuczne. Początkowe rozwiązanie bazowe x0 = [2 1 0 0]T odpowiada mu postać kanoniczna A0x = b ⇒ 1 0 −2 1 0 1 1 −1 x1 x2 x3 x4 = 2 1 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 19 Badania operacyjne Metoda Sympleks Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 20 Badania operacyjne Metoda Sympleks Wektor kosztów bazowych c0B = [2 1] T ; wektor c0 = c−AT0 · c0B c0 = [2 1 0 0]− 1 0 −2 1 0 1 1 −1 T · [2 1]T = [0 0 3 − 1] z00 = c T · x0 = [2 1 0 0]T · [2 1 0 0] = 5 Przebieg Fazy II Y02 = 1 0 -2 1 2 0 1 1 -1 1 0 0 −3 1 5 x0B = [x1 x2]T = [2 1]T Y12 = 1 0 −2 1 2 1 1 −1 0 3 −1 0 −1 0 3 x1B = [x4 x2]T = [2 3]T Rozwiązanie optymalne: x = [0 3 0 2]T , wartość funkcji kosztu z∗(x) = 3 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 21 Badania operacyjne Metoda Sympleks Tablice sympleksowe mają postać: Y0 = 6 6 1 0 0 36000 10 5 0 1 0 50000 0 1 0 0 1 4000 1 1 0 0 0 0 x0B = [x3 x4 x5]T Y1 = 0 3 1 − 6 10 0 6000 1 1 2 0 1 10 0 5000 0 1 0 0 1 4000 0 1 2 0 − 1 10 0 −5000 x1B = [x3 x1 x5]T Y2 = 0 1 1 3 − 2 10 0 2000 1 0 − 1 6 2 10 0 4000 0 0 − 1 3 2 10 1 2000 0 0 − 1 6 0 0 −6000 x2B = [x2 x1 x5]T Rozwiązanie: x1 = 4000, x2 = 2000, z∗ = 6000 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 24 Badania operacyjne Metoda Sympleks W pierwszym kroku metody sympleksowej można było wybrać również kolumnę drugą Y0 = 6 6 1 0 0 36000 10 5 0 1 0 50000 0 1 0 0 1 4000 1 1 0 0 0 0 x0B = [x3 x4 x5]T Y1 = 6 0 1 0 −6 12000 10 0 0 1 −5 30000 0 1 0 0 1 4000 1 0 0 0 −1 −4000 x1B = [x3 x4 x2]T Y2 = 1 0 1 6 0 −1 2000 0 0 − 10 6 1 5 10000 0 1 0 0 1 4000 0 0 − 1 6 0 0 −6000 x2B = [x1 x4 x2]T Rozwiązanie: x1 = 2000, x2 = 4000, z∗ = 6000 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 25 Badania operacyjne Metoda Sympleks ☛ W obu przypadkach otrzymano tę samą wartość funkcji celu z∗ = 6000 dla różnych wartości x∗1 i x ∗ 2: 1. I rozwiązanie: x∗1 = 4000 i x ∗ 2 = 2000 2. II rozwiązanie: x∗1 = 2000 i x ∗ 2 = 4000 ☛ Jest to przypadek specjalny kiedy mamy do czynienia z nieskończoną liczbą rozwiązań Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 26 Badania operacyjne Metoda Sympleks x3 x4 x5 x6 1 0 − 35 19 5 11600 11600 1 = 11600 11600 0 = ∞ 11600 −0.6 = −19333.3 11600 3.8 = 3052.6 0 1 − 15 3 5 1200 1200 0 = ∞ 1200 1 = 1200 1200 −0.2 = −6000 1200 0.6 = 2000 0 0 15 − 8 5 4800 4800 0 = ∞ 4800 0 = ∞ 4800 0.2 = 24000 4800 1.6 = −3000 0 0 0 1 7000 70000 = ∞ 7000 0 = ∞ 7000 0 = ∞ 7000 1 = 7000 0 0 200 1400 −25, 8 mln wektor s wartość wyjściowa 33000 13000 80000 7000 górny zakres ∞ ∞ 86000 10000 dolny zakres 21400 11800 56000 5000 Dodatkowy zysk: z 1h pracy O1 wynosi 0 zł, z 1h pracy O2 wynosi 0 zł, zysk z 1h pracy F wynosi 200 zł i zysk za 1 egzemplarz wyrobu II wynosi 1400 zł Zakresy ważności tych zysków dla zasobów wynoszą odpowiednio: 21400 - ∞ (dla O1), 11800 - ∞ (dla O2), 56000 - 86000 (dla F ) i 5000 - 10000 (dla wyr. II) Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 29 Badania operacyjne Metoda Sympleks WYZNACZANIE NOWEGO ROZWIĄZANIA OPTYMALNEGO Przykład 2.5. Załóżmy że możliwa jest zmiana czasu pracy obrabiarki F o +5000h i +10000h. • przypadek I – 80000 + 5000 = 85000 < 86000 • przypadek II – 80000 + 10000 = 90000 > 86000 – należy przeliczyć całe zadanie Dla pierwszego przypadku otrzymujemy: Baza x5 wartość nowa wartość x3 − 35 11600 11600 + 5000 · (− 3 5 ) = 11600 − 3000 = 8600 x4 − 15 1200 1200 + 5000 · (− 1 5 ) = 1200 − 1000 = 200 x1 1 5 4800 4800 + 5000 · ( 1 5 ) = 4800 + 1000 = 5800 x2 0 7000 7000 + 5000 · 0 = 7000 s 200 −25, 8mln −25, 8mln− 5000 · 200 = −25, 8mln− 1mln = −26, 8mln Nowe wartości x1 = 5800, x2 = 7000, z∗ = −26, 8mln Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 30 Badania operacyjne Metoda Sympleks Załóżmy, że z powodu starości należy zmniejszyć wykorzystanie frezarki o 10000h. Nowe rozwiązanie optymalne otrzymujemy następująco: Baza x5 wartość nowa wartość x3 − 35 11600 11600 − 10000 · (− 3 5 ) = 11600 + 6000 = 17600 x4 − 15 1200 1200 − 10000 · (− 1 5 ) = 1200 + 2000 = 3200 x1 1 5 4800 4800 − 10000 · ( 1 5 ) = 4800 − 2000 = 2800 x2 0 7000 7000 − 10000 · 0 = 7000 s 200 −25, 8mln −25, 8mln+ 10000 · 200 = −25, 8mln+ 2mln = −23, 8mln Nowe wartości x1 = 2800, x2 = 7000, z∗ = −23, 8mln Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 31