może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład): 1 Narysuj na płaszczyźnie zbiór dopuszczalnych rozwiazań. 2 Narysuj funkcję celu, np. dla z = 0, i przesuwaj ja równolegle, zgodnie ze wzrostem (max) lub spadkiem (min) wartości z, dopóki ma przynajmniej jeden punkt wspólny ze zbiorem rozwiazań dopuszczalnych.
Jedno rozwiazanie optymalne Problem może mieć dokładnie jedno rozwiazanie optymalne, znajdujace się w pewnym wierzchołku zbioru rozwiazań dopuszczalnych.
Nieskończona liczba rozwiazań Problem może mieć nieskończenie wiele rozwiazań optymalnych znajdujacych się na pewnym odcinku łacz acym dwa wierzchołki. max z = 2x 1 + 4x 2 6x 1 + 4x 2 24 x 1 + 2x 2 6 x 2 x 1 1 x 2 2 x 1, x 2 0
Nieograniczona funkcja celu Funkcja celu może być nieograniczona. Wówczas problem nie posiada rozwiazania optymalnego max z = 2x 1 + 2x 2 2x 1 x 2 40 x 2 10 x 1, x 2 0
Problem sprzeczny Problem może nie mieć rozwiazania dopuszczalnego. Ma to miejsce wówczas, gdy ograniczenia sa sprzeczne. max z = 3x 1 + 2x 2 6x 1 + 4x 2 12 x 1 3 x 2 2
Obserwacje (przypadek 2 zmiennych) 1 Zbiór rozwiazań dopuszczalnych jest wypukłym wielokatem (ograniczonym lub nieograniczonym) 2 Jeżeli problem ma optymalne rozwiazanie, to przynajmniej jedno rozwiazanie optymalne znajduje się w wierzchołku zbioru dopuszczalnych rozwiazań. Wierzchołek jest punktem przecięcia dwóch prostych (punktem w którym dwa ograniczenia sa spełnione jako równości).
Przypadek 3 zmiennych Optymalne rozwiazanie znajduje się w wierzchołku x 1 = 0, x 2 = 300, x 3 = 100, który jest punktem przecięcia trzech płaszczyzn (2,3 i 4).
Model w postaci kanonicznej Model jest w postaci kanonicznej jeżeli: 1 wszystkie ograniczenia maja postać równości (za wyjatkiem ograniczeń na nieujemność zmiennych), 2 wszystkie prawe strony ograniczeń sa nieujemne, 3 wszystkie zmienne przyjmuja wartości nieujemne. max (min) z = c 1 x 1 + c 2 x 2 + + c nx n [f. celu] a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 [Ograniczenie 1] a 21 x 1 + a 22 x 2 + + a 2n x n = b 2 [Ograniczenie 2]...... a m1 x 1 + a m2 x 2 + + a mnx n = b m [Ograniczenie m] x i 0, i = 1,..., n [Nieujemność] Każdy model liniowy można sprowadzić do postaci kanonicznej.
Model w postaci kanonicznej Każdy model liniowy można sprowadzić do równoważnej postaci kanonicznej. 1 Jeżeli b i < 0, to mnożymy ograniczenie i-te przez -1. 2 a i1 x 1 + + a in x n b i zastępujemy a i1 x 1 + + a in x n + s i = b i, gdzie s i 0 jest nowa zmienna. 3 a i1 x 1 + + a in x n b i zastępujemy a i1 x 1 + + a in x n s i = b i, gdzie s i 0 jest nowa zmienna 4 Jeżeli x i może być ujemna, to zastępujemy x i wyrażeniem u i v i, gdzie u i 0, v i 0 sa nowymi zmiennymi.
Przykład Rozwiazywanie zadań programowania liniowego max z = 2x 1 + 3x 2 x 3 x 1 2x 2 5 x 2 3x 3 3 x 1 + x 2 2x 3 = 20 x 1, x 2 0 1 : max z = 2x 1 + 3x 2 x 3 x 1 2x 2 5 x 2 + 3x 3 3 x 1 + x 2 2x 3 = 20 x 1, x 2 0 2 : max z = 2x 1 + 3x 2 x 3 x 1 2x 2 + s 1 = 5 x 2 + 3x 3 s 2 = 3 x 1 + x 2 2x 3 = 20 x 1, x 2 0 3 : max z = 2x 1 + 3x 2 u 3 + v 3 x 1 2x 2 + s 1 = 5 x 2 + 3u 3 3v 3 s 2 = 3 x 1 + x 2 2u 3 + 2v 3 = 20 x 1, x 2, s 1, s 2, u 3, v 3 0
Rozpatrzmy problem w postaci kanonicznej: Zapiszmy ten problem w postaci: max z = 2x 1 + 3x 2 2x 1 + x 2 + s 1 = 4 x 1 + 2x 2 + s 2 = 5 x 1, x 2, s 1, s 2 0 z 2x 1 3x 2 = 0 [Wiersz 0] 2x 1 +x 2 +s 1 = 4 [Ograniczenie 1] x 1 +2x 2 +s 2 = 5 [Ograniczenie 2] Powyższa postać nazywamy postacia bazowa problemu względem zmiennych bazowych {s 1, s 2 }. Układ równań jest rozwiazany względem zmiennych bazowych s 1, s 2 i z. Przyjmujac x 1 = x 2 = 0 otrzymamy natychmiast bazowe rozwiazanie dopuszczalne s 1 = 4, s 2 = 5 o wartości funkcji celu z = 0.
Dla postaci bazowej: z 2x 1 3x 2 = 0 2x 1 +x 2 +s 1 = 4 x 1 +2x 2 +s 2 = 5 tworzymy poczatkow a tablicę sympleksowa: x 1 x 2 s 1 s 2 z -2-3 0 0 0 s 1 2 1 1 0 4 s 2 1 2 0 1 5
z 2x 1 3x 2 = 0 2x 1 +x 2 +s 1 = 4 x 1 +2x 2 +s 2 = 5 x 2 x 1 x 2 s 1 s 2 z -2-3 0 0 0 s 1 2 1 1 0 4 4/1 = 4 s 2 1 2 0 1 5 5/2 = 2.5 W wierszu 0 występuja ujemne współczynniki. Możemy zatem zwiększyć wartość funkcji celu zwiększajac wartość zmiennej niebazowej, np x 2. Maksymalna wartość x 2 w ograniczeniu 1 wynosi 4 a w ograniczeniu wynosi 2.5. Zatem x 2 = 2.5 i s 2 = 0. Zmienna x 2 wchodzi do bazy a zmienna s 2 opuszcza bazę.
Wykonujemy eliminację Gaussa-Jordana operujac elementem centralnym 2 aby przedstawić problem w postaci bazowej względem {s 1, x 2 }. Możemy to wykonać bezpośrednio na tablicy sympleksowej x 2 x 1 x 2 s 1 s 2 z -2-3 0 0 0 s 1 2 1 1 0 4 s 2 1 2 0 1 5 Postać bazowa względem {s 1, x 2 }: x 1 x 2 s 1 s 2 z -0.5 0 0 1.5 7.5 s 1 1.5 0 1-0.5 1.5 x 2 0.5 1 0 0.5 2.5 z 0.5x 1 +1.5s 2 = 7.5 1.5x 1 +s 1 0.5s 2 = 1.5 0.5x 1 +x 2 +0.5s 2 = 2.5
z 0.5x 1 +1.5s 2 = 7.5 1.5x 1 +s 1 0.5s 2 = 1.5 0.5x 1 +x 2 +0.5s 2 = 2.5 x 1 x 1 x 2 s 1 s 2 z -0.5 0 0 1.5 7.5 s 1 s 1 1.5 0 1-0.5 1.5 1.5/1.5=1 x 2 0.5 1 0 0.5 2.5 2.5/0.5=5 W wierszu 0 ponownie występuje ujemny współczynnik. Możemy zatem zwiększyć wartość funkcji celu zwiększajac wartość x 1. Maksymalna wartość zmiennej x 1 wynosi 1. Zatem x 1 = 1 i s 1 = 0. Zmienna x 1 wchodzi do bazy a zmienna s 1 opuszcza bazę.
Wykonujemy eliminację Gaussa - Jordana operujac elementem centralnym 1.5 aby przedstawić problem w postaci bazowej względem {x 1, x 2 }: x 1 x 1 x 2 s 1 s 2 z -0.5 0 0 1.5 7.5 s 1 s 1 1.5 0 1-0.5 1.5 x 2 0.5 1 0 0.5 2.5 x 1 x 2 s 1 s 2 z 0 0 1/3 4/3 8 x 1 1 0 2/3-1/3 1 x 2 0 1-1/3 2/3 2 Postać bazowa względem {x 1, x 2 }: z +1/3s 1 +4/3s 2 = 8 2/3s 1 1/3s 2 +x 1 = 1 1/3s 1 +2/3s 2 +x 2 = 2
x 1 x 2 s 1 s 2 z 0 0 1/3 4/3 8 x 1 1 0 2/3-1/3 1 x 2 0 1-1/3 2/3 2 W wierszu 0 nie występuja ujemne współczynniki. Nie można już powiększyć funkcji celu. Zatem x 1 = 1, x 2 = 2 jest optymalnym rozwiazaniem o wartości funkcji celu z = 8. Kolejne iteracje sa pokazane na poniższym rysunku:
Rozwiaż za pomoca algorytmu sypleksowego problem firmy Reddy Mikks (pierwszy wykład). Postać standardowa modelu jest następujaca: z 5x 1 4x 2 = 0 6x 1 + 4x 2 +s 1 = 24 x 1 + 2x 2 +s 2 = 6 x 1 + x 2 +s 3 = 1 x 2 +s 4 = 2 x 1, x 2, s 1, s 2, s 3, s 4 0 Obliczenia przeprowadzimy tylko na tablicy sympleksowej.
x 1 x 1 x 2 s 1 s 2 s 3 s 4 z -5-4 0 0 0 0 0 s 1 s 1 6 4 1 0 0 0 24 24/6 = 4 s 2 1 2 0 1 0 0 6 6/1 = 6 s 3-1 1 0 0 1 0 1 - s 4 0 1 0 0 0 1 2 - x 2 x 1 x 2 s 1 s 2 s 3 s 4 z 0-2/3 5/6 0 0 0 20 x 1 1 2/3 1/6 0 0 0 4 4/( 2 ) = 6 3 s 2 s 2 0 4/3-1/6 1 0 0 2 2/( 4 ) = 3 3 2 s 3 0 5/3 1/6 0 1 0 5 5/( 5 ) = 3 3 s 4 0 1 0 0 0 1 2 2/1 = 2
x 1 x 2 s 1 s 2 s 3 s 4 z 0 0 3/4 1/2 0 0 21 x 1 1 0 1/4-1/2 0 0 3 x 2 0 1-1/8 3/4 0 0 3/2 s 3 0 0 3/8-5/4 1 0 5/2 s 4 0 0 1/8-3/4 0 1 1/2 Przebieg algorytmu. Obok każdego wierzchołka podane sa odpowiednie zmienne bazowe.
Jeżeli funkcja celu ma być minimalizowana, to: 1 można pomnożyć ja przez -1 i zamienić na maksymalizację lub 2 wprowadzać do bazy zmienne o dodatnim współczynniku w wierszu 0; wówczas rozwiazanie jest optymalne jeżeli wszystkie współczynniki w wierszu 0 sa niedodatnie. Jeżeli wszystkie ograniczenia maja postać i prawe strony ograniczeń sa nieujemne (model jest w tzw. postaci standardowej), to pierwsza postać bazowa otrzymujemy przyjmujac za zmienne bazowe dodatkowe zmienne s 1,..., s m. Rozpoczynamy wówczas algorytm w wierzchołku x 1 = x 2 = = x n = 0 i z = 0.
Metoda dwóch faz Rozpatrzmy przykład: Równoważna postać kanoniczna: max z = 4x 1 + 3x 2 3x 1 + x 2 = 3 4x 1 + 3x 2 6 x 1 + 2x 2 4 x 1, x 2 0 max z = 4x 1 + 3x 2 3x 1 + x 2 = 3 4x 1 + 3x 2 s 1 = 6 x 1 + 2x 2 + s 2 = 4 x 1, x 2, s 1, s 2 0 Model nie jest w postaci bazowej. Nie można rozpoczać algorytmu sympleksowego.
Metoda dwóch faz Dodajemy sztuczne zmienne r 1 i r 2 do pierwszego i drugiego ograniczenia i tworzymy funkcję celu min z 0 = r 1 + r 2 lub równoważnie max z 0 = r 1 r 2. Zapisujemy problem z nowa i oryginalna funkcja celu w następujacy sposób: z 0 +r 1 +r 2 = 0 z 4x 1 3x 2 = 0 3x 1 +x 2 +r 1 = 3 4x 1 +3x 2 s 1 +r 2 = 6 x 1 +2x 2 +s 2 = 4 x 1 x 2 s 1 r 1 r 2 s 2 z 0 0 0 0 1 1 0 0 z -4-3 0 0 0 0 0 r 1 3 1 0 1 0 0 3 r 2 4 3-1 0 1 0 6 s 2 1 2 0 0 0 1 4
Metoda dwóch faz Po odjęciu wierszy 3 i 4 od 1 otrzymujemy pierwsza tablicę sympleksowa: x 1 x 1 x 2 s 1 r 1 r 2 s 2 z 0-7 -4 1 0 0 0-9 z -4-3 0 0 0 0 0 r 1 r 1 3 1 0 1 0 0 3 r 2 4 3-1 0 1 0 6 s 2 1 2 0 0 0 1 4 Faza 1. Maksymalizujemy z 0 przekształcajac też wiersz odpowiadajacy oryginalnej funkcji celu. x 2 x 1 x 2 s 1 r 1 r 2 s 2 z 0 0 5 7 1 0 0-2 3 3 z 0 5 4 0 0 0 4 3 3 1 1 x 1 1 0 0 0 1 3 3 5 r 2 0 3-1 4 3 1 0 2 5 s 2 0 3 0 1 3 0 1 3
Metoda dwóch faz x 1 x 2 s 1 r 1 r 2 s 2 z 0 0 0 0 1 1 0 0 z 0 0-1 0 1 0 6 1 5 x 1 1 0-1 0 5 5 5 x 2 0 1 3 4 3 6 0 5 5 5 5 s 2 0 0 1 1-1 1 1 W optymalnym rozwiazaniu z 0 = 0 i zmienne sztuczne r 1 i r 2 nie sa zmiennymi bazowymi (przypadek, w którym to nie wystapi zostanie omówiony dalej). Przechodzimy do fazy 2. Faza 2. Usuwamy wiersz odpowiadajacy z 0 i maksymalizujemy oryginalna funkcję celu z. Zmienne sztuczne można również usunać lub utrzymywać w tablicy (dostarczaja one użytecznej informacji omówionej dalej). W tym drugim przypadku ewentualne ujemne wartości zmiennych sztucznych w wierszu odpowiadajacym z należy ignorować 3 3
Metoda dwóch faz Po wykonaniu jednej iteracji w fazie 2 otrzymujemy optymalne rozwiazanie znajdujace się w tablicy: x 1 x 2 s 1 r 1 r 2 s 2 z 0 0 0 1 0 1 7 2 x 1 1 0 0 0 1 2 5 5 5 x 2 0 1 0 1 3 9 0 5 5 5 s 1 0 0 1 1-1 1 1
Metoda dwóch faz Jeżeli w optymalnym rozwiazaniu fazy 1 pewna zmienna sztuczna jest zmienna bazowa o wartości równej 0, to wykonujemy dodatkowa iterację usuwajac a ta zmienna z bazy. x 2 x 1 x 2 s 1 r 1 r 2 s 2 z 0 0-1 0 1 0 6 x 1 1-2 2 1 0 0 2 r 2 r 2 0 1-2 3 1 0 0 s 2 0 3 1 1 0 1 1 Wykonujemy dodatkowa iterację usuwajac a zmienna r 2 z bazy i dodajac a zmienna x 2 lub s 1 (po przemnożeniu wiersza odpowiadajacego r 2 przez -1). Operacja ta nie narusza dopuszczalności rozwiazania.
Wykrywanie modelu sprzecznego Jeżeli w optymalnym rozwiazaniu fazy 1 otrzymamy z 0 < 0 (co oznacza, że pewna zmienna sztuczna jest dodatnia), to wyjściowy model jest sprzeczny. max z = 2x 1 + 5x 2 3x 1 + 2x 2 6 2x 1 + x 2 2 x 1, x 2 0 z 0 +r 1 = 0 z 2x 1 5x 2 = 0 3x 1 +2x 2 s 1 +r 1 = 6 2x 1 +x 2 +s 2 = 2 x 1 x 2 s 1 r 1 s 2 z 0-3 -2 1 0 0-6 z -2-5 0 0 0 0 r 1 3 2-1 1 0 6 s 2 2 1 0 0 1 2 x 1 x 2 s 1 r 1 s 2 z 0 1 0 1 0 2-2 z 8 0 5 0 5 10 r 1 1 0-1 1-2 2 s 2 2 1 0 0 1 2 Model jest sprzeczny.
Alternatywne rozwiazania optymalne s 2 x 1 x 2 s 1 s 2 z 0 0 2 0 10 x 2 0 1 1-1 1 x 1 1 0-1 2 3 x 1 x 2 s 1 s 2 z 0 0 2 0 10 x 2 1/2 1 1/2 0 2.5 s 2 1/2 0-1/2 1 1.5
Alternatywne rozwiazania optymalne Jeżeli w ostatniej tablicy sympleksowej, wartość współczynnika w wierszu zerowym dla pewnej zmiennej niebazowej wynosi 0, to może istnieć alternatywne rozwiazanie optymalne. Rozwiazanie to można otrzymać wprowadzajac ta zmienna do bazy. Jeżeli (x 1,..., x n) i (y 1,..., y n) sa dwoma rozwiazaniami optymalnymi, to każde rozwiazanie postaci: (λx 1 + (1 λ)y 1,..., λx n + (1 λ)y n), λ [0, 1] jest również optymalne. Zatem jeżeli problem ma dwa różne rozwiazania optymalne, to ma nieskończenie wiele rozwiazań optymalnych.
Nieograniczona funkcja celu x 2 Wartość x 2 może być dowolnie duża. x 1 x 2 s 1 s 2 z -2-1 0 0 0 s 1 1-1 1 0 10 (-) s 2 2 0 0 1 40 (-)
Nieograniczona funkcja celu Jeżeli (dla problemu maksymalizacji) w bieżacej tablicy sympleksowej, istnieje zmienna z ujemnym współczynnikiem w wierszu 0 i wszystkie współczynniki w kolumnie odpowiadajacej tej zmiennej sa niedodatnie, to funkcja celu jest nieograniczona.
Problem degeneracji Rozpatrzmy problem: max z = 3x 1 + 9x 2 x 1 + 4x 2 8 x 1 + 2x 2 4 x 1, x 2 0 Druga i trzecia tablica sympleksowa ma postać: x 1 x 1 x 2 s 1 s 2 z -3/4 0 9/4 0 18 x 2 1/4 1 1/4 0 2 s 2 1/2 0-1/2 1 0 x 1 x 2 s 1 s 2 z 0 0 3/2 3/2 18 x 2 0 1 1/2-1/2 2 x 1 1 0-1 2 0 Wartość zmiennej bazowej s 2 = 0. Po wykonaniu iteracji sypleksowej otrzymamy dokładnie takie samo rozwiazanie. Zmienia się tylko zmienne bazowe. Rozwiazanie, w którym pewna zmienna bazowa przyjmuje wartość 0 nazywany zdegenerowanymi.
Problem degeneracji Wierzchołek odpowiadajacy optymalnemu rozwiazaniu jest zdegenerowany, ponieważ przecinaja się w nim więcej niż dwie proste (x 1 = 0, x 1 + 4x 2 = 8, x 1 + 2x 2 = 4). Zatem temu wierzchołkowi odpowiada więcej niż jedno bazowe rozwiazanie dopuszczalne (może on być wyznaczony na trzy sposoby).
Problem degeneracji Istnieje możliwość (w rzadkich przypadkach), że algorytm wpadnie w cykl, tj. będzie powtarzał taka sama sekwencję rozwiazań bez poprawy wartości funkcji celu i bez spełnienia warunków optymalności. [Reguła antycyklowa Blanda]. W każdej iteracji: 1 Do bazy wchodzi zmienna o ujemnym współczynniku w wierszu 0 i najmniejszym indeksie. 2 Jeżeli więcej niż jedna zmienna może opuścić bazę (test współczynników nie jest jednoznaczny), to usuń z bazy zmienna o najmniejszym indeksie spośród tych zmiennych. z reguła Blanda jest zbieżny, tj. zawsze kończy pracę zwracajac optymalne rozwiazanie.