Andrzej Cegielski Programowanie matematyczne Czȩść I: Programowanie liniowe Wydawnictwa Uniwersytetu Zielonogórskiego Zielona Góra 00
ii
Spis treści iii Spis treści Przedmowa vii. Wiadomości wstȩpne.. Zadania programowania matematycznego............ Oznaczenia i proste fakty................... 4. Podstawy programowania liniowego 7.. Przyk ady wprowadzaj ace................... 7.. Podstawowe pojȩcia........................ Podstawy teoretyczne........................ Zbiory wypuk e........................ Punkty ekstremalne.................. 5... Projekcja metryczna na zbiór wypuk y........ 8..4. Twierdzenia o oddzielaniu i ich konsekwencje.... 0..5. Funkcje wypuk e.................... 4..6. Sto zki.......................... 6..7. Lemat Farkasa..................... 9..8. Dalsze konsekwencje twierdzeń o oddzielaniu.... 40. Metoda sympleksowa 45.. Tablica sympleksowa...................... 45.. Opis metody sympleksowej.................. 5... Wymiana zmiennej bazowej (piwotyzacja)...... 5... Krawȩdzie zbioru rozwi azań dopuszczalnych..... 55... Piwotyzacja przy znanym dopuszczalnym rozwi azaniu bazowym (II faza metody sympleksowej)....... 56..4. Przypadki szczególne.................. 60..5. Piwotyzacja przy nieznanym dopuszczalnym rozwi azaniu bazowym (I faza metody sympleksowej)....... 68.. Degeneracja........................... 75
iv Spis treści.4. Zrewidowana metoda sympleksowa.............. 79 4. Dualizm w programowaniu liniowym 8 4.. De nicja i przyk ady...................... 8 4.. Twierdzenia o dualności.................... 87 4.. Dualny algorytm sympleksowy................ 97 5. O z o zoności obliczeniowej ZPL 0 5.. Z o zoność obliczeniowa algorytmu sympleksowego...... 0 5.. Metoda Karmarkara punktów wewnȩtrznych......... 04 5... Transformacja ZPL do postaci normalnej...... 05 5... Idea metody Karmarkara............... 08 5... Przekszta cenie rzutowe................ 0 5..4. Relaksacja ograniczeń................. 5..5. Opis metody Karmarkara punktów wewnȩtrznych. 6 5..6. Zbie zność i z o zoność obliczeniowa metody punktów wewnȩtrznych...................... 8 6. Zadanie transportowe 6.. Podstawowe pojȩcia...................... 6.. Zbilansowane zadanie transportowe.......... 6... Niezbilansowane zadanie transportowe........ 4 6... Macierz transportowa................. 6 6..4. Dualne zadanie transportowe............. 6.. Wyznaczanie dopuszczalnego rozwi azania bazowego..... 6... Opis ogólny....................... 6... Metoda k ata pó nocno-zachodniego.......... 5 6... Metoda elementu minimalnego macierzy kosztów.. 6 6..4. Metoda aproksymacyjna Vogla............ 7 6.. Algorytm transportowy.................... 8 6... Podstawowe w asności................. 8 6... Ogólny opis algorytmu transportowego........ 4 6... Algorytm transportowy................ 4
Spis treści v 7. Programowanie ca kowitoliczbowe 49 7.. De nicje i przyk ady wprowadzaj ace............. 49 7.. Metoda Gomory ego...................... 55 7.. Metody podzia u i ograniczeń................. 60 7... Ogólny opis metod podzia u i ograniczeń....... 6
vi Spis treści
Przedmowa Skrypt ten zawiera materia przygotowany na podstawie moich dwusemestralnych wyk adów z programowania matematycznego, które prowadzȩ od kilku lat na kierunku matematyka najpierw w Wy zszej Szkole In zynierskiej w Zielonej Górze, potem na Politechnice Zielonogórskiej, a w końcu na Uniwersytecie Zielonogórskim. Pierwsza czȩść skryptu, obejmuj aca programowanie liniowe odpowiada w du zej czȩści pierwszemu semestrowi wyk adów. Natomiast druga czȩść skryptu dotyczy programowania nieliniowego, w szczególności zadań minimalizacji ró zniczkowalnej bez ograniczeń i z ograniczeniami. Skrypt ten przeznaczony jest g ównie dla studentów kierunku matematyka, jednak studenci innych kierunków, jak na przyk ad informatyka, informatyka i ekonometria, czy zarz adzanie i marketing powinni bez wiȩkszych trudności zrozumieć znakomit a wiȩkszość przedstawionego w skrypcie materia u. W skrypcie tym zajmujemy siȩ zagadnieniami matematycznymi sformu- owanymi najczȩściej jako problemy minimalizacji b adź maksymalizacji funkcji wielu zmiennych przy zadanych ograniczeniach. Rozpatrujemy wiȩc warunki konieczne i wystarczaj ace na to, aby funkcja osi aga a minimum wzglȩdnie maksimum oraz badamy pewne w asności zbiorów rozwi azań tych problemów. Poniewa z programowanie matematyczne jest dzia em matematyki blisko zwi azanym z naukami stosowanymi, takimi, jak nauki techniczne czy ekonomia, wiȩc umieści em w skrypcie liczne przyk ady, które powinny dać czytelnikowi mo zliwość zapoznania siȩ z licznymi zastosowaniami. vii
viii Przedmowa Z uwagi na te zastosowania nie ograniczamy siȩ wiȩc do warunków istnienia rozwi azań, ale zajmujemy siȩ równie z metodami ich wyznaczania. Metody te podane s a najogólniej rzecz ujmuj ac jako schematy iteracyjne b adź algorytmy, które prowadz a albo do dok adnych rozwi azań, albo ich odpowiednich przybli zeń. Przedstawiamy równie z dowody zbie zności tych algorytmów do rozwi azania. Dla czȩści tych metod analizujemy równie z szybkość tej zbie zności. Pozwala to z jednej strony lepiej zrozumieć czytelnikowi istotȩ tych metod z drugiej zaś strony skuteczniejsze ich stosowanie poprzez dobór odpowiedniej metody do rozpatrywanego zagadnienia. Programowanie liniowe wyodrȩbni o siȩ jako przedmiot g ównie za spraw a G. B. Dantziga, który w zwi azku z zagadnieniami planowania i ich zastosowań do celów wojskowych stworzy w 947 roku metodȩ sympleksow a. Jednak ju z wcześniej, bo w roku 99 L. Kantorowicz wydzieli pewn a klasȩ zadań programowania liniowego i poda sposób ich rozwi azania. W roku 947 ukaza a siȩ tak ze wa zna praca T. C. Koopmansa wskazuj aca na znaczenie metod programowania liniowego w ekonomii. Kantorowicz i Koopmans za swoje osi agniȩcia zostali uhonorowani w 975 roku Nagrod a Nobla w dziedzinie ekonomii. Pochodz aca od Dantziga metoda sympleksowa jest do dzisiaj powszechnie stosowana. Jednak ostatnie dwadzieścia lat przynios o prze omowe odkrycia, dziȩki którym dysponujemy nowymi metodami rozwi azywania zadań programowania liniowego. Pierwsza czȩść skryptu dotycz aca programowania liniowego podzielona jest na 7 rozdzia ów. We wstȩpie przedstawiamy klasy kacje zadań programowania matematycznego. Rozdzia. poświȩcony jest podstawom programowania liniowego. Po kilku krótkich przyk adach podajemy ró zne postaci zadań programowania liniowego oraz pojȩcia i fakty u zywane w dalszej czȩści skryptu. Nastȩpnie przedstawiamy elementy analizy wypuk ej. Na ich podstawie podajemy w szczególności warunki konieczne i dostateczne istnienia rozwi azań zadania programowania liniowego.
Przedmowa ix G ównym celem rozdzia u. jest przedstawienie metody sympleksowej, która s u zy rozwi azaniu zadania programowania liniowego. Pokazujemy skończon a zbie zność tej metody dla zadania niezdegenerowanego, a nastȩpnie pokazujemy, jak z postaci tablicy sympleksowej mo zna wywnioskować, ze brak jest rozwi azań optymalnych b adź, ze istnieje ich wiele, ze zbiór tych rozwi azań jest nieograniczony oraz, ze zadanie programowania liniowego jest sprzeczne (nie ma tzw. rozwi azań dopuszczalnych). Przedstawiamy równie z metodȩ postȩpowania w przypadku zadań zdegenerowanych. Ostatni ustȩp tego rozdzia u poświȩcony jest zrewidowanej metodzie sympleksowej. Z ka zdym zadaniem programowania liniowego mo zna zwi azać tzw. zadanie dualne. Zwi azki zachodz ace miȩdzy tymi zadaniami omawiamy w rozdziale. Wskazujemy tak ze na ich interpretacjȩ ekonomiczn a. Na koniec przedstawiamy dualny algorytm sympleksowy. W rozdziale 4. czytelnik znajdzie podstawowe informacje o wyk adniczej z o zoności obliczeniowej metody sympleksowej. Ponadto w rozdziale tym przedstawiamy metodȩ Karmarkara rozwi azania zadań programowania liniowego i podajemy dowód wielomianowej z o zoności obliczeniowej tej metody. Rozdzia ten nie jest niezbȩdny do zrozumienia pozosta ej czȩści skryptu i mo ze być przez czytelnika pominiȩty przy pierwszym czytaniu. Ostatnie dwa rozdzia y dotycz a specjalnych zadań programowania liniowego. W rozdziale 5. omawiamy zadanie transportowe i metody jego rozwi azania. W szczególności podajemy, jak wyznaczyć rozwi azanie dopuszczalne tego zadania, a nastȩpnie przedstawiamy algorytm transportowy. W rozdziale 6. zawarte s a elementy programowania ca kowitoliczbowego. Skupiamy siȩ g ównie na metodach rozwi azywania zadań programowania liniowego ca kowitoliczbowego. Podajemy dwie metody: metodȩ Gomory ego oraz metodȩ podzia u i ograniczeń. Na podstawie doświadczeń nabytych przy pisaniu tego skryptu mogȩ powiedzieć, ze jego przygotowanie przypomina nieco dzia anie algorytmu zbie znego do rozwi azania optymalnego w nieskończenie wielu krokach.
x Przedmowa Z ka zdym krokiem jesteśmy bli zej celu, ale trzeba wybrać moment, w którym otrzymane przybli zenie uznamy za zadowalaj ace. Maj ac wiȩc świadomość, ze przedstawiona postać skryptu nie jest wolna od niedoci agniȩć, zdecydowa em siȩ przekazać j a do r ak czytelnika licz ac na krytyczne uwagi z jego strony. Zielona Góra, wrzesień 00 Andrzej Cegielski
ROZDZIA Wiadomości wstȩpne Pomiȩdzy duchem i materi a po sredniczy matematyka. [H. Steinhaus].. Zadania programowania matematycznego Niech dane bȩd a: podzbiór X R n, funkcja f : X! R oraz podzbiór D X. Zadanie programowania matematycznego polega na wyznaczeniu punktu x, w którym funkcja f ograniczona do zbioru D osi aga minimum (lokalne b adź globalne), o ile takie minimum istnieje. Zbiór D, zwany zbiorem rozwi azań dopuszczalnych, podawany jest najczȩściej w postaci D = fx X : c i (x) = 0 dla i E oraz c i (x) 0 dla i Ig; gdzie X R n, E = f; :::; pg, I = fp + ; :::; mg, 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 sciowymi, zaś ponumerowane wskaźnikami i I nierówno sciowymi. 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 kowitoliczbowego.
Rozdzia. Wiadomości wstȩpne Czasem zbiór X dany jest w postaci X = f0; g n. Wówczas mówimy o zadaniu programowania binarnego. Dok adniej 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 adny lub przybli zony), Czasem do zadań programowania matematycznego zalicza siȩ równie z: zbudowanie dla konkretnego zagadnienia praktycznego odpowiedniego modelu matematycznego w postaci zadania minimalizacji funkcji wielu zmiennych, interpretacjȩ rozwi azania takiego zadania. Na ogó zak ada siȩ, ze zbiór X jest domkniȩty i funkcje ograniczeń c i ; i E [ I s a ci ag e. W konsekwencji zbiór D jest domkniȩty. Jeśli ponadto jest on ograniczony i funkcja f jest równie z ci ag a, to na mocy twierdzenia Weierstrassa osi aga ona minimum na D. Zadania programowania matematycznego dzielimy na: minimalizacjȩ ró zniczkowaln a (lub inaczej g adk a), gdy wszystkie funkcje f; c i ; i E [ I; s a ró zniczkowalne. minimalizacjȩ nieró zniczkowaln a (lub inaczej nieg adk a), gdy przynajmniej jedna z funkcji f; c i ; i E [ I; nie jest ró zniczkowalna. Minimalizacjȩ ró zniczkowaln a dzielimy na: minimalizacjȩ bez ograniczeń, gdy D = R n (lub inaczej, funkcje ograniczeń nie wystȩpuj a)
.. Zadania programowania matematycznego minimalizacjȩ z ograniczeniami, gdy D R n Wśród zadań minimalizacji z ograniczeniami wyró zniamy: 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 ego, gdy E = ; i wszystkie funkcje f; c i ; i I; s a wypuk e. W zadaniu minimalizacji z ograniczeniami: ograniczenie równościowe c i (x) = 0 mo zna 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 zna zast apić ograniczeniem równościowym c i (x) + u i = 0, wprowadzaj ac tak zwan a zmienn a uzupe niaj ac a u i 0, zmienn a woln a (x j R) mo zna przedstawić jako ró znicȩ 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 acznie równościowymi, b adź z ograniczeniami wy acznie nierównościowymi, ze zmiennymi wy acznie wolnymi, b adź to ze zmiennymi wy acznie nieujemnymi s a sobie w pewnym sensie równowa zne, tzn. z ka zdej z nich mo zna (przynajmniej teoretycznie) przejść do dowolnej innej. Inna rzecz, ze takie przejście mo ze okazać siȩ ma o efektywne z punktu widzenia metod programowania matematycznego. Poniewa z max xd f(x) = min xd f(x), wiȩc zadanie maksymalizacji mo zna sprowadzić do zadania minimalizacji i odwrotnie.
4 Rozdzia. Wiadomości wstȩpne.. Oznaczenia i proste fakty W dalszej czȩści u zywać bȩdziemy nastȩpuj acych oznaczeń i konwencji: x = (x ; :::; x n ) > R n oznacza element przestrzeni R n w postaci wektora kolumnowego (czasem bȩdziemy zapisywać wspó rzȩdne wektora w postaci j ; j = ; :::; 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, ze wszystkie wspó rzȩdne wektora x s a nieujemne, R n + = fx R n : x 0g x > 0 oznacza, ze wszystkie wspó rzȩdne wektora x s a nieujemne, przy czym przynajmniej jedna z nich jest dodatnia, x 0 oznacza, ze wszystkie wspó rzȩdne wektora x s a dodatnie, R n ++ = fx R n : x 0g, hx; yi oznacza iloczyn skalarny wektorów x; y R n, x > y jest standardowym iloczynem skalarnym wektorów x; y R n zapisanym w konwencji mno zenia macierzy, czyli x > y = nx x j y j ; j= kxk = p x > x oznacza normȩ euklidesow a wektora x R n, e j = (0; :::; 0; ; 0; :::; 0) > oznacza j-ty wersor, tzn. element przestrzeni euklidesowej odpowiedniego wymiaru, którego j-ta wspó rzȩdna jest równa zaś pozosta e s a równe 0),
.. Oznaczenia i proste fakty 5 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; A J oznacza podmacierz utworzon a z kolumn A j macierzy A, j J f; :::; ng; A i oznacza i-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ó czynników tej kombinacji, u > A jest kombinacj a liniow a wierszy macierzy A, gdzie u R m jest wektorem wspó czynników tej kombinacji. Niech A = 4 A ::: A r ::: ::: ::: A p ::: A pr oznacza macierz w zapisie blokowym z wyró znionymi podmacierzami A ij, i = ; :::; p, j = ; :::; r, takimi, ze podmacierze we wspólnej kolumnie macierzy blokowej A maj a tȩ sam a liczbȩ kolumn i podmacierze we wspólnym wierszu macierzy blokowej A maj a tȩ sam a liczbȩ wierszy. Podobne oznaczenia dotycz a macierzy B = 4 B ::: B s ::: ::: ::: B r ::: B rs Za ó zmy ponadto, ze istniej a iloczyny A ik B kj, i = ; :::; p, j = ; :::s, k = ; :::; r. Wówczas C ::: C s AB = [C ij ] = 4 ::: ::: ::: 5 ; C p ::: C ps 5 5 :
6 Rozdzia. Wiadomości wstȩpne gdzie C ij = P k A ikb kj. Innymi s owy, regu y mno zenia macierzy w zapisie blokowym s a takie same, jak dla zwyk ych macierzy.
ROZDZIA Podstawy programowania liniowego Ka zda wiedza zawiera tyle prawdy, ile jest w niej zawartej matematyki. [I. Kant].. Przyk ady wprowadzaj ace Przyk ad... Przedstawimy matematyczny model nastȩpuj acego zagadnienia: Ogrodnik chce obsadzić ogród wielkości 00 m ró zami i goździkami. Mo ze on zainwestować maksymalnie 70 z, zaś z powodu wysokiego nak adu pracy mo ze on zarezerwować najwy zej 60 m na goździki. Ile m powinien on obsadzić ka zdym rodzajem kwiatów, aby osi agn ać maksymalny zysk. Robocizna i koszty materia owe wynosz a dla ró z 6 z /m i dla goździków 9 z /m. Zysk wynosi dla ró z z /m, zaś dla goździków z /m. Wprowadzaj ac oznaczenia: 7
8 Rozdzia. Podstawy programowania liniowego x pole powierzchni (w m ) obsadzonej ró zami, x pole powierzchni (w m ) obsadzonej goździkami, model matematyczny bȩdzie mia postać: maksymalizować x + x przy ograniczeniach x + x 00 6x + 9x 70 x 60 x ; x 0 Powy zszy przyk ad podpada pod nastȩpuj acy schemat. Przyk ad.. (zagadnienie analizy dzia alno sci gospodarczej). Producent wytwarza n towarów P,...,P n wykorzystuj ac m surowców lub ogólniej, czynników produkcyjnych R,...,R m. Producent dysponuje b i jednostkami surowca R i, i = ; :::; m. Do wyprodukowania jednostki towaru P j potrzeba a ij jednostek surowca R i, i = ; :::; m, j = ; :::; n. Jednostka wyprodukowanego towaru P j przynosi zysk c j jednostek pieniȩ znych, j = ; :::; n. Ile jednostek ka zdego z towarów powinien wytwarzać producent, aby zapewnić sobie maksymalny zysk? Oznaczaj ac przez x j ilość jednostek wyprodukowanego towaru P j, j = ; :::; n, mo zemy powy zsze zagadnienie sformu ować nastȩpuj aco: maksymalizować c x + c x + ::: + c n x n przy ograniczeniach a x + a x + ::: + a n x n b a x + a x + ::: + a n x n b ::: a m x + a m x + ::: + a mn x n b m x ; :::; x n 0: Przyk ad.. (zagadnienie diety). Przedstawimy model matematyczny nastȩpuj acego zagadnienia:
.. Podstawowe pojȩcia 9 Hodowca karmi krowy dwoma rodzajami karmy, nazwijmy je A i B. Dzienna racja zywnościowa krowy musi zawierać czynniki od zywcze I, II i III w ilościach co najmniej 6, i 4 gramy. Zawartość czynników od zywczych w poszczególnych rodzajach karmy i ich ceny podane s a w tabeli: karma A karma B minimalna zawartość (g) czynnik od zywczy I (g/kg) 6 czynnik od zywczy II (g/kg) 4 czynnik od zywczy III (g/kg) 0 7 4 cena (z /kg) 5 7 Ile kilogramów karmy A i B powinna zawierać dzienna racja zywnościowa krowy, aby przy zachowaniu podanego minimalnego zapotrzebowania na czynniki od zywcze, powsta e koszty by y minimalne? Oznaczaj ac przez: x ilość (w kg) karmy A w dziennej racji zywnościowej, x ilość (w kg) karmy B w dziennej racji zywnościowej, powy zsze zagadnienie bȩdzie mia o nastȩpuj acy model matematyczny: minimalizować 5x + 7x przy ograniczeniach x + x 6 x + 4x 7x 4 x ; x 0: Przyk ad..4 (zagadnienie produkcyjne). Producent ma za zadanie wyprodukować m towarów P,..., P m w ilościach b ; :::; b m wykorzystuj ac n surowców R,..., R n. Z jednostki surowca R j mo zna wyprodukować a ij jednostek towaru P i, i = ; :::; m, j = ; :::; n. Jednostka surowca R j
0 Rozdzia. Podstawy programowania liniowego kosztuje c j jednostek pieniȩ znych, j = ; :::; n. Ile powinno wynosić zu zycie poszczególnych surowców do wyznaczonego pro lu produkcyjnego, aby aczne koszty surowców by y minimalne? Oznaczaj ac przez x j ilość jednostek surowca R j u zytego do produkcji, j = ; :::; n, powy zsze zagadnienie mo zemy sformu ować nastȩpuj aco: minimalizować c x + c x + ::: + c n x n przy ograniczeniach a x + a x + ::: + a n x n = b a x + a x + ::: + a n x n = b ::: a m x + a m x + ::: + a mn x n = b m x ; :::; x n 0: Przyk ad..5 (zagadnienie transportowe). W sieci m magazynów A,..., A m sk aduje siȩ pewien towar. Nale zy go dostarczyć do sieci n sklepów B,..., B n. Zapas magazynu A i wynosi a i jednostek towaru, i = ; :::; m. Sklep B j potrzebuje b j jednostek towaru, j = ; :::; n. Zak adamy, ze mx nx a i = b j (.) i= ( aczna poda z jest równa acznemu popytowi). Koszty transportu jednostki towaru z magazynu A i do sklepu B j wynosz a c ij jednostek pieniȩ znych, i = ; :::; m, j = ; :::; n. Nale zy określić plan transportowy o minimalnych kosztach zaspokajaj acy zapotrzebowanie wszystkich sklepów (czyli, przy podanym za o zeniu, wyczerpuj acy aczne zapasy magazynów). Jeśli przez x ij oznaczymy ilość towaru transportowanego z magazynu A i do sklepu B j, i = ; :::; m, j = ; :::; n, to powy zsze zagadnienie mo zemy sformu ować nastȩpuj aco: minimalizować przy ograniczeniach P m i= j= P n j= P c ijx ij n j= x ij = a i ; i = ; :::; m P m i= x ij = b j ; j = ; :::; n x ij 0; i = ; :::; m; j = ; :::; n: (.)
.. Podstawowe pojȩcia.. Podstawowe pojȩcia De nicja... 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 x + ::: + c n x n przy ograniczeniach a x + ::: + a n x n b ::: a m x + ::: + a mn x n b m x j 0; j = ; :::; n: Postać standardowa ZPL: maksymalizować c x + ::: + c n x n przy ograniczeniach a x + ::: + a n x n = b ::: a m x + ::: + a mn x n = b m x j 0; j = ; :::; n: Poniewa z min x f(x) = max x f(x), wiȩc, podobnie jak w sytuacji ogólnej, problem minimalizacji mo zna sprowadzić do problemu maksymalizacji. Jeśli jedna ze zmiennych x j mo ze przyjmować dowolne wartości rzeczywiste, to równie z, podobnie jak w przypadku ogólnym, mo zna 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 zna sprowadzić do postaci standardowej wprowadzaj ac tzw. zmienne uzupe niaj ace u ; :::; u m :
Rozdzia. Podstawy programowania liniowego maksymalizować c x + ::: + c n x n przy ograniczeniach a x + ::: + a n x n + u = b ::: a m x + ::: + a mn x n + u m = b m x j 0; j = ; :::; n; u i 0; i = ; :::; m: Ostatnia postać nosi nazwȩ postaci kanonicznej ZPL. Postać standardow a ZPL mo zna sprowadzić do postaci klasycznej przedstawiaj ac ka zde równanie a i x + ::: + a in x n = b i jako dwie nierówności a i x + ::: + a in x n b i i a i x ::: a in x n b i ; i = ; :::; m: Niech x = (x ; :::; x n ) > ; c = (c ; :::; c n ) > ; b = (b ; :::; b m ) > i A = 4 a ::: a n ::: ::: ::: a m ::: a mn Wówczas ZPL mo zna przedstawić w zapisie macierzowym: w postaci klasycznej: w postaci standardowej: 5 : maksymalizować c > x przy ograniczeniach Ax b x 0; maksymalizować c > x przy ograniczeniach Ax = b x 0:
.. Podstawowe pojȩcia Po sprowadzeniu postaci klasycznej do standardowej, ZPL ma nastȩpuj acy zapis macierzowy: maksymalizować c > x przy ograniczeniach A I x u = b 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ć c > x przy ograniczeniach A A x x 0: b b Jeśli rz ad r(a) macierzy A jest równy m, to postać standardow a ZPL mo zna sprowadzić do postaci kanonicznej wyznaczaj ac z uk adu równań Ax = b; m pewnych zmiennych jako funkcje pozosta ych n m zmiennych. Mo zna to uczynić na przyk ad metod a eliminacji Gaussa. Metod a t a mo zna równie z wyznaczyć rzȩdy macierzy A i [A; b], a tak ze usun ać liniowo zale zne równania jeśli r(a) = r([a; b]) < m. Zilustrujemy to nastȩpuj acym przyk adem. Przyk ad... Przy pomocy metody eliminacji Gaussa przedstawimy uk ad równań x + x 4x + x 4 = 4x + x x + x 4 = 6x + x + x x 4 = x + 6x x + x 4 = 4 w postaci kanonicznej.
4 Rozdzia. Podstawy programowania liniowego Uk ad ten przyjmuje w zapisie macierzowym postać 6 4 4 4 6 6 7 6 5 4 Czasem zapisuje siȩ go równie z w postaci 4 6 4 4 6 6 x x x x 4 7 5 = W tym przypadku nale zy jednak pamiȩtać o tym, ze poszczególnym kolumnom przypisane s a odpowiednie zmienne x ; x ; x ; x 4 i ze kolejność przypisania mo ze ulec zmianie w trakcie przekszta ceń uk adu, co bȩdzie mia o miejsce w naszym przyk adzie. Po przekszta ceniach elementarnych określonych w metodzie eliminacji Gaussa (polegaj acych w tym przypadku na pomno zeniu pierwszego równania przez i dodaniu do drugiego, pomno zeniu pierwszego równania przez i dodaniu do trzeciego, pomno zeniu pierwszego równania przez 6 i dodaniu do czwartego, dalej pomno zeniu drugiego równania przez i dodaniu do trzeciego, nastȩpnie pomno zeniu trzeciego równania przez i dodaniu do czwartego i w końcu zamianie kolejności zapisu zmiennych x i x 4 ) otrzymamy równowa zny uk ad równań w zapisie macierzowym ze wszystkimi elementami pod g ówn a przek atn a równymi zeru 6 4 4 0 4 0 7 0 0 4 0 0 0 0 0 7 6 5 4 x x x 4 x 4 7 5 = Z zapisu tego widać, ze r(a) = r([a; b]) =. Dokonuj ac dalszych przekszta ceń elementarnych określonych w metodzie eliminacji Gaussa (polegaj acych w tym przypadku na usuniȩciu równania czwartego liniowo za- 6 4 7 5 : 6 4 4 0 7 5 : 7 5 :
.. Podstawowe pojȩcia 5 le znego, na pomno zeniu trzeciego równania przez =4 i dodaniu do pierwszego, nastȩpnie pomno zeniu drugiego równania przez =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 gdzie lub 4 5 0 0 8 7 0 0 4 0 0 0 h I 5 6 4 x x x 4 x e A i x B x N x B = (x ; x ; x 4 ) > ; x N = x ; A e = 4 7 5 = 4 = e b; 5 8 7 4 0 0 4 4 5 5 ; e b = 4 Rozwi azanie uk adu równań mo zna przedstawić wówczas nastȩpuj aco: x B = e b e AxN : 0 4 4 5 : Powy zszy opis ilustruje ogólny schemat: Zak adaj ac, jak wy zej, ze pierwsze m kolumn macierzy A jest liniowo niezale znych, mo zna uk ad równań Ax = b przekszta cić metod a eliminacji Gaussa do tzw. postaci trapezowej: A x = b, gdzie: [A ; b ] = 6 4 a a ::: a r a ;r+ ::: a n b 0 a ::: a r a ;r+ ::: a n b ::: ::: 0 0 ::: a rr a r;r+ ::: a rn b r 0 0 ::: 0 0 ::: 0 b r+ ::: ::: 0 0 ::: 0 0 ::: 0 b n 7 5
6 Rozdzia. Podstawy programowania liniowego oraz a 6= 0; :::; a rr 6= 0: Elementy b r+ ; :::; b n decyduj a o istnieniu rozwi azania uk adu równań. Uk ad posiada rozwi azanie wtedy i tylko wtedy, gdy wszystkie one s a równe zeru. W przypadku istnienia rozwi azań ich ilość zale zy od r. Jeśli r = n; to uk ad posiada dok adnie jedno rozwi azanie. Jeśli r < n; to uk ad posiada nieskończenie wiele rozwi azań zale znych od n r parametrów. Jeśli przynajmniej jeden z elementów b r+ ; :::; b n jest ró zny od zera, to uk ad nie posiada rozwi azań. Uk ad równań A x = b mo zna teraz (w przypadku istnienia rozwi azania) rozwi azać od do u do góry. Po przekszta ceniach elementarnych opisanych w metodzie eliminacji Gaussa, otrzymamy równowa zny mu uk ad równań lub inaczej x B = e b e AxN : h I e A i x B x N = e b W dalszej czȩści tego rozdzia u zak adamy, ze r(a) = m. Jak zauwa zyliśmy wy zej, za o zenie to nie ogranicza ogólności rozwa zań. Rozwi azanie uk adu równań Ax = b mo zna równie z opisać inaczej. Niech w zapisie blokowym A = [ A B A N ]; przy czym A B jest macierz a nieosobliw a (det A B 6= 0): Nietrudno zauwa zyć, ze za o zenie to równie z nie ogranicza ogólności rozwa zań (w razie potrzeby mo zna ewentualnie xb przenumerować zmienne x ; :::; x n ). Dalej, niech x = (na przyk ad x B = (x ; :::; x m ) > ; x N = (x m+ ; :::; x n ) > ). Wspó rzȩdne wektora x B nazywamy zmiennymi bazowymi, zaś wspó rzȩdne wektora x N zmiennymi niebazowymi. Omawiany uk ad równań mo zna zapisać w postaci AB A N x B x N = b x N lub inaczej w postaci A B x B + A N x N = b:
.. Podstawowe pojȩcia 7 Po lewostronnym pomno zeniu obu stron ostatniego równania przez A B otrzymamy x B = A B b A B A Nx N : (.) De nicja... Nieosobliwa podmacierz A B stopnia m macierzy A nazywa siȩ macierz a bazow a. Jest ona utworzona z m liniowo niezale znych kolumn macierzy A. De nicja..4. Niech A = [ A B A N ]; gdzie A B jest macierz a bazow a. Wektor x = (x > B ; 0)> ; gdzie x B = A B b, nazywa siȩ rozwi azaniem bazowym uk adu równań Ax = b. Wspó rzȩdne wektora x B danego równości a (.) nazywaj a siȩ zmiennymi bazowymi. Pozosta e wspó rzȩdne wektora x = (x > B ; x> N )> bȩd acego rozwi azaniem uk adu równań nazywaj a siȩ zmiennymi niebazowymi. Uwaga..5. Ka zde nieujemne rozwi azanie x uk adu równań Ax = b nazywa siȩ rozwi azaniem dopuszczalnym. Zbiór rozwi azań dopuszczalnych ZPL oznaczamy symbolem X. 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 adu równań n Ax = b wynosi m. Mo ze 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. De nicja..7. Rozwi azanie bazowe (x > B ; 0)> nazywa siȩ zdegenerowanym, jeśli przynajmniej jedna ze zmiennych bazowych jest równa zeru. W przeciwnym wypadku rozwi azanie bazowe nazywa siȩ niezdegenerowanym. De nicja..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 z c > x. Zbiór rozwi azań optymalnych ZPL oznaczamy symbolem X. Jeśli dopuszczalne rozwi azanie bazowe jest rozwi azaniem optymalnym, to nazywa siȩ ono optymalnym rozwi azaniem bazowym.
8 Rozdzia. Podstawy programowania liniowego W przypadku, gdy ZPL jest dane w postaci standardowej, jego funkcjȩ celu mo zemy zapisać nastȩpuj aco: z = c > x = c > Bx B + c > Nx N Po wstawieniu w miejsce x B wyra zenia określonego równości a (.) otrzymamy z = c > BA B b + (c> N c > BA B A N)x N (.4) W zagadnieniach ekonomicznych wektor c > B A B nazywa siȩ wektorem cen ukrytych, wektor c > B A B A N wektorem kosztów równowa znych, wektor c > N c> B A B A N wektorem kosztów zredukowanych, zaś przeciwny do niego wektor c > B A B A N c > N wektorem ujemnych kosztów zredukowanych. Podamy teraz interpretacjȩ tych pojȩć na przyk adzie zagadnienia produkcyjnego (przyk ad..4). Przypuśćmy, ze x = (x > B ; x> N )> jest pewnym rozwi azaniem dopuszczalnym (wektorem udzia ów surowcowych) i, ze x 0 = (x 0> B ; x0> N )> jest takim rozwi azaniem dopuszczalnym, ze x 0 N = x N + e j i x 0 B = A B b A B A Nx 0 N. Inaczej mówi ac, j-t a zmienn a niebazow a (udzia j-tego surowca) zwiȩkszono o jednostkȩ, a zmienne bazowe zmieniono tak, aby x 0 by o nadal rozwi azaniem dopuszczalnym. Niech z i z 0 bȩd a wartościami funkcji celu odpowiadaj acymi tym rozwi azaniom. Wówczas z równości (.4) otrzymamy po prostych przekszta ceniach z 0 = z (c > BA B A j c j ); gdzie A j oznacza j-t a kolumnȩ macierzy A. Widzimy wiȩc, ze zwiȩkszenie udzia u j-tego surowca o jednostkȩ (przy zachowaniu pro lu produkcji) powoduje redukcjȩ wartości funkcji celu (kosztów surowcowych) o wielkość c > B A B A j c j. Zauwa zmy, ze wielkość ta jest j-t a wspó rzȩdn a wektora ujemnych kosztów zredukowanych. Jeśli przy takiej zamianie rozwi azania x na x 0 (zwiȩkszenie udzia u j-tego surowca o jednostkȩ) funkcja celu (koszty surowcowe) mia aby pozostać bez zmiany, to oczywiście c j = c > BA B A j;
.. Podstawowe pojȩcia 9 czyli cena jednostki j-tego surowca musia aby być równa j-tej wspó rzȩdnej wektora kosztów równowa znych. Przy okazji zauwa zmy, ze je zeli x jest (bazowym) rozwi azaniem optymalnym zadania minimalizacji, to wszystkie koszty zredukowane dla zmiennych niebazowych (nie u zywanych surowców) s a nieujemne albo inaczej ich koszty równowa zne s a równe co najwy zej 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 ad..9. Określimy wszystkie bazowe rozwi azania dopuszczalne uk adu równań x 4 x 5 5 4 = : 5 x Oczywiście r(a) = : a) Wybieraj ac B = f; g otrzymamy x B = (; ) > i dopuszczalne rozwi azanie bazowe x = (; ; 0) >, b) wybieraj ac z kolei B = f; g otrzymamy x B = ( 5 ; )> i dopuszczalne rozwi azanie bazowe x = (0; 5 ; )>. c) natomiast wybieraj ac B = f; g otrzymamy x B = (5; ) > i niedopuszczalne rozwi azanie bazowe x = (5; 0; ) >. Przyk ad..0. Wyznaczymy wszystkie bazowe rozwi azania dopuszczalne ZPL: maksymalizować c x + c x przy ograniczeniach x + x 8 x + x 0 x + x 6 x 6 x ; x 0:
0 Rozdzia. Podstawy programowania liniowego Postać standardowa tego zadania w zapisie macierzowym wygl ada nastȩpuj aco: maksymalizować c x + c x x 0 0 0 x przy ograniczeniach 6 0 0 0 7 x 4 0 0 0 5 6 x 4 = 6 4 7 0 0 0 0 4 x 5 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 = f; 4; 5; 6g, x B = (4; 6; ; 6) > i x = (0; 4; 0; 6; ; 6) > jest dopuszczalnym rozwi azaniem bazowym, b) dla B = f; ; 5; 6g, x B = (4; 6; ; ) > i x = (4; 6; 0; 0; ; ) > jest dopuszczalnym rozwi azaniem bazowym, c) dla B = f; ; ; 4g, x B = (6; 4; 6; 0) > i x = (6; 4; 6; 0; 0; 0) > jest rozwi azaniem zdegenerowanym, d) dla B = f; ; ; 5g, x B = (6; 4; 6; 0) > i x = (6; 4; 6; 0; 0; 0) > jest rozwi azaniem zdegenerowanym, e) dla B = f; ; ; 6g, x B = (6; 4; 6; 0) > i x = (6; 4; 6; 0; 0; 0) > jest rozwi azaniem zdegenerowanym, f) dla B = f; ; 4; 5g, x B = (6; 4; 4; 4) > i x = (6; 0; 4; 4; 4; 0) > jest dopuszczalnym rozwi azaniem bazowym, g)dla B = f; 4; 5; 6g, x B = (8; 0; 6; 6) > i x = (0; 0; 8; 0; 6; 6) > jest dopuszczalnym rozwi azaniem bazowym, h) dla B = f; ; 4; 6g, x B = ( 4 5 ; 5 ; 6 5 ; 6 5 )> i x = ( 4 5 ; 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, ze trzem ró znym wyborom zbioru B odpowiada jedno (potrójne) rozwi azanie zdegenerowane. Czytelnikowi zalecamy narysowanie zbioru rozwi azań dopuszczalnych omawianego zadania i porównanie wierzcho ków tego zbioru z wyznaczonymi bazowymi rozwi azaniami dopuszczalnymi. 8 0 6 6 7 5
.. Podstawowe pojȩcia Ćwiczenie... Przedstawić: a) problem ogrodnika (przyk ad..); b) zagadnienie diety (przyk ad..); jako ZPL w postaci klasycznej i standardowej i rozwi azać te zadania gra cznie. Ad a) Postać klasyczna tego problemu wygl ada nastȩpuj aco: maksymalizować x + x przy ograniczeniach x + x 00 6x + 9x 70 x 60 x ; x 0: St ad otrzymujemy postać standardow a (która jest jednocześnie postaci a kanoniczn a): maksymalizować x + x x 0 0 x przy ograniczeniach 4 6 9 0 0 5 6 u 7 0 0 0 4 u 5 = u 4 x ; x ; u ; u ; u 0: Ad b) Postać klasyczna tego problemu wygl ada nastȩpuj aco: 00 70 60 5 minimalizować 5x + 7x przy ograniczeniach x + x 6 x + 4x 7x 4 x ; x 0
Rozdzia. Podstawy programowania liniowego albo maksymalizować 5x 7x przy ograniczeniach x x 6 x 4x 7x 4 x ; x 0: Pozosta a czȩść zadania pozostawiamy do uzupe nienia czytelnikowi... Podstawy teoretyczne 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 ustȩpie zestawiamy pojȩcia i twierdzenia dotycz ace zbiorów i funkcji wypuk ych, które bȩd a nam potrzebne w dalszej czȩści. Niektóre z twierdzeń przedstawiamy bez dowodów. Dowody te mo zna znaleźć w podrȩcznikach do analizy wypuk ej, na przyk ad w podrȩcznikach J. B. Hiriarta-Urruty ego i C. Lemaréchala [0, ].... Zbiory wypuk e De nicja... Zbiór K R n nazywa siȩ zbiorem wypuk ym, jeśli dla dowolnych x; y K i dla ka zdego [0; ] ( )x + y K: Otoczk a wypuk a zbioru S R n nazywamy najmniejszy zbiór wypuk y zawieraj acy S. Oznaczamy j a symbolem conv S. Kombinacj a wypuk a elementów x ; :::; x m R n nazywamy element x R n postaci mx x = i x i ; i=
.. Podstawy teoretyczne gdzie i 0; i = ; :::; m; P m i= i =, m N. Czytelnikowi pozostawiamy dowód nastȩpuj acego lematu. Lemat... Podzbiór C R n jest wypuk y wtedy i tylko wtedy, gdy do C nale zy dowolna kombinacja wypuk a jego elementów. Przyk ad... Podamy teraz wa zne dla zastosowań przyk ady zbiorów wypuk ych: a) Przekrój dowolnej rodziny zbiorów wypuk ych jest zbiorem wypuk ym. b) Dowolna podprzestrzeń a niczna, w szczególności dowolna hiperp aszczyzna fx R n : a > x = bg jest zbiorem wypuk ym. c) Dowolna pó przestrzeń fx R n : a > x bg jest zbiorem wypuk ym. d) Poniewa z przekrój dowolnej liczby zbiorów wypuk ych jest zbiorem wypuk ym, wiȩc w szczególności zbiory postaci \ fx R n : a > i x = b i g ii s a wypuk e. Oczywiście algebraicznie s a one zbiorami rozwi azań uk- adu równań liniowych a > i x = b i, i I: e) Z tych samych powodów wypuk e s a zbiory postaci \ fx R n : a > i x b i g: ii W przypadku, gdy I jest zbiorem skończonym, zbiory takie nazywamy zbiorami wielo sciennymi. Szczególnym przypadkiem zbioru wielościennego jest sympleks standardowy, zde niowany nastȩpuj aco m = fw = ( ; :::; m ) > R m : i 0; i = ; :::; m; mx i = g: i=
4 Rozdzia. Podstawy programowania liniowego Innym przyk adem zbioru wielościennego jest zbiór rozwi azań dopuszczalnych X zadania programowania liniowego. Zbiorem wielościennym jest równie z zbiór rozwi azań optymalnych X tego zadania poniewa z X = X \ fx R n : c > x = c > x g; gdzie x jest ustalonym elementem zbioru X. Tak wiȩc zbiory X i X s a wypuk e. f) Dowolna kula B(y; r) = fx R n : kx yk rg jest zbiorem wypuk ym. Lemat..4. Otoczka wypuk a zbioru S R n jest postaci ( m ) X conv S = i x i : x i S; w = ( ; :::; m ) > m ; m N : (.5) i= Dowód Na mocy de nicji.. conv S jest zbiorem wypuk ym. Skoro conv S S, wiȩc z lematu.. wynika, ze conv S zawiera równie z wszystkie kombinacje wypuk e elementów zbioru S. Nietrudno pokazać, ze zbiór po prawej stronie równości (.5) jest wypuk y. Zawiera on S, wiȩc zgodnie z de nicj a.. zawiera on równie z conv S. Liczbȩ elementów wchodz acych do kombinacji wypuk ych, o których mowa w równości (.5) mo zna ograniczyć. Zachodzi bowiem nastȩpuj ace twierdzenie. Twierdzenie..5 (Carathéodory). Otoczka wypuk a zbioru S R n sk ada siȩ ze wszystkich kombinacji wypuk ych co najwy zej n + elementów zbioru S: ( m ) X conv S = i x i : x i S; w = ( ; :::; m ) > m ; m n + : i=
.. Podstawy teoretyczne 5 Dowód. Niech x conv S. Zgodnie z równości a (.5) x = P m i= ix i dla m N, x ; :::; x m S i m. Spośród wszystkich przedstawień wektora x w przedstawionej postaci mo zemy wybrać to, dla którego liczba m jest najmniejsza. Pozostaje pokazać, ze m n +. Przypuśćmy, ze jest przeciwnie. Niech x 0 i = (x i ; ) R n R. Poniewa z m > n +, wiȩc wektory x 0 i ; i = ; :::; m; s a liniowo zale zne. Oznacza to, ze istniej a takie liczby ; :::; m nie wszystkie równe zeru, ze P m P i= ix 0 i = 0, czyli m i= ix i = 0 i P m i= i = 0. Tak wiȩc wśród i ; i = ; :::; m; istniej a liczby dodatnie. Niech " 0 = i 0 i = min : i > 0; i = ; :::; m (.6) i0 i i niech i = i " 0 i ; i = ; :::; m: Z równości (.6) wynika, ze i 0 dla i = ; :::; m i ze i0 = 0. Zatem mx i x i = i= mx X m i x i " 0 i x i = x i= i= i mx i = i= mx X m i " 0 i = i= i= mx i = : Poniewa z i0 = 0, wiȩc widzimy, ze x mo zna przedstawić jako kombinacjȩ wypuk a m elementów.... Punkty ekstremalne De nicja..6. Punkt x nale z acy do zbioru wypuk ego K R n nazywa siȩ punktem ekstremalnym tego zbioru, jeśli nie jest środkiem odcinka acz acego dwa ró zne punkty zbioru K: i= x = (x0 + x 00 ) i x 0 ; x 00 K ) x 0 = x 00 :
6 Rozdzia. Podstawy programowania liniowego 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 kami. Przyk ad..7. Podamy zbiory punktów ekstremalnych dla wybranych zbiorów wypuk ych. a) Dla K = [a; b] R; przy czym a b; ext K = fa; bg; b) dla K = R n + = fx R n : x 0g; ext K = f0g; c) dla K = m ; ext K = fe i : i = ; :::; mg; d) dla K = fx R n : Ax = bg; ext K = K jeśli uk ad równań Ax = b posiada dok adnie jedno rozwi azanie i ext K = ; w przeciwnym wypadku. Twierdzenie..8. Niech X = fx R n : Ax = b; x 0g bȩdzie zbiorem rozwi azań dopuszczalnych zadania programowania liniowego w postaci standardowej. Wówczas x X jest wierzcho kiem zbioru X wtedy i tylko wtedy, gdy x jest bazowym rozwi azaniem dopuszczalnym. Dowód ()) Niech x bȩdzie wierzcho kiem zbioru X. Zapiszmy (po ewentualnym przenumerowaniu zmiennych) x = (x ; :::; x k ; 0; :::; 0) >, gdzie x i > 0 dla i = ; :::; k. Oznaczmy K = f; :::; kg i x K = (x ; :::; x k ) >. Poka zemy, ze macierz A K = [ A ; :::; A k ] ma liniowo niezale zne kolumny (r(a K ) = k). Przypuśćmy, ze jest przeciwnie, tzn. A K a K = 0 dla pewnego niezerowego wektora a K = ( ; :::; k ) >. Niech a = ( ; :::; k ; 0; :::; 0) > R n. Oczywiście wektor a jest równie z niezerowy. Niech " > 0 bȩdzie liczb a na tyle ma a, ze x 0 = x+ "a 0 i x 00 = x "a 0. Taka liczba istnieje, poniewa z x i > 0 dla i = ; :::; k. Zauwa zmy, ze x 0 i x 00 s a rozwi azaniami dopuszczalnymi, gdy z A(x "a) = Ax "Aa = b "A K a K = b: Ale x = (x0 + x 00 ) i x 0 6= x 00, gdy z " 6= 0. Zatem x nie jest wierzcho kiem zbioru X. Uzyskana sprzeczność dowodzi, ze r(a K ) = k, a wiȩc
.. Podstawy teoretyczne 7 k m, gdy z r(a) = m. Do aczmy kolumny A k+ ; :::; A m (po ewentualnym ich przenumerowaniu) do macierzy A K tak, aby powsta a macierz A B = [A ; :::; A m ] by a bazowa (nieosobliwa). Niech A N = [A m+ ; :::; A n ]. Oznaczmy x B = (x ; :::; x k ; 0; :::; 0) {z } >. Mamy wiȩc x = (x > B ; 0)> i widać, ze x jest dopuszczalnym rozwi azaniem bazowym, gdy z m k b = Ax = [A B ; A N ]x = A B x B czyli x B = A B b oraz x 0. Ponadto, jeśli k < m, to rozwi azanie to jest zdegenerowane. (() Niech A B bȩdzie macierz a bazow a i niech x = (x > B ; 0)>, gdzie x B = A B b bȩdzie bazowym rozwi azaniem dopuszczalnym. Przypuśćmy, ze x = (x0 + x 00 ) dla pewnych rozwi azań dopuszczalnych x 0 = (x 0> B ; x0> N )> i x 00 = (x 00> B ; x00> N )>. Mamy wiȩc x B = (x0 B + x 00 B) oraz 0 = (x0 N + x 00 N): W istocie x 0 N = x00 N = 0, bowiem jeśli suma nieujemnych wektorów jest wektorem zerowym, to wektory te s a wektorami zerowymi. Ponadto b = Ax 0 = [A B ; A N ]x 0 = A B x 0 B; czyli x 0 B = A B b. Podobnie, x00 B = A B b. Tak wiȩc x0 B = x00 B. Zatem x 0 = x 00. Pokazaliśmy wiȩc, ze x jest wierzcho kiem zbioru X. Uwaga..9. Powy zsze twierdzenie jest prawdziwe równie z dla postaci klasycznej zadania programowania liniowego. W celu pokazania tej wersji twierdzenia nale zy najpierw sprowadzić zbiór ograniczeń X = fx R n : Ax b; x 0g
8 Rozdzia. Podstawy programowania liniowego do postaci standardowej X = fw R n+m : Aw = b; w 0g; gdzie A = [A; I], w = (x > ; u > ) >, dla której to postaci twierdzenie zosta o wy zej pokazane. Nastȩpnie nale zy zauwa zyć, ze jeśli punkt w = (x > ; u > ) > jest wierzcho kiem zbioru X, to x jest wierzcho kiem zbioru X oraz jeśli x jest wierzcho kiem zbioru X i wektor u R m jest taki, ze Ax + u = b, to punkt w = (x > ; u > ) > jest wierzcho kiem zbioru X (dowody tych faktów pozostawiamy czytelnikowi jako ćwiczenie).... Projekcja metryczna na zbiór wypuk y De nicja..0. 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 8 zc kx yk kx zk: Wprawdzie projekcjȩ metryczn a mo zna zde niować dla dowolnej normy, jednak bȩd a nas interesować w asności tej projekcji dla normy indukowanej przez iloczyn skalarny. W dalszym ci agu tego ustȩpu zak adamy wiȩc, ze kxk = p hx; xi dla pewnego iloczynu skalarnego h; i. Twierdzenie... Niech C R n bȩdzie zbiorem niepustym, domkniȩtym i wypuk ym. Wówczas dla dowolnego x R n istnieje dok adnie jedna jego projekcja metryczna na C. Dowód. Twierdzenie poka zemy najpierw dla x = 0. Niech d = inffkyk : y Cg i niech ci ag (y k ) C bȩdzie wybrany tak, by ky k k! d. Dowód rozbijemy na trzy czȩści. a) Poka zemy, ze (y k ) jest ci agiem Cauchy ego. Niech " > 0 i niech k 0 N bȩdzie takie, ze ky k k d + "=4 dla k k 0. Niech k; l k 0. Oczywiście y k + y l C poniewa z C jest wypuk y. St ad ky k + y l k d. Korzystaj ac z to zsamości równoleg oboku otrzymujemy w konsekwencji: ky k y l k = ky k k + ky l k ky k + y l k
.. Podstawy teoretyczne 9 (d + "=4) + (d + "=4) 4d = "; tzn. (y k ) jest ci agiem Cauchy ego. b) Z a) wynika, ze y k zbiega do pewnego y R n, gdy z R n jest przestrzeni a zupe n a. Ponadto y C, poniewa z C jest domkniȩty. St ad i z ci ag ości normy wynika, ze kyk = d. Oznacza to, ze y = P C (0). c) Poka zemy teraz, ze projekcja metryczna określona jest jednoznacznie. Niech y 0 C i niech ky 0 k = d. Z wypuk ości C otrzymujemy y + y0 C. Ponadto d k y + y0 k kyk + ky0 k = d; a wiȩc ky + y 0 k = d. Korzystaj ac powtórnie z to zsamości równoleg oboku mamy: ky y 0 k = kyk + ky 0 k ky + y 0 k = d + d 4d = 0; czyli y = y 0. Poniewa z P C (x) = x + P C dowolnego x R n. x (0), wiȩc twierdzenie jest prawdziwe dla Uwaga... Istnienie projekcji metrycznej na zbiór C R n mo zna pokazać prościej korzystaj ac z ci ag ości normy i z twierdzenia Weierstrassa. Natomiast przeprowadzony powy zej dowód wskazuje, ze twierdzenie.. jest prawdziwe równie z dla dowolnej przestrzeni Hilberta. Twierdzenie... Niech x R n, C R n bȩdzie zbiorem niepustym, domkniȩtym i wypuk ym i niech y C. Wówczas nastȩpuj ace warunki s a równowa zne (i) y = P C (x), (ii) hx y; z yi 0 dla dowolnego z C: Dowód (i))(ii). Niech y = P C (x) i niech z C. Ponadto, niech z = y + (z y)
0 Rozdzia. Podstawy programowania liniowego dla (0; ). Oczywiście z C; poniewa z C jest wypuk y. Z (i) i z w asności iloczynu skalarnego mamy wiȩc Skoro > 0, wiȩc kx yk kx z k = kx y (z y)k = kx yk hx y; z yi + kz yk : hx y; z yi kz yk ; a poniewa z jest dowoln a liczb a z przedzia u (0; ), wiȩc musi zachodzić (ii). (ii))(i). Z w asności iloczynu skalarnego oraz z (ii) mamy dla dowolnego z C kz xk = kz yk + ky xk + hz y; y xi ky xk ; co na mocy de nicji projekcji metrycznej daje (i)...4. Twierdzenia o oddzielaniu i ich konsekwencje Twierdzenie..4 (o ostrym oddzielaniu). Niech C R n bȩdzie zbiorem niepustym, domkniȩtym i wypuk ym i niech x = C. Wówczas istnieje taki wektor s R n, ze hs; xi > supfhs; yi : y Cg: Dowód. Niech s = x P C (x). Wówczas z twierdzenia.. wynika prosto, ze dla ka zdego y C czyli hx y; si ksk ; hs; xi hs; yi + ksk : Zauwa zmy, ze s 6= 0, bo C jest domkniȩty i x = C. Zatem hs; xi supfhs; yi : y Cg + ksk > supfhs; yi : y Cg:
.. Podstawy teoretyczne Wniosek..5. Niech A; B R n bȩd a zbiorami wypuk ymi i domkniȩtymi, przy czym jeden z nich jest zbiorem zwartym. Je sli A \ B = ;, to istnieje taki wektor s R n, ze inffhs; ui : u Ag > supfhs; vi : v Bg. Dowód. Niech C = B A = fz R n : z = v u; v B; u Ag. Nietrudno zauwa zyć, ze C jest zbiorem wypuk ym. Ponadto C jest zbiorem domkniȩtym, poniewa z A i B s a domkniȩte, a jeden z nich zwarty. Istotnie, niech (z n ) C i niech z n! z. Wówczas z n = v n u n, gdzie u n A i v n B. Przypuśćmy, ze zbiór A jest zwarty. Wówczas istnieje podci ag zbie zny (u nk ) ci agu (u n ). Niech u = lim k! u nk. Wówczas v nk = z nk + u nk! v = z + u: Oczywiście u A i v B, poniewa z A i B s a zbiorami domkniȩtymi. Mamy wiȩc z = v u B A = C. Oznacza to, ze zbiór C jest domkniȩty. Poniewa z, A \ B = ;, wiȩc 0 = C. Na mocy twierdzenia o ostrym oddzielaniu istnieje taki wektor s R n, ze 0 = hs; 0i > supfhs; yi : y Cg = supfhs; v ui : u A, v Bg = supfhs; vi : v Bg inffhs; ui : u Ag. Twierdzenie..6 (o s abym oddzielaniu). Niech C R n bȩdzie zbiorem niepustym i wypuk ym i niech x = C. Wówczas istnieje s R n takie, ze hs; xi supfhs; yi : y Cg: Dowód. Jeśli x = cl C, to teza wynika z twierdzenia o ostrym oddzielaniu. Niech wiȩc x cl C n C. Poniewa z ten ostatni zbiór jest zawarty w brzegu zbioru C, wiȩc istnieje ci ag x k! x, x k = cl C: Z twierdzenia
Rozdzia. Podstawy programowania liniowego o ostrym oddzielaniu wynika, ze istnieje ci ag s k 6= 0 taki, ze dla ka zdego y C hs k ; x k i > hs k ; yi lub inaczej h s k ks k k ; x ki > h s k ks k k ; yi: Ci ag s k =ks k k jest ograniczony, posiada on wiȩc podci ag zbie zny do pewnego wektora unormowanego, powiedzmy do s. Przechodz ac do granicy i korzystaj ac z ci ag ości iloczynu skalarnego otrzymamy hs; xi hs; yi dla ka zdego y C, co jest równowa zne tezie twierdzenia. Wniosek..7. Niech A; B R n bȩd a zbiorami wypuk ymi i domkniȩtymi. Je sli A \ B = ;, to istnieje taki wektor s R n, ze inffhs; ui : u Ag supfhs; vi : v Bg. Dowód powy zszego wniosku przeprowadza siȩ podobnie do dowodu wniosku..5, przy czym nale zy w nim skorzystać z twierdzenia o s abym oddzielaniu. De nicja..8. Ograniczony zbiór wielościenny nazywa siȩ wielo scianem. Twierdzenie..9 (Minkowski). zbioru swoich punktów ekstremalnych: Wielo scian K jest otoczk a wypuk a K = conv ext K: Dowód indukcyjny twierdzenia Minkowskiego wzglȩdem wymiaru przestrzeni oparty na twierdzeniu o oddzielaniu mo zna znaleźć w podrȩcznikach do analizy wypuk ej, np. w podrȩczniku J. B. Hiriarta-Urruty ego i C. Lemaréchala [0, twierdzenie..4]. Podobne twierdzenie mo zna sformu ować dla zwartych i wypuk ych podzbiorów dowolnej lokalnie wypuk ej przestrzeni liniowo-topologicznej. Nosi ono nazwȩ twierdzenia Kreina Milmana.
.. Podstawy teoretyczne Uwaga..0. Prawdziwe jest równie z twierdzenie w pewnym sensie odwrotne do twierdzenia Minkowskiego: otoczka wypuk a zbioru skończonego jest wielościanem. Twierdzenie... Je sli zbiór rozwi azań dopuszczalnych X zadania programowania liniowego (w postaci klasycznej lub standardowej) jest niepusty, to posiada on przynajmniej jeden wierzcho ek. Dowód. Poka zemy najpierw, ze funkcja f(x) = e > x osi aga minimum na zbiorze X, gdzie e = (; :::; ) > Niech z X: Wówczas oczywiście inffe > x : x Xg = inffe > x : e > x e > z; x Xg: Poniewa z zbiór X = fx R n : e > x e > z; x Xg jest zwarty jako podzbiór domkniȩty zbioru zwartego fx R n + : e > x e > zg i funkcja f jest ci ag a, wiȩc osi aga ona minimum na X, równe powiedzmy. Z postaci zbioru X wynika, ze f osi aga równie z minimum równe na zbiorze X. Zbiór X = fx X : e > x = g jest wielościanem, wiȩc na mocy twierdzenia Minkowskiego posiada punkt ekstremalny x. Poka zemy, ze jest on równie z punktem ekstremalnym zbioru X. Niech x = x0 + x00 dla x 0 ; x 00 X. Mamy = e > x = e> x 0 + e> x 00 ; wiȩc e > x 0 = e > x 00 =. Zatem x 0 ; x 00 X. W konsekwencji x 0 = x 00, bo x jest punktem ekstremalnym zbioru X. Uwaga... Liczba wierzcho ków zbioru rozwi azań dopuszczalnych X zadania programowania liniowego wynosi co najwy zej: n a) m dla postaci standardowej, n+m b) m dla postaci klasycznej. Fakt ten wynika bezpośrednio z twierdzenia..8 i z uwagi..6.
4 Rozdzia. Podstawy programowania liniowego..5. Funkcje wypuk e De nicja... Funkcja f : R n! R nazywa siȩ wypuk a, jeśli 8 x;yr n 8 [0;] f(( )x + y) ( )f(x) + f(y): Funkcja f : R n! R nazywa siȩ wklȩs a, jeśli f jest funkcj a wypuk a lub inaczej 8 x;yr n 8 [0;] f(( )x + y) ( )f(x) + f(y): Lemat..4. Funkcja wypuk a f : R n! R jest lokalnie ograniczona z góry, tzn. dla dowolnego x R n istnieje r > 0 takie, ze f jest ograniczona z góry na kuli B(x; r): Dowód. Niech x 0 = x n e, x i e = (; :::; ) > ) i niech = x 0 + e i, i = ; :::; n, gdzie = convfx i : i = 0; ; :::; ng: Czytelnikowi pozostawiamy dowód faktu, ze ma niepuste wnȩtrze (wystarczy pokazać na przyk ad, ze B(x; n ). Niech c bȩdzie maksymaln a wartości a funkcji f na zbiorze wierzcho ków x 0 ; x ; :::; x n zbioru. Wówczas dla r > 0 takiego, ze B(x; r) i dla dowolnego y B(x; r) mamy y = P n i=0 ix i, dla pewnego w = ( ; :::; m ) > n, i f(y) = f( nx i x i ) i=0 nx i f(x i ) c i=0 nx i = c: i=0 Twierdzenie..5. Funkcja wypuk a f : R n! R jest ci ag a. Dowód. Niech x R n i niech h : R n! R, h(z) = f(x + z) f(x): Oczywiście h jest wypuk a i h(0) = 0. Na mocy lematu..4 istniej a wiȩc r > 0 i c R takie, ze h(z) c dla z B(0; r). Niech z B(0; r), z 6= 0