Algorytm simpleks
Transkrypt
Algorytm simpleks
Algorytm simpleks Uniwersalna, metoda, rozwiazywania program¶ ow liniowych jest algorytm sim, pleks. Metoda ta polega na badaniu kolejnych rozwiaza¶ , n bazowych programu liniowego o postaci kanonicznej w taki spos¶ ob, z_ e ² znajdujemy dowolne rozwiazanie bazowe programu; , ² sprawdzamy, czy jest ono optymalne; ² je_zeli dane rozwiazanie nie jest optymalne, znajdujemy nastepne rozwiazanie , , , bazowe lepsze lub przynajmniej nie gorsze ni_z poprzednie. Zde¯niujmy program liniowy: c1 x1 + c2 x2 + : : : + xn cn ! max; a11 x1 + a12 x2 + : : : + a1n xn · b1 ; a21 x1 + a22 x2 + : : : + a2n xn · b2 ; ::::::::::::::::::::::::::: am1 x1 + am2 x2 + : : : + amn xn · bm ; x1 ; x2 ; : : : ; xn ¸ 0 Mo_zna zapisa¶c go w postaci macierzowej: cx ! max; Ax · b x ¸ 0; gdzie 0 a11 B a21 B A=@ ::: am1 a12 a22 ::: am2 : : : a1n : : : a2n ::: ::: : : : amn ¡ c = c1 1 0 1 0 x1 C B C B C ; x = B x2 C ; b = B A @ ::: A @ xn ¢ c2 : : : cn : 1 b1 b2 C C; ::: A bn Algorytm simpleks polega na badaniu rozwiaza¶ , n bazowych programu o postaci kanonicznej. De¯nicja 1 Model o postaci kanonicznej jest to taki model, w kt¶ orym wszystkie warunki ograniczajace maj a posta¶ c r¶ o wno¶ s ci. , , Zatem zamieniamy wszystkie nier¶ owno¶sci na r¶ owno¶sci: ² w przypadku nier¶owno¶sci typu · do lewych stron warunk¶ ow ograniczajacych , dodajemy tzw. zmienne swobodne, kt¶ ore wchodza, do poczatkowego rozwiazania , , bazowego ( w pierwszej tablizy sympleksowej); 1 ² w przypadku nier¶owno¶sci typu ¸ od lewych stron odejmujemy zmienne swobodne i dodajemy tzw. zmienne sztuczne. W tym przypadku zmienne sztuczne wchodza, do pierwszej bazy. Do funkcji celu zmienne swobodne wchodza, ze wsp¶ oÃlczynnikami r¶ ownymi zeru, a zmienne sztuczne z tzw. wsp¶ oÃlczynnikami M, gdzie M jest liczba, bardzo du_za., Zmienne swobodne moga, znale¶z¶c sie, w ko¶ ncowym rozwiazaniu PL, a zmienne , sztuczne nie moga,, dlatego w funkcji celu, kt¶ ora jest maksymalizowana, zmienne sztuczne wystepuj a, ze wszp¶ oÃlczynnikami ¡M , natomiast w funkcji celu, kt¶ ora , jest minimalizowana zmienne sztuczne wystepuj a ze wsp¶ o l à czynnikami +M . , , Macierzowa posta¶c tablicy simpleksowej dla l-tej operacji: cbl Zmienne bazowe xbl zj cj ¡ zj c c Bl¡1 A T ¡1 cb Bl A ¡ cTb Bl¡1 A Bl¡1 cTb Bl¡1 ¡ cTb Bl¡1 Rozwiazanie , Bl¡1 b cTb Bl¡1 b PrzykÃlad 1 Firma produkuje dwa wyroby W1 i W2 . Ograniczeniem w produkcji sa, zapasy trzech surowc¶ ow S1 , S2 i S3 . Surowce S1 S2 S3 Cena (w zÃl) Zu_zycie surowca w jedn. na 1 szt. wyrobu W1 W2 2 1 3 3 1,5 30 20 Zapas surowca (kg) 1000 2400 600 Ustali¶c rozmiar produkcji wyrob¶ ow W1 i W2 , kt¶ ore zpewniaja, maksymalny zysk i ich sprzeda_zy przy istniejacych zapasach surowc¶ ow. , Tablica sympleksowa cb 0 0 0 cj Zmienne bazowe x3 x4 x5 zj cj ¡ zj 0 30 x1 2 3 1,5 0 30 20 x2 1 3 0 0 20 1 0 x3 1 0 0 0 0 0 0 x4 0 1 0 0 0 2 3 1 0 Zauwa_zmy, z_ e A = @ 3 3 A, I = @ 0 1 1; 5 0 0 0 2 0 x5 0 0 1 0 0 Rozwiazanie (bj ) , 1000 2400 600 0 1 0 1 0 1000 0 A, b = @ 2400 A, 1 300 0 1 0 1 x3 0 ¢ c = 30 20 0 0 0 , xb = @ x4 A, cb = @ 0 A. x5 0 1 0 1 0 1 0 2 1 0 ¡ 43 Macierz B2 ma posta¶c @ 0 1 3 A. Wtedy B2¡1 = @ 0 1 ¡2 A 0 0 32 0 1 0 0 1; 5 0 1 0 1 200 ¡ ¢ oraz B2¡1 ¢ A = @ 0 3 A, B2¡1 ¢ b = @ 1200 A, cTb B2¡1 A = 30 0 , 1 0 400 ¡ ¢ cTb B2¡1 = 0 0 20 oraz cTb B2¡1 b = 12000. W¶ owczas II tablica simpleksowa wyglada nast epuj aco: , , , ¡ cb cj Zmienne bazowe x3 x4 x1 zj cj ¡ zj 30 20 0 0 0 Rozwiazanie (bj ) , x1 x2 x3 x4 x5 0 0 1 1 0 - 43 200 0 0 3 0 1 -2 1200 2 30 1 0 0 0 400 3 30 0 0 0 20 12000 0 20 0 0 -20 0 1 0 1 1 0 2 1 0 ¡ 43 Macierz B3 ma posta¶c @ 3 1 3 A. Wtedy B3¡1 = @ ¡3 1 2 A 0 0 32 0 1 0 0 1; 5 0 1 0 1 200 ¡ ¢ oraz B3¡1 ¢ A = @ 0 0 A, B3¡1 ¢ b = @ 600 A, cTb B3¡1 A = 30 20 , 1 0 400 ¡ ¢ T ¡1 cTb B3¡1 = 20 0 ¡ 20 oraz c B b = 16000. W¶ owczas III tablica simb 3 3 pleksowa wyglada nast epuj aco: , , , cb cj Zmienne bazowe x2 x4 x1 zj cj ¡ zj 0 20 0 30 30 x1 0 0 1 30 0 20 x2 1 0 0 20 0 1 0 Macierz B4 ma posta¶c @ 3 0 0 10 1 0 1 oraz B4¡1 ¢ A = @ 0 0 A, B4¡1 1 0 0 x3 1 -3 0 20 -20 1 0 x4 0 1 0 0 0 0 x5 - 43 2 2 3 - 20 3 20 3 Rozwiazanie (bj ) , 200 600 400 16000 0 2 2 1 3 ¡1 3 A. Wtedy B4 = @ ¡1; 5 0; 5 1; 5 0 1 ¡ 31 1 600 ¡ ¢ b = @ 300 A, cTb B4¡1 A = 30 200 3 1 0 1 A 0 ¢ 20 , ¡ ¢ cTb B4¡1 = 10 10 0 oraz cTb B4¡1 b = 18000. W¶ owczas IV tablica simplek3 sowa wyglada nast epuj aco: , , , cb 20 0 30 cj Zmienne bazowe x2 x5 x1 zj cj ¡ zj 30 x1 0 0 1 30 0 20 x2 1 0 0 20 0 0 x3 -1 -1,5 1 10 -10 4 0 x4 2 3 0,5 ¡ 13 10 3 ¡ 10 3 0 x5 0 1 0 0 0 Rozwiazanie (bj ) , 600 300 200 18000