Programowanie liniowe MirosÅ‚aw Sobolewski WydziaÅ‚ Matematyki, Informatyki i Mechaniki UW wykÅ‚ad z algebry liniowej Warszawa, styczeÅ„ 2010 MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 1 / 15 Homo oeconomicus= czÅ‚owiek gospodarny Zasada najlepszego wykorzystania istniejÄ…cych zasobów Typowe przykÅ‚ady PrzykÅ‚ad (Zagadnienie transportowe) Jest n zakÅ‚adów wydobywczych z możliwoÅ›ciami wydobycia w1, . . . , wn oraz l przetwórni z popytami p1, . . . , pl. Należy zorganizować przewozy tak, by zaspokoić popyty przetwórni, przy najmniejszym koszcie, jeÅ›li koszt przewozu jednostki Å›rodka produkcji z zakÅ‚adu i do przetwórni j wynosi kij. Mamy n × l zmiennych xij oznaczajÄ…cych wielkość przewozu z zakÅ‚adu i do przetwórni j. Zbiór dopuszczalny to podzbiór Rn×l opisany nierównoÅ›ciami: xij e" 0 dla 1 d" i d" n, 1 d" j d" l l (przewozy sÄ… nieujemne), xij d" wi dla i = 1, . . . , n (Å‚Ä…czna ilość j=1 Å›rodka produkcji wywiezionego z zakÅ‚adu i nie przekracza jego n możliwoÅ›ci wi), xij e" pj, dla 1 d" j d" l (Å‚Ä…czny przywóz do i=1 przetwórni j zaspokaja jej popyt) Minimalizujemy Å‚Ä…czny koszt
przewozów, czyli kijxij {1d"id"n,1d"jd"l} MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 2 / 15 Definicja Zadanie programowania liniowego jest to zadanie znalezienia wartoÅ›ci optymalnej (tzn. minimalnej bÄ…dz maksymalnej) funkcji liniowej f (x1, . . . , xn) = c1x1 + · · · + cnxn na zbiorze X ‚" Rn zÅ‚ożonym z punktów speÅ‚niajÄ…cych wszystkie warunki: Å„Å‚ Å„Å‚ a11x1 + · · · + a1nxn = b1 am+1 1x1 + · · · + am+1 nxn e" bm+1 ôÅ‚ ôÅ‚ òÅ‚ òÅ‚ . . . . . . . . . . . . . . . . . . . . . . . . ôÅ‚ ôÅ‚ ół am1xm1 + · · · + amnxn = bm ół am+p 1x1 + · · + am+p nxn e" bm+p Å„Å‚· x1 e" 0 ôÅ‚ ôÅ‚ ôÅ‚ ôÅ‚ . Å„Å‚ ôÅ‚ . ôÅ‚ am+p+1 1x1 + · · · + am+p+1 nxn d" bm+p+1 ôÅ‚ . ôÅ‚ ôÅ‚ òÅ‚ òÅ‚ xs e" 0 . . . . . . . . , . . . . ôÅ‚ ôÅ‚ xs+1 d" 0 ół ôÅ‚ am+p+q 1x1 + · · · + am+p+q nxn d" bm+p+q ôÅ‚ ôÅ‚ . ôÅ‚ . ôÅ‚ . ôÅ‚ ôÅ‚ ół xs+t d" 0 pierwsze trzy klamry obejmujÄ… ograniczenia nieelementarne (a), ostatnia elementarne (b) MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 3 / 15 Oznaczenia îÅ‚ Å‚Å‚ îÅ‚ Å‚Å‚ x1 a11 · · · a1n ïÅ‚ śł ïÅ‚ śł . . . . . . . . x = , A = , ðÅ‚ ûÅ‚ ðÅ‚ ûÅ‚ . . . . xn am1 · · · amn îÅ‚ Å‚Å‚ îÅ‚ Å‚Å‚ am=1 1 · · · am+1 n am+p+1 1 · · · am+p+1 n ïÅ‚ śł ïÅ‚ śł . . . . . . . . . . . . A = , A = ðÅ‚ ûÅ‚ ðÅ‚ ûÅ‚ . . . . . . am+p 1 · · · am+p n am+p+q 1 · · · am+p+q n îÅ‚ Å‚Å‚ îÅ‚ Å‚Å‚ îÅ‚ Å‚Å‚ b1 bm+1 bm+p+1 ïÅ‚ śł ïÅ‚ śł ïÅ‚ śł . . . . . . b = , b = , b = ðÅ‚ ûÅ‚ ðÅ‚ ûÅ‚ ðÅ‚ ûÅ‚ . . . bm bm+p bm+p+q Warunki (a) mogÄ… być wtedy zapisane: Ax = b, A x e" b , A x d" b . Inne formy zapisu zadania minimalizacji programowania liniowego: Min{f (x) : x " X } lub f (x) min przy warunkach (a),(b). Analogicznie dla maksymalizacji. MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 4 / 15 PrzykÅ‚ad 2x1 + 3x2 - 6x3 min przy warunkach x1 +x2 -x3 +x4 = 7 (a) : 2x1 +7x2 -x4 e" 6 , 3x1 -3x3 +x4 d" 5 (b) : x1 e" 0 Definicja Zbiór X zÅ‚ożony z wektorów przestrzeni Rn speÅ‚niajÄ…cych warunki (a) i (b) nazywamy zbiorem rozwiÄ…zaÅ„ dopuszczalnych zadania programowania liniowego. RozwiÄ…zaniem optymalnym zagadnienia minimalizacji (min) nazywamy taki wektor x " X , że dla każdego x " X zachodzi f (x) d" f (x), zaÅ› zagadnienia maksymalizacji (max) taki wektor x " X, że zachodzi f (x) d" f (x) MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 5 / 15 Interpretacja geometryczna x1 + x2 max przy warunkach (a) 2x1 + x2 d" 4, x1 + 3x2 d" 6 (b) x1 e" 0, x2 e" 0 Szukamy najwyższej poziomicy funkcji f ((x1, x2)) = x1 + x2, która zahacza o zbiór X opisany nierównoÅ›ciami (a) i (b). Poziomica ta przechodzi przez punkt p, bedÄ…cy przeciÄ™ciem prostych opisanych równoÅ›ciami 2x1 + x2 = 4 i x1 + 3x2 = 6. Punkt ten ma współrzÄ™dne p1 = 1, 2, p2 = 1, 6. Zatem maxX f = f (p) = 2, 8 MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 6 / 15 x2 p X x1 MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 7 / 15 Definicja Zadanie programowania liniowego dotyczÄ…ce minimalizacji, w którym wystÄ™pujÄ… jako ograniczenia nieelementarne opisujÄ…ce zbiór rozwiÄ…zaÅ„ dopuszczalnych tylko równoÅ›ci (odpowiednio: tylko nierównoÅ›ci), zaÅ› warunkami elementarnymi sÄ… dla wszystkich zmiennych warunki x1 e" 0, . . . , xn e" 0 nazywamy zadaniem w postaci standardowej (odpowiednio: klasycznej) Twierdzenie Każde zadanie programowania liniowego można sprowadzić do zadania w postaci standardowej. Można je także sprowadzić do postaci klasycznej. MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 8 / 15 Metody 1. MaksymalizacjÄ™ funkcji f można zastÄ…pić minimalizacjÄ… funkcji -f 2.Warunek ai1x1 + · · · + ainxn d" bi można zastÄ…pić parÄ… warunków: ai1x1 + · · · + ainxn + xn+i = bi, xn+i e" 0, gdzie xn+i jest nowÄ… zmiennÄ…, podobnie ai1x1 + · · · + ainxn e" bi można zastÄ…pić parÄ… warunków ai1x1 + · · · + ainxn - xn+i = bi, xn+i e" 0. 3. jeÅ›li mamy warunek xj d" 0 to podstawiamy xj = -xj , zastÄ™pujÄ…c go przez xj e" 0 4. JeÅ›li pewna zmienna xj nie wystÄ™puje w żadnym ograniczeniu elementarnym postaci xj e" 0 lub xj d" 0, to podstawiamy xj = xj+ - xj- i doÅ‚Ä…czamy warunki xj+ e" 0, xj- e" 0. 5. Równanie ai1x1 + · · · + ainxn = bi można zastÄ…pić ukÅ‚adem nierównoÅ›ci ai1x1 + · · · + ainxn d" bi, ai1x1 + · · · + ainxn e" bi MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 9 / 15 PrzykÅ‚ad x1 + x2 max 2x1 + x2 d" 4 x1 + 3x2 d" 6 x1 e" 0, x2 e" 0 daje postać standardowÄ… -x1 - x2 min 2x1 + x2 + x3 = 4 x1 + 3x2 + x4 = 6 x1 e" 0, x2 e" 0, x3 e" 0, x4 e" 0 MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 10 / 15 Zbiór wieloÅ›cienny wypukÅ‚y dowolny zbiór opisany skoÅ„czonym ukÅ‚adem nieostrych nierównoÅ›ci liniowych odcinek o koÅ„cach p, q" Rn zbiór {tp + (1 - t)q " Rn|t " [0, 1]} punkt wewnÄ™trzny odcinka o koÅ„cach p, q każdy jego punkt różny od p, q WierzchoÅ‚ek (punkt ekstremalny) zbioru X ‚" Rn element X , który nie jest punktem wewnÄ™trznym żadnego odcinka zawartego w X Twierdzenie Zbiór rozwiÄ…zaÅ„ dopuszczalnych zadania programowania liniowego jest zbiorem wieloÅ›ciennym wypukÅ‚ym Twierdzenie Rozpatrzmy zadanie programowania liniowego w postaci standardowej. Wówczas funkcja f (x) = c1x1 + · · · + cnxn osiÄ…ga wartość minimalnÄ… (tzn. najmniejszÄ…) na zbiorze rozwiÄ…zaÅ„ dopuszczalnych X Ô! f jest ograniczona z doÅ‚u na X. Ponadto jeÅ›li f osiÄ…ga wartość minimalnÄ… to osiÄ…ga jÄ… również w pewnym wierzchoÅ‚ku (= punkcie ekstremalnym) zbioru X . MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 11 / 15 RozwiÄ…zania bazowe Rozpatrujemy zadanie programowania liniowego w postaci standardowej: c1x1 + · · · + cnxn min przy warunkach Å„Å‚ a11x1 + · · · + a1nxn = b1 ôÅ‚ òÅ‚ . . . . . . . . U : , x1 e" 0, . . . , xn e" 0, gdzie bi e" 0 . . . . ôÅ‚ ół am1xm1 + · · · + amnxn = bm dla i = 1, . . . , m. W skrócie : îÅ‚ Å‚Å‚ a11 · · · a1n ïÅ‚ śł, . . . . . . Min{c · x : Ax = b, x e" 0}, gdzie A = ðÅ‚ ûÅ‚ . . . am1 · · · amn îÅ‚ Å‚Å‚ îÅ‚ Å‚Å‚ îÅ‚ Å‚Å‚ b1 x1 c1 ïÅ‚ śł ïÅ‚ śł, c = ïÅ‚ śł. Można zaÅ‚ożyć, że r(A) = m . . . . . . . b = , x = ðÅ‚ ûÅ‚ ðÅ‚ ûÅ‚ ðÅ‚ ûÅ‚ . . . bm xn cn Kolumny bazowe dowolny ukÅ‚ad m liniowo niezależnych kolumn macierzy A, odpowiadajÄ…ce im zmienne xi zmienne bazowe. MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 12 / 15 PozostaÅ‚e zmienne to zmienne niebazowe (albo wtórne). Zbiór ZB = {j1, . . . , jm} indeksów zmiennych bazowych to zbiór bazowy. îÅ‚ Å‚Å‚ îÅ‚ Å‚Å‚ xj1 xjm+1 ïÅ‚ śł ïÅ‚ śł . . . . Oznaczmy xB = wektor zmiennych bazowych, xD = ðÅ‚ ûÅ‚ ðÅ‚ ûÅ‚ . . xjm xjn wektor zmiennych niebazowych. RozwiÄ…zanie ogólne ukÅ‚adu U, w którym zmienne bazowe sa zmiennymi zależnymi, zaÅ› zmienne niebazowe parametrami uzyskamy sprowadzajÄ…c (elementarnymi operacjami na wierszach) macierz ukÅ‚adu U do postaci, w której w kolumnach o numerach bazowych stoja kolejno îÅ‚ Å‚Å‚ îÅ‚ Å‚Å‚ îÅ‚ Å‚Å‚ 1 0 0 ïÅ‚ śł ïÅ‚ śł ïÅ‚ śł 0 1 0 ïÅ‚ śł ïÅ‚ śł ïÅ‚ śł , , . . . ïÅ‚ śł ïÅ‚ śł ïÅ‚ śł . . . . . . ðÅ‚ ûÅ‚ ðÅ‚ ûÅ‚ ðÅ‚ ûÅ‚ . . . 0 0 1 MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 13 / 15 RozwiÄ…zania bazowe Niech B = [kj1kj2 . . . kjm] " Mm×m(R) podmacierz macierzy A zÅ‚ożona z kolumn bazowych, zaÅ› D = [kjm+1 . . . kjn] podmacierz kolumn niebazowych. Wtedy Ax = b oznacza BxB + DxD = b, zatem xB + B-1DxD = B-1b (*) postać bazowa ukÅ‚adu U Definicja RozwiÄ…zanie xukÅ‚adu U, w którym zmienne niebazowe sÄ… równe 0 nazywamy rozwiÄ…zaniem bazowym (wzglÄ™dem ukÅ‚adu bazowego B). Mamy wiÄ™c xD = 0 czyli z (*) xB = B-1b. JeÅ›li rozwiÄ…zanie bazowe jest nieujemne, tzn. xj e" 0, j = 1, . . . , n to nazywamy je rozwiÄ…zaniem bazowym dopuszczalnym Uwaga Zadanie programowania liniowego w postaci standardowej, w którym n n > m może mieć najwyżej rozwiÄ…zaÅ„ bazowych m MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 14 / 15 Twierdzenie Wektor x " Rn jest wierzchoÅ‚kiem zbioru rozwiÄ…zaÅ„ dopuszczalnych zadania programowania liniowego w postaci standardowej Ô! x jest rozwiÄ…zaniem bazowym dopuszczalnym tego ukÅ‚adu. MirosÅ‚aw Sobolewski (UW) Warszawa, 2009 15 / 15