Programowanie matematyczne czȩść I: programowanie liniowe Andrzej Cegielski
ii
Spis treści 1 Wstȩp 1 1.1 Zadania programowania matematycznego.......... 1 1. Oznaczenia i proste fakty................... 4 Podstawy programowania liniowego 7.1 Przyk lady wprowadzaj ace................... 7. Podstawowe pojȩcia...................... 11.3 Podstawy teoretyczne..................... 3.3.1 Zbiory wypuk le..................... 3.3. Punkty ekstremalne.................. 6.3.3 Projekcja metryczna na zbiór wypuk ly........ 9.3.4 Twierdzenia o oddzielaniu i ich konsekwencje.... 31.3.5 Funkcje wypuk le.................... 33.3.6 Stożki.......................... 35.3.7 Lemat Farkasa i jego konsekwencje.......... 38 3 Metoda sympleksowa 43 3.1 Tablica sympleksowa...................... 43 3. Opis metody sympleksowej.................. 50 3..1 Wymiana zmiennej bazowej (piwotyzacja)...... 51 3.. Krawȩdzie zbioru rozwi azań dopuszczalnych..... 53 3..3 Piwotyzacja przy znanym dopuszczalnym rozwi azaniu bazowym (II faza metody sympleksowej)....... 54 iii
iv SPIS TREŚCI 3..4 Przypadki szczególne.................. 57 3..5 Piwotyzacja przy nieznanym dopuszczalnym rozwi azaniu bazowym (I faza metody sympleksowej).... 65 3.3 Degeneracja........................... 71 3.4 Zrewidowana metoda sympleksowa.............. 75 4 Dualizm w programowaniu liniowym 79 4.1 Definicja i przyk lady...................... 79 4. Twierdzenia o dualności.................... 8 4.3 Dualny algorytm sympleksowy................ 9
ROZDZIA L 1 Wstȩp Motto: Pomiȩdzy duchem i materi a pośredniczy matematyka H. Steinhaus 1.1 Zadania programowania matematycznego Niech dane bȩd a: podzbiór D R n i funkcja f : D R. Ogólnie rzecz bior ac, zadanie programowania matematycznego polega na wyznaczeniu punktu x, dla którego funkcja f osi aga minimum (lokalne b adź globalne) na zbiorze D, o ile takie minimum istnieje. Zbiór D, zwany zbiorem rozwi azań dopuszczalnych, podawany jest najczȩściej w postaci D = {x X : c i (x) = 0 dla i E oraz c i (x) 0 dla i I}, gdzie X R n, E = {1,..., p}, I = {p + 1,..., m}, c i : R n R, i E I. Funkcja f nazywa siȩ funkcj a celu, zaś funkcje c i, i E I, nazywaj a siȩ funkcjami ograniczeń lub ograniczeniami. Ograniczenia ponumerowane wskaźnikami i E nazywamy równościowymi, zaś ponumerowane wskaźnikami i I nierównościowymi. Zbiór X jest najczȩściej podawany w postaci: X = R n, X = R n +, X = Z n, X = Z n +. W ostatnich dwóch przypadkach zadanie nazywa siȩ zadaniem programowania ca lkowitoliczbowego. 1
ROZDZIA L 1. WSTȨP Czasem zbiór X dany jest w postaci X = {0, 1} n. Wówczas mówimy o zadaniu programowania binarnego. Dok ladniej rzecz ujmuj ac, programowanie matematyczne zajmuje siȩ: warunkami istnienia rozwi azań dopuszczalnych (warunkami niesprzeczności problemu), warunkami (koniecznymi i wystarczaj acymi) istnienia minimum (lub przynajmniej skończonego kresu dolnego), metodami wyznaczenia tego minimum i punktu x realizuj acego to minimum (w sposób dok ladny lub przybliżony), Czasem do zadań programowania matematycznego zalicza siȩ również: utworzenie, dla konkretnego zagadnienia praktycznego odpowiedniego modelu matematycznego (w postaci minimalizacji funkcji wielu zmiennych), interpretacjȩ rozwi azania dla takiego modelu. Na ogó l zak lada siȩ, że funkcje ograniczeń c i, i E I s a ci ag le. W konsekwencji zbiór D jest domkniȩty. Jeśli ponadto jest on ograniczony i funkcja f jest również ci ag la, to na mocy twierdzenia Weierstrassa osi aga ona minimum na D. Zadania programowania matematycznego dzielimy na: minimalizacjȩ różniczkowaln a (lub inaczej g ladk a), gdy wszystkie funkcje f, c i, i E I, s a różniczkowalne. minimalizacjȩ nieróżniczkowaln a (lub inaczej nieg ladk a), gdy przynajmniej jedna funkcji f, c i, i E I, nie jest różniczkowalna. Minimalizacjȩ różniczkowaln a dzielimy na: minimalizacjȩ bez ograniczeń, gdy D = R n (lub inaczej, funkcje ograniczeń nie wystȩpuj a)
1.1. ZADANIA PROGRAMOWANIA MATEMATYCZNEGO 3 minimalizacjȩ z ograniczeniami, gdy D R n Wśród zadań minimalizacji z ograniczeniami wyróżniamy: zadanie programowania liniowego, gdy wszystkie funkcje f, c i, i E I, s a liniowe, zadanie programowania kwadratowego, gdy funkcja f jest kwadratowa, zaś wszystkie funkcje c i, i E I, s a liniowe, zadanie programowania wypuk lego, gdy E = i wszystkie funkcje f, c i, i I, s a wypuk le. W zadaniu minimalizacji z ograniczeniami: ograniczenie równościowe c i (x) = 0 można zast apić dwoma ograniczeniami nierównościowymi c i (x) 0 i c i (x) 0, ograniczenie nierównościowe c i (x) 0 można zast apić ograniczeniem równościowym c i (x) + u i = 0, wprowadzaj ac tak zwan a zmienn a uzupe lniaj ac a u i 0, zmienn a woln a (x j R) można przedstawić jako różnicȩ dwóch zmiennych nieujemnych x j = x + j x j, gdzie x+ j, x j 0. W konsekwencji, postacie zadania programowania matematycznego z ograniczeniami wy l acznie równościowymi, b adź z ograniczeniami wy l acznie nierównościowymi, ze zmiennymi wy l acznie wolnymi, b adź to ze zmiennymi wy l acznie nieujemnymi s a sobie w pewnym sensie równoważne, tzn. z każdej z nich można (przynajmniej teoretycznie) przejść do dowolnej innej. Inna rzecz, że takie przejście może okazać siȩ ma lo efektywne z punktu widzenia metod programowania matematycznego. Ponieważ max x D f(x) = min x D f(x), wiȩc zadanie maksymalizacji można sprowadzić do zadania minimalizacji i odwrotnie.
4 ROZDZIA L 1. WSTȨP 1. Oznaczenia i proste fakty W dalszej czȩści używać bȩdziemy nastȩpuj acych oznaczeń i konwencji: x = (x 1,..., x n ) R n oznacza element przestrzeni R n w postaci wektora kolumnowego (czasem bȩdziemy zapisywać wspó lrzȩdne wektora w postaci x j, j = 1,...n, szczególnie wówczas, gdy symbolem x k oznaczać bȩdziemy k-ty wyraz ci agu elementów przestrzeni R n ), x 0 oznacza, że wszystkie wspó lrzȩdne wektora x s a nieujemne, R n + = {x R n : x 0} x > 0 oznacza, że wszystkie wspó lrzȩdne wektora x s a nieujemne, przy czym przynajmniej jedna z nich jest dodatnia, x 0 oznacza, że wszystkie wspó lrzȩdne wektora x s a dodatnie, R n ++ = {x R n : x 0} x y jest zwyk lym iloczynem skalarnym wektorów x, y R n zapisanym w konwencji mnożenia macierzy, czyli x y = n x j y j, e j = (0,..., 0, 1, 0,..., 0) oznacza wektor jednostkowy odpowiedniego wymiaru (1 jest j-t a wspó lrzȩdn a), j=1 I oznacza macierz jednostkow a odpowiedniego wymiaru. Jeśli A jest macierz a typu m n, to: A i oznacza i-t a kolumnȩ macierzy A,
1.. OZNACZENIA I PROSTE FAKTY 5 A I oznacza podmacierz utworzon a z kolumn A i macierzy A, i I {1,..., m}, A j oznacza j-ty wiersz macierzy A, r(a) oznacza rz ad macierzy A, Ax jest kombinacj a liniow a kolumn macierzy A, gdzie x R n jest wektorem wspó lczynników tej kombinacji, α A jest kombinacj a liniow a wierszy macierzy A, gdzie α R m jest wektorem wspó lczynników tej kombinacji. Niech A = A 11... A 1r......... A p1... A pr oznacza macierz w zapisie blokowym z wyróżnionymi podmacierzami A ij, i = 1,..., p, j = 1,..., r, takimi, że podmacierze w jednej kolumnie macierzy blokowej A maj a tȩ sam a liczbȩ kolumn i podmacierze w tym samym wierszu macierzy blokowej A maj a tȩ sam a liczbȩ wierszy. Podobne za lożenia dotycz a macierzy B 11... B 1s B =.......... B r1... B rs Ponadto zak ladamy, że istniej a iloczyny A ik B kj, i = 1,..., p, j = 1,...s, k = 1,..., r. Wówczas C 11... C 1s AB = [C ij ] =........., C p1... C ps gdzie C ij = k A ikb kj. Innymi s lowy, regu ly mnożenia macierzy blokowych s a takie same jak dla zwyk lych macierzy.
6 ROZDZIA L 1. WSTȨP
ROZDZIA L Podstawy programowania liniowego Motto: Każda wiedza zawiera tyle prawdy ile jest w niej zawartej matematyki I. Kant.1 Przyk lady wprowadzaj ace Przyk lad.1.1 Przedstawimy matematyczny model nastȩpuj acego zagadnienia: Ogrodnik chce obsadzić ogród wielkości 100 m różami i goździkami. Może on zainwestować maksymalnie 70 z l, zaś z powodu wysokiego nak ladu pracy może on zarezerwować najwyżej 60 m na goździki. Ile m powinien on obsadzić każdym rodzajem kwiatów, aby osi agn ać maksymalny zysk. Robocizna i koszty materia lowe wynosz a dla róż 6 z l/m i dla goździków 9 z l/m. Zysk wynosi dla róż 1 z l/m, zaś dla goździków z l/m. Wprowadzaj ac oznaczenia: x 1 pole powierzchnia (w m ) obsadzonej różami, 7
8 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO x pole powierzchnia (w m ) obsadzonej goździkami, model matematyczny bȩdzie mia l postać: maksymalizować x 1 + x przy ograniczeniach x 1 + x 100 6x 1 + 9x 70 x 60 x 1, x 0 Powyższy przyk lad podpada pod nastȩpuj acy schemat. Przyk lad.1. (zagadnienie analizy dzia lalności gospodarczej) Producent wytwarza n towarów P 1,...,P n wykorzystuj ac m surowców lub ogólniej, czynników produkcyjnych R 1,...,R m. Producent dysponuje b i jednostkami surowca R i, i = 1,..., m. Do wyprodukowania jednostki towaru P j potrzeba a ij jednostek surowca R i, i = 1,..., m, j = 1,..., n. Jednostka wyprodukowanego towaru P j przynosi zysk c j jednostek pieniȩżnych, j = 1,..., n. Ile jednostek każdego z towarów powinien wytwarzać producent, aby zapewnić sobie maksymalny zysk? Oznaczaj ac przez x j ilość jednostek wyprodukowanego towaru P j, j = 1,..., n, możemy powyższe zagadnienie sformu lować nastȩpuj aco: maksymalizować c 1 x 1 + c x +... + c n x n przy ograniczeniach a 11 x 1 + a 1 x +... + a 1n x n b 1 a 1 x 1 + a x +... + a n x n b... a m1 x 1 + a m x +... + a mn x n b m x 1,..., x n 0. Przyk lad.1.3 (zagadnienie diety) Przedstawimy model matematyczny nastȩpuj acego zagadnienia:
.1. PRZYK LADY WPROWADZAJA CE 9 Hodowca karmi krowy dwoma rodzajami karmy, nazwijmy je A i B. Dzienna racja żywnościowa krowy musi zawierać czynniki odżywcze I, II i III w ilościach co najmniej 6, 1 i 4 gramy. Zawartość czynników odżywczych w poszczególnych rodzajach karmy i ich ceny podane s a w tabeli: karma A karma B minimalna zawartość (g) czynnik odżywczy I (g/kg) 1 6 czynnik odżywczy II (g/kg) 4 1 czynnik odżywczy III (g/kg) 0 7 4 cena (z l/kg) 5 7 Ile kilogramów karmy A i B powinna zawierać dzienna racja żywnościowa krowy, aby przy zachowaniu podanego minimalnego zapotrzebowania na czynniki odżywcze, powsta le koszty by ly minimalne? Oznaczaj ac: x 1 ilość (w kg) karmy A w dziennej racji żywnościowej, x ilość (w kg) karmy B w dziennej racji żywnościowej, powyższe zagadnienie bȩdzie mia lo nastȩpuj acy model matematyczny: minimalizować 5x 1 + 7x przy ograniczeniach x 1 + x 6 x 1 + 4x 1 7x 4 x 1, x 0. Przyk lad.1.4 (zagadnienie produkcyjne) Producent ma za zadanie wyprodukować m towarów P 1,...,P m w ilościach b 1,..., b m wykorzystuj ac n surowców R 1,...,R n. Z jednostki surowca R j można wyprodukować a ij jednostek towaru P i, i = 1,..., m, j = 1,..., n. Jednostka surowca R j kosztuje c j jednostek pieniȩżnych, j = 1,..., n. Ile należy użyć poszczególnych surowców do wyznaczonego profilu produkcyjnego, tak aby l aczne koszty surowcowe by ly minimalne?
10 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO Oznaczaj ac przez x j ilość jednostek surowca R j użytego do produkcji, j = 1,..., n, powyższe zagadnienie możemy sformu lować nastȩpuj aco: minimalizować c 1 x 1 + c x +... + c n x n przy ograniczeniach a 11 x 1 + a 1 x +... + a 1n x n = b 1 a 1 x 1 + a x +... + a n x n = b... a m1 x 1 + a m x +... + a mn x n = b m x 1,..., x n 0. Przyk lad.1.5 (zagadnienie transportowe) W sieci m magazynów A 1,...,A m sk laduje siȩ pewien towar. Należy go dostarczyć do sieci n sklepów B 1,...,B n. Zapas magazynu A i wynosi a i jednostek towaru, i = 1,..., m. Sklep B j potrzebuje b j jednostek towaru, j = 1,.., n. Zak ladamy, że m a i = i=1 n b j (.1) ( l aczna podaż jest równa l acznemu popytowi). Koszty transportu jednostki towaru z magazynu A i do sklepu B j wynosz a c ij jednostek pieniȩżnych, i = 1,..., m, j = 1,..., n. Należy określić plan transportowy o minimalnych kosztach zaspokajaj acy zapotrzebowanie wszystkich sklepów (czyli, przy podanym za lożeniu, wyczerpuj acy l aczne zapasy magazynów). Jeśli przez x ij oznaczymy ilość towaru transportowanego z magazynu A i do sklepu B j, i = 1,..., m, j = 1,..., n, to powyższe zagadnienie bȩdzie mia lo nastȩpuj acy model matematyczny: j=1 minimalizować przy ograniczeniach m i=1 n j=1 c ijx ij n j=1 x ij = a i i = 1,.., m, m i=1 x ij = b j j = 1,..., n, x ij 0 i = 1,.., m, j = 1,..., n. (.)
.. PODSTAWOWE POJȨCIA 11. Podstawowe pojȩcia Definicja..1 Pod pojȩciem zadania programowania liniowego (ZPL) rozumie siȩ zadanie maksymalizacji lub minimalizacji funkcji liniowej przy ograniczeniach w postaci równości lub nierówności liniowych. Postać klasyczna ZPL: maksymalizować c 1 x 1 +... + c n x n przy ograniczeniach a 11 x 1 +... + a 1n x n b 1... a m1 x 1 +... + a mn x n b m x j 0, j = 1,..., n. Postać standardowa ZPL: maksymalizować c 1 x 1 +... + c n x n przy ograniczeniach a 11 x 1 +... + a 1n x n = b 1... a m1 x 1 +... + a mn x n = b m x j 0, j = 1,..., n. Ponieważ min x f(x) = max x f(x), wiȩc, podobnie jak w sytuacji ogólnej, problem minimalizacji można sprowadzić do problemu maksymalizacji. Jeśli jedna ze zmiennych x j może przyjmować dowolne wartości rzeczywiste, to również podobnie jak w przypadku ogólnym, można j a wówczas zast apić dwiema zmiennymi nieujemnymi x + j i x j, przy czym x j = x + j x j. Postać klasyczn a ZPL można sprowadzić do postaci standardowej wprowadzaj ac tzw. zmienne uzupe lniaj ace u 1,..., u m :
1 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO maksymalizować c 1 x 1 +... + c n x n przy ograniczeniach a 11 x 1 +... + a 1n x n + u 1 = b 1... a m1 x 1 +... + a mn x n + u m = b m x j 0, j = 1,..., n, u i 0, i = 1,..., m. Ostatnia postać nosi nazwȩ postaci kanonicznej ZPL. Postać standardow a ZPL można sprowadzić do postaci klasycznej przedstawiaj ac każde równanie a i1 x 1 +... + a in x n = b i jako dwie nierówności a i1 x 1 +... + a in x n b i i a i1 x 1... a in x n b i, i = 1,..., m. Niech x = (x 1,..., x n ), c = (c 1,..., c n ), b = (b 1,..., b m ) i A = a 11... a 1n......... a m1... a mn Wówczas ZPL można przedstawić w zapisie macierzowym: w postaci klasycznej:. maksymalizować przy ograniczeniach c x Ax b x 0 w postaci standardowej: maksymalizować przy ograniczeniach c x Ax = b x 0.
.. PODSTAWOWE POJȨCIA 13 Po sprowadzeniu postaci klasycznej do standardowej, ZPL ma nastȩpuj acy zapis macierzowy: maksymalizować c x przy ograniczeniach [ A I ] [ ] x = b u x, u 0. Jest to zapis macierzowy postaci kanonicznej ZPL. Jeśli postać standardow a sprowadzi siȩ do postaci klasycznej w opisany uprzednio sposób, to jej zapis macierzowy wygl ada nastȩpuj aco: maksymalizować przy ograniczeniach [ A A ] [ c x ] b x b x 0. Jeśli rz ad r(a) macierzy A jest równy m, to postać standardow a ZPL można sprowadzić do postaci kanonicznej wyznaczaj ac z uk ladu równań Ax = b, m zmiennych (na przyk lad x 1,..., x m ) jako funkcje pozosta lych n m zmiennych. Można to uczynić na przyk lad metod a eliminacji Gaussa. Metod a t a można również wyznaczyć rzȩdy macierzy A i [A, b], a także usun ać liniowo zależne równania jeśli r(a) = r([a, b]) < m) Przyk lad.. Przy pomocy metody eliminacji Gaussa przedstawimy uk- lad równań x 1 + 3x 4x 3 + x 4 = 4x 1 + x x 3 + x 4 = 1 6x 1 + x + x 3 x 4 = 1 w postaci kanonicznej. Powyższy uk lad równań ma w zapisie macierzowym postać:
14 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO 3 4 1 4 1 6 1 1 x 1 x x 3 x 4 = 1 1. Czasem zapisuje siȩ go również w postaci 3 4 1 4 1 6 1 1 1 1. W tym przypadku należy jednak pamiȩtać o tym, że poszczególnym kolumnom przypisane s a odpowiednie zmienne x 1, x, x 3, x 4 i, że kolejność przypisania może ulec zmianie w trakcie przekszta lceń uk ladu, co bȩdzie mia lo miejsce w naszym przyk ladzie. Po przekszta lceniach elementarnych określonych w metodzie eliminacji Gaussa (polegaj acych w tym przypadku na pomnożeniu pierwszego równania przez i dodaniu do drugiego, nastȩpnie pomnożeniu pierwszego równania przez 3 i dodaniu do trzeciego, dalej pomnożeniu drugiego równania przez i dodaniu do trzeciego i w końcu zamianie kolejności zapisu zmiennych x 3 i x 4 ) otrzymamy równoważny uk lad równań w zapisie macierzowym ze wszystkimi elementami pod g lówn a przek atn a równymi zero: 3 1 4 0 4 0 7 0 0 4 0 x 1 x x 4 x 3 = Z zapisu tego widać, że r(a) = r([a, b]) = 3. Dokonuj ac dalszych przekszta lceń elementarnych określonych w metodzie eliminacji Gaussa (polegaj acych w tym przypadku na pomnożeniu trzeciego równania przez 1 4 i dodaniu do pierwszego, nastȩpnie pomnożeniu drugiego równania przez 3 4 i dodaniu do pierwszego i w końcu na podzieleniu pierwszego równania przez, oraz drugiego i trzeciego przez 4) otrzymamy postać kanoniczn a: 3 1.
.. PODSTAWOWE POJȨCIA 15 gdzie lub 1 0 0 5 8 0 1 0 7 4 0 0 1 0 [ I Ã x 1 x x 4 x 3 ] [ x B x N x B = (x 1, x, x 4 ), x N = x 3, Ã = = ] = b, 5 8 7 4 0 0 3 4 1 4, b = 0 3 4 1 4. Rozwi azanie uk ladu równań można przedstawić wówczas nastȩpuj aco: x B = b Ãx N. Powyższy opis ilustruje ogólny schemat: Zak ladaj ac, jak wyżej, że pierwsze m kolumn macierzy A jest liniowo niezależnych, można uk lad równań Ax = b przekszta lcić metod a eliminacji Gaussa do tzw. postaci trapezowej: A x = b, gdzie: [A, b ] = a 11 a 1... a 1r a 1,r+1... a 1n b 1 0 a 1... a r a,r+1... a n b...... 0 0... a rr a r,r+1... a rn b r 0 0... 0 0... 0 b r+1...... 0 0... 0 0... 0 b n oraz a 11 0,..., a rr 0. Elementy b r+1,..., b n decyduj a o istnieniu rozwi azania uk ladu równań. Uk lad posiada rozwi azanie wtedy i tylko wtedy gdy wszystkie one s a równe zero. W przypadku istnienia rozwi azań ich ilość zależy
16 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO od r. Jeśli r = n, to uk lad posiada dok ladnie jedno rozwi azanie. Jeśli r < n, to uk lad posiada nieskończenie wiele rozwi azań zależnych od n r parametrów. Jeśli przynajmniej jeden z elementów b r+1,..., b n jest różny od zera, to uk lad nie posiada rozwi azań. Uk lad równań A x = b można teraz (w przypadku istnienia rozwi azania) rozwi azać od do lu do góry. Po przekszta lceniach elementarnych opisanych w metodzie eliminacji Gaussa, otrzymamy równoważny mu uk lad równań lub inaczej x B = b Ãx N. [ I Ã ] [ x B x N ] = b W dalszej czȩści tego rozdzia lu zak ladamy, że, r(a) = m. Jak zauważyliśmy wyżej, za lożenie to nie ogranicza ogólności rozważań. Rozwi azanie uk ladu równań Ax = b można również opisać inaczej. Niech w zapisie blokowym A = [ A B A N ], przy czym A B jest macierz a nieosobliw a (det A B 0). Nietrudno zauważyć, że za lożenie to również nie ogranicza ogólności rozważań (w razie potrzeby [ można ] ewentualnie xb przenumerować zmienne x 1,..., x n ). Dalej, niech x = (na przyk lad x B = (x 1,..., x m ), x N = (x m+1,..., x n ) ). Wspó lrzȩdne wektora x B nazywamy zmiennymi bazowymi, zaś wspó lrzȩdne wektora x N zmiennymi niebazowymi. Omawiany uk lad równań można zapisać w postaci lub inaczej w postaci [ AB A N ] [ x B x N ] = b A B x B + A N x N = b. Po pomnożeniu obu stron ostatniego równania z lewej strony przez A 1 B otrzymamy x B = A 1 B b A 1 B A Nx N. (.3) x N
.. PODSTAWOWE POJȨCIA 17 Definicja..3 Nieosobliwa podmacierz A B stopnia m macierzy A nazywa siȩ macierz a bazow a (jest ona utworzona z m liniowo niezależnych kolumn macierzy A). Definicja..4 Niech A = [ A B A N ], gdzie A B jest macierz a bazow a. Wektor x = (x B, 0), gdzie x B = A 1 B b, nazywa siȩ rozwi azaniem bazowym uk ladu równań Ax = b. Wspó lrzȩdne wektora x B danego równości a (.3) nazywaj a siȩ zmiennymi bazowymi. Pozosta le wspó lrzȩdne wektora x = (x B, x N ) bȩd acego rozwi azaniem uk ladu równań nazywaj a siȩ zmiennymi niebazowymi. Uwaga..5 Każde nieujemne rozwi azanie x uk ladu równań Ax = b nazywa siȩ rozwi azaniem dopuszczalnym. Rozwi azanie bazowe (x B, 0) nazywa siȩ dopuszczalnym rozwi azaniem bazowym, jeśli x B 0. Uwaga..6 Maksymalna liczba rozwi azań bazowych uk ladu równań Ax = b wynosi ( n m). Może być ich jednak mniej, jeśli pewne podmacierze typu m m macierzy A bȩd a osobliwe. Ponadto niektóre z rozwi azań bazowych mog a nie być dopuszczalne. Definicja..7 Rozwi azanie bazowe (x B, 0) nazywa siȩ zdegenerowanym, jeśli przynajmniej jedna ze zmiennych bazowych jest równa zero. W przeciwnym wypadku rozwi azanie bazowe nazywa siȩ niezdegenerowanym. Definicja..8 Dopuszczalne rozwi azanie x ZPL nazywa siȩ rozwi azaniem optymalnym, jeśli nie istnieje rozwi azanie dopuszczalne ZPL o wiȩkszej (albo mniejszej w przypadku minimalizacji) wartości funkcji celu niż c x. Jeśli dopuszczalne rozwi azanie bazowe jest rozwi azaniem optymalnym, to nazywa siȩ ono optymalnym rozwi azaniem bazowym. Niech X oznacza zbiór rozwi azań dopuszczalnych ZPL, zaś X zbiór rozwi azań optymalnych ZPL.
18 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO W przypadku, gdy ZPL jest dane w postaci standardowej, jego funkcjȩ celu możemy zapisać nastȩpuj aco: z = c x = c Bx B + c Nx N Po wstawieniu w miejsce x B wyrażenia określonego równości a (.3) otrzymamy z = c BA 1 B b + (c N c BA 1 B A N)x N (.4) W zagadnieniach ekonomicznych wektor c B A 1 B nazywa siȩ wektorem cen ukrytych, c B A 1 B A N nazywa siȩ wektorem kosztów równoważnych, c N c B A 1 B A N wektorem kosztów zredukowanych, zaś przeciwny doń wektor: c B A 1 B A N c N wektorem ujemnych kosztów zredukowanych. Podamy teraz interpretacjȩ tych pojȩć na przyk ladzie zagadnienia produkcyjnego (przyk lad.1.4). Przypuśćmy, że x = (x B, x N ) jest pewnym rozwi azaniem dopuszczalnym (wektorem udzia lów surowcowych) i, że x = (x B, x N ) jest takim rozwi azaniem dopuszczalnym, że x N = x N +e j, x B = A 1 B b A 1 B A Nx N. Inaczej mówi ac, j-t a zmienn a niebazow a (udzia l j-tego surowca) zwiȩkszono o jednostkȩ, a zmienne bazowe zmieniono tak, aby x by lo nadal rozwi azaniem dopuszczalnym. Niech z i z bȩd a odpowiadaj acymi tym rozwi azaniom wartościami funkcji celu. Wówczas z równości (.4) otrzymamy po prostych przekszta lceniach z = z (c BA 1 B A j c j ), gdzie A j oznacza j-t a kolumnȩ macierzy A. Widzimy wiȩc, że zwiȩkszenie udzia lu j-tego surowca o jednostkȩ (przy zachowaniu profilu produkcji) powoduje redukcjȩ wartości funkcji celu (kosztów surowcowych) o wielkość c B A 1 B A j c j. Zauważmy, że wielkość ta jest j-t a wspó lrzȩdn a wektora ujemnych kosztów zredukowanych. Jeśli przy takiej zamianie rozwi azania x na x (zwiȩkszeniu udzia lu j-tego surowca o jednostkȩ) funkcja celu (koszty surowcowe) mia laby pozostać bez zmiany, to oczywiście c j = c BA 1 B A j, czyli cena jednostki j-tego surowca musia laby być równa j-tej wspó lrzȩdnej wektora kosztów równoważnych. Przy okazji zauważmy, że jeżeli x jest
.. PODSTAWOWE POJȨCIA 19 (bazowym) rozwi azaniem optymalnym zadania minimalizacji, to wszystkie koszty zredukowane dla zmiennych niebazowych (nie używanych surowców) s a nieujemne albo inaczej ich koszty równoważne s a równe co najwyżej jednostkowym cenom surowcowym. Dla rozwi azania optymalnego zadania maksymalizacji wszystkie ujemne koszty zredukowane dla zmiennych niebazowych s a nieujemne. Interpretacja ekonomiczna wektora cen ukrytych bȩdzie podana później. Przyk lad..9 Określimy wszystkie bazowe rozwi azania dopuszczalne uk- ladu równań [ ] x 1 1 1 [ ] x 1 5 4 =. 5 x 3 Oczywiście r(a) =. a) Wybieraj ac B = {1, } otrzymamy x B = (, 1) i dopuszczalne rozwi azanie bazowe x = (, 1, 0), b) z kolei wybieraj ac B = {, 3} otrzymamy x B = ( 5 3, 3 ) i dopuszczalne rozwi azanie bazowe x = (0, 5 3, 3 ). c) natomiast wybieraj ac B = {1, 3} otrzymamy x B = (5, 1) i niedopuszczalne rozwi azanie bazowe x = (5, 0, 1). Przyk lad..10 Wyznaczymy wszystkie bazowe rozwi azania dopuszczalne ZPL: maksymalizować c 1 x 1 + c x przy ograniczeniach x 1 + x 8 x 1 + x 10 x 1 + x 16 x 1 6 x 1, x 0.
0 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO Postać standardowa tego zadania w zapisie macierzowym wygl ada nastȩpuj aco: maksymalizować c 1 x 1 + c x x 1 1 1 0 0 0 x przy ograniczeniach 1 1 0 1 0 0 x 3 1 0 0 1 0 x 4 = 1 0 0 0 0 1 x 5 x 6 Oczywiście r(a) = r([a, b]) = 4. Niektóre z rozwi azań bazowych przedstawiaj a siȩ nastȩpuj aco: a) dla B = {, 4, 5, 6}, x B = (4, 6, 1, 6) i x = (0, 4, 0, 6, 1, 6) jest dopuszczalnym rozwi azaniem bazowym, b) dla B = {1,, 5, 6}, x B = (4, 6,, ) i x = (4, 6, 0, 0,, ) jest dopuszczalnym rozwi azaniem bazowym, c) dla B = {1,, 3, 4}, x B = (6, 4, 6, 0) i x = (6, 4, 6, 0, 0, 0) jest rozwi azaniem zdegenerowanym, d) dla B = {1,, 3, 5}, x B = (6, 4, 6, 0) i x = (6, 4, 6, 0, 0, 0) jest rozwi azaniem zdegenerowanym, e) dla B = {1,, 3, 6}, x B = (6, 4, 6, 0) i x = (6, 4, 6, 0, 0, 0) jest rozwi azaniem zdegenerowanym, f) dla B = {1, 3, 4, 5}, x B = (6, 14, 4, 4) i x = (6, 0, 14, 4, 4, 0) jest dopuszczalnym rozwi azaniem bazowym, g)dla B = {3, 4, 5, 6}, x B = (8, 10, 16, 6) i x = (0, 0, 8, 10, 16, 6) jest dopuszczalnym rozwi azaniem bazowym, h) dla B = {1,, 4, 6}, x B = ( 4 5, 3 5, 6 5, 6 5 ) i x = ( 4 5, 3 5, 0, 6 5, 0, 6 5 ) jest niedopuszczalnym rozwi azaniem bazowym. Poza tym istnieje jeszcze 6 niedopuszczalnych rozwi azań bazowych. Zwróćmy uwagȩ na to, że trzem różnym wyborom zbioru B odpowiada jedno (potrójne) rozwi azanie zdegenerowane. Czytelnikowi zalecamy narysowanie zbioru rozwi azań dopuszczalnych omawianego zadania i porównanie wierzcho lków tego zbioru z wyznaczonymi bazowymi rozwi azaniami dopuszczalnymi. 8 10 16 6
.. PODSTAWOWE POJȨCIA 1 Ćwiczenie..11 Przedstawić: a) problem ogrodnika (przyk lad.1.1); b) zagadnienie diety (przyk lad.1.3); jako ZPL w postaci klasycznej i standardowej, i rozwi azać te zadania graficznie. Ad a) Postać klasyczna tego problemu wygl ada nastȩpuj aco: maksymalizować x 1 + x przy ograniczeniach x 1 + x 100 6x 1 + 9x 70 x 60 x 1, x 0. St ad otrzymujemy postać standardow a (która jest jednocześnie postaci a kanoniczn a): maksymalizować x 1 + x x 1 1 1 1 0 0 x 100 przy ograniczeniach 6 9 0 1 0 u 1 0 1 0 0 1 u = 70 60 u 3 x 1, x, u 1, u, u 3 0. Ad b) Postać klasyczna tego problemu wygl ada nastȩpuj aco: albo minimalizować 5x 1 + 7x przy ograniczeniach x 1 + x 6 x 1 + 4x 1 7x 4 x 1, x 0 maksymalizować 5x 1 7x przy ograniczeniach x 1 x 6 x 1 4x 1 7x 4 x 1, x 0.
ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO Pozosta l a czȩść zadania pozostawiamy do uzupe lnienia czytelnikowi.
.3. PODSTAWY TEORETYCZNE 3.3 Podstawy teoretyczne Motto: Naukȩ buduje siȩ z faktów, tak jak dom buduje siȩ z kamieni. Jednak zbiór faktów nie jest jeszcze nauk a, tak jak stos kamieni nie jest jeszcze domem. H. Poincaré W niniejszym paragrafie zestawiamy pojȩcia i twierdzenia dotycz ace zbiorów i funkcji wypuk lych, które bȩd a nam potrzebne w dalszej czȩści. Niektóre z twierdzeń przedstawiamy bez dowodów. Dowody te można znaleźć w podrȩcznikach do analizy wypuk lej, na przyk lad w ksi ażce [Hir-Lem]..3.1 Zbiory wypuk le Definicja.3.1 Zbiór K R n nazywa siȩ wypuk lym, jeśli x,y K λ [0,1] (1 λ)x + λy K Otoczk a wypuk l a zbioru S R n nazywamy najmniejszy zbiór wypuk ly zawieraj acy S. Oznaczamy j a symbolem conv S. Kombinacj a wypuk l a elementów x 1,..., x m R n nazywamy element x R n postaci x = m λ i x i, i=1 gdzie λ i 0, i = 1,..., m, m i=1 λ i = 1. Czytelnikowi pozostawiamy dowód nastȩpuj acego lematu. Lemat.3. Podzbiór C R n jest wypuk ly wtedy i tylko wtedy, gdy do C należy dowolna kombinacja wypuk la jego elementów. Przyk lad.3.3 Podamy teraz ważne dla zastosowań przyk lady zbiorów wypuk lych:
4 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO a) Przekrój dowolnej rodziny zbiorów wypuk lych jest zbiorem wypuk lym. b) Dowolna podprzestrzeń afiniczna, w szczególności dowolna hiperp laszczyzna {x R n : a x = b} jest zbiorem wypuk lym. c) Dowolna pó lprzestrzeń {x R n : a x b} jest zbiorem wypuk lym. d) Ponieważ przekrój dowolnej liczby zbiorów wypuk lych jest zbiorem wypuk lym, wiȩc w szczególności zbiory postaci {x R n : a i x = b i } i I s a wypuk le. Oczywiście algebraicznie s a one zbiorami rozwi azań uk- ladu równań liniowych a i x = b i, i I. e) Z tych samych powodów wypuk le s a zbiory postaci {x R n : a i x b i }. i I W przypadku, gdy I jest zbiorem skończonym, zbiory takie nazywamy zbiorami wielościennymi. Szczególnym przypadkiem zbioru wielościennego jest sympleks standardowy, zdefiniowany nastȩpuj aco: m = {λ R m : λ i 0, i = 1,..., m, m λ i = 1}. Innym przyk ladem zbioru wielościennego jest zbiór rozwi azań dopuszczalnych X zadania programowania liniowego. Zbiorem wielościennym jest również zbiór rozwi azań optymalnych X tego zadania ponieważ i=1 X = X {x R n : c x c x }, gdzie x X. Tak wiȩc zbiory X i X s a wypuk le. f) Dowolna kula B(y, r) = {x R n : x y r} jest zbiorem wypuk lym.
.3. PODSTAWY TEORETYCZNE 5 Lemat.3.4 Otoczka wypuk la zbioru S R n jest postaci m conv S = { λ i x i : x i S, λ m, m N} (.5) i=1 Dowód. Na mocy Definicji.3.1 conv S jest zbiorem wypuk lym. Skoro conv S S, wiȩc z Lematu.3. wynika, że conv S zawiera również wszystkie kombinacje wypuk le elementów zbioru S. Nietrudno pokazać, że zbiór po prawej stronie równości (.5) jest wypuk ly. Zawiera on S wiȩc zgodnie z Definicj a.3.1 zawiera on również conv S W przestrzeni R n liczbȩ elementów wchodz acych do kombinacji wypuk lych, o których mowa w równości (.5) można ograniczyć. Zachodzi bowiem nastȩpuj ace twierdzenie. Twierdzenie.3.5 (Carathéodory) Otoczka wypuk la zbioru S R n sk lada siȩ ze wszystkich kombinacji wypuk lych co najwyżej n + 1 elementów zbioru S: m conv S = { λ i x i : x i S, λ m, m n + 1}. i=1 Dowód. Niech S R n i niech x conv S. Zgodnie z równości a (.5) istnieje m N, elementy x 1,..., x m S i wektor λ m takie, że x = m i=1 λ ix i. Wystarczy pokazać, że m n + 1. Pokażemy, że jeśli m > n+1, to liczbȩ niezerowych wspó lczynników w sumie m i=1 λ ix i można zmniejszyć. Niech x i = (x i, 1) R n R. Ponieważ m > n+1, wiȩc wektory x i, i = 1,..., m s a liniowo zależne. Oznacza to, że istniej a liczby α 1,..., α m nie wszystkie równe zero takie, że m i=1 α ix i = 0, czyli m i=1 α ix i = 0 i m i=1 α i = 0. Tak wiȩc wśród α i, i = 1,..., m istniej a liczby dodatnie. Niech ε 0 = λ i 0 α i0 = min{ λ i α i : α i > 0, i = 1,..., m} (.6)
6 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO i niech λ i = λ i ε 0 α i, i = 1,..., m. Z równości (.6) wynika że λ i 0 dla i = 1,..., m i, że λ i0 = 0. Zatem m λ i x i = i=1 m λ i x i ε 0 m i=1 i=1 α i x i = x i m λ i = i=1 m λ i ε 0 i=1 m i=1 α i = m λ i = 1. Ponieważ λ i0 = 0, wiȩc widzimy, że x można przedstawić jako kombinacjȩ wypuk l a m 1 elementów..3. Punkty ekstremalne Definicja.3.6 Punkt x należ acy do zbioru wypuk lego K R n nazywa siȩ punktem ekstremalnym tego zbioru, jeśli nie jest środkiem odcinka l acz acego dwa różne punkty zbioru K: i=1 x = 1 (x + x ) i x, x K x = x. Zbiór punktów ekstremalnych zbioru K oznaczamy symbolem ext K. W przypadku, gdy K jest zbiorem wielościennym, jego punkty ekstremalne nazywaj a siȩ wierzcho lkami. Przyk lad.3.7 Podamy postaci zbiorów punktów ekstremalnych dla wybranych zbiorów wypuk lych a) Dla K = [a, b] R, przy czym a b, ext K = {a, b}, b) dla K = R n + = {x R n : x 0}, ext K = {0} c) dla K = m, ext K = {e i : i = 1,..., m},
.3. PODSTAWY TEORETYCZNE 7 d) dla K = {x R n : Ax = b}, ext K = {A 1 b} jeśli uk lad równań Ax = b posiada dok ladnie jedno rozwi azanie i ext K = w przeciwnym wypadku. Twierdzenie.3.8 Niech X = {x R n : Ax = b, x 0} bȩdzie zbiorem rozwi azań dopuszczalnych zadania programowania liniowego w postaci standardowej. Wówczas x X jest wierzcho lkiem zbioru X wtedy i tylko wtedy, gdy x jest bazowym rozwi azaniem dopuszczalnym. Dowód. ( ) Niech x bȩdzie wierzcho lkiem zbioru X. Zapiszmy (po ewentualnym przenumerowaniu zmiennych) x = (x 1,..., x k, 0,..., 0), gdzie x i > 0 dla i = 1,..., k. Oznaczmy K = {1,..., k} i x K = (x 1,..., x k ). Pokażemy, że macierz A K = [ A 1... A k ] ma liniowo niezależne kolumny (r(a K ) = k). Przypuśćmy, że jest przeciwnie, tzn. A K α K = 0 dla pewnego niezerowego wektora α K = (α 1,..., α k ). Niech α = (α 1,..., α k, 0,..., 0) R n. Oczywiście wektor α jest również niezerowy. Niech ε > 0 bȩdzie liczb a na tyle ma l a, że x = x+ εα 0 i x = x εα 0. Taka liczba istnieje, ponieważ x i > 0 dla i = 1,..., k. Zauważmy, że x i x s a rozwi azaniami dopuszczalnymi, gdyż A(x ± εα) = Ax ± εaα = b ± εa K α K = b. Ale x = 1 (x + x ) i x x, gdyż ε 0. Zatem x nie jest wierzcho lkiem zbioru X. Uzyskana sprzeczność dowodzi, że r(a K ) = k, a wiȩc k m, gdyż r(a) = m. Do l aczmy kolumny A k+1,..., A m (po ewentualnym ich przenumerowaniu) do macierzy A K tak, aby powsta la macierz A B = [ A 1... A m ] by la bazowa (nieosobliwa). Niech A N = [ A m+1... A n ]. Oznaczmy x B = (x 1,..., x k, 0,..., 0) }{{}. Mamy wiȩc x = (x B, 0) i widać, że m k x jest dopuszczalnym rozwi azaniem bazowym, gdyż b = Ax = [ A B A N ]x = A B x B czyli x B = A 1 B b oraz x 0. Ponadto, jeśli k < m, to rozwi azanie to jest zdegenerowane.
8 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO ( ) Niech A B bȩdzie macierz a bazow a i niech x = (x B, 0), gdzie x B = A 1 B b bȩdzie bazowym rozwi azaniem dopuszczalnym. Przypuśćmy, że x = 1 (x + x ) dla pewnych rozwi azań dopuszczalnych x = (x B, x N ) i x = (x B, x N ). Mamy wiȩc x B = 1 (x B + x B) oraz 0 = 1 (x N + x N). W istocie x N = x N = 0 (jeśli suma nieujemnych wektorów jest wektorem zerowym, to wektory te s a wektorami zerowymi). Ponadto b = Ax = [ A B A N ]x = A B x B czyli x B = A 1 B b. Podobnie, x B = A 1 B b. Tak wiȩc x B = x B. Zatem x = x. Pokazaliśmy wiȩc, że x jest wierzcho lkiem zbioru X. Uwaga.3.9 Powyższe twierdzenie jest prawdziwe również dla postaci klasycznej zadania programowania liniowego. W celu pokazania tej wersji twierdzenia należy najpierw sprowadzić zbiór ograniczeń do postaci standardowej X = {x R n : Ax b, x 0} X = {w R n+m : Aw = b, w 0}, gdzie A = [ A I ], w = (x, u ), dla której to postaci twierdzenie zosta lo wyżej pokazane. Nastȩpnie należy zauważyć, że jeśli punkt w = (x, u ) jest wierzcho lkiem zbioru X, to x jest wierzcho lkiem zbioru X oraz jeśli x jest wierzcho lkiem zbioru X i wektor u R m jest taki, że Ax + u = b, to punkt w = (x, u ) jest wierzcho lkiem zbioru X (dowody tych faktów pozostawiamy czytelnikowi jako ćwiczenie).
.3. PODSTAWY TEORETYCZNE 9.3.3 Projekcja metryczna na zbiór wypuk ly Definicja.3.10 Niech C R n i niech x R n. Punkt y = P C (x) C nazywamy projekcj a metryczn a punktu x na zbiór C jeśli z C x y x z. Wprawdzie projekcja metryczna zosta la zdefiniowana dla dowolnej normy, jednak bȩd a nas interesować w lasności tej projekcji dla normy indukowanej przez iloczyn skalarny. W dalszym ci agu tego ustȩpu zak ladamy wiȩc, że =, dla pewnego iloczynu skalarnego. Twierdzenie.3.11 Niech C R n bȩdzie zbiorem niepustym, domkniȩtym i wypuk lym. Wówczas dla dowolnego x R n istnieje dok ladnie jedna jego projekcja metryczna na C. Dowód. Twierdzenie pokażemy najpierw dla x = 0. Niech d = inf{ y : y C} i niech y k C bȩdzie takie, że y k d. a) Pokażemy, że y k jest ci agiem Cauchy ego. Niech ε > 0 i niech k 0 N bȩd a takie, że y k d + ε/4 dla k k 0. Niech k, l k 0. Oczywiście 1 y k + 1 y l C ponieważ C jest wypuk ly. St ad 1 y k + y l d. Korzystaj ac z tożsamości równoleg loboku otrzymujemy w konsekwencji: y k y l = y k + y l y k + y l (d + ε/4) + (d + ε/4) 4d = ε, tzn. y k jest ci agiem Cauchy ego. b) Z a) wynika, że y k zbiega do pewnego y R n, gdyż R n jest przestrzeni a zupe ln a. Ponadto y C, ponieważ C jest domkniȩty. St ad i z ci ag lości normy wynika, że y = d. Oznacza to, że y = P C (0). c) Pokażemy teraz, że projekcja metryczna określona jest jednoznacznie. Niech y C i niech y = d. Z wypuk lości C otrzymujemy 1 y + 1 y C. Ponadto d 1 y + 1 y 1 y + 1 y = d,
30 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO a wiȩc y + y = d. Korzystaj ac powtórnie z tożsamości równoleg loboku mamy: y y = y + y y + y = d + d 4d = 0, czyli y = y. Ponieważ P C (x) = x + P C x (0), wiȩc twierdzenie jest prawdziwe dla dowolnego x R n. Uwaga.3.1 Istnienie projekcji metrycznej na zbiór C R n można pokazać prościej korzystaj ac z ci ag lości normy i z twierdzenia Weierstrassa. Natomiast przeprowadzony powyżej dowód wskazuje, że Twierdzenie.3.11 jest prawdziwe również dla dowolnej przestrzeni Hilberta. Twierdzenie.3.13 Niech x R n, C R n bȩdzie zbiorem niepustym, domkniȩtym i wypuk lym i niech y C. Wówczas nastȩpuj ace warunki s a równoważne (i) y = P C (x), (ii) x y, z y 0 dla dowolnego z C, Dowód. (i) (ii). Niech y = P C (x) i niech z C. Ponadto, niech z λ = y + λ(z y) dla λ (0, 1). Oczywiście z λ C, ponieważ C jest wypuk ly. Z (i) i z w lasności iloczynu skalarnego mamy wiȩc x y x z λ = x y λ(z y) = x y λ x y, z y + λ z y, czyli λ x y, z y λ z y.
.3. PODSTAWY TEORETYCZNE 31 Dziel ac teraz obie strony przez λ > 0 i przyjmuj ac, że λ 0, otrzymamy (ii). (ii) (i). Z w lasności iloczynu skalarnego oraz z (ii) mamy dla dowolnego z C z x = z y + y x + z y, y x y x, co na mocy definicji projekcji metrycznej daje (i)..3.4 Twierdzenia o oddzielaniu i ich konsekwencje Twierdzenie.3.14 (o ostrym oddzielaniu) Niech C R n bȩdzie zbiorem niepustym, domkniȩtym i wypuk lym i niech x / C. Wówczas istnieje s R n takie, że s, x > sup{ s, y : y C}. Dowód. Niech s = x P C (x). Wówczas z Twierdzenia.3.13 wynika prosto, że dla każdego y C x y, s s, czyli s, x s, y + s Zauważmy, że s 0, bo C jest domkniȩty i x / C. Zatem s, x sup{ s, y : y C} + s > sup{ s, y : y C}. Twierdzenie.3.15 (o s labym oddzielaniu) Niech C R n bȩdzie zbiorem niepustym i wypuk lym i niech x / C. Wówczas istnieje s R n takie, że s, x sup{ s, y : y C}.
3 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO Dowód. Jeśli x / cl C, to teza wynika z twierdzenia o ostrym oddzielaniu. Niech wiȩc x cl C \ C. Ponieważ ten ostatni zbiór jest zawarty w brzegu zbioru C, wiȩc istnieje ci ag x k x, x k / cl C. Z twierdzenia o ostrym oddzielaniu wynika, że istnieje ci ag s k 0 taki, że dla każdego y C s k, x k > s k, y lub inaczej s k s k, x k > s k s k, y. Ci ag s k / s k jest ograniczony, posiada on wiȩc podci ag zbieżny do pewnego wektora unormowanego, powiedzmy do s. Przechodz ac do granicy i korzystaj ac z ci ag lości iloczynu skalarnego otrzymamy s, x s, y dla każdego y C, co jest równoważne tezie twierdzenia. Definicja.3.16 Ograniczony zbiór wielościenny nazywa siȩ wielościanem. Twierdzenie.3.17 (Minkowski) Wielościan K jest otoczk a wypuk l a zbioru swoich punktów ekstremalnych: K = conv ext K Dowód powyższego twierdzenia, które w ogólniejszej postaci (gdzie K jest zbiorem zwartym i wypuk lym w lokalnie wypuk lej przestrzeni liniowotopologicznej) nosi nazwȩ twierdzenia Kreina Milmana, można znaleźć w wiȩkszości podrȩczników do analizy funkcjonalnej, np. w podrȩczniku [Mus]. Dowód indukcyjny twierdzenia Minkowskiego wzglȩdem wymiaru przestrzeni oparty o twierdzenie o oddzielaniu można znaleźć również w podrȩcznikach do analizy wypuk lej, np. w podrȩczniku [Hir-Lem, Twierdzenie.3.4]. Uwaga.3.18 Prawdziwe jest również twierdzenie w pewnym sensie odwrotne do twierdzenia Minkowskiego: otoczka wypuk la zbioru skończonego jest wielościanem.
.3. PODSTAWY TEORETYCZNE 33 Twierdzenie.3.19 Jeśli zbiór rozwi azań dopuszczalnych X zadania programowania liniowego (w postaci klasycznej lub standardowej) jest niepusty, to posiada on przynajmniej jeden wierzcho lek. Dowód. Pokażemy najpierw, że funkcja f(x) = e x osi aga minimum na zbiorze X, gdzie e = (1,..., 1) Niech z X. Wówczas oczywiście inf{e x : x X} = inf{e x : e x e z, x X}. Ponieważ zbiór X = {x R n : e x e z, x X} jest zwarty jako podzbiór domkniȩty zbioru zwartego {x R n + : e x e z} i funkcja f jest ci ag la, wiȩc osi aga ona minimum na X, równe powiedzmy α. Z postaci zbioru X wynika, że f osi aga również minimum równe α na zbiorze X. Zbiór X α = {x X : e x = α} jest wielościanem, wiȩc na mocy twierdzenia Minkowskiego posiada punkt ekstremalny x. Pokażemy że jest on również punktem ekstremalnym zbioru X. Niech x = 1 x + 1 x dla x, x X. Mamy α = e x = 1 e x + 1 e x α, wiȩc e x = e x = α. Zatem x, x X α. W konsekwencji x = x, bo x jest punktem ekstremalnym zbioru X α. Uwaga.3.0 Liczba wierzcho lków zbioru rozwi azań dopuszczalnych X zadania programowania liniowego wynosi co najwyżej: a) ( n m) dla postaci standardowej, b) ( ) n+m m dla postaci klasycznej..3.5 Funkcje wypuk le Definicja.3.1 Funkcja f : R n R nazywa siȩ wypuk l a, jeśli x,y R n λ [0,1] f((1 λ)x + λy) (1 λ)f(x) + λf(y). Funkcja f : R n R nazywa siȩ wklȩs l a, jeśli f jest funkcj a wypuk l a lub inaczej x,y R n λ [0,1] f((1 λ)x + λy) (1 λ)f(x) + λf(y).
34 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO Lemat.3. Funkcja wypuk la f : R n R jest lokalnie ograniczona z góry, tzn. dla dowolnego x R n istnieje r > 0 takie, że f jest ograniczona na kuli B(x, r) Dowód. Niech x 0 = x, x i = x + e i, i = 1,..., n i niech = conv{x i, i = 0, 1,..., n}. Czytelnikowi pozostawiamy dowód faktu, że ma niepuste wnȩtrze (wystarczy pokazać na przyk lad, że B(x + 1 n e, 1 n ), gdzie e = (1,..., 1) ). Niech c bȩdzie maksymaln a wartości a funkcji f na zbiorze wierzcho lków x 0, x 1,..., x n zbioru. Wówczas dla r > 0 takiego, że B(x, r) i dla dowolnego y B(x, r) mamy y = n i=0 λ ix i, n i=0 λ i = 1., λ i 0 i f(y) = f( n λ i x i ) i=0 n λ i f(x i ) c i=0 n λ i = c Twierdzenie.3.3 Funkcja wypuk la f : R n R jest ci ag la. Dowód. Niech x R n i niech h : R n R, h(z) = f(x + z) f(x). Oczywiście h jest wypuk la i h(0) = 0. Na mocy Lematu.3. istniej a wiȩc r > 0 i c R takie, że h(z) c dla z B(0, r). Niech z B(0, r), z 0 i niech y = wiȩc r z z. Wówczas oczywiście y = r i z = λy dla λ = z r. Mamy h(z) = h(λy) = h(λy + (1 λ)0) λh(y) + (1 λ)h(0) z r c. Z drugiej strony i=0 0 = h(0) = h( 1 z + 1 ( z)) 1 h(z) + 1 h( z), czyli h(z) h( z) z r c,
.3. PODSTAWY TEORETYCZNE 35 bo z B(0, r). St ad h(z) z r c i dla y = x + z mamy f(y) f(x) = h(z) c r z = c y x, r a wiȩc f jest ci ag la w x. Twierdzenie.3.4 Jeśli f : R n R jest funkcj a wklȩs la i K jest zbiorem zwartym i wypuk lym, to istnieje punkt ekstremalny zbioru K, w którym f osi aga minimum na tym zbiorze. Dowód. Funkcja wklȩs la f jest ci ag la, a wiȩc osi aga minimum na zbiorze zwartym K na mocy twierdzenia Weierstrassa. Niech wiȩc x K bȩdzie takie, że f(x) f(x ) = f dla każdego x K. Niech w 1,..., w p K bȩd a punktami ekstremalnymi zbioru K takimi, że x = p i=1 λ iw i, gdzie λ = (λ 1,..., λ p ) p. Punkty takie istniej a na mocy twierdzenia Minkowskiego. Przypuśćmy, że f(w i ) > f dla i = 1,..., p. Wówczas na mocy wklȩs lości funkcji f mamy p f = f(x ) = f( λ i w i ) i=1 p λ i f(w i ) > i=1 p λ i f = f. i=1 Otrzymana sprzeczność dowodzi prawdziwości twierdzenia. Wniosek.3.5 Funkcja liniowa określona na wielościanie osi aga swoje kresy w wierzcho lkach tego wielościanu..3.6 Stożki Definicja.3.6 Zbiór C R n nazywa siȩ stożkiem, jeśli 1 0 x, y C x + y C, 0 x C, α 0 αx C. Uwaga.3.7 Stożek jest zbiorem wypuk lym
36 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO Definicja.3.8 Niech C R n bȩdzie stożkiem. Podzbiór C = {y R n : x C x y 0} nazywa siȩ stożkiem sprzȩżonym do C Przyk lad.3.9 Nastȩpuj ace zbiory s a stożkami: a) dowolna podprzestrzeń liniowa, w szczególności {x R n : Ax = 0}; b) {x R n : Ax = 0, x 0}; c) {x R n : Ax 0}; d) stożek sprzȩżony C do danego stożka C; e) cone S = {x R n : x = p i=1 α is i, α i 0, s i S, i = 1,..., p, p N} (zbiór ten nazywa siȩ stożkiem generowanym przez podzbiór S R n ); w szczególności, jeśli za S przyj ać kolumny macierzy A, to otrzymany stożek ma postać C = {y R n : y = Aα, α 0}. Wszystkie opisane stożki s a domkniȩte. Uwaga.3.30 Jeśli przyj ać w twierdzeniach o oddzielaniu, że zbiór C jest stożkiem i x / C, to wówczas istnieje s R n taki, że s z 0 dla każdego z C i s x > 0 b adź s x 0 w zależności od tego, czy spe lnione s a pozosta le za lożenia twierdzenia o ostrym b adź s labym oddzielaniu. Dla dowodu twierdzenia o mocnym oddzielaniu wystarczy przyj ać s = x P C (x) i skorzystać z tego że 0 C i αp C (x) C dla α 0 oraz z charakteryzacji projekcji metrycznej danej w Twierdzeniu.3.13. Szczegó ly dowodu pozostawiamy czytelnikowi jako ćwiczenie. Przyk lad.3.31
.3. PODSTAWY TEORETYCZNE 37 a) Stożkiem sprzȩżonym do stożka K = {x R n : Ax 0} jest stożek K = {y R n : y = A α, α 0}, Istotnie. Niech y K, czyli y = A α dla pewnego α 0. Wówczas dla dowolnego x K mamy y x = (A α) x = α Ax 0. W rezultacie K K. Pokażemy teraz, że K K. Przypuśćmy, że jest odwrotnie, tzn., że istnieje y K taki, że y / K. Ponieważ K jest stożkiem domkniȩtym i wypuk lym, wiȩc na mocy twierdzenia o oddzielaniu istnieje u R n taki, że u z 0 dla każdego z K i u y > 0 (patrz Uwaga.3.30). St ad, dla każdego α 0 mamy (Au) α = u A α 0 To z kolei oznacza, że Au 0 (gdyby by lo inaczej, to (Au) α > 0 dla odpowiednio dobranego α 0) lub, co na jedno wychodzi u K. Mamy wiȩc u y 0, bo y K. Uzyskana sprzeczność dowodzi, że K K. b) Stożkiem sprzȩżonym do stożka K = {y R n : y = A α, α 0} jest stożek K = {x R n : Ax 0}. Istotnie. Inkluzjȩ K (K ) dowodzi siȩ tak samo jak w przyk ladzie a). Niech teraz x (K ). Wówczas dla dowolnego α 0 (Ax) α = x (A α) 0. St ad już prosto wynika, że Ax 0, a wiȩc x K.
38 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO c) Stożkiem sprzȩżonym do stożka {x R n : Ax 0, x 0} jest stożek {y R n : y A α, α 0}. d) Stożkiem sprzȩżonym do stożka {x R n : Ax = 0, x 0} jest stożek {y R n : y A α, α R m }. Dowody faktów c) i d) pozostawiamy czytelnikowi..3.7 Lemat Farkasa i jego konsekwencje Konsekwencj a w lasności przedstawionej w Przyk ladzie.3.31a), a w laściwie jej równoważn a postaci a jest nastȩpuj ace, bardzo ważne twierdzenie, z którego bȩdziemy korzystać w dalszej czȩści. Twierdzenie.3.3 (Lemat Farkasa) Niech c R n i niech A bȩdzie macierz a typu m n. Wówczas zbiór S = {x R n : c x < 0, Ax 0} jest pusty wtedy i tylko wtedy, gdy istnieje wektor y R m + taki, że c + A y = 0.
.3. PODSTAWY TEORETYCZNE 39 Dowód. Zauważmy, że S = wtedy i tylko wtedy gdy {x R n : Ax 0} {x R n : c x 0}. Oznaczaj ac K = {x R n : Ax 0} inkluzjȩ tȩ możemy natomiast zapisać nastȩpuj aco: x K ( c) x 0, co oznacza, że c K. Zgodnie z w lasności a przedstawion a w przyk ladzie.3.31a) fakt ten jest równoważny temu, że c = A y dla pewnego wektora y 0. Uwaga.3.33 Lemat Farkasa można znaleźć w literaturze w kilku równoważnych postaciach. Podamy jeszcze jedn a z nich pozostawiaj ac jej dowód czytelnikowi. Lemat.3.34 (Farkas) Niech c R n i niech A bȩdzie macierz a typu m n. Wówczas dok ladnie jedno z nastȩpuj acych stwierdzeń jest prawdziwe: albo (a) uk lad równań A y = c posiada nieujemne rozwi azanie y R m albo (b) uk lad nierówności Ax 0, c x < 0 posiada rozwi azanie x R n. Niech X = {x R n : Ax = b, x 0} bȩdzie zbiorem rozwi azań dopuszczalnych ZPL w postaci standardowej. Oznaczmy W = ext X = {w 1,...w p }, K = conv W oraz C = {x R n : Ax = 0, x 0}. Twierdzenie.3.35 Zachodzi równość X = K + C, tzn. zbiór rozwi azań dopuszczalnych X jest sum a kompleksow a wielościanu K (bȩd acego otoczk a wypuk l a wierzcho lków zbioru X) i stożka C.
40 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO Dowód. Niech y K i z C. Mamy wówczas Ay = b, Az = 0 oraz y, z 0. Zatem dla x = y + z zachodz a równości Ax = A(y + z) = Ay + Az = b oraz nierówność x 0. Oznacza to, że x X. Niech x X. Pokażemy, że x = y + z dla pewnego y K i dla pewnego z C. Jeśli x K, to wystarczy przyj ać z = 0. Niech wiȩc x / K. Niech S = cone{x y : y K}. Pokażemy najpierw, że S C {0}. Przypuśćmy, że jest przeciwnie, tzn. S C = {0}. Wówczas, na mocy twierdzenia o oddzielaniu, istnieje w R n taki, że s S z C,z 0 w s 0 i w z < 0. St ad w x w y dla każdego y K, a ponieważ funkcja liniowa określona na wielościanie osi aga maksimum w punktach ekstremalnych tego wielościanu (Wniosek.3.5), wiȩc w x w y (.7) dla pewnego wierzcho lka y wielościanu K. Na mocy twierdzenia.3.8, y jest rozwi azaniem[ bazowym uk ladu Ax = b, a wiȩc istnieje macierz bazowa A A B taka, że y 1 = B b ]. Wynika st ad, że 0 gdzie w = [ wb w N w y = wba 1 B b, (.8) ]. Postȩpuj ac podobnie jak przy wyprowadzaniu równości (.3) i (.4) oraz korzystaj ac z (.7) i (.8) otrzymamy w x = w BA 1 B b + (w N w BA 1 B A N)x N w BA 1 B b,
.3. PODSTAWY TEORETYCZNE 41 gdzie x = [ xb x N ] jest rozwi azaniem dopuszczalnym. Zatem (w N w BA 1 B A N)x N 0 dla dowolnego x N 0. W istocie [ ] x N > 0, ponieważ za lożyliśmy, że x / K. zb Z drugiej strony, dla z = C, z 0, mamy z B = A 1 B A Nz N, gdzie z N 0, oraz z N 0 > w z = w Bz B + w Nz N = (w N w BA 1 B A N)z N. Uzyskaliśmy sprzeczność, zatem S C {0}. Oznacza to, że istnieje y K takie, że x y = z C, z 0. Otrzymaliśmy wiȩc, że x = y+z dla pewnego y K i pewnego z C. Uwaga.3.36 Podobne twierdzenie zachodzi dla zbioru rozwi azań dopuszczalnych ZPL w postaci klasycznej. W tym przypadku zbiór C ma postać C = {x R n : Ax 0, x 0}. W dowodzie tej wersji należy skorzystać z uwagi.3.9. Definicja.3.37 Niesprzeczne zadanie programowania liniowego nazywa siȩ ograniczonym, jeśli funkcja celu c x jest ograniczona na zbiorze rozwi azań dopuszczalnych X z góry w przypadku maksymalizacji, b adź z do lu w przypadku minimalizacji. Twierdzenie.3.38 Funkcja liniowa z = c x jest ograniczona z góry na zbiorze X = {x R n : Ax = b, x 0} wtedy i tylko wtedy gdy istnieje wektor α R m taki, że c A α. Co wiȩcej, jeśli zachodzi którykolwiek z tych warunków, to funkcja ta osi aga maksimum na X. Maksimum to jest osi agniȩte w jednym z wierzcho lków zbioru X.
4 ROZDZIA L. PODSTAWY PROGRAMOWANIA LINIOWEGO Dowód. Niech K i C bȩd a określone tak, jak w twierdzeniu.3.35. Niech W = ext X. Oczywiście zbiór W jest niepusty na mocy wniosku.3.19. Zachodzi nastȩpuj aca równość sup c x = max x X y K c y + sup c z z C Niech c A α, gdzie α R m. Wtedy c z α Az = 0 dla z C. W konsekwencji, sup c x = max x X y K c y = max w W c w. Za lóżmy teraz, że sup x X c x < +. Wówczas musi być c z 0, dla z C. W przeciwnym bowiem przypadku c (tz) + dla t +, przy czym tz C, bo C jest stożkiem. Otrzymaliśmy wiȩc, że (por. przyk lad.3.31d). c C = {z R n : z A α, α R m } Uwaga.3.39 Podobne twierdzenie zachodzi dla postaci klasycznej ZPL. W tym przypadku warunkiem koniecznym i wystarczaj acym ograniczoności funkcji z = c x na zbiorze X = {x R n : Ax b} jest zajście równości c = A α, dla pewnego α 0. pozostawiamy czytelnikowi. Dowód tego faktu Uwaga.3.40 Z ostatniego twierdzenia wynika, że przy poszukiwaniu rozwi azania optymalnego zadania programowania liniowego (o ile rozwi azanie takie istnieje) wystarczy ograniczyć siȩ do rozwi azań bazowych (wierzcho lków zbioru rozwi azań dopuszczalnych X). Co wiȩcej, okazuje siȩ, że nie musimy badać wszystkich rozwi azań bazowych. W nastȩpnym ustȩpie poznamy metodȩ rozwi azywania ZPL polegaj ac a na wȩdrówce z danego wierzcho lka zbioru X wzd luż odpowiedniej krawȩdzi do s asiedniego wierzcho lka tak, aby funkcja celu ros la. Procedurȩ tȩ powtarza siȩ tak d lugo, aż zostanie osi agniȩty wierzcho lek, w którym funkcja celu osi aga swoje maksimum.