Programowanie liniowe Mirosław Sobolewski Wydział Matematyki, Informatyki i Mechaniki UW wykład z algebry liniowej Warszawa, styczeń 2015 Mirosław Sobolewski (UW) Warszawa, 2015 1 / 16
Homo oeconomicus= człowiek gospodarny Zasada najlepszego wykorzystania istniejacych zasobów Typowe przykłady Przykład (Zagadnienie transportowe) Jest n zakładów wydobywczych z możliwościami wydobycia w 1,, w n oraz l przetwórni z popytami p 1,, p l 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 k ij Mamy n l zmiennych x ij oznaczajacych wielkość przewozu z zakładu i do przetwórni j Zbiór dopuszczalny to podzbiór R n l opisany nierównościami: x ij 0 dla 1 i n, 1 j l (przewozy sa nieujemne), l j=1 x ij w i dla i = 1,, n (łaczna ilość środka produkcji wywiezionego z zakładu i nie przekracza jego możliwości w i ), n i=1 x ij p j, dla 1 j l (łaczny przywóz do przetwórni j zaspokaja jej popyt) Minimalizujemy łaczny koszt przewozów, czyli {1 i n,1 j l} k ijx ij Mirosław Sobolewski (UW) Warszawa, 2015 2 / 16
Przykład Problem diety Mirosław Sobolewski (UW) Warszawa, 2015 3 / 16
Przykład Problem diety Mamy na rynku n produktów spożywczych P1,, Pn o cenach za jednostkę odpowiednio q 1,, q n Mirosław Sobolewski (UW) Warszawa, 2015 3 / 16
Przykład Problem diety Mamy na rynku n produktów spożywczych P1,, Pn o cenach za jednostkę odpowiednio q 1,, q n Produkty zawieraja substancje odżywcze S1,, Sk, ilość jednostek Si w jednostce Pj określa liczba z ij Mirosław Sobolewski (UW) Warszawa, 2015 3 / 16
Przykład Problem diety Mamy na rynku n produktów spożywczych P1,, Pn o cenach za jednostkę odpowiednio q 1,, q n Produkty zawieraja substancje odżywcze S1,, Sk, ilość jednostek Si w jednostce Pj określa liczba z ij Normy odżywcze określaja minimalna zawartość substancji odżywczej w diecie Si N i Mirosław Sobolewski (UW) Warszawa, 2015 3 / 16
Przykład Problem diety Mamy na rynku n produktów spożywczych P1,, Pn o cenach za jednostkę odpowiednio q 1,, q n Produkty zawieraja substancje odżywcze S1,, Sk, ilość jednostek Si w jednostce Pj określa liczba z ij Normy odżywcze określaja minimalna zawartość substancji odżywczej w diecie Si N i Mamy opracować najtańsza dietę realizujac a te normy, tzn zminimalizować koszt diety K = P1 q 1 + Pn q n tak, by były spełnione normy, tzn P1 z 11 + P2 z12 + + Pn z1n N 1, P1 z 21 + P2 z22 + + Pn z2n N 2,, P1 z k1 + P2 zk2 + + Pn zkn N k Mirosław Sobolewski (UW) Warszawa, 2015 3 / 16
Definicja Zadanie programowania liniowego jest to zadanie znalezienia wartości optymalnej (tzn minimalnej badź maksymalnej) funkcji liniowej f (x 1,, x n ) = c 1 x 1 + + c n x n na zbiorze X R n złożonym z punktów spełniajacych wszystkie warunki: a 11 x 1 + + a 1n x n = b 1 a m+1 1 x 1 + + a m+1 n x n b m+1 a m1 x m1 + + a mn x n = b m a m+p 1 x 1 + + a m+p n x n b m+p x 1 0 a m+p+1 1 x 1 + + a m+p+1 n x n b m+p+1 x, s 0 x s+1 0 a m+p+q 1 x 1 + + a m+p+q n x n b m+p+q x s+t 0 pierwsze trzy klamry obejmuja ograniczenia nieelementarne (a), ostatnia elementarne (b) Mirosław Sobolewski (UW) Warszawa, 2015 4 / 16
Oznaczenia x 1 a 11 a 1n x =, A =, x n a m1 a mn a m=1 1 a m+1 n a m+p+1 1 a m+p+1 n A =, A = a m+p 1 a m+p n a m+p+q 1 a m+p+q n b = b 1 b m, b = b m+1 b m+p, b = b m+p+1 b m+p+q Warunki (a) moga być wtedy zapisane: Ax = b, A x b, A x 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, 2015 5 / 16
Przykład 2x 1 + 3x 2 6x 3 min przy warunkach (a) : x 1 +x 2 x 3 +x 4 = 7 2x 1 +7x 2 x 4 6 3x 1 3x 3 +x 4 5, (b) : x 1 0 Definicja Zbiór X złożony z wektorów przestrzeni R n spełniajacych warunki (a) i (b) nazywamy zbiorem rozwiazań dopuszczalnych zadania programowania liniowego Rozwiazaniem optymalnym zagadnienia minimalizacji (min) nazywamy taki wektor x X, że dla każdego x X zachodzi f (x) f (x), zaś zagadnienia maksymalizacji (max) taki wektor x X, że zachodzi f (x) f (x) Mirosław Sobolewski (UW) Warszawa, 2015 6 / 16
Interpretacja geometryczna x 1 + x 2 max przy warunkach (a) 2x 1 + x 2 4, x 1 + 3x 2 6 (b) x 1 0, x 2 0 Szukamy najwyższej poziomicy funkcji f ((x 1, x 2 )) = x 1 + x 2, która zahacza o zbiór X opisany nierównościami (a) i (b) Poziomica ta przechodzi przez punkt p, bedacy przecięciem prostych opisanych równościami 2x 1 + x 2 = 4 i x 1 + 3x 2 = 6 Punkt ten ma współrzędne p 1 = 1, 2, p 2 = 1, 6 Zatem max X f = f (p) = 2, 8 Mirosław Sobolewski (UW) Warszawa, 2015 7 / 16
x 2 p X x 1 Mirosław Sobolewski (UW) Warszawa, 2015 8 / 16
Definicja Zadanie programowania liniowego dotyczace minimalizacji, w którym występuja jako ograniczenia nieelementarne opisujace zbiór rozwiazań dopuszczalnych tylko równości (odpowiednio: tylko nierówności), zaś warunkami elementarnymi sa dla wszystkich zmiennych warunki x 1 0,, x n 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, 2015 9 / 16
Metody 1 Maksymalizację funkcji f można zastapić minimalizacja funkcji f 2Warunek a i1 x 1 + + a in x n b i można zastapić para warunków: a i1 x 1 + + a in x n + x n+i = b i, x n+i 0, gdzie x n+i jest nowa zmienna, podobnie a i1 x 1 + + a in x n b i można zastapić para warunków a i1 x 1 + + a in x n x n+i = b i, x n+i 0 3 jeśli mamy warunek x j 0 to podstawiamy x j = x j, zastępuj ac go przez x j 0 4 Jeśli pewna zmienna x j nie występuje w żadnym ograniczeniu elementarnym postaci x j 0 lub x j 0, to podstawiamy x j = x + j dołaczamy warunki x + j 0, x j 0 5 Równanie a i1 x 1 + + a in x n = b i można zastapić układem nierówności a i1 x 1 + + a in x n b i, a i1 x 1 + + a in x n b i x j i Mirosław Sobolewski (UW) Warszawa, 2015 10 / 16
Przykład x 1 + x 2 max 2x 1 + x 2 4 x 1 + 3x 2 6 x 1 0, x 2 0 daje postać standardowa x 1 x 2 min 2x 1 + x 2 + x 3 = 4 x 1 + 3x 2 + x 4 = 6 x 1 0, x 2 0, x 3 0, x 4 0 Mirosław Sobolewski (UW) Warszawa, 2015 11 / 16
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 R n zbiór {tp + (1 t)q R n 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 R n element X, który nie jest punktem wewnętrznym żadnego odcinka zawartego w X Twierdzenie Zbiór rozwiazań dopuszczalnych zadania programowania liniowego jest zbiorem wielościennym wypukłym Twierdzenie Rozpatrzmy zadanie programowania liniowego w postaci standardowej Wówczas funkcja f (x) = c 1 x 1 + + c n x n osiaga wartość minimalna (tzn najmniejsza) na zbiorze rozwiazań dopuszczalnych X f jest ograniczona z dołu na X Ponadto jeśli f osiaga wartość minimalna to osiaga ja również w pewnym wierzchołku (= punkcie ekstremalnym) zbioru X Mirosław Sobolewski (UW) Warszawa, 2015 12 / 16
Rozwiazania bazowe Rozpatrujemy zadanie programowania liniowego w postaci standardowej: c 1 x 1 + + c n x n min przy warunkach a 11 x 1 + + a 1n x n = b 1 U :, x 1 0,, x n 0, gdzie b i 0 a m1 x m1 + + a mn x n = b m dla i = 1,, m W skrócie : a 11 a 1n Min{c x : Ax = b, x 0}, gdzie A =, a m1 a mn b = b 1 b m, x = x 1 x n, c = c 1 c n Można założyć, że r(a) = m Kolumny bazowe dowolny układ m liniowo niezależnych kolumn macierzy A, odpowiadajace im zmienne x i zmienne bazowe Mirosław Sobolewski (UW) Warszawa, 2015 13 / 16
Pozostałe zmienne to zmienne niebazowe (albo wtórne) Zbiór Z B = {j 1,, j m } indeksów zmiennych bazowych to zbiór bazowy Oznaczmy x B = x j1 x jm wektor zmiennych bazowych, x D = x jm+1 wektor zmiennych niebazowych Rozwiazanie ogólne układu U, w którym zmienne bazowe sa zmiennymi zależnymi, zaś zmienne niebazowe parametrami uzyskamy sprowadzajac (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 x jn Mirosław Sobolewski (UW) Warszawa, 2015 14 / 16
Rozwiazania bazowe Niech B = [k j1 k j2 k jm ] M m m (R) podmacierz macierzy A złożona z kolumn bazowych, zaś D = [k jm+1 k jn ] podmacierz kolumn niebazowych Wtedy Ax = b oznacza Bx B + Dx D = b, zatem x B + B 1 Dx D = B 1 b (*) postać bazowa układu U Definicja Rozwiazanie xukładu U, w którym zmienne niebazowe sa równe 0 nazywamy rozwiazaniem bazowym (względem układu bazowego B) Mamy więc x D = 0 czyli z (*) x B = B 1 b Jeśli rozwiazanie bazowe jest nieujemne, tzn x j 0, j = 1,, n to nazywamy je rozwiazaniem bazowym dopuszczalnym Uwaga Zadanie programowania liniowego w postaci standardowej, w którym n > m może mieć najwyżej ( n m) rozwiazań bazowych Mirosław Sobolewski (UW) Warszawa, 2015 15 / 16
Twierdzenie Wektor x R n jest wierzchołkiem zbioru rozwiazań dopuszczalnych zadania programowania liniowego w postaci standardowej x jest rozwiazaniem bazowym dopuszczalnym tego układu Mirosław Sobolewski (UW) Warszawa, 2015 16 / 16