Justyna Kosakowska i Piotr Malicki Badania operacyjne- programowanie liniowe Materiały dydaktyczne dla studentów matematyki (specjalność: matematyka w ekonomii i finansach) Wydział Matematyki i Informatyki Uniwersytet Mikołaja Kopernika Toruń 2009 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego
Podczas przygotowywania niniejszych notatek korzystaliśmy z następującej literatury: [] M. S. Bazaraa, C. M. Shetty, Nonlinear Programming Theory and Algorithms, New York 979. [2]T.H.Cormen,Ch.E.Leiserson,R.L.Rivest, Wprowadzeniedo algorytmów, WN-T, Warszawa 200. [3] M. M. Sysło, Algorytmy, WSiP, Warszawa 997. [4] M. M. Sysło, N. Deo, J. S. Kowalik, Algorytmy optymalizacji dyskretnej, PWN, Warszawa 995. Literatura uzupełniająca: [] N. Deo, Teoria grafów i jej zastosowania w technice i informatyce, PWN 980. [2] R. Faure, J.-P. Boss, A. Le Garff, Badania operacyjne, PWN, Warszawa 982. [3] S. I. Gass, Programowanie liniowe, PWN, Warszawa 980. [4] B. Korzan, Elementy teorii grafów i sieci(metody i zastosowania), WN-T, Warszawa 978. [5] K. Manteuffel, E. Seiffart, Wstęp do algebry liniowej i programowania liniowego, PWN, Warszawa 975.
SPIS TREŚCI 3 Spis treści I Wykład 5 Wprowadzenie 5. Ryshistoryczny... 5.2 Oznaczenia... 6.3 Tematykawykładu... 6 2 Metoda sympleksowa 9 2. Różneformyzagadnieniaprogramowanialiniowego... 9 2.2 Punktyiwektoryekstremalne... 0 2.3 Metodasympleksowa... 20 2.3. Dualnametodaprogramowanialiniowego... 3 2.4 Elementyprogramowaniacałkowitoliczbowego... 34 3 Strategie zachłanne 43 3. Problemwyboruzajęć... 43 3.2 Problemplecakowy... 45 4 Programowanie dynamiczne 48 4. Problemplecakowy-programowaniedynamiczne... 48 5 Grafy- podstawowe definicje 52 5. Reprezentacjegrafów... 56 5.. Macierzesąsiedztwa... 56 5..2 Listysąsiedztwa... 57 6 Minimalne drzewa rozpinające 58 6. AlgorytmKruskala... 59 7 Problem najkrótszych dróg 63 7. AlgorytmDijkstry... 64 7.2 AlgorytmBellmana-Forda... 69 8 Maksymalny przepływ 7 8. Przekrojewsieciach... 73 8.2 Sieciresidualne... 74
SPIS TREŚCI 4 8.3 AlgorytmForda-Fulkersona... 75 8.4 AnalizaczasudziałaniaalgorytmuForda-Fulkersona... 77 8.5 Siecizwielomaźródłamiiujściami... 78 9 Zagadnienie transportowe 79 9. Rozwiązanie zagadnienia transportowego metodą maksymalnegoprzepływu... 80 0 Skojarzenia w grafach dwudzielnych 89 II Dodatek 95 Pesymistyczna złożoność czasowa algorytmów 95.Notacja O, Ωoraz Θ... 96 2 Przeszukiwanie grafu wszerz 97 2.AnalizaczasudziałaniaalgorytmuBFS... 99 3 Zbiory wypukłe i ich własności 00 3.Topologicznewłasnościzbiorówwypukłych...04 4 Problem dualności w programowaniu liniowym 4 4. Geometryczna interpretacja dualności programowania liniowego6
5 Część I Wykład Notatki te są istotnym rozszerzeniem skryptu Badania operacyjne(kurs letni) przygotowanego w 2009 roku(projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego). Zdecydowaliśmy się włączyć wykład z Kursu letniego do niniejszego skryptu, aby był on spójny oraz aby studenci mieli cały materiał dostępny w jednym miejscu. Szczegółowo omówiliśmy nowe zagadnienia: przepływ w sieciach, zagadnienie transportowe, skojarzenia w grafach dwudzielnych, Ponadto dodano nowe przykłady, które ilustrują algorytm sympleks. W części Dodatek umieściliśmy również treści pozwalające lepiej zrozumieć tematykę wykładu: problem złożoności czasowej algorytmów, przesukiwanie grafów wszerz, topologiczne własności zbiorów wypukłych oraz problem dualności w programowaniu liniowym.. Wprowadzenie.. Rys historyczny W roku 827 matematyk francuski J.B.J. Fourier opublikował metodę rozwiązywania układu nierówności liniowych. Publikacja ta jest zwykle uważana za początek programowania liniowego. W 939 roku rosyjski matematyk L.V. Kantorovich sformułował problem przydziału środków jako problem programowania liniowego. Mniej więcej w tym samym okresie duński ekonomista T.C. Koopmans sformułował model programowania liniowego dla pewnych klasycznych zagadnień występujących w ekonomii. W czasie trwania II wojny światowej modele programowania liniowego były stosowane do rozwiązywania problemów związanych z planowaniem wojskowym. W roku 947 matematyk
. WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwojem komputeryzacji, a zatem z możliwością zastosowania metod programowania liniowego do rozwiązywania problemów występujących w rzeczywistości. W roku 975 Kantorovich oraz Koopmans otrzymali za swoje prace nagrodę Nobla w dziedzinie nauk ekonomicznych..2. Oznaczenia Będziemy używać następujących oznaczeń. X - moc skończonego zbioru X; N = {0,, 2,...}-zbiórliczbnaturalnych; Z- pierścień liczb całkowitych; Q- ciało liczb wymiernych; R- ciało liczb rzeczywistych; dalej K {Z, Q, R} -naturalnyporządekwk n ( powspółrzędnych ); M m n (K)-zbiór m n-macierzyowspółczynnikachwk; x T -macierzlubwektortransponowanydo x; e,...,e n -bazastandardowaprzestrzeni K-liniowej K n ;.3. Tematyka wykładu Głównym celem wykładu jest omówienie algorytmów rozwiązujących pewne problemy, które można sformułować jako zagadnienia programowania liniowego.będziemyrozważaćproblemypostaci:dladanego c T R n,znaleźć minimum funkcji liniowej f(x) = c T x
. WPROWADZENIE 7 napodzbiorzezbioru R n ograniczonympewnyminierównościamiorazrównaniami liniowymi. Czasami ciało R będziemy zastępować pierścieniem Z i będziemy wtedy mówić o programowaniu całkowitoliczbowym. Wiele praktycznych problemów występujących w ekonomii oraz badaniach operacyjnych może być sformułowanych w postaci zagadnienia programowania liniowego(m.in. zagadnienie transportowe, problem plecakowy). W trakcie wykładu omawiamy tego typu problemy. Notatki zawierają także część Dodatek, w której umieszczono fakty pozwalające lepiej zrozumieć treść wykładu. Przykład.. Załóżmy, że pewna firma produkuje dwa rodzaje zapałek: grillowe(długie) i normalne(krótkie). Zysk z każdego pudła zapałek grillowych wynosi 300 EUR, a z każdego pudła zapałek normalnych wynosi 200 EUR. Firma posiada jedną maszynę robiącą długie lub krótkie zapałki. Maszyna ta może wyprodukować w jednym roku maksymalnie 900 000 pudeł zapałek długich lub krótkich. Do produkcji zapałek firma potrzebuje drewna oraz pudeł. Do otrzymania jednego pudła zapałek grillowych potrzeba 3 m 3 drewna,natomiastdootrzymaniajednegopudłazapałeknormalnychpotrzebam 3 drewna.firmaposiada 800000m 3 drewnanaroknastępny, ponadtonaszafirmama700000pudełnazapałkigrilloweoraz600000pudeł na zapałki normalne. Naszym celem jest zmaksymalizowanie zysków firmy w roku następnym, przy czym zakładamy, że firma może sprzedać wszystko co wyprodukuje. Zapiszmypowyższyproblemzapomocąnierówności.Niech x oraz x 2 oznaczają odpowiednio ilość pudeł( 00 000) zapałek długich oraz ilość pudeł( 00 000) zapałek krótkich wyprodukowanych w roku następnym. Zysk z jednegopudłazapałekdługichwynosi300eur(3 00EUR),zatemzyskzx pudełzapałekdługichwynosi 3x (stueurojednostek).podobniezyskzx 2 pudełzapałekkrótkichwynosi 2x 2 (stueurojednostek).przyformułowaniu naszego zagadnienia musimy wziąć pod uwagę następujące ograniczenia: wydajnośćmaszynyjestograniczonaprzez9( 00000)pudełnarok, czyli x + x 2 9; ograniczeniezwiązanezilościądrewna,to 3x + x 2 8; ograniczeniezwiązanezilościądostępnychpudeł,to x 7, x 2 6; ograniczeniezwiązanezsensownościąrozważań,to x 0, x 2 0.
. WPROWADZENIE 8 Możemy teraz napisać model dla naszej firmy: przy warunkach: max(3x + 2x 2 ) x + x 2 9, 3x + x 2 8, x 7, x 2 6, x, x 2 0. Jest to przykład modelu programowania liniowego(w skrócie PL-modelu). Funkcję 3x + 2x 2 nazywamyfunkcjącelu.wdalszejczęściwypracujemy metody ogólne, pozwalające rozwiązywać podobne problemy. Powyższy problem rozwiążmy graficznie. Obszarwyznaczonyprzezpunkty [ ] 0, v, v 2, v 3, v 4 nazywamydopuszczalnym, zawiera on punkty spełniające ograniczenia. Same zaś x punkty x 2 0, v, v 2, v 3, v 4 nazywamywierzchołkamiobszarudopuszczalnego.łatwo [ ] [ ] [ ] [ ] 6 4, 5 3 0 policzyć,że v =, v 0 2 =, v 4, 5 3 =, v 6 4 =. Zauważmy, że nierówność x 6 7niemawpływunaobszardopuszczalny.Szkicującfunkcjęcelu
2. METODA SYMPLEKSOWA 9 [ ] 4, 5 widzimy,żeosiągaonawartośćmaksymalnądlawierzchołka v 2 =. 4, 5 Wartość funkcji celu w tym wierzchołku wynosi 22, 5, zatem maksymalny zyskdlafirmywynosi22500eur. 2. Metoda sympleksowa 2.. Różne formy zagadnienia programowania liniowego Zadanie postaci: znaleźćminimumfunkcji f(x) = c T x (2.) na zbiorze ograniczonym warunkami: Ax = b, (2.2) x 0 (2.3) będziemy nazywać zagadnieniem programowania liniowego w postaci standardowej.podzbiór X R n zdefiniowanyprzezograniczenia(2.2)oraz (2.3) nazywamy zbiorem dopuszczalnym. Każdy element x X zbioru dopuszczalnego nazywamy rozwiązaniem dopuszczalnym. Rozwiązanie dopuszczalne x, w którym funkcja f osiąga minimum nazywamy rozwiązaniem optymalnym. Można sobie wyobrazić praktyczne zagadnienia, które nie będą zapisane w postaci standardowej. Omówimy teraz wszystkie możliwe przypadki.. Chcemy znaleźć maksimum(zamiast minimum funkcji f). W tym przypadku wystarczy wektor c zastąpić wektorem c oraz otrzymaną minimalną wartość funkcji przemnożyć przez. 2.Nierówność a i x + a i2 x 2 +... + a in x n b i (odp. a i x + a i2 x 2 +... + a in x n b i )możnasprowadzićdorównania a i x +a i2 x 2 +...+a in x n + x n+ = b i (odp. a i x + a i2 x 2 +... + a in x n x n+ = b i )poprzezwprowadzeniedodatkowejzmiennej x n+ 0(musimywprowadzićtyledodatkowych zmiennych, ile mamy nierówności!).
2. METODA SYMPLEKSOWA 0 3. Ograniczenia x 0 mogą mieć inną postać: (a)ograniczenie x j d j zamieniamynaograniczenie x j 0wprowadzającnowązmienną x jtaką,że x j = x j d j ; (b)ograniczenie x j d j zamieniamynaograniczenie x j 0wprowadzającnowązmienną x j taką,że x j = d j x j ; (c)ograniczenie x j d j zamieniamynaograniczenia x j, x j 0wprowadzającnowezmienne x j, x j takie,że x j = x j x j (korzystamy tutaj z faktu, że każda liczba rzeczywista może być przedstawiona jako różnica liczb nieujemnych). W dalszej części wykładu będziemy zakładać, że mamy dane zagadnienie programowania liniowego w postaci standardowej. 2.2. Punkty ekstremalne i wektory kierunkowe ekstremalne Łatwo jest udowodnić(zadanie na ćwiczenia), że jeśli funkcja liniowa osiąga minimum(lub maksimum) na zbiorze wypukłym, to musi ona osiągać to ekstremum również w punktach ekstremalnych tego zbioru. Dlatego poniżej poniżej omówimy tematykę związaną z punktami ekstremalnymi. Głównie skupimy się na charakteryzacji punktów ekstremalnych zbiorów dopuszczalnych. Niech X R n będziezbioremwypukłym.punkt x X nazywamy ekstremalnym, jeśli x,y X λ (0,) p = ( λ)x + λy x = y = p. Przykład 2.4. Oznaczmy przez E zbiór punktów ekstremalnych zbioru X. [ ] [ ] 9 [ ] [ ] x (i)dlazbioru X = R x 2 ; 3 x 2 0 8 x 2 7, x 0 pochodzącego z Przykładu., E =,,,,. x 2 0 {[ 0 ] [ ] [ ] [ 6 ] [ ]} 0 6 4, 5 3 0 0 0 4, 5 6 6 (ii) X = {(x, x 2 ) R 2 ; x 2 + x2 2 }, E = {(x, x 2 ) R 2 ; x 2 + x2 2 = }.
2. METODA SYMPLEKSOWA Jeśli zbiór X jest domknięty i ograniczony, to dowolny punkt tego zbioru może być przedstawiony jako wypukła kombinacja punktów ekstremalnych. Wektor 0 v R n nazywamykierunkowymzbioru X,jeśli x X λ 0 x + λv X. Dwa wektory kierunkowe v, w zbioru X nazywamy równymi, jeśli λ>0 v = λw. Wektor kierunkowy v zbioru X nazywamy ekstremalnym, jeżeli w,w 2 λ,λ 2 >0 v = λ w + λ 2 w 2 λ>0 w = λw 2, gdzie w, w 2 sąwektoramikierunkowymizbiory X. Wdalszejczęścirozważaćbędziemyzbiory Xpostaci X = {x R n ; Ax = b, x 0},gdzie Aoznaczamacierzwymiaru m n, b R m.zakładamyponadto, że rz(a) = m. Niech A = [BN](po ewentualnej permutacji kolumn), gdzie Bjest m mmacierzą, N jest m (n m)macierzą,natomiast rz (B) = m.wtedy Ax = b, x 0 Bx B + Nx N = b, gdzie x B 0, x N 0.Niech Abędziejakwyżej.Wówczasprzez C(A)oznaczamy zbiór takich macierzy nieosobliwych B wymiaru m m, dla których istniejemacierz Nwymiaru m (n m)taka,że [BN]dasięuzyskaćz macierzy A poprzez przestawienie kolumn. Uwaga 2.5. Dalej będziemy stosować następujące uproszczenia notacji. Zapis A = [BN]będzieoznaczać,żemacierz Amożnauzyskaćzmacierzy [BN]przezpewnąpermutację σkolumn.wtedy x = [x B x N ]będzieznaczyć, żewektor xpowstajezwektora x = [x B x N ]przeztęsamąpermutację σ współrzędnych. Twierdzenie 2.6(o charakteryzacji punktów ekstremalnych). Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz(a) = [ m.punkt ] B x Xjestpunktemekstremalnymwtedyitylkowtedy,gdy x = b = [ ] 0 xb dlapewnego B C(A)takiego,że B b 0. x N
2. METODA SYMPLEKSOWA 2 [ ] B Dowód.Weźmy B C(A)takie,że B b 0.Niech x = b.zauważmy,że x X.Rzeczywiściedla A = [BN]mamy Ax = [BN] b [ 0 ] B = 0 b + N0 = b,zarazem x 0.Załóżmy,że x = λx + ( λ)x 2 dla x, x 2 X oraz λ (0, ).Niech x T = [x T, x T 2], x T 2 = [x T 2, x T 22].Wtedy [ ] [ ] [ ] B b x x2 = λ + ( λ). 0 x 2 Ponieważ x 2, x 22 0, λ (0, ), λ, λ > 0,tomamy x 2 = x 22 = 0. Ponadto, b = Ax = Bx,awięc x = B b.podobnie x 2 = B b.wobec równości x = x 2 = B bmamy x = x 2 = x,zatem xjestpunktem ekstremalnym w X. Niechteraz x R n będziepunktemekstremalnym.załóżmy,że x = [x, x 2,...,x k, 0, 0,..., 0] T,gdzie x i > 0dla i =, 2,..., k.pokażemy,że kolumny a, a 2,...,a k sąliniowoniezależne.gdybytakniebyło,toistniałyby liczby λ, λ 2,...,λ k R, k i= λ2 i 0takie,że k i= λ ia i = 0.Niech λ = [λ, λ 2,...,λ k, 0, 0,..., 0] T.Rozpatrzmywektory x () = x+rλ, x (2) = x rλ, gdzie r > 0, x (), x (2) 0.Zauważmy,że x 22 Ax (i) = k a j (x j + ( ) i rλ j ) = j= k k a j x j + ( ) i r a j λ j = b. j= j= Zatem x (), x (2) X,aponieważ r > 0,to x () x (2).Ponadto x = 2 x() + 2 x(2),coprzeczytemu,że xjestpunktemekstremalnym.zatemkolumny a, a 2,...,a k sąliniowoniezależne.czylizn kkolumnmożnawybrać m k kolumn tak, aby razem z pierwszymi k kolumnami tworzyły m liniowo niezależnychwektorów.załóżmy,żetymikolumnamisą a k+, a k+2,...,a m. Wobectegomacierz Amożebyćzapisanawpostaci A = [BN],gdzie B = [a, a 2,...,a m ] C(A),rz (B) = m.mamy b = Ax = Bx B + Nx N = Bx B,a stąd x B = B b,czyli x = [ B b 0 ]. Wniosek2.7.Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz (A) = m.zbiór Xposiadaskończeniewielepunktówekstremalnych. Dowód.Wynikaztwierdzenia2.6orazfaktu,że C(A) <.
2. METODA SYMPLEKSOWA 3 Twierdzenie 2.8(o istnieniu punktów ekstremalnych). Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz (A) = m.jeśli X,to zbiór X posiada co najmniej jeden punkt ekstremalny. Dowód.Ustalmy x X.Niech x = [x, x 2,..., x k, 0, 0,..., 0] T,gdzie x i > 0, i =, 2,..., k.rozpatrzmykolumny a, a 2,..., a k macierzy A.Gdysą oneliniowoniezależne,topunkt xjestekstremalny.załóżmy,że a, a 2,...,a k sąliniowozależne,toznaczyistniejąliczby λ, λ 2,...,λ k R, k i= λ2 i 0 oraz k i= λ ia i = 0.Niech r = min i=,2,...,k { x i λ i ; λ i > 0} = x j λ j.możemyzałożyć, żezbiór i {, 2,..., k}takich,że λ i > 0jestniepusty.Niech x R n,gdzie { x xi rλ i = i dla i =, 2,..., k 0 dla i = k +, k + 2,...,n. x 0,boinaczejdlapewnego j {, 2,..., k}mielibyśmy x j rλ j < 0,astąd r > x j λ j iotrzymujemysprzecznośćzminimalnością. 2. Ax = b,rzeczywiście Ax = k i= (x i rλ i )a i = k i= x ia i r k i= λ ia i = Ax = b.zatem x X. 3. x i 0 = 0dlapewnegoindeksu i 0 {, 2,..., k}.wiemy,żeistnieje i 0 {, 2,..., k}taki,że r = x i 0 λ i0.zatem x i 0 = x i0 rλ i0 = 0. Jeślikolumny a, a 2,...,a k bez a i0 sąliniowoniezależne,topunkt x jest ekstremalny. Lemat2.9.Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz (A) = m.wektor v R n jestwektoremkierunkowymniepustego zbioru Xwtedyitylkowtedy,gdy Av = 0iv 0, v 0. Dowód.Niech v R n będziewektoremkierunkowymzbioru X.Weźmy x X,wtedy x+v X.Mamy Av = A(x+v x) = A(x+v) Ax = b b = 0, bo v 0 jest wektorem kierunkowym. Załóżmyteraz,że Av = 0, v 0.Niech x X, λ > 0.Mamy A(x+λv) = Ax + λav = Ax = b.ponieważ x 0, λ > 0, v 0,to x + λv 0czyli x + λv X. Twierdzenie 2.0(o charakteryzacji kierunków ekstremalnych). Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz (A) = m. Wektor v jest kierunkiem ekstremalnym zbioru X wtedy i tylko wtedy, gdy istnieją B C(A),kolumna a j macierzy Aniewystępującawmacierzy B oraz λ > 0takie,że
2. METODA SYMPLEKSOWA 4 (i) B a j 0, (ii) v = λ(( B a j ) T, e T j )T,gdzie e j jestwektoremmającym n m współrzędnych z których tylko j-ta współrzędna jest różna od zera i równa się jeden. Dowód.Niech v = λ(( B a j ) T, e T j )T i B a j 0.Pokażemy,że vjest wektoremkierunkowym.zauważmy,że v 0, v 0oraz [ ] B Av = [BN]λ a j = λb( B a e j ) + λne j = λ( a j + a j ) = 0. j Zatem na mocy Lematu 2.9 wektor v jest kierunkowy. Niech v, v 2 będąwektoramikierunkowymiorazniech v = λ v + λ 2 v 2, gdzie λ, λ 2 > 0.Zauważmy,że n m współrzędnychwektora vjest równe 0.Zatemodpowiedniewspółrzędnewektorów v i v 2 sąrównieżzerowe iwektorytemogąbyćzapisanewpostaci v T = α [v T, e T j ], v T 2 = α 2 [v T 2, e T j ], gdzie α, α 2 > 0.Wiemy,że Av = Av 2 = 0zatemmamy 0 = Av = [BN]α [v T, et j ]T = α (Bv T + NeT j ) = α (Bv T + at j ), stąd v = B a j.podobnie v 2 = B a j,mamywięc v = v 2,aw konsekwencji v = λv 2,gdzie λ = α α 2.Ostatecznieotrzymujemy,żewektor v jest ekstremalny. Niech vbędziewektoremekstremalnym, v = [v, v 2,...,v k, 0,...,0, v j, 0,..., 0] T, v i > 0dla i =, 2,..., koraz i = j.pokażemy,żekolumny a, a 2,...,a k macierzy Asąliniowoniezależne.Załóżmy,żetakniejesttzn. istnieją λ, λ 2,...,λ k Rtakie,że k i= λ2 i 0, k i= λ ia i = 0. Niech λ = [λ, λ 2,..., λ k, 0, 0,..., 0] T.Rozpatrzmywektory v () = v+rλ, v (2) = v rλ,gdzie r > 0, v (), v (2) 0, r = min i=,2,...,k { v i λ i ; λ i > 0} = v j λ j. Zauważmy, że Av (i) = A(v + ( ) i rλ) = Av + ( ) i raλ = 0 + ( ) i r k a i λ i = 0, i= Ponieważ r > 0,to v () v (2) v.zatem v = 2 v() + 2 v(2),coprzeczytemu,że vjestwektoremekstremalnym.czylikolumny a, a 2,...,a k sąliniowo niezależne.dodatkoworz (A) = m,stąd k mwięcmożemywybrać m k wektorówzezbioru {a i ; i = k +, k + 2,..., m, i j},którerazemzkolumnami a, a 2,...,a k sąliniowoniezależne.oznaczmy B = [a, a 2,...,a m ]
2. METODA SYMPLEKSOWA 5 C(A).Zauważmy,że a j B,bo a, a 2,...,a k, a j sąliniowozależne.mamy 0 = Av = [BN]v [ = ] Bv B + Nv N = Bv B + a j v j,astąd v B = v j ( B a j ), B czyli v = v a j j.ponieważ v 0, v e j > 0więc B a j 0. j Wniosek 2..Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz(a) = m.zbiór Xposiadaskończeniewielekierunków ekstremalnych. Twierdzenie2.2(oreprezentacji).Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz (A) = m.niech x, x 2,...,x k będą wszystkimipunktamiekstremalnymizbioru X,natomiast v, v 2,..., v l wszystkimi wektorami ekstremalnymi zbioru X. Wówczas x X wtedy i tylko wtedy,gdyistniejątakieliczby λ, λ 2,...,λ k 0,którychsumajestrówna jedenoraztakieliczby µ, µ 2,...,µ l 0,że x = k λ i x i + i= l µ i v i. i= Dowód. Niech Y = {x R n ; λ,λ 2,...,λ k 0, P k i= λ i=, µ,µ 2,...,µ l 0 x = k λ i x i + i= l µ i v i }. i= Pokażemy,że X = Y.Zauważmy,że Y,boztwierdzenia2.8istniejeco najmniej jeden punkt ekstremalny. (i) Y X.Niech x Y, x = k i= λ ix i + l i= µ iv i, λ i, µ j 0, k i= λ i =, i =, 2,..., k, j =, 2,...,l.Mamy x = k i= λ ix i X.Niech x i = x i + µ iv i,gdzie x 0 = x.wówczas i x i Xczyli x = x l X. (ii) X Y.Zauważmy,że Y jestwypukłyidomknięty.załóżmy,że X \ Y iniech z X \ Y,czyli z Y.NamocyTwierdzenia3.8 istniejąwówczas:wektor p R n i α > 0takie,że p T z > αoraz k ( ) p T ( λ i x i + i= l µ i v i ) α, i= dladowolnych λ i, µ j takich,że k i= λ i =, λ i, µ j 0, i =, 2,..., k, j =, 2,..., l.ponieważ µ j możnawybraćdowolnieduże,tonierówność ( )
2. METODA SYMPLEKSOWA 6 jestprawdziwatylkowtedy,gdy p T v i 0dla i =, 2,..., l.kładąc µ i = 0 dlawszystkich i, λ i = iλ j = 0dla j idostajemyz( ),że p T x i α dla i =, 2,..., k.ponieważ p T z > α,to p T z > p T x i dladowolnego i.z powyższych rozważań wynika, że istnieje niezerowy wektor p, dla którego zachodzą następujące nierówności: ( ) p T z > p T x i dla i =, 2,..., k, ( ) p T v i 0 dla i =, 2,..., l. Rozważmy punkt ekstremalny x określony następująco: p T x = max i k pt x i. [ B Ponieważ x jest punktem ekstremalnym, to z Twierdzenia 2.6 x = b 0 gdzie A = [BN]oraz B b 0.Ponieważ z X,to Az = boraz z 0. Zatem Bz B + Nz N = biz B = B (b Nz N ) = B b B Nz N.Niech z T = [zb T, zt N ].Z( )mamy pt z p T x > 0,ponadtoniech p T = [p T B, pt N ]. Wówczas 0 < p T z p T x = p T Bz B + p T Nz N p T Bx B p T Nx N = p T B(B b B Nz N )+ p T N pt B B b = p T B B b p T B B Nz N + p T N pt B B b = (p T N pt B B N)z N, bo z N 0, z X.Wobectegoistniejeindeks i 0 > mtaki,że z i0 > 0oraz p i0 p T B B a i0 > 0.Pokażemy,żenierówność B a i0 0niejestprawdziwa.Załóżmy,że B a i0 0.Wówczas vi T 0 = (( B a i0 ) T, e T i 0 ),gdzie e i0 jest wektorem o n m współrzędnych z jedynką(jako jedynym niezerowym elementem)namiejscuoindeksie i 0,jestekstremalnymwektoremkierunkowymzbioru XnamocyTwierdzenia2.0.Z( )wynika,że p T v i0 0 czyli p i0 p T B B a i0 0,codajesprzeczność.Zatem B a i0 0.Zdefiniujmy wektor x następująco: [ ] [ ] B x = b B + λ a i0, 0 e i0 gdzie λ = min i m { b i y ij ; y ij > 0} = br y rj > 0, b = B b, y i0 = B a i0. Zauważmy, że x posiada nie więcej niż m dodatnich współrzędnych oraz x r = 0, x i0 = λ.wektor x X,ponieważmamy Ax = [BN]x = BB b + λ( BB a i0 + Ne i0 ) = BB b = b. ],
2. METODA SYMPLEKSOWA 7 Zauważmy,żeukład a, a 2,...,a r, a r+, a r+2,...,a m, a i0 jestliniowoniezależny.mamy y i0 = B a i0 zatem a i0 = By i0.wówczas a i0 = α a + α 2 a 2 + + α m a m oraz α r 0. Zatemzbiórwektorów {a, a 2,...,a m }\{a r }, a i0 jestliniowoniezależny.niech B = [a, a 2,...,a r, a r+, a r+2,...,a m, a i0 ].Mamy B C(A), A = [B, N], b = Ax = [B, N]x = Bx B + Nx N = Bx B. [ ] Stąd x B = B B b 0.Zatem x = b iztwierdzenia2.6 xjestpunktem 0 ekstremalnym. Ponadto [ ] b p T x = [p T B, pt N ] λyi0 = p T B λe (b λy i 0 ) + p T N λe i 0 = p T B b λpt B y i 0 + λp i0 = i0 = p T BB b + λ(p i0 p T BB a i0 ) = p T Bx + λ(p i0 p T BB a i0 ). Ponieważ λ > 0oraz p i0 p T B B a i0 > 0,to p T x > p T x i0.zatemskonstruowaliśmypunktekstremalny x,dlaktórego p T x > p T x,codajesprzeczność, ponieważ p T x = max i k p T x i. Wniosek 2.3(o istnieniu kierunkowych wektorów ekstremalnych). Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz(a) = m. Wówczas X posiada kierunkowy wektor ekstremalny wtedy i tylko wtedy, gdy X jest nieograniczony. Dowód. Oczywiście jeśli zbiór X posiada kierunkowy wektor ekstremalny, to X jest nieograniczony. Pokażemy implikację przeciwną. W tym celu załóżmy, że X nie posiada kierunkowych wektorów ekstremalnych. Niech x X, x = k i= λ ix i, k i= λ i =, λ i 0orazniech x, x 2,...,x k będą punktami ekstremalnymi. Mamy x = k λ i x i i= k i= λ i x i max i k { x i }. Zatem X jest ograniczony. Otrzymana sprzeczność dowodzi, że zbiór X posiada kierunkowy wektor ekstremalny.
2. METODA SYMPLEKSOWA 8 Twierdzenie2.4.Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz (A) = miniech x, x 2,..., x k będąwszystkimipunktamiekstremalnymi,zaś v, v 2,...,v l wszystkimiwektoramiekstremalnymi zbioru X, c R n.wówczas inf{c T x; x X} R j=,2,...,l c T v j 0.Jeżeli j=,2,...,l c T v j 0,to i {,2,...,k} inf{c T x; x X} = c T x i. Dowód. Z Twierdzenia 2.2 wiemy, że dowolny element x spełnia warunki Ax = b, x 0wtedyitylkowtedy,gdy x = k i= λ ix i + l j= µ jv j, λ i, µ j 0, k i= λ i =, i =, 2,..., k, j =, 2,..., l.zatem c T x = c T ( k i= λ ix i + l j= µ jv j ),gdzie λ i, µ j 0, k i= λ i =, i =, 2,..., k, j =, 2,..., l.jeślidlapewnego j, c T v j < 0,tonaszewyrażeniejestnieograniczone,ponieważ µ j możemywybraćdowolnieduże.zatem inf{c T x; x X} Rwtedyitylkowtedy,gdy c T v j 0dladowolnego j =, 2,..., l. Jeśli c T v j 0dladowolnego j =, 2,...,l,towceluosiągnięcianajmniejszejwartościmożemyprzyjąć µ j = 0dla j =, 2,..., l.zatem inf{c T ( k λ i x i + i= l k µ j v j )} = inf{c T λ i x i ; λ i 0, j= i= k λ i = }. Niech λ i0 = oraz λ i = 0dla i i 0,gdzieindeks i 0 jesttaki,że c T x i0 = min i k {c T x i }.Wówczas c T x i0 k i= λ ic T x i,cokończydowód. Niech X = {x R; Ax = b, x 0},gdzie A M m n (R), b R m, rz (A) = m.zajmiemysięszukaniem inf{c T x; x X}.Niech xbędziepunktem ekstremalnym zbioru X. Z Twierdzenia [ ] 2.6 wiemy, że istnieje B [ C(A), ] B B b 0oraz A = [BN], x = b xb.weźmydowolny x X, x =. [ ] 0 x N xb Wówczas Ax = btzn. [BN] = b,skąddostajemy Bx B + Nx N = b. x N Zatem x B = B b B Nx N.Policzmy c T x c T x = c T Bx B + c T Nx N = c T B b c T BB Nx N + c T Nx N = c T Bx B + c T Nx N + Przypadek : i= c T BB Nx N + c T Nx N = c T x + (c T N c T BB N)x N. c T N ct B B N 0.Ponieważ x 0,to x N 0iwkonsekwencji c T x c T x. Zatem x jest szukanym punktem.
2. METODA SYMPLEKSOWA 9 Przypadek 2: c T N ct B B N 0.Wszczególnościniechdlapewnegoindeksu jbędzie c T j ct B B a j < 0(stąd c T x < c T x). Przypadek 2a: Zakładamy,że B a j 0.Wówczasbiorąc v j = [ B a j e j ],gdzie e j jest wektoremon mwspółrzędnychmającymjedynkęnamiejscu j,anapozostałych miejscach zero, otrzymujemy kierunkowy wektor ekstremalny. Wobectego x = x + v j, x X.Zrówności c T x = c T x + c T v j oraz c T x = c T x + (c T N ct B B N)x N dostajemy c T v j = (c T N ct B B N)x N = c T j ct B B a j < 0, czyli problem nie posiada rozwiązania. Przypadek 2b: Zakładamy,że B a j 0.Weźmy v j = [ ] B a j ioznaczmy y = B e a j, j b = B b.niech λ = min i m { b i y i ; y i > 0} = b i 0 y i0, x = x + λv j.pokażemy,że [ ] B x X.Wiemy,że Ax = b,natomiast Av j = [BN]v j = [BN] a j = a j + a j = 0,zatem Ax = b.musimyjeszczeudowodnić,że x 0.Dla i =, 2,..., mmamy e j x = x i + λ(v j ) i = (B b) i + b i 0 y i0 ( B a j ) i = b i b i 0 y i0 y i. Rozważmy dwa przypadki:.jeśli y i 0,tooczywiście x i 0, 2.jeśli y i > 0,to b i y i b i 0 y i0,astąd x i 0. Dla i = m +, m + 2,..., noraz i jmamy x i = 0.Dla i = jmamy x i = λ > 0. Wektor x posiada niezerowe współrzędne co najwyżej na miejscach, 2,..., i 0, i 0 +,..., m, j.pokażemy,że a, a 2,...,a i0, a i0 +,...,a m, a j są liniowo niezależne. Wówczas x będzie punktem ekstremalnym. Załóżmy,
2. METODA SYMPLEKSOWA 20 że i {,...,m,j}\{i 0 } α ia i = 0,mamy 0 = i {,...,m,j}\{i 0 } = α i a i = i {,...,m}\{i 0 } i {,...,m}\{i 0 } α i a i +α j a j = m α i a i + α j y i a i = i= i {,...,m}\{i 0 } m (α i + α j y i )a i, i= α i a i +α j By = gdzie α i0 = 0.Wtedy α i + α j y i = 0oraz α j y i0 = 0.Zatem α j = 0,astąd α i = 0. Niech B = [a, a 2,...,a i0, a i0 +,...,a m, a j ]oraz A = [B [ N ].Wówczas ] B Ax = b,stąd b = B x B +N x N = B x B,czyli x B = B btzn. b oraz 0 B b 0.Ponadto [ ] B c T x = c T (x + λv j ) = c T x + c T λv j = c T x + λc T a j = c T x+ e j 2.3. Metoda sympleksowa +λ(c T j c T BB a j ) c T x. Przypomnijmy,żechcemyzminimalizować c T xprzywarunkach Ax = b, x 0. Algorytm sympleks Krok.Wziąćdowolnypunktekstremalny xzbioru Xozmiennychbazowych x B. Krok2.Wyliczyć α = c T B B N c T N.Jeżeli α 0,tozakończyćalgorytm(punkt x jest szukanym punktem). W przeciwnym wypadku przejść do kroku 3. Krok 3. Wybrać maksymalną dodatnią współrzędną α. Niech tą współrzędnąbędzie α j,zatem α j = c T B B a j c T j.jeśli y j = B a j 0,to zakończyć algorytm(brak rozwiązania). W przeciwnym wypadku przejść do
2. METODA SYMPLEKSOWA 2 kroku 4. Krok 4. Skonstruować nowy punkt ekstremalny o zmiennych bazowych x B zgodniezopisanympowyżejprocesem.przejśćdokroku2. Przykład2.5.Znaleźćminimumfunkcji f(x, x 2 ) = 2x 9x 2 przy warunkach x + x 2 6, x + 3x 2 3, x 0, x 2 0. Zmianawarunkówfunkcji f(x, x 2 ) = 2x 9x 2 : x + x 2 + x 3 = 6, x + 3x 2 + x 4 = 3, x 0, x 2 0, x 3 0, x 4 0, gdzie x 3, x 4 sązmiennymidopełniającymi.mamy [ ] [ ] 0 6 A =, b =, c = [2, 9, 0, 0] T. 3 0 3 [ ] 0 Szukamymacierzy B,dlaktórej B b 0.Weźmy B = [a 3, a 4 ] =, 0 wówczas B = Bi B b = b 0.Liczymy c T B B N c T N : [ ][ ] 0 c T B B N c T N = [0, 0] [2, 9] = [ 2, 9] 0. 0 3 [ ] [ ] [ ] [ ] 0 Obliczamy y 2 = B a 2 = =.Ponieważ 0,tokonstruujemy nowy punkt ekstremalny. Mamy 0 3 3 3 { } { bi 6 λ = min ; y 2i > 0 = min i=3,4 y 2i i=3,4, 3 } =, 3 [ ] 0 0 0 e v 2 = 2 B, x = x + λv a 2 = 0 2 + =. 6 3 3 5 0
Teraz B = [a 2, a 3 ] = c T B B N c T N : 2. METODA SYMPLEKSOWA 22 [ ],wówczas B 3 0 = c T B B N c T N = [ 9, 0] [ 0 3 3 [ ][ ] [ 0 Obliczamy y = B a = 3 = 3 4 3 3 konstruujemy kolejny punkt ekstremalny. Mamy [ ] 0 3. Ponownie liczymy 3 ][ ] 0 [2, 0] = [, 3] 0. ].Ponieważ { } { } bi 5 λ = min ; y i > 0 = min i=2,3 4 = 5 y i 4, 3 0 x = x + λv = 5 + 5 4 0 Terazprzyjmujemy B = [a, a 2 ] = Liczymy c T B B N c T N : c T BB N c T N = [2, 9] [ 3 4 4 4 4 [ 3 3 4 3 5 4 9 4 [ ] 3 4 0,to 3 = 0. 0 0 ] [ 3,wobectego B = 4 4 ][ ] 0 [0, 0] = [ 3 0 4, 4 ] < 0. Zatemkończymyobliczeniaiotrzymujemywartośćoptymalną f(x, x 2 ) = 2x 9x 2 = 2 5 4 99 4 = 5 4. Lemat2.6.Niech B, B M m m (R)będąmacierzaminieosobliwymi różniącymisięjednąkolumną,tzn. B = [a, a 2,...,a l, a l, a l+,...,a m ], B = [a, a 2,...,a l, a k, a l+,...,a m ]orazniech B a k = y = [y, y 2,...,y m ] T. Wówczas B = FB,gdziemacierz Fposiadajedynkinagłównejprzekątnej, l-tąkolumnępostaci f l = y l [ y, y 2,..., y l,, y l+,..., y m ] T,a na pozostałych miejscach zera. Dowód. B = B + (a k a l )e T l = B + (a k Be l )e T l = B(I + B (a k Be l )e T l ) = B(I + (B a k e l )e T l ) = B(I + (y e l)e T l ),zatem B = (I + (y Ie l )e T l ) B. 4 4 ].
2. METODA SYMPLEKSOWA 23 Trzebapokazać,że F = (I + (y Ie l )e T l ).Zauważmy,że I + (y Ie l )e T l jestmacierząjednostkowązl-tąkolumną y.ponadto det(i + (y Ie l )e T l ) = y l 0. Przykład2.7.Znaleźćmaksimumfunkcji f(x, x 2 ) = x + 2x 2 przy warunkach x + x 2 5, x + x 2 0, 3x + 7x 2 27, x 0, x 2 0. Przeformułowanie i zmiana warunków funkcji: znaleźć minimum funkcji f(x, x 2 ) = x 2x 2 przywarunkach x + x 2 + x 3 = 5, x x 2 + x 4 = 0, 3x + 7x 2 + x 5 = 27, x 0, x 2 0, x 3 0, x 4 0, x 5 0, gdzie x 3, x 4, x 5 sązmiennymidopełniającymi.mamy 0 0 5 A = 0 0, b = 0, c = [, 2, 0, 0, 0] T. 3 7 0 0 27 Szukamymacierzy B,dlaktórej B b 0.Weźmy B = [a 3, a 4, a 5 ] = 0 0 0 0,wówczas B = Bi B b = b 0, x T = [0, 0, 5, 0, 27].Liczymy 0 0 c T B B N c T N : 0 0 c T BB N c T N = [0, 0, 0] 0 0 [, 2] = [, 2] 0. 0 0 3 7
2. METODA SYMPLEKSOWA 24 0 0 Obliczamy y 2 = B a 2 = 0 0 =. Ponieważ 0, 0 0 7 7 7 to konstruujemy nowy punkt ekstremalny. Mamy { } { bi 5 λ = min ; y 2i > 0 = min i=3,4,5 y 2i, 27 } = 27 7 7, 0 0 0 [ ] e v 2 = 2 0 B, x = x + λv a 2 = 2 5 0 + 27 27 7 = 7 8 7 27. 7 27 7 0 0 Terazzamiast B = [a 2, a 3, a 4 ] = 0, możemy rozważać łatwiejszą 7 0 0 0 dodalszychobliczeńmacierz B = [a 3, a 4, a 2 ] = 0.Mamy B = 0 0 7 0 0 8 5 FB 7 = F = 0 7, B 7 7 b = 0 0 7 = 27 7, l = 3, y l = 7. 27 0 0 0 0 27 7 7 7 Przykład 2.8. Przedstawimy rozwiązanie zagadnienia z Przykładu. wykorzystując tablice sympleksowe. Nasz PL-model ma następującą postać. Znaleźćmaksimumfunkcji f(x, x 2 ) = 3x + 2x 2 przywarunkach x + x 2 + x 3 = 9, 3x + x 2 + x 4 = 8, 3x + x 5 = 7, 3x 2 + x 6 = 6, x 0, x 2 0, x 3 0, x 4 0, x 5 0, x 6 0, gdzie x 3, x 4, x 5, x 6 sązmiennymidopełniającymi.mamy 0 0 0 9 A = 3 0 0 0 0 0 0 0, b = 8 7, c = [3, 2, 0, 0, 0, 0]T. 0 0 0 0 6
2. METODA SYMPLEKSOWA 25 Tablica sympleksowa dla powyższego zagadnienia wygląda następująco: 3 2 0 0 0 0 0 0 0 0 9 3 0 0 0 8 0 0 0 0 7 0 0 0 0 6 Początkowymrozwiązaniemdopuszczalnymjest x = 0, x 2 = 0, x 3 = 9, 0 0 0 x 4 = 8, x 5 = 7, x 6 = 6.Ponadto B = [a 3, a 4, a 5, a 6 ] = 0 0 0 0 0 0, 0 0 0 N = [a, a 2 ] = 3 0.Największymdodatnimwspółczynnikiemfunkcjicelujest 3,zatem x wchodzidonowychzmiennychbazowych.abysprawdzić, 0 która ze zmiennych opuszcza zbiór zmiennych bazowych liczymy odpowiednieminimum: min{ 9, 8, 7} = 8 = 6.Zatem x 3 3 4opuszczazbiórzmiennych bazowych.mamyteraz B = [a, a 3, a 5, a 6 ]oraz N = [a 2, a 4 ]. 3 2 0 0 0 0 0 0 0 0 9 3 0 0 0 8 0 0 0 0 7 0 0 0 0 6 Stosując eliminację Gaussa oraz dokonując odpowiednich uproszczeń otrzymujemy następującą tablicę sympleksową: 0 0 0 0 8 2 0 0 0 3 3 3 0 0 0 6 3 3 0 0 0 3 3 0 0 0 0 6 Jedynymdodatnimwspółczynnikiemfunkcjicelujestteraz 2,czyli x 2 wchodzi do zbioru nowych zmiennych bazowych. Liczymy odpowiednie minimum: min{ 9 2, 8, 6 } = 9 2.Zatemzmienna x 3opuszczazbiórzmiennychbazowych. Mamyteraz B = [a, a 2, a 5, a 6 ]oraz N = [a 3, a 4 ].
2. METODA SYMPLEKSOWA 26 0 0 0 0 8 2 0 0 0 3 3 3 0 0 0 6 3 3 0 0 0 3 3 0 0 0 0 6 Stosując eliminację Gaussa oraz dokonując odpowiednich uproszczeń otrzymujemy następującą tablicę sympleksową: 0 0 0 0 22 2 2 2 0 0 0 4 2 2 2 0 0 0 4 2 2 2 0 0 0 2 2 2 2 0 0 0 2 2 2 Ponieważ nie ma już dodatnich współczynników funkcji celu otrzymujemy wartośćoptymalną f(x, x 2 ) = 3x + 2x 2 = 3(4 2 ) + 2(4 2 ) = 22 2. Problem znalezienia pierwszego punktu ekstremalnego Przypomnijmy,żeszukamy min c T x,przyzałożeniach Ax = b, x 0,rz(A) = m, b R m. W podanym wcześniej algorytmie sympleks w kroku pierwszym zakładamy istnienie punktu ekstremalnego. Z Twierdzenia 2.6 wynika, że znalezienie początkowego punktu ekstremalnego związane jest z rozbiciem macierzy A na macierze Boraz Ntak,aby B b 0.WPrzykładach2.5i2.7mieliśmy napoczątku B = I, b 0. Dwuetapowy sposób znajdowania pierwszego punktu ekstremalnego(bazowego) Zakładamy,że b 0.Jeśli b i < 0,tomnożymyodpowiednierównanieprzez [ ] x -. Rozpatrzmy pomocnicze zagadnienie minimalizacji. Mamy [AI] = bi y szukamy następującego minimum ( ) min m y i, i=
2. METODA SYMPLEKSOWA 27 gdzie Ax + Iy = b, x 0, y 0.Dorozwiązaniazagadnienia ( )stosujemy metodę sympleks, ponieważ ma ono początkowe [ ] rozwiązanie dopuszczalne. 0 Zaczynamynastępująco B = I, B b =, x = 0, y = b.jeśliznajdziemy b optymalnerozwiązaniebazowedla ( ),takieże m i= y i = 0,tootrzymamy takżebazędającąrozwiązanie x B (czyli Ax = b).jeśli ( )posiadadodatnie minimum,toniemarozwiązaniadopuszczalnegodla Ax = b, x 0.Mamy Etap I- znalezienie rozwiązania dopuszczalnego dla Ax = b, x 0 lub stwierdzenie, że nie istnieje takie rozwiązanie. Etap II- użycie rozwiązania z etapu pierwszego do rozwiązania następującegozagadnienia:znaleźćminimum c T xprzywarunkach Ax b, x 0. Mamy Przykład 2.9. Niech dany będzie następujący układ równań: 2x + x 2 + 2x 3 = 4, 3x + 3x 2 + x 3 = 3, x 0, x 2 0, x 3 0. A = [ ] 2 2, b = 3 3 [ ] 4. 3 Rozważmy pomocnicze zagadnienie minimalizacji. Znaleźć minimum funkcji f(y, y 2 ) = y + y 2 przywarunkach Mamy [AI] [ ] x = y 2x + x 2 + 2x 3 + y = 4, 3x + 3x 2 + x 3 + y 2 = 3, x 0, x 2 0, x 3 0, y 0, y 2 0. [ 2 2 0 3 3 0 ] x x 2 x 3 y y 2 = [ ] 4 = b, c = [0, 0, 0,, ] T. 3
Ponadto B = c T N : 2. METODA SYMPLEKSOWA 28 [ ] 0,wówczas B 0 = Bi B b = b 0.Liczymy c T B B N [ ][ ] 0 2 2 c T B B N c T N = [, ] [0, 0, 0] = [5, 4, 3] 0. 0 3 3 Obliczamy y = [ ] 2 0,tokonstruujemynowypunkteks- 3 tremalny. Mamy Teraz B = [ ] 2.Ponieważ 3 [ ] 2,wówczas B 3 0 = [ 0 c T B B N c T N = [0, ] 3 2 3 ][ ] [ 0 3 2 3 { 4 λ = min 2, 3 } =, 3 0 0 x = 0 4 + 0 0 2 = 0 0 2. 3 3 0 [ ] 0 3 2 oraz 3 ][ ] 2 0 [0, 0, ] = [, 4 3 3, 5 3 ] 0. [ ] Obliczamy y 2 = 3 = 0, zatem konstruujemy kolejny punkt ekstremalny. Mamy 0 0 λ =, x = 0 2 0 = 0 3 0 0 0 [ ] [ ] 2 0 Teraz B =,wobectego B 0 = oraz 2 [ ][ ] 0 2 0 c T B B N c T N = [0, ] [0, 0, ] = [ 4, 5, 3] < 0. 2 3 3
2. METODA SYMPLEKSOWA 29 Zatemkończymyobliczeniaiotrzymujemywartośćoptymalną f(y, y 2 ) = y + y 2 = 3 + 0 = 3.Ponieważotrzymaliśmydodatnieminimum,toniema rozwiązaniadopuszczalnegodla Ax = b, x 0. Przykład2.20.Znaleźćminimumfunkcji f(x, x 2, x 3 ) = 2x + x 2 2x 3 przy warunkach x + 2x 2 + x 3 = 7, Mamy 2x + 3x 2 + x 3 = 2, x 0, x 2 0, x 3 0. A = [ ] [ ] 2 7, b =. 2 3 2 Rozważmy pomocnicze zagadnienie minimalizacji. Znaleźć minimum funkcji f(y, y 2 ) = y + y 2 przywarunkach Mamy [AI] Ponadto B = [ ] x = y x + 2x 2 + x 3 + y = 7, 2x + 3x 2 + x 3 + y 2 = 2, x 0, x 2 0, x 3 0, y 0, y 2 0. [ 2 0 2 3 0 ] x x 2 x 3 y y 2 = [ ] 7 = b, c = [0, 0, 0,, ] T. 2 [ ] 0,wówczas B 0 = Bi B b = b 0.Liczymy c T B B N c T N : [ ][ ] 0 2 c T B B N c T N = [, ] [0, 0, 0] = [3, 5, 2] 0. 0 2 3 [ ] [ ] 2 2 Obliczamy y 2 =.Ponieważ 0,tokonstruujemynowypunktekstremalny. Mamy { 7 3 3 λ = min 2, 2 } = 7 3 2,
2. METODA SYMPLEKSOWA 30 0 0 0 0 x = 0 7 + 7 7 2 0 2 = 2 0 0. 3 2 3 2 [ ] [ 2 0 ] Teraz B =,wówczas B 3 0 = 2 3 oraz 2 [ ][ ] c T BB N c T 0 N = [0, ] 2 3 [0, 0, ] = [ 2 0 2 2, 2, 5 2 ] 0. [ ][ ] [ 0 Obliczamy y = 2 ] 3 = 2 0, zatem konstruujemy kolejny punkt 2 2 2 ekstremalny. Mamy 0 3 7 2 λ = 3, x = 0 + 3 2 0 0 = 2 0 0. 0 Teraz B = 0 3 2 [ ] 2,wobectego B 2 3 = c T B B N c T N = [0, 0] [ 3 2 2 2 [ ] 3 2 oraz 2 ] [ ] 0 [0,, ] = [0,, ] < 0. 0 Otrzymujemywartośćoptymalną f(y, y 2 ) = y + y 2 = 0 + 0 = 0.Zatem mamyrozwiązaniedopuszczalnedla Ax = b, x 0. Powróćmy do rozwiązania zagadnienia początkowego. Wykorzystując powyższe obliczenia mamy [ ][ ] 3 2 c T B B N c T N = [2, ] [ 2] = [] 0. 2 [ ][ ] [ ] 3 2 Obliczamy y 3 = = 0, zatem konstruujemy kolejny 2 punkt ekstremalny. Mamy 3 5 λ = 2, x = 2 + 2 = 0. 0 2
Teraz B = 2. METODA SYMPLEKSOWA 3 [ ] [ ],wobectego B 2 = oraz 2 [ ][ ] 2 c T B B N c T N = [2, 2] [] = [ ] < 0. 2 3 Zatemkończymyobliczeniaiotrzymujemywartośćoptymalną f(x, x 2, x 3 ) = 2x + x 2 2x 3 = 0 4 = 6. Zbieżność i złożoność czasowa Metoda sympleks opiera się na fakcie, że optymalna wartość programu liniowego, jeśli istnieje, jest zawsze osiągnięta w rozwiązaniu bazowym. Niezdegenerowanym bazowym rozwiązaniem dopuszczalnym nazywamy bazowe rozwiązanie dopuszczalne, w którym wszystkie zmienne bazowesądodatnie(x B > 0).Przyzałożeniu,żewszystkiebazowerozwiązania dopuszczalne są niezdegenerowane, metoda sympleks znajduje rozwiązanie optymalne w skończonej liczbie iteracji, ponieważ liczba możliwych baz jest skończona i żadna z nich nie powtarza się. W przypadku degeneracji możemy spotkaćciągiteracji,generującytakiciągbaz B i, B i+,...,b j,żewszystkie odpowiadają temu samemu bazowemu rozwiązaniu dopuszczalnemu i tej samejwartościfunkcjicelu.możesięrównieżzdarzyć,że B i = B j imetoda sympleks wejdzie w cykl nieskończony. Dodajmy również, że istnieją przykłady pokazujące, iż złożoność czasowa metody sympleks nie jest ograniczona wielomianowo. Dolne ograniczenie czasu działania tej metody jest wykładnicze. 2.3.. Dualna metoda programowania liniowego Szukamy przy założeniach maxy T b y T A c T, y R m (niezakładasię,że y 0). Zauważmy,że y T b = y T Ax c T x, x 0.Załóżmy,że y T b = c T x, Ax = b, A T y cdlapewnych xoraz x.wtedy(ćwiczenia) y, xsąrozwiązaniami
2. METODA SYMPLEKSOWA 32 optymalnymidlaodpowiednichzagadnień(xdlaszukaniaminimum c T xprzy warunkach Ax = b, x 0,aydlaszukaniamaksimum y T bprzywarunkach y T A c T ). Zagadnienie min c T x, Ax = b, x 0,będziemynazywaćprymalnym. Znane jest nastepujące twierdzenie. Twierdzenie 2.2. Jeśli jedno z zadań programowania liniowego(prymalne lub dualne) posiada skończone rozwiązanie, to takie rozwiązanie posiada drugie z tych zadań. Ponadto wartości funkcji celu obu powyższych zagadnień są takie same. Załóżmy,że x B = B b jestrozwiązaniem(dopuszczalnymioptymalnym)dlazagadnieniaprymalnego(min c T x, Ax = b, x 0).Niech y T = c T B B.Wiemy,że c T N ct B B N 0stąd c T B B N c T N.Okazujesię,że wektor y T = c T B B jestrozwiązaniemoptymalnymzagadnieniadualnego. Mamy y T A = y T [BN] = [c T B B B, c T B B N] [c T B, ct N ] = ct jak również równość funkcji celu y T b = c T B B b = c T B x B = c T B x B + c T N x N = [ ] = [c T B, ct N ] xb = c T x. x N Zatemjeślizagadnienieprymalneposiadarozwiązanieoptymalne x B = B b, tozagadnieniedualnemarozwiązanieoptymalne y T = c T B B,któremożna bez trudności policzyć, ponieważ macierz odwrotna do bazy jest znana. Związek pomiędzy rozwiązaniami optymalnymi x oraz y podaje następujące twierdzenie. Twierdzenie 2.22(o różnicach dopełniających). Jeżeli x, y są odpowiednio punktami ekstremalnymi dla zagadnienia prymalnego i dualnego, to są one rozwiązaniami optymalnymi wtedy i tylko wtedy, gdy dla każdego i spełnione są warunki (i)jeśli x i > 0,to y T a i = c i (ii)jeśli y T a i < c i,to x i = 0, gdzie a i oznacza i-tąkolumnęmacierzy A. Z powyższego twierdzenia bezpośrednio wynika następujący fakt.
2. METODA SYMPLEKSOWA 33 Wniosek 2.23. Jeżeli x, y są odpowiednio rozwiązaniami optymalnymi dla zagadnienia prymalnego i dualnego, to (c T y T A)x = 0. Algorytm dualny sympleks Danejestrozwiązaniebazowe x B = B btakie,żewektor y T = c T B B spełnianierówność c T N yt N 0. Krok.Jeśli x B 0,to x B jestrozwiązaniemoptymalnymiobliczenia sązakończone.wprzeciwnymraziewybraćujemnąskładową x B,niechtą składowąbędzieskładowaonumerze l(zmienna x l zostajeusuniętazezbioru zmiennych bazowych, a l-ta kolumna w macierzy A zostaje usunięta z bazy B). Krok2.Obliczyć b l a j = u lj dla j = m+, m+2,...,n,gdzie b l jest l-tym wierszemmacierzy B, a j j-tąkolumnąmacierzy A.Jeśliwszystkie u lj 0, to zagadnienie dualne nie ma skończonego rozwiązania. W przeciwnym razie dlawszystkich j = m +, m + 2,...,ntakich,że u lj < 0obliczyć z j = y T a j = c T B B a j oraz wyznaczyć Niech ε = z k c k u lk macierzy A). ε = min{ z j c j u lj ; u lj < 0}. (k-takolumnamacierzy Azastępujewbazie l-tąkolumnę Krok3.Obliczyćnowywektor y T wnastępującysposób: y T = y T εb l. Krok4.Uaktualnićodwrotnąmacierzbazową B orazobliczyćnowe rozwiązanie x B = B b. Krok 5. Wrócić do kroku pierwszego.
2. METODA SYMPLEKSOWA 34 Uwaga2.24.Nowązmienną ymożnaobliczyćtakjakwkroku3lub wykorzystujączależność y T = c T B B potym,gdymacierz B zostałauaktualniona.wartośćdualnejfunkcjicelu y T bjestzwiększanawkażdejkolejnej iteracji. Procedura dualna sympleks zostaje zakończona po skończonej liczbie kroków,gdy x B 0. 2.4. Elementy programowania całkowitoliczbowego Rozważmy zagadnienie optymalizacji z kawałkami liniowym ograniczeniem lub funkcją celu jednej zmiennej przedstawione na poniższym rysunku f(y) y y 2 y 3 y n-2 y n- y n y Dowolnawartość yleżącapomiędzy y oraz y n możebyćprzedstawiona wpostaciwypukłejkombinacjizmiennych y i oraz y i+ wnastępującysposób: y = λ i y i + λ i+ y i+,gdzie λ i + λ i+ =, λ i, λ i+ 0.Podobnie f(y) = λ i f(y i ) + λ i+ f(y i+ ).Zapomocązmiennychcałkowitoliczbowych możemywyrazić f(y)wcałymprzedziale [y, y n ]wnastępującysposób: f(y) = n λ i f(y i ), i= gdzie n λ i y i = y, i= n λ i =, λ i 0, i =, 2,..., n, λ x, λ i x i + x i, i= i = 2, 3,..., n, λ n x n, n x i =, x i = 0 lub x i =, i =, 2,..., n. i=
2. METODA SYMPLEKSOWA 35 Tylkojednazmienna x i możeprzyjąćwartośćrówną,astądtylko λ i oraz λ i+ mogąbyćniezerowe,czyli λ i + λ i+ =.Mamyzatemdoczynienia zezmiennymizero-jedynkowymi x, x 2,...,x n,któreokreślająprzedział zawierający yorazzezmiennymiciągłymi λ, λ 2,..., λ n,któredokładnie określają wartość y. Powyższa technika może być użyta do przybliżania funkcji nieliniowych funkcjami kawałkami liniowymi i do przekształcania zagadnień z nieliniowymi funkcjami celu do zagadnień całkowitoliczbowych programowania liniowego. W przypadku ogólnym nie można rozwiązywać zagadnień całkowitoliczbowych za pomocą metody sympleks i należy posługiwać się specjalnymi technikami obliczeniowymi. Poniżej przedstawimy jedną z nich, a mianowicie metodę dualną Gomory ego. Metoda ta jest bezpośrednim rozwinięciem dualnej metody sympleks. Różnica polega na tym, że w metodzie całkowitoliczbowej wiersz zawierający element główny jest generowany w każdej iteracji i wartość tego elementu wynosi-. Zapewnia to całkowitoliczbowość dualnej metody sympleksowej. Algorytm redukuje obszar dopuszczalności do takiego, aby jego wierzchołek optymalny był całkowitoliczbowy. Leksykograficzna postać dualnej metody sympleks Rozważmy następującą dualną tablicę sympleksową Zmienna Stała x m+ x m+2... x k... x n x 0 p 00 p 0,m+ p 0,m+2... p 0k... p 0n x p 0 p,m+ p,m+2... p k... p n...... x l p l0 p l,m+ p l,m+2... p lk... p ln...... x m p m0 p m,m+ p m,m+2... p mk... p mn x m+ 0 0... 0... 0 x m+2 0 0... 0... 0......... x k 0 0 0...... 0......... x n 0 0 0... 0...
2. METODA SYMPLEKSOWA 36 gdzie x l jestzmiennąopuszczającąbazę, x k zmiennąwchodzącądobazy, natomiast p lk jestelementemgłównym.powyższatablicaodpowiadazagadnieniu całkowitoliczbowemu w postaci: ( )znaleźćminimum x 0,przywarunkach x i = p i0 + j J p ij ( x j ), x i 0, x i Z, i =, 2,..., n, natomiast J jest zbiorem wskaźników niebazowych zmiennych. W powyższej tablicy wygodnie jest założyć, że pierwsze m zmiennych jest bazowych. Zapiszmy nasze zagadnienie w postaci wektorowej, mamy: znaleźćminimum x 0,przywarunkach x = p 0 + j J p j ( x j ), x i 0, x i Z, i =, 2,..., n. Wektor v 0 nazywamy leksykograficznie dodatnim(ujemnym), jeśli pierwsza jego niezerowa składowa jest dodatnia(ujemna). Gdy wektor v jest leksykograficzniedodatni(ujemny),topiszemy v > l 0(v < l 0).Wektor vjest leksykograficzniewiększy(mniejszy)odwektora w,jeżeli v w > l 0 (v w < l 0).Ciągwektorów v t, t =, 2,...nazywamyleksykograficznie malejącym(rosnącym),jeśli v t v t+ > l 0(v t v t+ < l 0).Zatemwleksykograficznym algorytmie dualnym zagadnienie ( ) przedstawiamy w sposób następujący: znaleźć leksykograficzne minimum x, przy warunkach x = p 0 + j J p j ( x j ), x 0. Zmienną x l opuszczającąbazęwyznaczasiętaksamojakwzwykłejmetodzie dualnej tzn. p l0 = min{p i0 ; p i0 < 0, i m}. Zmienną x wchodzącą do bazy znajdujemy za pomocą testu p lk p k = lex max{ p lj ; p lj < 0, m + j n},
2. METODA SYMPLEKSOWA 37 gdzie lex max oznacza maksimum leksykograficzne. Przekształcenie elementarnewzględem p lk przekształcapowyższątablicęwnowątablicęzkolumnami ( ) p j = p j p lj p lk p k, dla j k, p k = p lk p k. Jeżeli początkowa tablica jest dualnie dopuszczalna w sensie leksykograficznym(tzn.wektory p j, j = m+, m+2,..., nsąleksykograficznieujemne), towzory ( )gwarantują,żenowewektorykolumnowe p j sąrównieżleksykograficznie ujemne. Uwaga2.25.Możnapokazać,żerozwiązaniebazowe p 0 jestściślerosnące(w sensie leksykograficznym) w każdej iteracji oraz że żadna baza nie powtórzy się. Zarys metody dualnej Gomory ego. Metoda Gomory ego rozpoczyna działanie od tablicy całkowitoliczbowej i leksykograficznie dualnie dopuszczalnego rozwiązania, to znaczy wektory p j, j = m +, m + 2,...,nsąleksykograficznieujemnedlazagadnienia minimalizacji oraz dodatnie dla zagadnienia maksymalizacji. Algorytm jest następujący: Krok.Wybraćwierszonumerze r,wktórym p r0 < 0, r 0.Jestto wiersz generujący tzw. cięcie. Jeżeli wiersza takiego nie ma, to bieżące rozwiązanie jest optymalne. Krok2.Znaleźćkolumnę p k zelementemgłównym,którajestnajwiększa wsensieleksykograficznymwśródkolumn,dlaktórych p rj < 0.Jeślitakiej kolumny nie ma, to brak jest dopuszczalnego rozwiązania całkowitoliczbowego. Krok 3. Utworzyć nierówność(tzw. odcinającą) z wiersza r-tego, który nie jest spełniony przez bieżące rozwiązanie prymalne. Nowy wiersz jest dołączonynadoletablicyijesttowierszzelementemgłównymrównym-. Krok 4. Wykonać jedno przekształcenie elementarne dualnej metody sympleks.
2. METODA SYMPLEKSOWA 38 Krok 5. Usunąć dodany wiersz, który jest teraz trywialny(x = ( x)) iwrócićdokroku. Sposób otrzymania nierówności odcinającej Przypuśćmy, że wybrano wiersz o numerze r w tablicy dualnej, jako generujący cięcie(przez cięcie rozumiemy dodatkowe ograniczenie posiadające tę własność, że odcina część zbioru rozwiązań dopuszczalnych nie gubiąc przy tym żadnego rozwiązania całkowitoliczbowego) x r = p r0 + j J p rj ( x j ). Niech λ będzie liczbą dodatnią. Każda liczba p spełnia równość [ p (i) p = λ + R, λ] gdzieprzez [z]oznaczamyczęśćcałkowitąliczby zoraz 0 R < λ.po zastosowaniu (i) do wiersza generującego, otrzymujemy (ii) [ pr0 ] R j x j +R r x r = R 0 +λ( + [ prj ] [ ] ( x j )+ ( x r )) = R 0 +λx. λ λ λ j J j J Dla dowolnego nieujemnego rozwiązania spełniającego (ii) wartość [ pr0 ] (iii) x = + [ prj ] [ ] ( x j ) + ( x r ) λ λ λ j J musi być całkowita, ponieważ wszystkie współczynniki w (iii) są całkowite. Ponadto x 0,bo 0 R 0 < λijeśli xjestujemnąliczbącałkowitą,to R 0 + λx < 0.Jednakostatnianierównośćniejestmożliwa,ponieważlewa stronaw(ii)jestnieujemna.zatem x 0.Gdywybierzemy λ,wówczas nierówność x 0 uprości się do postaci (iv) [ pr0 λ ] + j J [ prj λ ] ( x j ) 0.
2. METODA SYMPLEKSOWA 39 Niech π rj = [ p rj ] λ,wówczascałkowitoliczbowecięciegomory egookreślone jest następująco: (v) x = π r0 + π rj ( x j ) 0. j J Ograniczenie (v) jest wierszem głównym, a x jest nową nieujemną zmienną dodatkową. Wyznaczymy teraz wartość λ. Wyznaczanie wartości λ. Krok.Znaleźćkolumnęgłówną ktak,aby p k = lex max{p j ; j J}, gdzie J = {j; p rj < 0, j 0},ar-tywierszgenerujecięcie. Krok2.Wyznaczyćnajwiększąliczbęcałkowitą e j,takąże Ponadtoniech e k =. e j p j l p k, j J, j k. Krok3.Przyjąć λ = max{λ j = p rj e j ; j J}. Uwaga 2.26.(i) Wyprowadzając zależność (iv) założyliśmy, że λ. Nierównośćtajestspełniona,ponieważ λ λ k = p rk.jeśli λ =, to wiersz generujący jest wierszem zawierającym element główny i nie ma nowego ograniczenia. (ii) Zgodnie z wyprowadzeniem, λ nie musi być całkowite. Wybierając taką wartość λ, otrzymamy jako element główny oraz wiersz główny, który dajenajwiększyleksykograficzniewzrostkolumny p 0. Całkowitoliczbowy algorytm dualny Gomory ego. Zakładamy,żekolumny p j, j = m +, m + 2,...,nsąleksykograficznie dualnie dopuszczalne. Krok.Jeśli p 0 0,torozwiązanieprymalnejestdopuszczalneioptymalne, a obliczenia się kończą. W przeciwnym razie wybrać taki wiersz generującycięcie,że p r0 < 0.
2. METODA SYMPLEKSOWA 40 Krok2.Znaleźćtakąkolumnęgłówną p k, m + k n,abybyłaonaleksykograficznienajwiększawśródkolumn,dlaktórych p rj < 0. Jeżeliwszystkie p rj 0,towówczasnieistniejedopuszczalnerozwiązanie całkowitoliczbowe. W przypadku przeciwnym przejść do kroku 3. Krok3.Dlakażdego j J, j kznaleźćnajwiększąliczbęcałkowitą e j taką,że e j p j p k.następniepodstawić e k = orazobliczyć λ = max{ p rj e j ; j J}. Krok 4. Do tablicy dualnej dołączyć ograniczenie x = π r0 + j J π rj ( x j ) 0. Krok 5. Wybrać jedno dualne przekształcenie elementarne używając π rk = jakoelementugłównego. Krok 6. Usunąć dodane ograniczenie, które stało się trywialne i wrócić dokroku. Uwaga 2.27. W kroku powyższego algorytmu do wyznaczenia wiersza generującegocięciemożnawybraćnajmniejsze p i0 < 0. Przykład2.28.Znaleźćminimumfunkcji f(x, x 2 ) = x 0 = 3x + 5x 2 przy warunkach x 3 = 5 + x + 4x 2 0, x 4 = 7 + 3x + 2x 2 0, x, x 2, x 3, x 4 0, x, x 2, x 3, x 4 Z. Dualna tablica sympleksowa dla powyższego zagadnienia wygląda następująco: Zmienna Stała x x 2 x 0 0 3 5 x 3 5 4 x 4 7 3 2
2. METODA SYMPLEKSOWA 4 Trywialne ograniczenia z pojedyńczym elementem równym- zostały pominięte.niechwierszemgenerującymbędziewiersz,któryzawiera x 4,akolumną głównąkolumnapierwsza(k = ).Wartości e j sąnastępujące e =, e 2 =. Zatem λ = max{ p rj e j ; j J} = max{ 3, 2 } = 3. Liczymy dodatkowe ograniczenie [ ] [ ] 7 3 x 5 = + ( x ) + 3 3 Nasza tablica ma następującą postać: [ 2 x 5 = 3 + x + x 2 0. Zmienna Stała x x 2 x 0 0 3 5 x 3 5 4 x 4 7 3 2 x 5 3 3 ] ( x 2 ) 0, Wymieniamyterazzmienną x nazmienną x 5,czylijesttoprzekształcenie elementarnezelementemgłównym p 5 =.Mamy x 0 = 9+3x 5 +2x 2, x = 3+x 5 x 2, x 3 = 2+x 5 +3x 2, x 4 = 2+3x 5 x 2. Nowa tablica wygląda zatem następująco: Zmienna Stała x 5 x 2 x 0 9 3 2 x 3 x 3 2 3 x 4 2 3 Po usunięciu dodanego ograniczenia mamy: Zmienna Stała x x 2 x 0 9 3 2 x 3 2 3 x 4 2 3