Programowanie matematyczne cz¸e´s´c I: programowanie...

102
Programowanie matematyczne cz¸e´ c I: programowanie liniowe Andrzej Cegielski

Transcript of Programowanie matematyczne cz¸e´s´c I: programowanie...

Programowanie matematyczne

czesc I: programowanie liniowe

Andrzej Cegielski

ii

Spis tresci

1 Wstep 11.1 Zadania programowania matematycznego . . . . . . . . . . 11.2 Oznaczenia i proste fakty . . . . . . . . . . . . . . . . . . . 4

2 Podstawy programowania liniowego 72.1 PrzykÃlady wprowadzajace . . . . . . . . . . . . . . . . . . . 72.2 Podstawowe pojecia . . . . . . . . . . . . . . . . . . . . . . 112.3 Podstawy teoretyczne . . . . . . . . . . . . . . . . . . . . . 23

2.3.1 Zbiory wypukÃle . . . . . . . . . . . . . . . . . . . . . 232.3.2 Punkty ekstremalne . . . . . . . . . . . . . . . . . . 262.3.3 Projekcja metryczna na zbior wypukÃly . . . . . . . . 292.3.4 Twierdzenia o oddzielaniu i ich konsekwencje . . . . 312.3.5 Funkcje wypukÃle . . . . . . . . . . . . . . . . . . . . 332.3.6 Stozki . . . . . . . . . . . . . . . . . . . . . . . . . . 352.3.7 Lemat Farkasa i jego konsekwencje . . . . . . . . . . 38

3 Metoda sympleksowa 433.1 Tablica sympleksowa . . . . . . . . . . . . . . . . . . . . . . 433.2 Opis metody sympleksowej . . . . . . . . . . . . . . . . . . 50

3.2.1 Wymiana zmiennej bazowej (piwotyzacja) . . . . . . 513.2.2 Krawedzie zbioru rozwiazan dopuszczalnych . . . . . 533.2.3 Piwotyzacja przy znanym dopuszczalnym rozwiazaniu

bazowym (II faza metody sympleksowej) . . . . . . . 54

iii

iv SPIS TRESCI

3.2.4 Przypadki szczegolne . . . . . . . . . . . . . . . . . . 573.2.5 Piwotyzacja przy nieznanym dopuszczalnym rozwia-

zaniu bazowym (I faza metody sympleksowej) . . . . 653.3 Degeneracja . . . . . . . . . . . . . . . . . . . . . . . . . . . 713.4 Zrewidowana metoda sympleksowa . . . . . . . . . . . . . . 75

4 Dualizm w programowaniu liniowym 794.1 Definicja i przykÃlady . . . . . . . . . . . . . . . . . . . . . . 794.2 Twierdzenia o dualnosci . . . . . . . . . . . . . . . . . . . . 824.3 Dualny algorytm sympleksowy . . . . . . . . . . . . . . . . 92

ROZDZIAÃL 1

Wstep

Motto:Pomiedzy duchem i materia posredniczy matematyka

H. Steinhaus

1.1 Zadania programowania matematycznego

Niech dane beda: podzbior D ⊂ Rn i funkcja f : D → R. Ogolnie rzeczbiorac, zadanie programowania matematycznego polega na wyznaczeniupunktu x∗, dla ktorego funkcja f osiaga minimum (lokalne badz glob-alne) na zbiorze D, o ile takie minimum istnieje. Zbior D, zwany zbioremrozwiazan dopuszczalnych, podawany jest najczesciej w postaci

D = {x ∈ X : ci(x) = 0 dla i ∈ E oraz ci(x) ≤ 0 dla i ∈ I},

gdzie X ⊂ Rn, E = {1, ..., p}, I = {p + 1, ..., m}, ci : Rn → R, i ∈ E ∪ I.Funkcja f nazywa sie funkcja celu, zas funkcje ci, i ∈ E ∪ I, nazywajasie funkcjami ograniczen lub ograniczeniami. Ograniczenia ponumerowanewskaznikami i ∈ E nazywamy rownosciowymi, zas ponumerowane wskazni-kami i ∈ I – nierownosciowymi. Zbior X jest najczesciej podawany wpostaci: X = Rn, X = Rn

+, X = Zn, X = Zn+. W ostatnich dwoch przy-

padkach zadanie nazywa sie zadaniem programowania caÃlkowitoliczbowego.

1

2 ROZDZIAÃL 1. WSTEP

Czasem zbior X dany jest w postaci X = {0, 1}n. Wowczas mowimy ozadaniu programowania binarnego.

DokÃladniej rzecz ujmujac, programowanie matematyczne zajmuje sie:

• warunkami istnienia rozwiazan dopuszczalnych (warunkami niesprzecz-nosci problemu),

• warunkami (koniecznymi i wystarczajacymi) istnienia minimum (lubprzynajmniej skonczonego kresu dolnego),

• metodami wyznaczenia tego minimum i punktu x∗ realizujacego tominimum (w sposob dokÃladny lub przyblizony),

Czasem do zadan programowania matematycznego zalicza sie rowniez:

• utworzenie, dla konkretnego zagadnienia praktycznego odpowiedniegomodelu matematycznego (w postaci minimalizacji funkcji wielu zmien-nych),

• interpretacje rozwiazania dla takiego modelu.

Na ogoÃl zakÃlada sie, ze funkcje ograniczen ci, i ∈ E ∪ I sa ciagÃle. Wkonsekwencji zbior D jest domkniety. Jesli ponadto jest on ograniczony ifunkcja f jest rowniez ciagÃla, to na mocy twierdzenia Weierstrassa osiagaona minimum na D.

Zadania programowania matematycznego dzielimy na:

• minimalizacje rozniczkowalna (lub inaczej gÃladka), gdy wszystkie funk-cje f, ci, i ∈ E ∪ I, sa rozniczkowalne.

• minimalizacje nierozniczkowalna (lub inaczej niegÃladka), gdy przy-najmniej jedna funkcji f, ci, i ∈ E ∪ I, nie jest rozniczkowalna.

Minimalizacje rozniczkowalna dzielimy na:

• minimalizacje bez ograniczen, gdy D = Rn (lub inaczej, funkcje ograni-czen nie wystepuja)

1.1. ZADANIA PROGRAMOWANIA MATEMATYCZNEGO 3

• minimalizacje z ograniczeniami, gdy D ⊂ Rn

Wsrod zadan minimalizacji z ograniczeniami wyrozniamy:

• zadanie programowania liniowego, gdy wszystkie funkcje f, ci, i ∈E ∪ I, sa liniowe,

• zadanie programowania kwadratowego, gdy funkcja f jest kwadra-towa, zas wszystkie funkcje ci, i ∈ E ∪ I, sa liniowe,

• zadanie programowania wypukÃlego, gdy E = ∅ i wszystkie funkcjef, ci, i ∈ I, sa wypukÃle.

W zadaniu minimalizacji z ograniczeniami:

• ograniczenie rownosciowe ci(x) = 0 mozna zastapic dwoma ogranicze-niami nierownosciowymi ci(x) ≤ 0 i −ci(x) ≤ 0,

• ograniczenie nierownosciowe ci(x) ≤ 0 mozna zastapic ograniczeniemrownosciowym ci(x) + ui = 0, wprowadzajac tak zwana zmiennauzupeÃlniajaca ui ≥ 0,

• zmienna wolna (xj ∈ R) mozna przedstawic jako roznice dwoch zmien-nych nieujemnych xj = x+

j − x−j , gdzie x+j , x−j ≥ 0.

W konsekwencji, postacie zadania programowania matematycznego zograniczeniami wyÃlacznie rownosciowymi, badz z ograniczeniami wyÃlacznienierownosciowymi, ze zmiennymi wyÃlacznie wolnymi, badz to ze zmien-nymi wyÃlacznie nieujemnymi sa sobie w pewnym sensie rownowazne, tzn.z kazdej z nich mozna (przynajmniej teoretycznie) przejsc do dowolnej in-nej. Inna rzecz, ze takie przejscie moze okazac sie maÃlo efektywne z punktuwidzenia metod programowania matematycznego.

Poniewaz maxx∈D f(x) = −minx∈D −f(x), wiec zadanie maksymaliza-cji mozna sprowadzic do zadania minimalizacji i odwrotnie.

4 ROZDZIAÃL 1. WSTEP

1.2 Oznaczenia i proste fakty

W dalszej czesci uzywac bedziemy nastepujacych oznaczen i konwencji:

• x = (x1, ..., xn)> ∈ Rn oznacza element przestrzeni Rn w postaci wek-tora kolumnowego (czasem bedziemy zapisywac wspoÃlrzedne wektoraw postaci xj , j = 1, ...n, szczegolnie wowczas, gdy symbolem xk oz-naczac bedziemy k-ty wyraz ciagu elementow przestrzeni Rn),

• x ≥ 0 oznacza, ze wszystkie wspoÃlrzedne wektora x sa nieujemne,

• Rn+ = {x ∈ Rn : x ≥ 0}

• x > 0 oznacza, ze wszystkie wspoÃlrzedne wektora x sa nieujemne,przy czym przynajmniej jedna z nich jest dodatnia,

• x À 0 oznacza, ze wszystkie wspoÃlrzedne wektora x sa dodatnie,

• Rn++ = {x ∈ Rn : x À 0}

• x>y jest zwykÃlym iloczynem skalarnym wektorow x, y ∈ Rn zapisanymw konwencji mnozenia macierzy, czyli

x>y =n∑

j=1

xjyj ,

• ej = (0, ..., 0, 1, 0, ..., 0)> oznacza wektor jednostkowy odpowiedniegowymiaru (1 jest j-ta wspoÃlrzedna),

• I oznacza macierz jednostkowa odpowiedniego wymiaru.

Jesli A jest macierza typu m× n, to:

• Ai oznacza i-ta kolumne macierzy A,

1.2. OZNACZENIA I PROSTE FAKTY 5

• AI oznacza podmacierz utworzona z kolumn Ai macierzy A, i ∈ I ⊂{1, ..., m},

• Aj oznacza j-ty wiersz macierzy A,

• r(A) oznacza rzad macierzy A,

• Ax jest kombinacja liniowa kolumn macierzy A, gdzie x ∈ Rn jestwektorem wspoÃlczynnikow tej kombinacji,

• α>A jest kombinacja liniowa wierszy macierzy A, gdzie α ∈ Rm jestwektorem wspoÃlczynnikow tej kombinacji.

Niech

A =

A11 ... A1r

... ... ...Ap1 ... Apr

oznacza macierz w zapisie blokowym z wyroznionymi podmacierzami Aij ,i = 1, ..., p, j = 1, ..., r, takimi, ze podmacierze w jednej kolumnie macierzyblokowej A maja te sama liczbe kolumn i podmacierze w tym samym wier-szu macierzy blokowej A maja te sama liczbe wierszy. Podobne zaÃlozeniadotycza macierzy

B =

B11 ... B1s

... ... ...Br1 ... Brs

.

Ponadto zakÃladamy, ze istnieja iloczyny AikBkj , i = 1, ..., p, j = 1, ...s,k = 1, ..., r. Wowczas

AB = [Cij ] =

C11 ... C1s

... ... ...Cp1 ... Cps

,

gdzie Cij =∑

k AikBkj . Innymi sÃlowy, reguÃly mnozenia macierzy blokowychsa takie same jak dla zwykÃlych macierzy.

6 ROZDZIAÃL 1. WSTEP

ROZDZIAÃL 2

Podstawy programowanialiniowego

Motto:Kazda wiedza zawiera tyle prawdy ile jest w niej zawartej matematyki

I. Kant

2.1 PrzykÃlady wprowadzajace

PrzykÃlad 2.1.1 Przedstawimy matematyczny model nastepujacego zagad-nienia:

Ogrodnik chce obsadzic ogrod wielkosci 100 m2 rozami i gozdzikami.Moze on zainwestowac maksymalnie 720 zÃl, zas z powodu wysokiego nakÃladupracy moze on zarezerwowac najwyzej 60 m2 na gozdziki. Ile m2 powinienon obsadzic kazdym rodzajem kwiatow, aby osiagnac maksymalny zysk.Robocizna i koszty materiaÃlowe wynosza dla roz 6 zÃl/m2 i dla gozdzikow 9zÃl/m2. Zysk wynosi dla roz 1 zÃl/m2, zas dla gozdzikow 2 zÃl/m2.

Wprowadzajac oznaczenia:

• x1 – pole powierzchnia (w m2) obsadzonej rozami,

7

8 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

• x2 – pole powierzchnia (w m2) obsadzonej gozdzikami,

model matematyczny bedzie miaÃl postac:

maksymalizowac x1 + 2x2

przy ograniczeniach x1 + x2 ≤ 1006x1 + 9x2 ≤ 720

x2 ≤ 60x1, x2 ≥ 0

Powyzszy przykÃlad podpada pod nastepujacy schemat.

PrzykÃlad 2.1.2 (zagadnienie analizy dziaÃlalnosci gospodarczej)Producent wytwarza n towarow P1,...,Pn wykorzystujac m surowcow

lub ogolniej, czynnikow produkcyjnych R1,...,Rm. Producent dysponuje bi

jednostkami surowca Ri, i = 1, ..., m. Do wyprodukowania jednostki towaruPj potrzeba aij jednostek surowca Ri, i = 1, ..., m, j = 1, ..., n. Jednostkawyprodukowanego towaru Pj przynosi zysk cj jednostek pienieznych, j =1, ..., n. Ile jednostek kazdego z towarow powinien wytwarzac producent,aby zapewnic sobie maksymalny zysk?

Oznaczajac przez xj ilosc jednostek wyprodukowanego towaru Pj , j =1, ..., n, mozemy powyzsze zagadnienie sformuÃlowac nastepujaco:

maksymalizowac c1x1 + c2x2 + ... + cnxn

przy ograniczeniach a11x1 + a12x2 + ... + a1nxn ≤ b1

a21x1 + a22x2 + ... + a2nxn ≤ b2

...am1x1 + am2x2 + ... + amnxn ≤ bm

x1, ..., xn ≥ 0.

PrzykÃlad 2.1.3 (zagadnienie diety)Przedstawimy model matematyczny nastepujacego zagadnienia:

2.1. PRZYKÃLADY WPROWADZAJACE 9

Hodowca karmi krowy dwoma rodzajami karmy, nazwijmy je A i B.Dzienna racja zywnosciowa krowy musi zawierac czynniki odzywcze I, II iIII w ilosciach co najmniej 6, 12 i 4 gramy. Zawartosc czynnikow odzywczychw poszczegolnych rodzajach karmy i ich ceny podane sa w tabeli:

karma A karma Bminimalnazawartosc (g)

czynnik odzywczy I (g/kg) 2 1 6czynnik odzywczy II (g/kg) 2 4 12

czynnik odzywczy III (g/kg) 0 7 4cena (zÃl/kg) 5 7

Ile kilogramow karmy A i B powinna zawierac dzienna racja zywnosciowakrowy, aby przy zachowaniu podanego minimalnego zapotrzebowania naczynniki odzywcze, powstaÃle koszty byÃly minimalne?

Oznaczajac:

• x1 – ilosc (w kg) karmy A w dziennej racji zywnosciowej,

• x2 – ilosc (w kg) karmy B w dziennej racji zywnosciowej,

powyzsze zagadnienie bedzie miaÃlo nastepujacy model matematyczny:

minimalizowac 5x1 + 7x2

przy ograniczeniach 2x1 + x2 ≥ 62x1 + 4x2 ≥ 12

7x2 ≥ 4x1, x2 ≥ 0.

PrzykÃlad 2.1.4 (zagadnienie produkcyjne)Producent ma za zadanie wyprodukowac m towarow P1,...,Pm w ilosciach

b1, ..., bm wykorzystujac n surowcow R1,...,Rn. Z jednostki surowca Rj

mozna wyprodukowac aij jednostek towaru Pi, i = 1, ..., m, j = 1, ..., n.Jednostka surowca Rj kosztuje cj jednostek pienieznych, j = 1, ..., n. Ilenalezy uzyc poszczegolnych surowcow do wyznaczonego profilu produk-cyjnego, tak aby Ãlaczne koszty surowcowe byÃly minimalne?

10 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

Oznaczajac przez xj ilosc jednostek surowca Rj uzytego do produkcji,j = 1, ..., n, powyzsze zagadnienie mozemy sformuÃlowac nastepujaco:

minimalizowac c1x1 + c2x2 + ... + cnxn

przy ograniczeniach a11x1 + a12x2 + ... + a1nxn = b1

a21x1 + a22x2 + ... + a2nxn = b2

...am1x1 + am2x2 + ... + amnxn = bm

x1, ..., xn ≥ 0.

PrzykÃlad 2.1.5 (zagadnienie transportowe)W sieci m magazynow A1,...,Am skÃladuje sie pewien towar. Nalezy go

dostarczyc do sieci n sklepow B1,...,Bn. Zapas magazynu Ai wynosi ai

jednostek towaru, i = 1, ..., m. Sklep Bj potrzebuje bj jednostek towaru,j = 1, .., n. ZakÃladamy, ze

m∑

i=1

ai =n∑

j=1

bj (2.1)

(Ãlaczna podaz jest rowna Ãlacznemu popytowi). Koszty transportu jednostkitowaru z magazynu Ai do sklepu Bj wynosza cij jednostek pienieznych,i = 1, ..., m, j = 1, ..., n. Nalezy okreslic plan transportowy o minimalnychkosztach zaspokajajacy zapotrzebowanie wszystkich sklepow (czyli, przypodanym zaÃlozeniu, wyczerpujacy Ãlaczne zapasy magazynow).

Jesli przez xij oznaczymy ilosc towaru transportowanego z magazynuAi do sklepu Bj , i = 1, ..., m, j = 1, ..., n, to powyzsze zagadnienie bedziemiaÃlo nastepujacy model matematyczny:

minimalizowac∑m

i=1

∑nj=1 cijxij

przy ograniczeniach∑n

j=1 xij = ai i = 1, .., m,∑mi=1 xij = bj j = 1, ..., n,

xij ≥ 0 i = 1, .., m,j = 1, ..., n.

(2.2)

2.2. PODSTAWOWE POJECIA 11

2.2 Podstawowe pojecia

Definicja 2.2.1 Pod pojeciem zadania programowania liniowego (ZPL)rozumie sie zadanie maksymalizacji lub minimalizacji funkcji liniowej przyograniczeniach w postaci rownosci lub nierownosci liniowych.

Postac klasyczna ZPL:

maksymalizowac c1x1 + ... + cnxn

przy ograniczeniach a11x1 + ... + a1nxn ≤ b1

...am1x1 + ... + amnxn ≤ bm

xj ≥ 0, j = 1, ..., n.

Postac standardowa ZPL:

maksymalizowac c1x1 + ... + cnxn

przy ograniczeniach a11x1 + ... + a1nxn = b1

...am1x1 + ... + amnxn = bm

xj ≥ 0, j = 1, ..., n.

Poniewaz minx f(x) = −maxx−f(x), wiec, podobnie jak w sytuacjiogolnej, problem minimalizacji mozna sprowadzic do problemu maksyma-lizacji.

Jesli jedna ze zmiennych xj moze przyjmowac dowolne wartosci rzeczy-wiste, to rowniez podobnie jak w przypadku ogolnym, mozna ja wowczaszastapic dwiema zmiennymi nieujemnymi x+

j i x−j , przy czym xj = x+j −x−j .

Postac klasyczna ZPL mozna sprowadzic do postaci standardowej wpro-wadzajac tzw. zmienne uzupeÃlniajace u1, ..., um:

12 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

maksymalizowac c1x1 + ... + cnxn

przy ograniczeniach a11x1 + ... + a1nxn + u1 = b1

...am1x1 + ... + amnxn + um = bm

xj ≥ 0, j = 1, ..., n,ui ≥ 0, i = 1, ..., m.

Ostatnia postac nosi nazwe postaci kanonicznej ZPL.

Postac standardowa ZPL mozna sprowadzic do postaci klasycznej przed-stawiajac kazde rownanie ai1x1 + ... + ainxn = bi jako dwie nierownosciai1x1 + ... + ainxn ≤ bi i −ai1x1 − ...− ainxn ≤ −bi, i = 1, ..., m.

Niech x = (x1, ..., xn)>, c = (c1, ..., cn)>, b = (b1, ..., bm)> i

A =

a11 ... a1n

... ... ...am1 ... amn

.

Wowczas ZPL mozna przedstawic w zapisie macierzowym:

• w postaci klasycznej:

maksymalizowac c>xprzy ograniczeniach Ax ≤ b

x ≥ 0

• w postaci standardowej:

maksymalizowac c>xprzy ograniczeniach Ax = b

x ≥ 0.

2.2. PODSTAWOWE POJECIA 13

Po sprowadzeniu postaci klasycznej do standardowej, ZPL ma nastepujacyzapis macierzowy:

maksymalizowac c>x

przy ograniczeniach[

A I] [

xu

]= b

x, u ≥ 0.

Jest to zapis macierzowy postaci kanonicznej ZPL.

Jesli postac standardowa sprowadzi sie do postaci klasycznej w opisanyuprzednio sposob, to jej zapis macierzowy wyglada nastepujaco:

maksymalizowac c>x

przy ograniczeniach[

A−A

]x ≤

[b−b

]

x ≥ 0.

Jesli rzad r(A) macierzy A jest rowny m, to postac standardowa ZPLmozna sprowadzic do postaci kanonicznej wyznaczajac z ukÃladu rownanAx = b, m zmiennych (na przykÃlad x1, ..., xm) jako funkcje pozostaÃlychn−m zmiennych. Mozna to uczynic na przykÃlad metoda eliminacji Gaussa.Metoda ta mozna rowniez wyznaczyc rzedy macierzy A i [A, b], a takzeusunac liniowo zalezne rownania jesli r(A) = r([A, b]) < m)

PrzykÃlad 2.2.2 Przy pomocy metody eliminacji Gaussa przedstawimy uk-Ãlad rownan

2x1 + 3x2 − 4x3 + x4 = 24x1 + 2x2 − x3 + 2x4 = 16x1 + x2 + 2x3 − x4 = 1

w postaci kanonicznej.

Powyzszy ukÃlad rownan ma w zapisie macierzowym postac:

14 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

2 3 −4 14 2 −1 26 1 2 −1

x1

x2

x3

x4

=

211

.

Czasem zapisuje sie go rowniez w postaci

2 3 −4 14 2 −1 26 1 2 −1

∣∣∣∣∣∣

211

.

W tym przypadku nalezy jednak pamietac o tym, ze poszczegolnym kolum-nom przypisane sa odpowiednie zmienne x1, x2, x3, x4 i, ze kolejnosc przy-pisania moze ulec zmianie w trakcie przeksztaÃlcen ukÃladu, co bedzie miaÃlomiejsce w naszym przykÃladzie.

Po przeksztaÃlceniach elementarnych okreslonych w metodzie eliminacjiGaussa (polegajacych w tym przypadku na pomnozeniu pierwszego rownaniaprzez−2 i dodaniu do drugiego, nastepnie pomnozeniu pierwszego rownaniaprzez −3 i dodaniu do trzeciego, dalej pomnozeniu drugiego rownania przez−2 i dodaniu do trzeciego i w koncu zamianie kolejnosci zapisu zmiennychx3 i x4) otrzymamy rownowazny ukÃlad rownan w zapisie macierzowym zewszystkimi elementami pod gÃlowna przekatna rownymi zero:

2 3 1 −40 −4 0 70 0 −4 0

x1

x2

x4

x3

=

2−31

.

Z zapisu tego widac, ze r(A) = r([A, b]) = 3. Dokonujac dalszych prze-ksztaÃlcen elementarnych okreslonych w metodzie eliminacji Gaussa (pole-gajacych w tym przypadku na pomnozeniu trzeciego rownania przez 1

4 idodaniu do pierwszego, nastepnie pomnozeniu drugiego rownania przez 3

4 idodaniu do pierwszego i w koncu na podzieleniu pierwszego rownania przez2, oraz drugiego i trzeciego przez −4) otrzymamy postac kanoniczna:

2.2. PODSTAWOWE POJECIA 15

1 0 0 58

0 1 0 −74

0 0 1 0

x1

x2

x4

x3

=

034−1

4

lub

[I A

] [xB

xN

]= b,

gdzie

xB = (x1, x2, x4)>, xN = x3, A =

58−7

40

, b =

034−1

4

.

Rozwiazanie ukÃladu rownan mozna przedstawic wowczas nastepujaco:

xB = b− AxN .

Powyzszy opis ilustruje ogolny schemat: ZakÃladajac, jak wyzej, ze pier-wsze m kolumn macierzy A jest liniowo niezaleznych, mozna ukÃlad rownanAx = b przeksztaÃlcic metoda eliminacji Gaussa do tzw. postaci trapezowej:A∗x = b∗, gdzie:

[A∗, b∗] =

a∗11 a∗12 ... a∗1r a∗1,r+1 ... a∗1n b∗10 a∗21 ... a∗2r a∗2,r+1 ... a∗2n b∗2... ...0 0 ... a∗rr a∗r,r+1 ... a∗rn b∗r0 0 ... 0 0 ... 0 b∗r+1

... ...0 0 ... 0 0 ... 0 b∗n

oraz a∗11 6= 0, ..., a∗rr 6= 0. Elementy b∗r+1, ..., b∗n decyduja o istnieniu rozwiazania

ukÃladu rownan. UkÃlad posiada rozwiazanie wtedy i tylko wtedy gdy wszys-tkie one sa rowne zero. W przypadku istnienia rozwiazan ich ilosc zalezy

16 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

od r. Jesli r = n, to ukÃlad posiada dokÃladnie jedno rozwiazanie. Jeslir < n, to ukÃlad posiada nieskonczenie wiele rozwiazan zaleznych od n − rparametrow. Jesli przynajmniej jeden z elementow b∗r+1, ..., b

∗n jest rozny

od zera, to ukÃlad nie posiada rozwiazan.UkÃlad rownan A∗x = b∗ mozna teraz (w przypadku istnienia rozwiazania)

rozwiazac ”od doÃlu do gory”. Po przeksztaÃlceniach elementarnych opisanychw metodzie eliminacji Gaussa, otrzymamy rownowazny mu ukÃlad rownan

[I A

] [xB

xN

]= b

lub inaczej xB = b− AxN .

W dalszej czesci tego rozdziaÃlu zakÃladamy, ze, r(A) = m. Jak za-uwazylismy wyzej, zaÃlozenie to nie ogranicza ogolnosci rozwazan.

Rozwiazanie ukÃladu rownan Ax = b mozna rowniez opisac inaczej.Niech w zapisie blokowym A = [ AB AN ], przy czym AB jest macierzanieosobliwa (detAB 6= 0). Nietrudno zauwazyc, ze zaÃlozenie to rownieznie ogranicza ogolnosci rozwazan (w razie potrzeby mozna ewentualnie

przenumerowac zmienne x1, ..., xn). Dalej, niech x =[

xB

xN

](na przykÃlad

xB = (x1, ..., xm)>, xN = (xm+1, ..., xn)>). WspoÃlrzedne wektora xB nazy-wamy zmiennymi bazowymi, zas wspoÃlrzedne wektora xN – zmiennyminiebazowymi. Omawiany ukÃlad rownan mozna zapisac w postaci

[AB AN

] [xB

xN

]= b

lub inaczej w postaciABxB + ANxN = b.

Po pomnozeniu obu stron ostatniego rownania z lewej strony przez A−1B

otrzymamyxB = A−1

B b−A−1B ANxN . (2.3)

2.2. PODSTAWOWE POJECIA 17

Definicja 2.2.3 Nieosobliwa podmacierz AB stopnia m macierzy A nazywasie macierza bazowa (jest ona utworzona z m liniowo niezaleznych kolumnmacierzy A).

Definicja 2.2.4 Niech A = [ AB AN ], gdzie AB jest macierza bazowa.Wektor x = (x>B, 0)>, gdzie xB = A−1

B b, nazywa sie rozwiazaniem bazowymukÃladu rownan Ax = b. WspoÃlrzedne wektora xB danego rownoscia (2.3)nazywaja sie zmiennymi bazowymi. PozostaÃle wspoÃlrzedne wektora x =(x>B, x>N )> bedacego rozwiazaniem ukÃladu rownan nazywaja sie zmiennyminiebazowymi.

Uwaga 2.2.5 Kazde nieujemne rozwiazanie x ukÃladu rownan Ax = bnazywa sie rozwiazaniem dopuszczalnym. Rozwiazanie bazowe (xB, 0) nazy-wa sie dopuszczalnym rozwiazaniem bazowym, jesli xB ≥ 0.

Uwaga 2.2.6 Maksymalna liczba rozwiazan bazowych ukÃladu rownan Ax =b wynosi

(nm

). Moze byc ich jednak mniej, jesli pewne podmacierze typu

m×m macierzy A beda osobliwe. Ponadto niektore z rozwiazan bazowychmoga nie byc dopuszczalne.

Definicja 2.2.7 Rozwiazanie bazowe (x>B, 0)> nazywa sie zdegenerowanym,jesli przynajmniej jedna ze zmiennych bazowych jest rowna zero. W prze-ciwnym wypadku rozwiazanie bazowe nazywa sie niezdegenerowanym.

Definicja 2.2.8 Dopuszczalne rozwiazanie x∗ ZPL nazywa sie rozwiaza-niem optymalnym, jesli nie istnieje rozwiazanie dopuszczalne ZPL o wiekszej(albo mniejszej w przypadku minimalizacji) wartosci funkcji celu niz c>x∗.Jesli dopuszczalne rozwiazanie bazowe jest rozwiazaniem optymalnym, tonazywa sie ono optymalnym rozwiazaniem bazowym.

Niech X oznacza zbior rozwiazan dopuszczalnych ZPL, zas X∗ – zbiorrozwiazan optymalnych ZPL.

18 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

W przypadku, gdy ZPL jest dane w postaci standardowej, jego funkcjecelu mozemy zapisac nastepujaco:

z = c>x = c>BxB + c>NxN

Po wstawieniu w miejsce xB wyrazenia okreslonego rownoscia (2.3)otrzymamy

z = c>BA−1B b + (c>N − c>BA−1

B AN )xN (2.4)

W zagadnieniach ekonomicznych wektor c>BA−1B nazywa sie wektorem cen

ukrytych, c>BA−1B AN nazywa sie wektorem kosztow rownowaznych, c>N −

c>BA−1B AN – wektorem kosztow zredukowanych, zas przeciwny don wek-

tor: c>BA−1B AN − c>N – wektorem ujemnych kosztow zredukowanych. Po-

damy teraz interpretacje tych pojec na przykÃladzie zagadnienia produk-cyjnego (przykÃlad 2.1.4). Przypuscmy, ze x = (x>B, x>N )> jest pewnymrozwiazaniem dopuszczalnym (wektorem udziaÃlow surowcowych) i, ze x′ =(x′>B , x′>N )> jest takim rozwiazaniem dopuszczalnym, ze x′N = xN +ej , x′B =A−1

B b−A−1B ANx′N . Inaczej mowiac, j-ta zmienna niebazowa (udziaÃl j-tego

surowca) zwiekszono o jednostke, a zmienne bazowe zmieniono tak, aby x′

byÃlo nadal rozwiazaniem dopuszczalnym. Niech z i z′ beda odpowiadajacymitym rozwiazaniom wartosciami funkcji celu. Wowczas z rownosci (2.4)otrzymamy po prostych przeksztaÃlceniach

z′ = z − (c>BA−1B Aj − cj),

gdzie Aj oznacza j-ta kolumne macierzy A. Widzimy wiec, ze zwiekszenieudziaÃlu j-tego surowca o jednostke (przy zachowaniu profilu produkcji)powoduje redukcje wartosci funkcji celu (kosztow surowcowych) o wielkoscc>BA−1

B Aj − cj . Zauwazmy, ze wielkosc ta jest j-ta wspoÃlrzedna wektoraujemnych kosztow zredukowanych. Jesli przy takiej zamianie rozwiazania xna x′ (zwiekszeniu udziaÃlu j-tego surowca o jednostke) funkcja celu (kosztysurowcowe) miaÃlaby pozostac bez zmiany, to oczywiscie

cj = c>BA−1B Aj ,

czyli cena jednostki j-tego surowca musiaÃlaby byc rowna j-tej wspoÃlrzednejwektora kosztow rownowaznych. Przy okazji zauwazmy, ze jezeli x jest

2.2. PODSTAWOWE POJECIA 19

(bazowym) rozwiazaniem optymalnym zadania minimalizacji, to wszystkiekoszty zredukowane dla zmiennych niebazowych (nie uzywanych surowcow)sa nieujemne albo inaczej ich koszty rownowazne sa rowne co najwyzejjednostkowym cenom surowcowym. Dla rozwiazania optymalnego zada-nia maksymalizacji wszystkie ujemne koszty zredukowane dla zmiennychniebazowych sa nieujemne.

Interpretacja ekonomiczna wektora cen ukrytych bedzie podana pozniej.

PrzykÃlad 2.2.9 Okreslimy wszystkie bazowe rozwiazania dopuszczalne uk-Ãladu rownan

[1 2 12 1 5

]

x1

x2

x3

=

[45

].

Oczywiscie r(A) = 2.a) Wybierajac B = {1, 2} otrzymamy xB = (2, 1)> i dopuszczalne

rozwiazanie bazowe x = (2, 1, 0)>,b) z kolei wybierajac B = {2, 3} otrzymamy xB = (5

3 , 23)> i dopuszczalne

rozwiazanie bazowe x = (0, 53 , 2

3)>.c) natomiast wybierajac B = {1, 3} otrzymamy xB = (5,−1)> i niedo-

puszczalne rozwiazanie bazowe x = (5, 0,−1)>.

PrzykÃlad 2.2.10 Wyznaczymy wszystkie bazowe rozwiazania dopuszczalneZPL:

maksymalizowac c1x1 + c2x2

przy ograniczeniach −x1 + 2x2 ≤ 8x1 + x2 ≤ 10

2x1 + x2 ≤ 16x1 ≤ 6

x1, x2 ≥ 0.

20 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

Postac standardowa tego zadania w zapisie macierzowym wyglada nastepujaco:

maksymalizowac c1x1 + c2x2

przy ograniczeniach

−1 2 1 0 0 01 1 0 1 0 02 1 0 0 1 01 0 0 0 0 1

x1

x2

x3

x4

x5

x6

=

810166

Oczywiscie r(A) = r([A, b]) = 4. Niektore z rozwiazan bazowych przedsta-wiaja sie nastepujaco:

a) dla B = {2, 4, 5, 6}, xB = (4, 6, 12, 6)> i x = (0, 4, 0, 6, 12, 6)> jestdopuszczalnym rozwiazaniem bazowym,

b) dla B = {1, 2, 5, 6}, xB = (4, 6, 2, 2)> i x = (4, 6, 0, 0, 2, 2)> jestdopuszczalnym rozwiazaniem bazowym,

c) dla B = {1, 2, 3, 4}, xB = (6, 4, 6, 0)> i x = (6, 4, 6, 0, 0, 0)> jestrozwiazaniem zdegenerowanym,

d) dla B = {1, 2, 3, 5}, xB = (6, 4, 6, 0)> i x = (6, 4, 6, 0, 0, 0)> jestrozwiazaniem zdegenerowanym,

e) dla B = {1, 2, 3, 6}, xB = (6, 4, 6, 0)> i x = (6, 4, 6, 0, 0, 0)> jestrozwiazaniem zdegenerowanym,

f) dla B = {1, 3, 4, 5}, xB = (6, 14, 4, 4)> i x = (6, 0, 14, 4, 4, 0)> jestdopuszczalnym rozwiazaniem bazowym,

g)dla B = {3, 4, 5, 6}, xB = (8, 10, 16, 6)> i x = (0, 0, 8, 10, 16, 6)> jestdopuszczalnym rozwiazaniem bazowym,

h) dla B = {1, 2, 4, 6}, xB = (245 , 32

5 ,−65 , 6

5)> i x = (245 , 32

5 , 0,−65 , 0, 6

5)>

jest niedopuszczalnym rozwiazaniem bazowym.Poza tym istnieje jeszcze 6 niedopuszczalnych rozwiazan bazowych.Zwrocmy uwage na to, ze trzem roznym wyborom zbioru B odpowiada

jedno (potrojne) rozwiazanie zdegenerowane. Czytelnikowi zalecamy nary-sowanie zbioru rozwiazan dopuszczalnych omawianego zadania i porownaniewierzchoÃlkow tego zbioru z wyznaczonymi bazowymi rozwiazaniami do-puszczalnymi.

2.2. PODSTAWOWE POJECIA 21

Cwiczenie 2.2.11 Przedstawic:a) problem ogrodnika (przykÃlad 2.1.1);b) zagadnienie diety (przykÃlad 2.1.3);

jako ZPL w postaci klasycznej i standardowej, i rozwiazac te zadania graficznie.

Ad a) Postac klasyczna tego problemu wyglada nastepujaco:

maksymalizowac x1 + 2x2

przy ograniczeniach x1 + x2 ≤ 1006x1 + 9x2 ≤ 720

x2 ≤ 60x1, x2 ≥ 0.

Stad otrzymujemy postac standardowa (ktora jest jednoczesnie postaciakanoniczna):

maksymalizowac x1 + 2x2

przy ograniczeniach

1 1 1 0 06 9 0 1 00 1 0 0 1

x1

x2

u1

u2

u3

=

10072060

x1, x2, u1, u2, u3 ≥ 0.

Ad b) Postac klasyczna tego problemu wyglada nastepujaco:

minimalizowac 5x1 + 7x2

przy ograniczeniach 2x1 + x2 ≥ 62x1 + 4x2 ≥ 12

7x2 ≥ 4x1, x2 ≥ 0

albomaksymalizowac −5x1 − 7x2

przy ograniczeniach −2x1 − x2 ≤ −6−2x1 − 4x2 ≤ −12

−7x2 ≤ −4x1, x2 ≥ 0.

22 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

PozostaÃla czesc zadania pozostawiamy do uzupeÃlnienia czytelnikowi.

2.3. PODSTAWY TEORETYCZNE 23

2.3 Podstawy teoretyczne

Motto:Nauke buduje sie z faktow, tak jak dom buduje sie z kamieni. Jednak

zbior faktow nie jest jeszcze nauka, tak jak stos kamieni nie jest jeszczedomem.

H. Poincare

W niniejszym paragrafie zestawiamy pojecia i twierdzenia dotyczacezbiorow i funkcji wypukÃlych, ktore beda nam potrzebne w dalszej czesci.Niektore z twierdzen przedstawiamy bez dowodow. Dowody te moznaznalezc w podrecznikach do analizy wypukÃlej, na przykÃlad w ksiazce [Hir-Lem].

2.3.1 Zbiory wypukÃle

Definicja 2.3.1 Zbior K ⊂ Rn nazywa sie wypukÃlym, jesli

∀x,y∈K∀λ∈[0,1] (1− λ)x + λy ∈ K

Otoczka wypukÃla zbioru S ⊂ Rn nazywamy najmniejszy zbior wypukÃlyzawierajacy S. Oznaczamy ja symbolem conv S. Kombinacja wypukÃla ele-mentow x1, ..., xm ∈ Rn nazywamy element x ∈ Rn postaci

x =m∑

i=1

λixi,

gdzie λi ≥ 0, i = 1, ..., m,∑m

i=1 λi = 1.

Czytelnikowi pozostawiamy dowod nastepujacego lematu.

Lemat 2.3.2 Podzbior C ⊂ Rn jest wypukÃly wtedy i tylko wtedy, gdy do Cnalezy dowolna kombinacja wypukÃla jego elementow.

PrzykÃlad 2.3.3 Podamy teraz wazne dla zastosowan przykÃlady zbiorowwypukÃlych:

24 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

a) Przekroj dowolnej rodziny zbiorow wypukÃlych jest zbiorem wypukÃlym.

b) Dowolna podprzestrzen afiniczna, w szczegolnosci dowolna hiperpÃlasz-czyzna {x ∈ Rn : a>x = b} jest zbiorem wypukÃlym.

c) Dowolna poÃlprzestrzen {x ∈ Rn : a>x ≤ b} jest zbiorem wypukÃlym.

d) Poniewaz przekroj dowolnej liczby zbiorow wypukÃlych jest zbioremwypukÃlym, wiec w szczegolnosci zbiory postaci

i∈I

{x ∈ Rn : a>i x = bi}

sa wypukÃle. Oczywiscie algebraicznie sa one zbiorami rozwiazan uk-Ãladu rownan liniowych a>i x = bi, i ∈ I.

e) Z tych samych powodow wypukÃle sa zbiory postaci⋂

i∈I

{x ∈ Rn : a>i x ≤ bi}.

W przypadku, gdy I jest zbiorem skonczonym, zbiory takie nazy-wamy zbiorami wielosciennymi . Szczegolnym przypadkiem zbioruwielosciennego jest sympleks standardowy , zdefiniowany nastepujaco:

∆m = {λ ∈ Rm : λi ≥ 0, i = 1, ..., m,m∑

i=1

λi = 1}.

Innym przykÃladem zbioru wielosciennego jest zbior rozwiazan dopusz-czalnych X zadania programowania liniowego. Zbiorem wielosciennymjest rowniez zbior rozwiazan optymalnych X∗ tego zadania poniewaz

X∗ = X ∩ {x ∈ Rn : c>x ≥ c>x∗},gdzie x∗ ∈ X∗. Tak wiec zbiory X i X∗ sa wypukÃle.

f) Dowolna kula B(y, r) = {x ∈ Rn : ‖x − y‖ ≤ r} jest zbiorem wy-pukÃlym.

2.3. PODSTAWY TEORETYCZNE 25

Lemat 2.3.4 Otoczka wypukÃla zbioru S ⊂ Rn jest postaci

conv S = {m∑

i=1

λixi : xi ∈ S, λ ∈ ∆m,m ∈ N} (2.5)

Dowod.”⊃” Na mocy Definicji 2.3.1 conv S jest zbiorem wypukÃlym. Skoro

conv S ⊃ S, wiec z Lematu 2.3.2 wynika, ze conv S zawiera rowniez wszys-tkie kombinacje wypukÃle elementow zbioru S.

”⊂” Nietrudno pokazac, ze zbior po prawej stronie rownosci (2.5) jestwypukÃly. Zawiera on S wiec zgodnie z Definicja 2.3.1 zawiera on rowniezconv S ¥

W przestrzeni Rn liczbe elementow wchodzacych do kombinacji wy-pukÃlych, o ktorych mowa w rownosci (2.5) mozna ograniczyc. Zachodzibowiem nastepujace twierdzenie.

Twierdzenie 2.3.5 (Caratheodory) Otoczka wypukÃla zbioru S ⊂ Rn

skÃlada sie ze wszystkich kombinacji wypukÃlych co najwyzej n+1 elementowzbioru S:

conv S = {m∑

i=1

λixi : xi ∈ S, λ ∈ ∆m,m ≤ n + 1}.

Dowod. Niech S ⊂ Rn i niech x ∈ conv S. Zgodnie z rownoscia(2.5) istnieje m ∈ N, elementy x1, ..., xm ∈ S i wektor λ ∈ ∆m takie,ze x =

∑mi=1 λixi. Wystarczy pokazac, ze m ≤ n + 1. Pokazemy, ze jesli

m > n+1, to liczbe niezerowych wspoÃlczynnikow w sumie∑m

i=1 λixi moznazmniejszyc. Niech x′i = (xi, 1) ∈ Rn×R. Poniewaz m > n+1, wiec wektoryx′i, i = 1, ...,m sa liniowo zalezne. Oznacza to, ze istnieja liczby α1, ..., αm

nie wszystkie rowne zero takie, ze∑m

i=1 αix′i = 0, czyli

∑mi=1 αixi = 0

i∑m

i=1 αi = 0. Tak wiec wsrod αi, i = 1, ..., m istnieja liczby dodatnie.Niech

ε0 =λi0

αi0

= min{λi

αi: αi > 0, i = 1, ..., m} (2.6)

26 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

i niechλi = λi − ε0αi, i = 1, ..., m.

Z rownosci (2.6) wynika ze λi ≥ 0 dla i = 1, ...,m i, ze λi0 = 0. Zatem

m∑

i=1

λixi =m∑

i=1

λixi − ε0

m∑

i=1

αixi = x

im∑

i=1

λi =m∑

i=1

λi − ε0

m∑

i=1

αi =m∑

i=1

λi = 1.

Poniewaz λi0 = 0, wiec widzimy, ze x mozna przedstawic jako kombinacjewypukÃla m− 1 elementow. ¥

2.3.2 Punkty ekstremalne

Definicja 2.3.6 Punkt x nalezacy do zbioru wypukÃlego K ⊂ Rn nazywasie punktem ekstremalnym tego zbioru, jesli nie jest srodkiem odcinka Ãlacza-cego dwa rozne punkty zbioru K:

x =12(x′ + x′′) i x′, x′′ ∈ K ⇒ x′ = x′′.

Zbior punktow ekstremalnych zbioru K oznaczamy symbolem extK. Wprzypadku, gdy K jest zbiorem wielosciennym, jego punkty ekstremalnenazywaja sie wierzchoÃlkami.

PrzykÃlad 2.3.7 Podamy postaci zbiorow punktow ekstremalnych dla wy-branych zbiorow wypukÃlych

a) Dla K = [a, b] ⊂ R, przy czym a ≤ b, extK = {a, b},

b) dla K = Rn+ = {x ∈ Rn : x ≥ 0}, extK = {0}

c) dla K = ∆m, extK = {ei : i = 1, ..., m},

2.3. PODSTAWY TEORETYCZNE 27

d) dla K = {x ∈ Rn : Ax = b}, extK = {A−1b} jesli ukÃlad rownan Ax =b posiada dokÃladnie jedno rozwiazanie i extK = ∅ w przeciwnymwypadku.

Twierdzenie 2.3.8 Niech X = {x ∈ Rn : Ax = b, x ≥ 0} bedzie zbioremrozwiazan dopuszczalnych zadania programowania liniowego w postaci stan-dardowej. Wowczas x ∈ X jest wierzchoÃlkiem zbioru X wtedy i tylko wtedy,gdy x jest bazowym rozwiazaniem dopuszczalnym.

Dowod.(⇒) Niech x bedzie wierzchoÃlkiem zbioru X. Zapiszmy (po ewentu-

alnym przenumerowaniu zmiennych) x = (x1, ..., xk, 0, ..., 0)>, gdzie xi > 0dla i = 1, ..., k. Oznaczmy K = {1, ..., k} i xK = (x1, ..., xk)>. Pokazemy,ze macierz AK = [ A1 ... Ak ] ma liniowo niezalezne kolumny (r(AK) =k). Przypuscmy, ze jest przeciwnie, tzn. AKαK = 0 dla pewnego nieze-rowego wektora αK = (α1, ..., αk)>. Niech α = (α1, ..., αk, 0, ..., 0)> ∈ Rn.Oczywiscie wektor α jest rowniez niezerowy. Niech ε > 0 bedzie liczba natyle maÃla, ze x′ = x+ εα ≥ 0 i x′′ = x − εα ≥ 0. Taka liczba istnieje,poniewaz xi > 0 dla i = 1, ..., k. Zauwazmy, ze x′ i x′′ sa rozwiazaniamidopuszczalnymi, gdyz

A(x± εα) = Ax± εAα = b± εAKαK = b.

Ale x = 12(x′ + x′′) i x′ 6= x′′, gdyz ε 6= 0. Zatem x nie jest wierz-

choÃlkiem zbioru X. Uzyskana sprzecznosc dowodzi, ze r(AK) = k, a wieck ≤ m, gdyz r(A) = m. DoÃlaczmy kolumny Ak+1, ..., Am (po ewentualnymich przenumerowaniu) do macierzy AK tak, aby powstaÃla macierz AB =[ A1 ... Am ] byÃla bazowa (nieosobliwa). Niech AN = [ Am+1 ... An ].Oznaczmy xB = (x1, ..., xk, 0, ..., 0︸ ︷︷ ︸

m−k

)>. Mamy wiec x = (x>B, 0)> i widac, ze

x jest dopuszczalnym rozwiazaniem bazowym, gdyz

b = Ax = [ AB AN ]x = ABxB

czyli xB = A−1B b oraz x ≥ 0. Ponadto, jesli k < m, to rozwiazanie to jest

zdegenerowane.

28 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

(⇐) Niech AB bedzie macierza bazowa i niech x = (x>B, 0)>, gdziexB = A−1

B b bedzie bazowym rozwiazaniem dopuszczalnym. Przypuscmy,ze x = 1

2(x′ + x′′) dla pewnych rozwiazan dopuszczalnych x′ = (x′>B , x′>N )>

i x′′ = (x′′>B , x′′>N )>. Mamy wiec

xB =12(x′B + x′′B)

oraz

0 =12(x′N + x′′N ).

W istocie x′N = x′′N = 0 (jesli suma nieujemnych wektorow jest wektoremzerowym, to wektory te sa wektorami zerowymi). Ponadto

b = Ax′ = [ AB AN ]x′ = ABx′B

czyli x′B = A−1B b. Podobnie, x′′B = A−1

B b. Tak wiec x′B = x′′B. Zatemx′ = x′′. Pokazalismy wiec, ze x jest wierzchoÃlkiem zbioru X. ¥

Uwaga 2.3.9 Powyzsze twierdzenie jest prawdziwe rowniez dla postaciklasycznej zadania programowania liniowego. W celu pokazania tej wer-sji twierdzenia nalezy najpierw sprowadzic zbior ograniczen

X = {x ∈ Rn : Ax ≤ b, x ≥ 0}

do postaci standardowej

X = {w ∈ Rn+m : Aw = b, w ≥ 0},

gdzie A = [ A I ], w = (x>, u>)>, dla ktorej to postaci twierdzeniezostaÃlo wyzej pokazane. Nastepnie nalezy zauwazyc, ze jesli punkt w =(x>, u>)> jest wierzchoÃlkiem zbioru X, to x jest wierzchoÃlkiem zbioru Xoraz jesli x jest wierzchoÃlkiem zbioru X i wektor u ∈ Rm jest taki, zeAx + u = b, to punkt w = (x>, u>)> jest wierzchoÃlkiem zbioru X (dowodytych faktow pozostawiamy czytelnikowi jako cwiczenie).

2.3. PODSTAWY TEORETYCZNE 29

2.3.3 Projekcja metryczna na zbior wypukÃly

Definicja 2.3.10 Niech C ⊂ Rn i niech x ∈ Rn. Punkt y = PC(x) ∈ Cnazywamy projekcja metryczna punktu x na zbior C jesli

∀z∈C ‖x− y‖ ≤ ‖x− z‖.

Wprawdzie projekcja metryczna zostaÃla zdefiniowana dla dowolnej nor-my, jednak beda nas interesowac wÃlasnosci tej projekcji dla normy in-dukowanej przez iloczyn skalarny. W dalszym ciagu tego ustepu zakÃladamywiec, ze ‖ · ‖ =

√〈·, ·〉 dla pewnego iloczynu skalarnego.

Twierdzenie 2.3.11 Niech C ⊂ Rn bedzie zbiorem niepustym, domknietymi wypukÃlym. Wowczas dla dowolnego x ∈ Rn istnieje dokÃladnie jedna jegoprojekcja metryczna na C.

Dowod.Twierdzenie pokazemy najpierw dla x = 0. Niech d = inf{‖y‖ : y ∈ C}

i niech yk ∈ C bedzie takie, ze ‖yk‖ → d.a) Pokazemy, ze yk jest ciagiem Cauchy’ego. Niech ε > 0 i niech k0 ∈ N

beda takie, ze ‖yk‖2 ≤ d2 + ε/4 dla k ≥ k0. Niech k, l ≥ k0. Oczywiscie12yk + 1

2yl ∈ C poniewaz C jest wypukÃly. Stad 12‖yk + yl‖ ≥ d. Korzystajac

z tozsamosci rownolegÃloboku otrzymujemy w konsekwencji:

‖yk − yl‖2 = 2‖yk‖2 + 2‖yl‖2 − ‖yk + yl‖2

≤ 2(d2 + ε/4) + 2(d2 + ε/4)− 4d2 = ε,

tzn. yk jest ciagiem Cauchy’ego.b) Z a) wynika, ze yk zbiega do pewnego y ∈ Rn, gdyz Rn jest przestrze-

nia zupeÃlna. Ponadto y ∈ C, poniewaz C jest domkniety. Stad i z ciagÃloscinormy wynika, ze ‖y‖ = d. Oznacza to, ze y = PC(0).

c) Pokazemy teraz, ze projekcja metryczna okreslona jest jednoznacznie.Niech y′ ∈ C i niech ‖y′‖ = d. Z wypukÃlosci C otrzymujemy 1

2y + 12y′ ∈ C.

Ponadtod ≤ ‖1

2y +

12y′‖ ≤ 1

2‖y‖+

12‖y′‖ = d,

30 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

a wiec ‖y + y′‖ = 2d. Korzystajac powtornie z tozsamosci rownolegÃlobokumamy:

‖y − y′‖2 = 2‖y‖2 + 2‖y′‖2 − ‖y + y′‖2 = 2d2 + 2d2 − 4d2 = 0,

czyli y = y′.Poniewaz PC(x) = x + PC−x(0), wiec twierdzenie jest prawdziwe dla

dowolnego x ∈ Rn. ¥

Uwaga 2.3.12 Istnienie projekcji metrycznej na zbior C ⊂ Rn moznapokazac prosciej korzystajac z ciagÃlosci normy i z twierdzenia Weierstrassa.Natomiast przeprowadzony powyzej dowod wskazuje, ze Twierdzenie 2.3.11jest prawdziwe rowniez dla dowolnej przestrzeni Hilberta.

Twierdzenie 2.3.13 Niech x ∈ Rn, C ⊂ Rn bedzie zbiorem niepustym,domknietym i wypukÃlym i niech y ∈ C. Wowczas nastepujace warunki sarownowazne

(i) y = PC(x),

(ii) 〈x− y, z − y〉 ≤ 0 dla dowolnego z ∈ C,

Dowod.(i)⇒(ii). Niech y = PC(x) i niech z ∈ C. Ponadto, niech

zλ = y + λ(z − y)

dla λ ∈ (0, 1). Oczywiscie zλ ∈ C, poniewaz C jest wypukÃly. Z (i) i zwÃlasnosci iloczynu skalarnego mamy wiec

‖x− y‖2 ≤ ‖x− zλ‖2 = ‖x− y − λ(z − y)‖2

= ‖x− y‖2 − 2λ〈x− y, z − y〉+ λ2‖z − y‖2,

czyli2λ〈x− y, z − y〉 ≤ λ2‖z − y‖2.

2.3. PODSTAWY TEORETYCZNE 31

Dzielac teraz obie strony przez λ > 0 i przyjmujac, ze λ ↓ 0, otrzymamy(ii).

(ii)⇒(i). Z wÃlasnosci iloczynu skalarnego oraz z (ii) mamy dla dowol-nego z ∈ C

‖z − x‖2 = ‖z − y‖2 + ‖y − x‖2 + 2〈z − y, y − x〉 ≥ ‖y − x‖2,

co na mocy definicji projekcji metrycznej daje (i). ¥

2.3.4 Twierdzenia o oddzielaniu i ich konsekwencje

Twierdzenie 2.3.14 (o ostrym oddzielaniu) Niech C ⊂ Rn bedzie zbio-rem niepustym, domknietym i wypukÃlym i niech x /∈ C. Wowczas istniejes ∈ Rn takie, ze

〈s, x〉 > sup{〈s, y〉 : y ∈ C}.

Dowod. Niech s = x− PC(x). Wowczas z Twierdzenia 2.3.13 wynikaprosto, ze dla kazdego y ∈ C

〈x− y, s〉 ≥ ‖s‖2,

czyli〈s, x〉 ≥ 〈s, y〉+ ‖s‖2

Zauwazmy, ze s 6= 0, bo C jest domkniety i x /∈ C. Zatem

〈s, x〉 ≥ sup{〈s, y〉 : y ∈ C}+ ‖s‖2 > sup{〈s, y〉 : y ∈ C}.

¥

Twierdzenie 2.3.15 (o sÃlabym oddzielaniu) Niech C ⊂ Rn bedzie zbio-rem niepustym i wypukÃlym i niech x /∈ C. Wowczas istnieje s ∈ Rn takie,ze

〈s, x〉 ≥ sup{〈s, y〉 : y ∈ C}.

32 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

Dowod. Jesli x /∈ clC, to teza wynika z twierdzenia o ostrym od-dzielaniu. Niech wiec x ∈ clC \C. Poniewaz ten ostatni zbior jest zawartyw brzegu zbioru C, wiec istnieje ciag xk → x, xk /∈ clC. Z twierdzeniao ostrym oddzielaniu wynika, ze istnieje ciag sk 6= 0 taki, ze dla kazdegoy ∈ C

〈sk, xk〉 > 〈sk, y〉lub inaczej

〈 sk

‖sk‖ , xk〉 > 〈 sk

‖sk‖ , y〉.

Ciag sk/‖sk‖ jest ograniczony, posiada on wiec podciag zbiezny do pewnegowektora unormowanego, powiedzmy do s. Przechodzac do granicy i korzys-tajac z ciagÃlosci iloczynu skalarnego otrzymamy

〈s, x〉 ≥ 〈s, y〉

dla kazdego y ∈ C, co jest rownowazne tezie twierdzenia. ¥

Definicja 2.3.16 Ograniczony zbior wieloscienny nazywa sie wieloscianem.

Twierdzenie 2.3.17 (Minkowski) Wieloscian K jest otoczka wypukÃlazbioru swoich punktow ekstremalnych:

K = conv extK

Dowod powyzszego twierdzenia, ktore w ogolniejszej postaci (gdzie Kjest zbiorem zwartym i wypukÃlym w lokalnie wypukÃlej przestrzeni liniowo-topologicznej) nosi nazwe twierdzenia Kreina–Milmana, mozna znalezc wwiekszosci podrecznikow do analizy funkcjonalnej, np. w podreczniku [Mus].Dowod indukcyjny twierdzenia Minkowskiego wzgledem wymiaru przestrze-ni oparty o twierdzenie o oddzielaniu mozna znalezc rowniez w podrecznikachdo analizy wypukÃlej, np. w podreczniku [Hir-Lem, Twierdzenie 2.3.4].

Uwaga 2.3.18 Prawdziwe jest rowniez twierdzenie w pewnym sensie od-wrotne do twierdzenia Minkowskiego: otoczka wypukÃla zbioru skonczonegojest wieloscianem.

2.3. PODSTAWY TEORETYCZNE 33

Twierdzenie 2.3.19 Jesli zbior rozwiazan dopuszczalnych X zadania pro-gramowania liniowego (w postaci klasycznej lub standardowej) jest niepusty,to posiada on przynajmniej jeden wierzchoÃlek.

Dowod. Pokazemy najpierw, ze funkcja f(x) = e>x osiaga minimumna zbiorze X, gdzie e = (1, ..., 1)> Niech z ∈ X. Wowczas oczywiscie

inf{e>x : x ∈ X} = inf{e>x : e>x ≤ e>z, x ∈ X}.Poniewaz zbior X = {x ∈ Rn : e>x ≤ e>z, x ∈ X} jest zwarty jakopodzbior domkniety zbioru zwartego {x ∈ Rn

+ : e>x ≤ e>z} i funkcjaf jest ciagÃla, wiec osiaga ona minimum na X, rowne powiedzmy α. Zpostaci zbioru X wynika, ze f osiaga rowniez minimum rowne α na zbiorzeX. Zbior Xα = {x ∈ X : e>x = α} jest wieloscianem, wiec na mocytwierdzenia Minkowskiego posiada punkt ekstremalny x. Pokazemy ze jeston rowniez punktem ekstremalnym zbioru X. Niech x = 1

2x′ + 12x′′ dla

x′, x′′ ∈ X. Mamy

α = e>x =12e>x′ +

12e>x′′ ≥ α,

wiec e>x′ = e>x′′ = α. Zatem x′, x′′ ∈ Xα. W konsekwencji x′ = x′′, bo xjest punktem ekstremalnym zbioru Xα. ¥

Uwaga 2.3.20 Liczba wierzchoÃlkow zbioru rozwiazan dopuszczalnych Xzadania programowania liniowego wynosi co najwyzej:

a)(

nm

)dla postaci standardowej,

b)(n+m

m

)dla postaci klasycznej.

2.3.5 Funkcje wypukÃle

Definicja 2.3.21 Funkcja f : Rn −→ R nazywa sie wypukÃla, jesli

∀x,y∈Rn ∀λ∈[0,1] f((1− λ)x + λy) ≤ (1− λ)f(x) + λf(y).

Funkcja f : Rn −→ R nazywa sie wklesÃla, jesli −f jest funkcja wypukÃla lubinaczej

∀x,y∈Rn ∀λ∈[0,1] f((1− λ)x + λy) ≥ (1− λ)f(x) + λf(y).

34 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

Lemat 2.3.22 Funkcja wypukÃla f : Rn −→ R jest lokalnie ograniczona zgory, tzn. dla dowolnego x ∈ Rn istnieje r > 0 takie, ze f jest ograniczonana kuli B(x, r)

Dowod. Niech x0 = x, xi = x + ei, i = 1, ..., n i niech

∆ = conv{xi, i = 0, 1, ..., n}.Czytelnikowi pozostawiamy dowod faktu, ze ∆ ma niepuste wnetrze (wystar-czy pokazac na przykÃlad, ze B(x + 1

2ne, 12n) ⊂ ∆, gdzie e = (1, ..., 1)>).

Niech c bedzie maksymalna wartoscia funkcji f na zbiorze wierzchoÃlkowx0, x1, ..., xn zbioru ∆. Wowczas dla r > 0 takiego, ze B(x, r) ⊂ ∆ i dladowolnego y ∈ B(x, r) mamy y =

∑ni=0 λixi,

∑ni=0 λi = 1., λi ≥ 0 i

f(y) = f(n∑

i=0

λixi) ≤n∑

i=0

λif(xi) ≤ cn∑

i=0

λi = c

¥

Twierdzenie 2.3.23 Funkcja wypukÃla f : Rn −→ R jest ciagÃla.

Dowod. Niech x ∈ Rn i niech h : Rn −→ R, h(z) = f(x + z) − f(x).Oczywiscie h jest wypukÃla i h(0) = 0. Na mocy Lematu 2.3.22 istnieja wiecr > 0 i c ∈ R takie, ze h(z) ≤ c dla z ∈ B(0, r). Niech z ∈ B(0, r), z 6= 0 iniech y = r

‖z‖z. Wowczas oczywiscie ‖y‖ = r i z = λy dla λ = ‖z‖r . Mamy

wiec

h(z) = h(λy) = h(λy + (1− λ)0) ≤ λh(y) + (1− λ)h(0) ≤ ‖z‖r

c.

Z drugiej strony

0 = h(0) = h(12z +

12(−z)) ≤ 1

2h(z) +

12h(−z),

czyli

h(z) ≥ −h(−z) ≥ −‖z‖r

c,

2.3. PODSTAWY TEORETYCZNE 35

bo −z ∈ B(0, r). Stad | h(z) |≤ ‖z‖r c i dla y = x + z mamy

| f(y)− f(x) |=| h(z) |≤ c

r‖z‖ =

c

r‖y − x‖,

a wiec f jest ciagÃla w x. ¥

Twierdzenie 2.3.24 Jesli f : Rn −→ R jest funkcja wklesÃla i K jestzbiorem zwartym i wypukÃlym, to istnieje punkt ekstremalny zbioru K, wktorym f osiaga minimum na tym zbiorze.

Dowod. Funkcja wklesÃla f jest ciagÃla, a wiec osiaga minimum nazbiorze zwartym K na mocy twierdzenia Weierstrassa. Niech wiec x∗ ∈ Kbedzie takie, ze f(x) ≥ f(x∗) = f∗ dla kazdego x ∈ K. Niech w1, ..., wp ∈K beda punktami ekstremalnymi zbioru K takimi, ze x∗ =

∑pi=1 λiwi,

gdzie λ = (λ1, ..., λp)> ∈ ∆p. Punkty takie istnieja na mocy twierdzeniaMinkowskiego. Przypuscmy, ze f(wi) > f∗ dla i = 1, ..., p. Wowczas namocy wklesÃlosci funkcji f mamy

f∗ = f(x∗) = f(p∑

i=1

λiwi) ≥p∑

i=1

λif(wi) >

p∑

i=1

λif∗ = f∗.

Otrzymana sprzecznosc dowodzi prawdziwosci twierdzenia. ¥

Wniosek 2.3.25 Funkcja liniowa okreslona na wieloscianie osiaga swojekresy w wierzchoÃlkach tego wieloscianu.

2.3.6 Stozki

Definicja 2.3.26 Zbior C ⊂ Rn nazywa sie stozkiem, jesli10 x, y ∈ C ⇒ x + y ∈ C,

20 x ∈ C, α ≥ 0 ⇒ αx ∈ C.

Uwaga 2.3.27 Stozek jest zbiorem wypukÃlym

36 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

Definicja 2.3.28 Niech C ⊂ Rn bedzie stozkiem. Podzbior

C∗ = {y ∈ Rn : ∀x∈C x>y ≤ 0}

nazywa sie stozkiem sprzezonym do C

PrzykÃlad 2.3.29 Nastepujace zbiory sa stozkami:

a) dowolna podprzestrzen liniowa, w szczegolnosci {x ∈ Rn : Ax = 0};

b) {x ∈ Rn : Ax = 0, x ≥ 0};

c) {x ∈ Rn : Ax ≤ 0};

d) stozek sprzezony C∗ do danego stozka C;

e) coneS = {x ∈ Rn : x =∑p

i=1 αisi, αi ≥ 0, si ∈ S, i = 1, ..., p, p ∈ N}(zbior ten nazywa sie stozkiem generowanym przez podzbior S ⊂ Rn);w szczegolnosci, jesli za S przyjac kolumny macierzy A, to otrzymanystozek ma postac

C = {y ∈ Rn : y = Aα, α ≥ 0}.

Wszystkie opisane stozki sa domkniete.

Uwaga 2.3.30 Jesli przyjac w twierdzeniach o oddzielaniu, ze zbior Cjest stozkiem i x /∈ C, to wowczas istnieje s ∈ Rn taki, ze s>z ≤ 0 dlakazdego z ∈ C i s>x > 0 badz s>x ≥ 0 w zaleznosci od tego, czy speÃlnionesa pozostaÃle zaÃlozenia twierdzenia o ostrym badz sÃlabym oddzielaniu. Dladowodu twierdzenia o mocnym oddzielaniu wystarczy przyjac s = x−PC(x)i skorzystac z tego ze 0 ∈ C i αPC(x) ∈ C dla α ≥ 0 oraz z charakteryza-cji projekcji metrycznej danej w Twierdzeniu 2.3.13. SzczegoÃly dowodupozostawiamy czytelnikowi jako cwiczenie.

PrzykÃlad 2.3.31

2.3. PODSTAWY TEORETYCZNE 37

a) Stozkiem sprzezonym do stozka

K = {x ∈ Rn : Ax ≤ 0}jest stozek

K ′ = {y ∈ Rn : y = A>α, α ≥ 0},Istotnie. Niech y ∈ K ′, czyli y = A>α dla pewnego α ≥ 0. Wowczas

dla dowolnego x ∈ K mamy

y>x = (A>α)>x = α>Ax ≤ 0.

W rezultacie K ′ ⊂ K∗. Pokazemy teraz, ze K∗ ⊂ K ′. Przypuscmy, zejest odwrotnie, tzn., ze istnieje y ∈ K∗ taki, ze y /∈ K ′. Poniewaz K ′ jeststozkiem domknietym i wypukÃlym, wiec na mocy twierdzenia o oddzielaniuistnieje u ∈ Rn taki, ze

u>z ≤ 0 dla kazdego z ∈ K ′ i u>y > 0

(patrz Uwaga 2.3.30). Stad, dla kazdego α ≥ 0 mamy

(Au)>α = u>A>α ≤ 0

To z kolei oznacza, ze Au ≤ 0 (gdyby byÃlo inaczej, to (Au)>α > 0 dlaodpowiednio dobranego α ≥ 0) lub, co na jedno wychodzi u ∈ K. Mamywiec u>y ≤ 0, bo y ∈ K∗. Uzyskana sprzecznosc dowodzi, ze K∗ ⊂ K ′.

b) Stozkiem sprzezonym do stozka

K ′ = {y ∈ Rn : y = A>α, α ≥ 0}jest stozek

K = {x ∈ Rn : Ax ≤ 0}.Istotnie. Inkluzje K ⊂ (K ′)∗ dowodzi sie tak samo jak w przykÃladzie

a). Niech teraz x ∈ (K ′)∗. Wowczas dla dowolnego α ≥ 0

(Ax)>α = x>(A>α) ≤ 0.

Stad juz prosto wynika, ze Ax ≤ 0, a wiec x ∈ K.

38 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

c) Stozkiem sprzezonym do stozka

{x ∈ Rn : Ax ≤ 0, x ≥ 0}

jest stozek{y ∈ Rn : y ≤ A>α, α ≥ 0}.

d) Stozkiem sprzezonym do stozka

{x ∈ Rn : Ax = 0, x ≥ 0}

jest stozek{y ∈ Rn : y ≤ A>α, α ∈ Rm}.

Dowody faktow c) i d) pozostawiamy czytelnikowi.

2.3.7 Lemat Farkasa i jego konsekwencje

Konsekwencja wÃlasnosci przedstawionej w PrzykÃladzie 2.3.31a), a wÃlasciwiejej rownowazna postacia jest nastepujace, bardzo wazne twierdzenie, zktorego bedziemy korzystac w dalszej czesci.

Twierdzenie 2.3.32 (Lemat Farkasa) Niech c ∈ Rn i niech A bedziemacierza typu m× n. Wowczas zbior

S = {x ∈ Rn : c>x < 0, Ax ≤ 0}

jest pusty wtedy i tylko wtedy, gdy istnieje wektor y ∈ Rm+ taki, ze

c + A>y = 0.

2.3. PODSTAWY TEORETYCZNE 39

Dowod. Zauwazmy, ze S = ∅ wtedy i tylko wtedy gdy

{x ∈ Rn : Ax ≤ 0} ⊂ {x ∈ Rn : c>x ≥ 0}.Oznaczajac K = {x ∈ Rn : Ax ≤ 0} inkluzje te mozemy natomiast zapisacnastepujaco:

∀x∈K (−c)>x ≤ 0,

co oznacza, ze −c ∈ K∗. Zgodnie z wÃlasnoscia przedstawiona w przykÃladzie2.3.31a) fakt ten jest rownowazny temu, ze −c = A>y dla pewnego wektoray ≥ 0. ¥

Uwaga 2.3.33 Lemat Farkasa mozna znalezc w literaturze w kilku rowno-waznych postaciach. Podamy jeszcze jedna z nich pozostawiajac jej dowodczytelnikowi.

Lemat 2.3.34 (Farkas) Niech c ∈ Rn i niech A bedzie macierza typum×n. Wowczas dokÃladnie jedno z nastepujacych stwierdzen jest prawdziwe:albo

(a) ukÃlad rownan A>y = c posiada nieujemne rozwiazanie y ∈ Rm

albo

(b) ukÃlad nierownosci Ax ≥ 0, c>x < 0 posiada rozwiazanie x ∈ Rn.

Niech X = {x ∈ Rn : Ax = b, x ≥ 0} 6= ∅ bedzie zbiorem rozwiazandopuszczalnych ZPL w postaci standardowej. Oznaczmy W = extX ={w1, ...wp}, K = conv W oraz

C = {x ∈ Rn : Ax = 0, x ≥ 0}.

Twierdzenie 2.3.35 Zachodzi rownosc

X = K + C,

tzn. zbior rozwiazan dopuszczalnych X jest suma kompleksowa wieloscianuK (bedacego otoczka wypukÃla wierzchoÃlkow zbioru X) i stozka C.

40 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

Dowod.”⊃” Niech y ∈ K i z ∈ C. Mamy wowczas Ay = b, Az = 0 oraz

y, z ≥ 0. Zatem dla x = y + z zachodza rownosci

Ax = A(y + z) = Ay + Az = b

oraz nierownosc x ≥ 0. Oznacza to , ze x ∈ X.”⊂” Niech x ∈ X. Pokazemy, ze x = y + z dla pewnego y ∈ K i

dla pewnego z ∈ C. Jesli x ∈ K, to wystarczy przyjac z = 0. Niechwiec x /∈ K. Niech S = cone{x − y : y ∈ K}. Pokazemy najpierw, zeS ∩C 6= {0}. Przypuscmy, ze jest przeciwnie, tzn. S ∩C = {0}. Wowczas,na mocy twierdzenia o oddzielaniu, istnieje w ∈ Rn taki, ze

∀s∈S∀z∈C,z 6=0 w>s ≥ 0 i w>z < 0.

Stadw>x ≥ w>y

dla kazdego y ∈ K, a poniewaz funkcja liniowa okreslona na wieloscianieosiaga maksimum w punktach ekstremalnych tego wieloscianu (Wniosek2.3.25), wiec

w>x ≥ w>y∗ (2.7)

dla pewnego wierzchoÃlka y∗ wieloscianu K. Na mocy twierdzenia 2.3.8, y∗

jest rozwiazaniem bazowym ukÃladu Ax = b, a wiec istnieje macierz bazowa

AB taka, ze y∗ =[

A−1B b0

]. Wynika stad, ze

w>y∗ = w>BA−1B b, (2.8)

gdzie w =[

wB

wN

]. Postepujac podobnie jak przy wyprowadzaniu rownosci

(2.3) i (2.4) oraz korzystajac z (2.7) i (2.8) otrzymamy

w>x = w>BA−1B b + (w>N − w>BA−1

B AN )xN ≥ w>BA−1B b,

2.3. PODSTAWY TEORETYCZNE 41

gdzie x =[

xB

xN

]jest rozwiazaniem dopuszczalnym. Zatem

(w>N − w>BA−1B AN )xN ≥ 0

dla dowolnego xN ≥ 0. W istocie xN > 0, poniewaz zaÃlozylismy, ze x /∈ K.

Z drugiej strony, dla z =[

zB

zN

]∈ C, z 6= 0, mamy zB = −A−1

B ANzN ,

gdzie zN ≥ 0, oraz

0 > w>z = w>BzB + w>NzN = (w>N − w>BA−1B AN )zN .

Uzyskalismy sprzecznosc, zatem S∩C 6= {0}. Oznacza to, ze istnieje y ∈ Ktakie, ze x−y = z ∈ C, z 6= 0. Otrzymalismy wiec, ze x = y+z dla pewnegoy ∈ K i pewnego z ∈ C. ¥

Uwaga 2.3.36 Podobne twierdzenie zachodzi dla zbioru rozwiazan dopusz-czalnych ZPL w postaci klasycznej. W tym przypadku zbior C ma postac

C = {x ∈ Rn : Ax ≤ 0, x ≥ 0}.

W dowodzie tej wersji nalezy skorzystac z uwagi 2.3.9.

Definicja 2.3.37 Niesprzeczne zadanie programowania liniowego nazywasie ograniczonym, jesli funkcja celu c>x jest ograniczona na zbiorze rozwia-zan dopuszczalnych X z gory – w przypadku maksymalizacji, badz z doÃlu– w przypadku minimalizacji.

Twierdzenie 2.3.38 Funkcja liniowa z = c>x jest ograniczona z gory nazbiorze

X = {x ∈ Rn : Ax = b, x ≥ 0}wtedy i tylko wtedy gdy istnieje wektor α ∈ Rm taki, ze c ≤ A>α. Cowiecej, jesli zachodzi ktorykolwiek z tych warunkow, to funkcja ta osiagamaksimum na X. Maksimum to jest osiagniete w jednym z wierzchoÃlkowzbioru X.

42 ROZDZIAÃL 2. PODSTAWY PROGRAMOWANIA LINIOWEGO

Dowod. Niech K i C beda okreslone tak, jak w twierdzeniu 2.3.35.Niech W = extX. Oczywiscie zbior W jest niepusty na mocy wniosku2.3.19. Zachodzi nastepujaca rownosc

supx∈X

c>x = maxy∈K

c>y + supz∈C

c>z

Niech c ≤ A>α, gdzie α ∈ Rm. Wtedy c>z ≤ α>Az = 0 dla z ∈ C. Wkonsekwencji,

supx∈X

c>x = maxy∈K

c>y = maxw∈W

c>w.

ZaÃlozmy teraz, ze supx∈X c>x < +∞. Wowczas musi byc c>z ≤ 0, dlaz ∈ C. W przeciwnym bowiem przypadku c>(tz) → +∞ dla t → +∞,przy czym tz ∈ C, bo C jest stozkiem. Otrzymalismy wiec, ze

c ∈ C∗ = {z ∈ Rn : z ≤ A>α, α ∈ Rm}(por. przykÃlad 2.3.31d). ¥

Uwaga 2.3.39 Podobne twierdzenie zachodzi dla postaci klasycznej ZPL.W tym przypadku warunkiem koniecznym i wystarczajacym ograniczonoscifunkcji z = c>x na zbiorze

X = {x ∈ Rn : Ax ≤ b}jest zajscie rownosci c = A>α, dla pewnego α ≥ 0. Dowod tego faktupozostawiamy czytelnikowi.

Uwaga 2.3.40 Z ostatniego twierdzenia wynika, ze przy poszukiwaniu roz-wiazania optymalnego zadania programowania liniowego (o ile rozwiazanietakie istnieje) wystarczy ograniczyc sie do rozwiazan bazowych (wierz-choÃlkow zbioru rozwiazan dopuszczalnych X). Co wiecej, okazuje sie, zenie musimy badac wszystkich rozwiazan bazowych. W nastepnym ustepiepoznamy metode rozwiazywania ZPL polegajaca na wedrowce z danegowierzchoÃlka zbioru X wzdÃluz odpowiedniej krawedzi do sasiedniego wierz-choÃlka tak, aby funkcja celu rosÃla. Procedure te powtarza sie tak dÃlugo, azzostanie osiagniety wierzchoÃlek, w ktorym funkcja celu osiaga swoje mak-simum.

ROZDZIAÃL 3

Metoda sympleksowa

Motto:Matematyka nie moze wypeÃlnic zycia, ale jej nieznajomosc juz niejed-

nemu je wypeÃlniÃla.H. Steinhaus

3.1 Tablica sympleksowa

Rozwazmy ZPL w postaci klasycznej

maksymalizowac z = c>xprzy ograniczeniach Ax ≤ b

x ≥ 0.(3.1)

Po wprowadzeniu zmiennych uzupeÃlniajacych otrzymamy rownowazny muproblem w postaci kanonicznej:

maksymalizowac z = c>xprzy ograniczeniach Ax + Iu = b

x, u ≥ 0.(3.2)

Z kolei ten ostatni problem jest rownowazny nastepujacemu: Wsrod wszys-tkich rozwiazan ukÃladu m+1 rownan z n+m+1 niewiadomymi x1, ..., xn,

43

44 ROZDZIAÃL 3. METODA SYMPLEKSOWA

u1, ..., um, z :z +0>u −c>x = 00z +Iu +Ax = b

(3.3)

przy czym x1, ..., xn, u1, ..., um ≥ 0, znalezc rozwiazanie dla ktorego zmiennaz przyjmuje najwieksza wartosc.

Ostatni ukÃlad rownan mozna przedstawic w postaci tzw. tablicy sym-pleksowej:

a) w postaci dÃlugiej

z u1 ... um x1 ... xn

1 0 ... 0 −c1 ... −cn = 00 1 ... 0 a11 ... a1n = b1

... ... ... ... ... ... ... ...0 0 1 am1 amn = bm

(3.4)

lubb) w postaci krotkiej

1 −x1 ... −xn

0 −c1 ... −cn = z

b1 a11 ... a1n = u1

... ... ... ... ...bm am1 amn = um

. (3.5)

Ostatnia tablica odpowiada rownowaznej postaci ukÃladu (3.3):

c>x = zb −Ax = u.

PrzykÃlad 3.1.1 Nastepujace ZPL

maksymalizowac x1 + 2x2

przy ograniczeniach x1 + x2 ≤ 1006x1 + 9x2 ≤ 720

x2 ≤ 60x1, x2 ≥ 0

3.1. TABLICA SYMPLEKSOWA 45

przedstawimy w postaci tablicy sympleksowej. Zadanie to ma nastepujacapostac kanoniczna:

maksymalizowac z = x1 +2x2

przy ograniczeniach x1 +x2 +u1 = 1006x1 +9x2 +u2 = 720

x2 +u3 = 60x1, x2, u1, u2, u3 ≥ 0.

Odpowiadajace jej tablice sympleksowe wygladaja nastepujaco:a) postac dÃluga

z u1 u2 u3 x1 x2

1 0 0 0 −1 −2 = 00 1 0 0 1 1 = 1000 0 1 0 6 9 = 7200 0 0 1 0 1 = 60

,

b) postac krotka

1 −x1 −x2

0 −1 −2 = z

100 1 1 = u1

720 6 9 = u2

60 0 1 = u3

.

Rozwazmy teraz ZPL w postaci standardowej (przypominamy o zaÃlozeniur(A) = m < n)

maksymalizowac z = c>xprzy ograniczeniach Ax = b

x ≥ 0.

Zadanie to mozemy sprowadzic do postaci kanonicznej wyznaczajac zukÃladu rownan Ax = b zmienne bazowe xB. Mozna to zrobic stosujac na

46 ROZDZIAÃL 3. METODA SYMPLEKSOWA

przykÃlad metode eliminacji Gaussa. Po przeksztaÃlceniach otrzymamy (wponizszym zapisie przyjmujemy dla uproszczenia, ze xB = (x1, ..., xm)>

oraz xN = (xm+1, ..., xn)>):

maksymalizowac z = c>NxN + d

przy ograniczeniach IxB + AxN = bxB, xN ≥ 0,

przy czymA =

[AB AN

],

c =[

cB

cN

],

A = A−1B AN ,

c>N = c>N − c>BA−1B AN ,

b = A−1B b

id = c>B b.

Ostatni problem jest rownowazny nastepujacemu: Wsrod wszystkich rozwia-zan ukÃladu m + 1 rownan z n + 1 niewiadomymi x1, ..., xn, z :

z +0xB −c>NxN = d

0z +IxB +AxN = b,(3.6)

przy czym xB, xN ≥ 0, znalezc rozwiazanie, dla ktorego zmienna z przyj-muje najwieksza wartosc. Odpowiadajace temu ukÃladowi rownan tablicesympleksowe maja:

a) postac dÃluga

z x1 ... xm xm+1 ... xn

1 0 ... 0 −cm+1 ... −cn = d

0 1 ... 0 a1,m+1 ... a1n = b1

... ... ... ... ... ... ... ...

0 0 1 am,m+1 amn = bm

,

3.1. TABLICA SYMPLEKSOWA 47

b) postac krotka

1 −xm+1 ... −xn

d −cm+1 ... −cn = z

b1 a1,m+1 ... a1n = x1

... ... ... ... ...

bm am,m+1 ... amn = xm

.

Uwaga 3.1.2 StaÃla d nie ma wpÃlywu na rozwiazanie ZPL. Jesli wziac d =0, to zbior rozwiazan optymalnych nie zmieni sie, natomiast optymalnawartosc funkcji celu zmniejszy sie o d. Widzimy wiec, ze otrzymana wyzejpostac (3.6) jest w istocie postacia kanoniczna ZPL.

PrzykÃlad 3.1.3 Przedstawimy w postaci tablicy sympleksowej nastepujaceZPL

maksymalizowac z = x1 + 2x2 + 3x3

przy ograniczeniach x1 + 2x2 + x3 = 42x1 + x2 + 5x3 = 5

x1, x2, x3 ≥ 0.

Po zastosowaniu do ograniczen metody eliminacji Gaussa otrzymamy naste-pujaca postac ZPL:

maksymalizowac z = x1 +2x2 3x3

przy ograniczeniach x1 +3x3 = 2x2 −x3 = 1

x1, x2, x3 ≥ 0

Jesli teraz wstawimy x1 = −3x3+2 i x2 = x3+1 do funkcji celu, otrzymamynastepujaca postac kanoniczna:

maksymalizowac z = 2x3 +4przy ograniczeniach x1 +3x3 = 2

x2 −x3 = 1x1, x2, x3 ≥ 0.

48 ROZDZIAÃL 3. METODA SYMPLEKSOWA

(xB = (x1, x2)>, xN = x3, A =[

3−1

], b =

[21

], cN = 2, d = 4) i tablice

sympleksowe maja postaci:a) dÃluga

z x1 x2 x3

1 0 0 −2 = 40 1 0 3 = 20 0 1 −1 = 1

,

b) krotka

1 −x3

4 −2 = z

2 3 = x1

1 −1 = x2

.

W dalszej czesci bedziemy rozwazac ZPL w postaci kanonicznej i zwiazanaz nia postac krotka tablicy sympleksowej (3.5) (zgodnie z uwaga 3.1.2,ZPL w postaci standardowej daje sie sprowadzic do postaci kanonicznej izwiazanej z nia krotkiej formy tablicy sympleksowej (3.5)). Jak wczesniejpowiedzielismy, postac te mozna traktowac jako ukÃlad m + 1 rownan z n +m + 1 niewiadomymi. Metoda sympleksowa startuje z tablica (3.5), czyli zukÃladu rownan, w ktorym zmienne u1, u2, ..., um (bazowe) i z przedstawionesa w zaleznosci od pozostaÃlych zmiennych x1, x2, ..., xn (niebazowych). TenukÃlad rownan mozna przedstawic takze w sposob rownowazny wyznaczajacz niego inne m zmiennych bazowych (oznaczmy je s1, ..., sm) i z w zaleznosciod pozostaÃlych n zmiennych niebazowych (oznaczmy je r1, ..., rn). To rownowazneprzedstawienie zapiszemy przy pomocy nastepujacej tablicy sympleksowej

1 −r1 ... −rn

α00 α01 ... α0n = z

α10 α11 ... α1n = s1

... ... ... ... ...αm0 αm1 ... αmn = sm

. (3.7)

3.1. TABLICA SYMPLEKSOWA 49

Tablica ta nazywa sie tablica sympleksowa. W sumie istnieje co najwyzej(n+m

m

)mozliwosci przedstawien m zmiennych bazowych (i dodatkowo z) w

zaleznosci od pozostaÃlych n zmiennych (co najwyzej, poniewaz nie kazdemuwyborowi m zmiennych xB odpowiada nieosobliwa podmacierz AB). Kazdatablica sympleksowa przedstawia rozwiazanie bazowe ukÃladu rownan (3.3)(zmienne niebazowe rownaja sie zeru). To rozwiazanie bazowe mozna od-czytac w zerowej kolumnie tablicy sympleksowej. Jesli rozwiazanie to jestdopuszczalne (αi0 ≥ 0, i = 1, ..., m), to odpowiada mu wierzchoÃlek zbioru Xrozwiazan dopuszczalnych. (Uwaga: jednemu wierzchoÃlkowi moze odpowia-dac wiecej tablic sympleksowych – jest to jednak mozliwe wyÃlacznie w przy-padku rozwiazan zdegenerowanych; przypadek ten omowimy dokÃladniej wjednym z kolejnych punktow.). Wsrod wszystkich wierzchoÃlkow (bazowychrozwiazan dopuszczalnych) znajduje sie rozwiazanie optymalne, o ile zbiorX∗ wszystkich rozwiazan optymalnych jest niepusty (patrz: twierdzenie2.3.38 i uwaga 2.3.40). W ogolnym przypadku nie ma jednak potrzebyprzeszukiwania wszystkich wierzchoÃlkow (bazowych rozwiazan dopuszczal-nych) w celu znalezienia rozwiazania optymalnego. Metoda sympleksowa(zamiennie bedziemy uzywac nazwy algorytm sympleksowy) przeszukujewierzchoÃlki w sposob systematyczny.

50 ROZDZIAÃL 3. METODA SYMPLEKSOWA

3.2 Opis metody sympleksowej

W metodzie sympleksowej przeprowadzane sa nastepujace czynnosci:

a) sprowadzenie zadania do tablicy sympleksowej (3.5) – odpowiada onapoczatkowi ukÃladu wspoÃlrzednych,

b) znalezienie dopuszczalnego rozwiazania bazowego – wierzchoÃlka zbioruX (jest to tzw. I faza metody sympleksowej),

c) wedrowanie od wierzchoÃlka do wierzchoÃlka zbioru X po krawedziachwzdÃluz ktorych funkcja celu rosnie (a przynajmniej nie maleje), takdÃlugo, az osiagniety zostanie wierzchoÃlek, w ktorym funkcja celu o-siaga maksimum na X (jest to tzw. II faza metody sympleksowej).

Czynnosci te zostana opisane w nastepnych punktach.

Uwaga 3.2.1 Przedstawimy teraz, jakie podstawowe informacje moznaodczytac z tablicy sympleksowej.

a) Rozwiazanie bazowe mozna odczytac w zerowej kolumnie tablicy sym-pleksowej (3.7) (wektor (α10, ..., αm0)>). Pierwszy element α00 tejkolumny zawiera wartosc funkcji celu, ktora odpowiada temu rozwiazaniubazowemu. Rozwiazanie to jest wiec dopuszczalne dokÃladnie wtedy,gdy wektor (α10, ...αm0)> jest nieujemny.

b) Dopuszczalne, niezdegenerowane rozwiazanie bazowe przedstawionetablica sympleksowa (3.7) jest optymalne wtedy i tylko wtedy gdywszystkie elementy zerowego wiersza, poza zerowym elementem tejtablicy sa nieujemne, czyli α01, ..., α0n ≥ 0. W tym przypadku bowiemzwiekszenie jakiejkolwiek zmiennej niebazowej nie spowoduje zwiekszeniawartosci funkcji celu. Dla takiej tablicy optymalna wartosc funkcjicelu znajduje sie w zerowym wierszu i zerowej kolumnie tablicy (ele-ment α00).

3.2. OPIS METODY SYMPLEKSOWEJ 51

c) Moze sie zdarzyc, ze tablica sympleksowa (3.7) przedstawia rozwiaza-nie optymalne, natomiast niektore elementy α0j , j = 1, ..., n, znaj-dujace sie w zerowym wierszu tej tablicy sa ujemne. Moze to jednakmiec miejsce wyÃlacznie w przypadku degeneracji. Sytuacja ta bedzieomowiona pozniej.

3.2.1 Wymiana zmiennej bazowej (piwotyzacja)

ZaÃlozmy, ze w ukÃladzie rownan

α00 −α01r1 −... −α0jrj −... −α0nrn = zα10 −α11r1 −... −α1jrj −... −α1nrn = s1

... ... ... ... ... ... ...αi0 −αi1r1 −... −αijrj −... −αinrn = si

... ... ... ... ... ... ...αm0 −αm1r1 −... −αmjrj −... −αmnrn = sm

z niewiadomymi s1, .., sm (zmienne bazowe), r1, ..., rn (zmienne niebazowe)i z, wspoÃlczynnik αij 6= 0. Wowczas mozemy wykonac wymiane zmiennejbazowej si ze zmienna niebazowa rj . W ten sposob dostaniemy nowy ukÃladzmiennych bazowych

s1, ..., si−1, rj , si+1, ..., sm,

ktory mozemy wyrazic za pomoca pozostaÃlych niewiadomych

r1, ..., rj−1,si, rj+1, ..., rn

(nowych zmiennych niebazowych). W tym przypadku otrzymamy

αi0

αij− αi1

αijr1 − ...− αi,j−1

αijrj−1 − 1

αijsi − αi,j+1

αijrj+1 − ....− αin

αijrn = rj

i po wstawieniu do pozostaÃlych rownan otrzymamy

(αk0 −αi0αkj

αij)− (αk1 −

αi1αkj

αij)r1 − ...− (αk,j−1 −

αi,j−1αkj

αij)rj−1−

52 ROZDZIAÃL 3. METODA SYMPLEKSOWA

−αkj

αijsi − (αk,j+1 −

αi,j+1αkj

αij)rj+1 − ...− (αkn −

αinαkj

αij)rn = sk.

k = 0, 1, ..., m, k 6= i (oznaczono tu zmienna z jako s0).Przy tej wymianie bazy zamieniono tylko dwie zmienne si i rj , tzn.

stara i nowa baza roznia sie dokÃladnie na jednej pozycji. Te dwie bazyodpowiadaja wiec dwom wierzchoÃlkom zbioru X, ktore poÃlaczone sa wspol-na krawedzia.

Po wymianie bazy otrzymalismy wiec nowy ukÃlad rownan rownowaznystaremu. Odpowiadajaca mu tablica sympleksowa ma nastepujaca krotkapostac:

1 −r1 ... −rj−1 −si −rj+1 ... −rn

α00 α01 ... α0,j−1 α0j α0,j+1 ... α0n = z

α10 α11 ... α1,j−1 α1j α1j+1 ... α1n = s1

... ... ... ... ... ... ... ... ...αi−1,0 αi−1,1 ... αi−1,j−1 αi−1,j αi−1,j+1 ... αi−1,n = si−1

αi0 αi1 ... αi,j−1 αij αi,j+1 ... αin = rj

αi+1,0 αi+1,1 ... αi+1,j−1 αi+1,j αi+1,j+1 ... αi+1,n = si+1

... ... ... ... ... ... ... ... ...αm0 αm1 ... αm,j−1 αmj αm,j+1 ... αmn = sm

,

gdzie

αij = 1αij

,

αil=αilαij

, dla l 6= j,

αkj = −αkj

αij, dla k 6= i,

αkl = αkl − αilαkj

αijdla l 6= j i k 6= i.

Opisane czynnosci wymiany zmiennej bazowej bedziemy nazywac piwoty-zacja (od ang. pivot – os) element αij nazywa sie elementem gÃlownym (lubosia), i-ty wiersz nazywa sie wierszem gÃlownym, zas j-ta kolumna – kol-umna gÃlowna.

3.2. OPIS METODY SYMPLEKSOWEJ 53

Opisane reguÃly wymiany zmiennych mozna schematycznie przedstawicnastepujaco [

p qr s

]−→

[1p

qp

− rp s− qr

p

](3.8)

gdzie p jest elementem gÃlownym, q – dowolnym elementem w wierszu gÃlow-nym, r – dowolnym elementem w kolumnie gÃlownej zas s – dowolnym po-zostaÃlym elementem.

3.2.2 Krawedzie zbioru rozwiazan dopuszczalnych

Na podstawie tablicy sympleksowej mozna rowniez wyznaczyc krawedzie,ktore Ãlacza wierzchoÃlek odpowiadajacy tej tablicy z sasiednimi wierzchoÃl-kami. ZaÃlozmy, ze tablica sympleksowa

1 −r1 ... −rj ... −rn

α00 α01 ... α0j ... α0n = z

α10 α11 ... α1j ... α1n = s1

... ... ... ... ... ...αi0 αi1 αij ... αin = si

... ... ... ... ... ... ...αm0 αm1 ... αmj αmn = sm

przedstawia niezdegenerowane dopuszczalne rozwiazanie bazowe (αi0 > 0,i = 1, ..., m). Jesli nadamy zmiennej niebazowej rj wartosc t ≥ 0, przyczym pozostaÃle zmienne niebazowe rk (dla k 6= j) przyjmiemy rowne zeru,to otrzymamy

si(t) = −αijt + αi0

i = 1, ..., m. Rownania te sa parametrycznymi rownaniami prostej za-wierajacej odpowiednia krawedz wychodzaca z wierzchoÃlka, ktory przed-stawia powyzsza tablica. Idac wzdÃluz tej krawedzi pozostaniemy w zbiorzerozwiazan dopuszczalnych dopoki si ≥ 0, i = 1, ...,m. Nietrudno zauwazyc,ze

si(t) ≥ 0 dla wszystkich i ⇔ t ≤ mini:αij>0

αi0

αij. (3.9)

54 ROZDZIAÃL 3. METODA SYMPLEKSOWA

Wartosciom zmiennej t ∈ [0, mini:αij>0αi0αij

] odpowiadaja wiec punkty naodpowiedniej krawedzi zbioru rozwiazan dopuszczalnych wychodzacej z wierz-choÃlka, ktory przedstawia powyzsza tablica.

Cwiczenie 3.2.2 Okreslic wszystkie krawedzie wychodzace z wierzchoÃlkaodpowiadajacego tablicy sympleksowej podanej w przykÃladzie 3.1.1.

3.2.3 Piwotyzacja przy znanym dopuszczalnym rozwiazaniubazowym (II faza metody sympleksowej)

W punkcie tym zakÃladamy, ze wszystkie wspoÃlrzedne wektora (α10, ..., αm0)>

w tablicy sympleksowej (3.7) sa nieujemne. Wowczas odpowiadajacetej tablicy rozwiazanie bazowe jest dopuszczalne. Jesli zaÃlozenie to jestspeÃlnione dla startowej tablicy sympleksowej (3.5), czyli innymi sÃlowy b ≥ 0,to odpowiadajacy jej wierzchoÃlek 0 (poczatek ukÃladu wspoÃlrzednych) jestrozwiazaniem dopuszczalnym ZPL (3.1). Wowczas tablica ta jest tablicastartowa w algorytmie sympleksowym. W kazdej iteracji algorytmu przepro-wadza sie wymiane bazy w taki sposob, aby wartosc funkcji celu odpowiadajacakolejnej tablicy sympleksowej byÃla nie mniejsza niz wartosc odpowiadajacatablicy poprzedniej. ZakÃladamy ponadto, ze nie pojawia sie rozwiazaniazdegenerowane (rozpatrzymy je pozniej).

Podane ponizej reguÃly piwotyzacji odnosza sie do postaci klasycznejZPL i do postaci krotkiej tablicy sympleksowej (3.7).

• Iteracja II fazy algorytmu sympleksowego

Krok 1 (wybor kolumny gÃlownej ) Wybrac dowolna kolumne j0, dla ktorejα0j0 < 0 (najczesciej wybiera sie j0 takie, ze α0j0 = minj:α0j<0 α0j).Jesli brak takiego j0, to tablica sympleksowa przedstawia rozwia-zanie optymalne (patrz uwaga 3.2.1b).

Krok 2 (Wybor wiersza gÃlownego) Wsrod wszystkich i, dla ktorychαij0 > 0, wybrac i0 dla ktorego

αi0

αi0j0

= mini:αij0

>0

αi0

αij0

.

3.2. OPIS METODY SYMPLEKSOWEJ 55

Jesli brak takiego i (αij0 ≤ 0 dla wszystkich i), to funkcja celujest nieograniczona z gory na zbiorze X rozwiazan dopuszczal-nych.

Krok 3 (Piwotyzacja) Wymienic zmienna bazowa si0 ze zmienna nieba-zowa rj0 i przetransformowac tablice sympleksowa zgodnie zreguÃla (3.8).

Uwaga 3.2.3 a) Wybor wiersza gÃlownego podany w kroku 2 nie wyprowa-dza ze zbioru rozwiazan dopuszczalnych. Fakt ten wynika z rownowaznosci(3.9).

b) Jesli dla tablicy sympleksowej (3.7) przedstawiajacej bazowe, niezde-generowane rozwiazanie dopuszczalne dla wszystkich i zachodza nierownosciαij0 ≤ 0, to ZPL przedstawione ta tablica jest nieograniczone. Dla dowodutego faktu wystarczy zauwazyc, ze w tym przypadku zwiekszanie zmiennejniebazowej rj do +∞ nie wyprowadza ze zbioru rozwiazan dopuszczalnych,natomiast wartosc funkcji celu rosnie nieograniczenie.

c) Jesli nie wystapi degeneracja, to po wykonaniu skonczenie wielu ite-racji II fazy algorytmu sympleksowego albo wyznaczymy rozwiazanie op-tymalne, albo stwierdzimy, ze rozwiazan takich brak. Fakt ten wynika zobserwacji, ze wierzchoÃlkow zbioru rozwiazan dopuszczalnych (tablic sym-pleksowych) jest skonczenie wiele, a w przypadku braku degeneracji kazdaiteracja prowadzi do zmniejszenia wartosci funkcji celu.

PrzykÃlad 3.2.4 Przy pomocy algorytmu sympleksowego wyznaczymy roz-wiazanie optymalne ZPL podanego w przykÃladzie 3.1.1.

Poczatkowa tablica sympleksowa ma postac (zaznaczono element gÃlow-ny):

1 −x1 −x2

0 −1 −2 = z

100 1 1 = u1

720 6 9 = u2

60 0 1 = u3

.

56 ROZDZIAÃL 3. METODA SYMPLEKSOWA

Dwie kolejne piwotyzacje daja nastepujace tablice sympleksowe:

1 −x1 −u3

120 −1 2 = z

40 1 −1 = u1

180 6 −9 = u2

60 0 1 = x2

i

1 −u2 −u3

150 16

12 = z

10 −16

12 = u1

30 16 −3

2 = x1

60 0 1 = x2

.

Ostatnia tablica przedstawia rozwiazanie optymalne: x∗ = (30, 60). Op-tymalna wartosc funkcji celu wynosi z = 150. Na tym samym przykÃladzieprzedstawimy kolejne wymiany bazy przeprowadzane na dÃlugiej postacitablicy sympleksowej. PrzeksztaÃlcenia te sa w istocie identyczne z metodaeliminacji Gaussa, w ktorej element gÃlowny wyznacza sie zgodnie z reguÃlamipodanymi w algorytmie sympleksowym. Otrzymujemy kolejne tablice sym-pleksowe z zaznaczonymi w nich elementami gÃlownymi.

z u1 u2 u3 x1 x2

1 0 0 0 −1 −2 = 00 1 0 0 1 1 = 1000 0 1 0 6 9 = 7200 0 0 1 0 1 = 60

,

z u1 u2 u3 x1 x2

1 0 0 2 −1 0 = 1200 1 0 −1 1 0 = 400 0 1 −9 6 0 = 1800 0 0 1 0 1 = 60

,

z u1 u2 u3 x1 x2

1 0 16

12 0 0 = 150

0 1 −16

12 0 0 = 10

0 0 16 −3

2 1 0 = 300 0 0 1 0 1 = 60

.

3.2. OPIS METODY SYMPLEKSOWEJ 57

Jak widac, otrzymalismy to samo rozwiazanie optymalne co poprzedniox∗ = (30, 60).

Uwaga 3.2.5 W czesci przedstawionych w tym rozdziale przykÃladow po-dajemy kolejne tablice sympleksowe od poczatkowej do tablicy przedstaw-iajacej rozwiazanie optymalne. Powinno to uÃlatwic czytelnikowi samodzielneprzeprowadzanie wymiany zmiennej bazowej i porownanie wynikow. Dowymiany zmiennej bazowej (piwotyzacji) mozna uzyc rowniez komputerai zastosowac odpowiednie pakiety matematyczne. Niektore z nich moznaznalezc w Internecie, na przykÃlad na stronie:

http : //www.princeton.edu/˜rvdb/LPbook/

Stosowanie tych pakietow polega najczesciej na wskazaniu przez uzyt-kownika elementu gÃlownego tablicy sympleksowej, natomiast odpowiedniprogram wyznacza kolejna tablice.

3.2.4 Przypadki szczegolne

Rozpatrujemy zadanie programowania liniowego w postaci klasycznej i zakÃla-damy, ze algorytm sympleksowy startuje z dopuszczalnego rozwiazania ba-zowego (b ≥ 0) oraz, ze w trakcie jego realizacji nie wystepuje degeneracja(rozpatrzymy ja pozniej).

Funkcja celu nieograniczona (zbior rozwiazan optymalnych pusty)

Przypadek ten wystapi dokÃladnie wowczas, gdy dla pewnej tablicy sym-pleksowej odpowiadajacej rozwiazaniu dopuszczalnemu (αi0 ≥ 0 dla i =1, ..., m) istnieje kolumna j0, dla ktorej α0j0 < 0 i dla ktorej wszystkie

58 ROZDZIAÃL 3. METODA SYMPLEKSOWA

pozostaÃle elementy tej kolumny sa niedodatnie (αkj0 ≤ 0, dla k = 1, ..., m):

1 −r1 ... −rj0 ... −rn

α00 α01 ... < 0 ... α0n = z

≥ 0 α11 ... ≤ 0 ... α1n = s1

... ... ... ... ... ...≥ 0 αi1 ≤ 0 ... αin = si

... ... ... ... ... ... ...≥ 0 αm1 ... ≤ 0 αmn = sm

PrzykÃlad 3.2.6 Rozwazmy nastepujace ZPL:

maksymalizowac x1 + x2

przy ograniczeniach x1 − 2x2 ≤ 1−x1 + x2 ≤ 1

−2x1 + 4x2 ≤ 2x1, x2 ≥ 0.

Poczatkowa tablica sympleksowa ma postac

1 −x1 −x2

0 −1 −1 = z

1 1 −2 = u1

1 −1 1 = u2

2 −2 4 = u3

.

Po piwotyzacji otrzymamy

1 −u1 −x2

1 1 −3 = z

1 1 −2 = x1

2 1 −1 = u2

4 2 0 = u3

.

3.2. OPIS METODY SYMPLEKSOWEJ 59

Teraz jesli u1 = 0 i x2 = t ≥ 0, to wszystkie zmienne bazowe pozostananieujemne i z = 1 + 3t → +∞, gdy t → +∞. Funkcja celu jest wiecnieograniczona na zbiorze X rozwiazan dopuszczalnych, w konsekwencjiproblem nie posiada rozwiazania optymalnego.

Wiele rozwiazan optymalnych

Ten przypadek wystapi wtedy, gdy istnieje tablica sympleksowa, ktorejodpowiada optymalne rozwiazanie bazowe (αi0 ≥ 0, dla i = 1, ..., m orazα0j ≥ 0 dla j = 1, ..., n) i istnieje para (i0, j0), i0 ∈ {1, ..., m}, j0 ∈ {1, ..., n},dla ktorej α0j0 = 0, αi00 > 0 i αi0j0 > 0:

1 −r1 ... −rj0 ... −rn

α00 ≥ 0 ... = 0 ... ≥ 0 = z

≥ 0 α11 ... α1j0 ... α1n = s1

... ... ... ... ... ...> 0 αi01 > 0 ... αi0n = si0

... ... ... ... ... ... ...≥ 0 αm1 ... αmj0 αmn = sm

Uwaga: dla rozwiazania zdegenerowanego, przypadek ten moze miec miejs-ce rowniez pod innymi warunkami.

PrzykÃlad 3.2.7 Rozwazmy nastepujace ZPL:

maksymalizowac 4x1 + 2x2

przy ograniczeniach x1 − 3x2 ≤ 4x2 ≤ 7

2x1 + x2 ≤ 10x1, x2 ≥ 0.

60 ROZDZIAÃL 3. METODA SYMPLEKSOWA

Poczatkowa tablica sympleksowa ma postac

1 −x1 −x2

0 −4 −2 = z

4 1 −3 = u1

7 0 1 = u2

10 2 1 = u3

,

natomiast kolejne tablice maja postac

1 −u1 −x2

16 4 −14 = z

4 1 −3 = x1

7 0 1 = u2

2 −2 7 = u3

i

1 −u1 −u3

20 0 2 = z347

17

37 = x1

477

27 −1

7 = u2

27 −2

717 = x2

.

Ostatnia tablica odpowiada rozwiazaniu optymalnemu x∗ = (347 , 2

7)>. Podokonaniu wymiany zmiennych u1 i u2 otrzymamy nowa tablice

1 −u2 −u3

20 0 2 = z32 −1

2 × = x1472

72 × = u1

7 1 × = x2

, (3.10)

ktora odpowiada nowemu bazowemu rozwiazaniu optymalnemu x∗∗ = (32 , 7)>.

Poniewaz w tym przypadku kolejna dopuszczalna piwotyzacja doprowadzido rozwiazania x∗, wiec problem posiada tylko dwa dopuszczalne bazowerozwiazania optymalne: x∗ i x∗∗. Odpowiadaja one dwom wierzchoÃlkom wzbiorze rozwiazan optymalnych X∗. Zgodnie z twierdzeniami 2.3.17 i 2.3.24mamy:

X∗ = {x : x = λx∗ + (1− λ)x∗∗, λ ∈ [0, 1]} =

{x : x = (347

λ +32(1− λ),

27λ + 7(1− λ), λ ∈ [0, 1]}.

3.2. OPIS METODY SYMPLEKSOWEJ 61

PrzykÃlad 3.2.8 Wyznaczymy wszystkie rozwiazania optymalne zadania:

maksymalizowac −98x1 + 15

16x2 + 916x3

przy ograniczeniach 3x1 + 2x2 + 6x3 ≤ 277

−3x1 + 52x2 + 3

2x3 ≤ 4−3

4x1 − x2 + 87x3 ≤ 5

9x1, x2, x3 ≥ 0.

Poczatkowa tablica sympleksowa ma postac

1 −x1 −x2 −x3

0 98 −15

16 − 916 = z

277 3 2 6 = u1

4 −3 52

32 = u2

59 −3

4 −1 87 = u3

.

Po piwotyzacji otrzymamy

1 −x1 −u2 −x312 0 3

8 0 = z2335

275 −4

5245 = u1

85 −6

525

35 = x2

9745 −39

2025

6135 = u3

.

Ostatnia tablica odpowiada rozwiazaniu optymalnemu x′ = (0, 85 , 0)>. Dwa

nastepne bazowe rozwiazania optymalne x′′ badz x′′′ otrzymamy po wy-mianie zmiennych niebazowych x1 badz x3 ze zmienna bazowa u1:

1 −u1 −u2 −x312 0 3

8 0 = z23189

527 × 8

45 = x1

11063

29 × 5

3 = x26728

1336 × 73

21 = u3

albo

1 −x1 −u2 −u112 0 3

8 0 = z23168

98 × 5

24 = x3

8556 − × − = x2

+ − × − = u3

.

62 ROZDZIAÃL 3. METODA SYMPLEKSOWA

Mamy: x′′ = ( 23189 , 110

63 , 0)> oraz x′′′ = (0, 8556 , 23

168)>. Dalsze piwotyzacje nieprzyniosa nowych rozwiazan optymalnych. Tak wiec

X∗ = {x ∈ R3 : x = λ1x′ + λ2x

′′ + λ3x′′′, λ1, λ2, λ3 ≥ 0, λ1 + λ2 + λ3 = 1}.

Zbior rozwiazan optymalnych nieograniczony

Przypadek ten moze wystapic dokÃladnie wtedy, gdy istnieje tablica sym-pleksowa odpowiadajaca rozwiazaniu optymalnemu (αi0 ≥ 0, dla i = 1, ..., moraz α0j ≥ 0 dla j = 1, ..., n), dla ktorej istnieje j0 takie, ze α0j0 = 0 i dlawszystkich i zachodzi αi0 = 0 (degeneracja) badz αij0 ≤ 0:

1 −r1 ... −rj0 ... −rn

α00 ≥ 0 ... = 0 ... ≥ 0 = z

≥ 0 α11 ... ≤ 0 ... α1n = s1

... ... ... ... ... ...= 0 αi1 αij0 ... αin = si

... ... ... ... ... ... ...≥ 0 αm1 ... ≤ 0 αmn = sm

PrzykÃlad 3.2.9 Rozwazmy nastepujace ZPL:

maksymalizowac −2x1 + 4x2

przy ograniczeniach −2x1 + x2 ≤ 1−x1 + 2x2 ≤ 4

x1, x2 ≥ 0.

Poczatkowa tablica ma postac

1 −x1 −x2

0 2 −4 = z

1 −2 1 = u1

4 −1 2 = u2

.

3.2. OPIS METODY SYMPLEKSOWEJ 63

Dwie nastepne tablice maja postac

1 −x1 −u1

4 −6 4 = z

1 −2 1 = x2

2 3 −2 = u2

i

1 −u2 −u1

8 2 0 = z73

23 −1

3 = x223

13 −2

3 = x1

.

Ostatnia tablica odpowiada bazowemu rozwiazaniu optymalnemu x∗ =(23 , 7

3)>. Dla ostatniej tablicy zadna piwotyzacja nie jest dopuszczalna, ponie-waz wszystkie elementy w jedynej dopuszczalnej kolumnie gÃlownej sa ujemne.Biorac teraz u2 = 0 i u1 = t ≥ 0, otrzymamy z = 8, x1 = 2

3 + 23 t ≥ 0, x2 =

73 + 1

3 t ≥ 0. Tak wiec zbior rozwiazan optymalnych X∗ jest poÃlprosta:

X∗ = {x ∈ R2 : x = x∗ + (23,13)>t, t ≥ 0}.

PrzykÃlad 3.2.10 Rozwazmy nastepujace ZPL:

maksymalizowac −256 x1 + 5

2x2 + 47x3

przy ograniczeniach −x1 + 49x2 − 2x3 ≤ 4

9−2

3x1 + 25x2 + 2

5x3 ≤ 25

−2x1 − 32x2 + 1

2x3 ≤ 6x1, x2, x3 ≥ 0.

Poczatkowa tablica sympleksowa ma postac

1 −x1 −x2 −x3

0 256 −5

2 −47 = z

49 −1 4

9 −2 = u1

25 −2

325

25 = u2

6 −2 −32

12 = u3

.

Teraz mozliwy jest wybor jednego z trzech elementow gÃlownych: α12 = 49

albo α22 = 25 albo α23 = 2

5 . Wybor drugiego z nich daje kolejna tablice

64 ROZDZIAÃL 3. METODA SYMPLEKSOWA

sympleksowa:

1 −x1 −u2 −x352 0 25

42714 = z

0 − 727 × × = u1

1 −53 × × = x2

152 −12

5 × × = u3

.

Tablica ta przedstawia zdegenerowane bazowe rozwiazanie optymalne x′ =(0, 1, 0)>. Jesli teraz przyjac u2 = x3 = 0 i x1 = t ≥ 0, otrzymamy z = 5

2 ,x1 = t, x2 = 1 + 5

3 t ≥ 0, x3 = 0. Zbior rozwiazan optymalnych X∗ zawierawiec poÃlprosta opisana powyzszymi rownaniami parametrycznymi.

Wybor w poczatkowej tablicy sympleksowej elementu gÃlownego α12 =49 prowadzi do kolejnych tablic

1 −x1 −u1 −x352

13524

458 −331

28 = z

1 −49

94

92 = x2

0 730 − 9

10115 = u2

152 × 27

8 −254 = u3

i

1 −x1 −u1 −u252 + + + = z

1 × × × = x2

0 × × × = x3152 × × × = u3

.

Ostatnia przedstawia otrzymane juz uprzednio rozwiazanie x′ = (0, 1, 0)>.Z tej tablicy nie mozna jednak odczytac, ze zbior X∗ jest nieograniczony.Przyczyna jest pojawiajaca sie degeneracja. Zauwazmy ponadto, ze dla tejtablicy dowolna piwotyzacja jest niedopuszczalna.

W koncu wybor w poczatkowej tablicy sympleksowej elementu gÃlownegoα23 = 2

5 prowadzi do tablicy

1 −x1 −x2 −u247

4514 −27

14107 = z

229 −13

3229 5 = u1

1 −53 1 5

2 = x3112 −7

6 −2 −54 = u3

.

3.2. OPIS METODY SYMPLEKSOWEJ 65

Mamy teraz dwie dopuszczalne mozliwosci wyboru elementu gÃlownego:α12 = 22

9 badz α22 = 1. Wybor dowolnego z nich prowadzi do wyznac-zonego juz uprzednio rozwiazania x′. Tak wiec

X∗ = {x ∈ R3 : x = x′ + (1,53, 0)>t, t ≥ 0}.

3.2.5 Piwotyzacja przy nieznanym dopuszczalnym rozwia-zaniu bazowym (I faza metody sympleksowej)

Jesli wektor b w poczatkowej tablicy sympleksowej (3.5) ma przynajmniejjedna ujemna wspoÃlrzedna, to tablica ta przedstawia niedopuszczalne roz-wiazanie bazowe. Opiszemy teraz jak mozna w tym przypadku otrzymacdopuszczalne rozwiazanie bazowe przy pomocy algorytmu sympleksowego.

Uzyskanie bazowego rozwiazania dopuszczalnego

Zacznijmy od nastepujacego przykÃladu

PrzykÃlad 3.2.11 Rozwazmy nastepujace ZPL:

maksymalizowac x1 + x2

przy ograniczeniach −13x1 + x2 ≤ 3

4x1 + 3x2 ≤ 24−2x1 − 3x2 ≤ −6

x1, x2 ≥ 0.

Poczatkowa tablica ma postac

1 −x1 −x2

0 −1 −1 = z

3 −13 1 = u1

24 4 3 = u2

−6 −2 −3 = u3

.

66 ROZDZIAÃL 3. METODA SYMPLEKSOWA

i przedstawia niedopuszczalne rozwiazanie bazowe (x, u) = (0, 0, 3, 24,−6).Naszym pierwszym celem jest teraz uzyskanie nieujemnej wartosci zmiennejuzupeÃlniajacej u3. Cel ten osiagniemy, jesli wybierzemy u3 jako tzw. po-mocnicza funkcje celu, ktora bedziemy maksymalizowac przy pozostaÃlychspeÃlnionych ograniczeniach. Odpowiednie piwotyzacje beda prowadzonetak dÃlugo, az u3 ≥ 0. W naszym przypadku otrzymamy juz po pierwszejpiwotyzacji tablice

1 −x1 −u1

3 −43 1 = z

3 −13 1 = x2

15 5 −3 = u2

3 −3 3 = u3

,

ktora przedstawia dopuszczalne rozwiazanie bazowe. Mozna wiec ja trak-towac jako startowa tablice sympleksowa w II fazie algorytmu symplek-sowego i postepowac dalej wedÃlug opisanych juz reguÃl piwotyzacji. Otrzy-mamy wowczas nastepujaca tablice:

1 −u2 −u1

7 415

15 = z

4 115

45 = x2

3 15 −3

5 = x1

12 35

65 = u3

,

ktora odpowiada rozwiazaniu optymalnemu x∗ = (3, 4)>.

Przedstawimy teraz I faze algorytmu sympleksowego, ktora wyznaczadopuszczalne rozwiazanie bazowe lub stwierdza, ze brak jest takiego rozwia-zania.

• Iteracja I fazy algorytmu sympleksowego

Krok 1 (Wybor pomocniczej funkcji celu) Wybrac najwieksze k ≥ 1, dlaktorego αk0 < 0:

k = max{i ≥ 1 : αi0 < 0}

3.2. OPIS METODY SYMPLEKSOWEJ 67

Jesli brak takiego k (αi0 ≥ 0 dla i = 1, ..., m), to tablica odpowiadadopuszczalnemu rozwiazaniu bazowemu (w tym przypadku prze-chodzi sie do II fazy algorytmu sympleksowego).

Krok 2 (Wybor kolumny gÃlownej ) Wybrac j0, dla ktorego αkj0 < 0 (na-jczesciej wybiera sie j0 = min{αkj0 : αkj0 < 0}. Jesli brak jesttakiego j0 (αkj ≥ 0 dla j = 1, ..., n), to brak jest rozwiazaniadopuszczalnego (problem jest sprzeczny).

Krok 3 (Wybor wiersza gÃlownego) Wsrod wszystkich i ≥ k, dla ktorychαi0αij0

> 0, wybrac i0, dla ktorego uÃlamek ten osiaga minimum:

αi00

αi0j0

= min{ αi0

αij0

: i ≥ k iαi0

αij0

> 0}. (3.11)

(Zauwazmy, ze takie i0 istnieje, gdyz αk0 < 0 i αkj0 < 0.)

Krok 4 (Piwotyzacja) Wymienic zmienna bazowa si0 ze zmienna nieba-zowa rj0 i przetransformowac tablice sympleksowa zgodnie zreguÃla piwotyzacji (3.8). Przejsc do kroku 1.

Uwaga 3.2.12 a) Dla i > k elementy αi0 pozostana po piwotyzacji nieu-jemne:

• αi00 = αi00

αi0j0> 0 zgodnie z rownoscia (3.11).

• Dla i 6= i0 mamy αi0 = αi0−αij0αi00

αi0j0. Jesli αij0 ≤ 0, to αi0 ≥ αi0 ≥ 0,

gdyz αi00

αi0j0> 0 zgodnie z rownoscia (3.11). Jesli natomiast αij0 > 0,

to dla i ≥ k mamy: αi0 = αij0(αi0αij0

− αi00

αi0j0) ≥ 0 zgodnie z rownoscia

(3.11).

b) Element αk0 wzrosnie po piwotyzacji, gdyz αk0 = αk0 − αkj0αi00

αi0j0>

αk0 i αkj0 < 0 i αi00

αi0j0> 0 zgodnie z rownoscia (3.11).

c) ZaÃlozmy, ze problem posiada rozwiazanie dopuszczalne. (W przeci-wnym wypadku sprzecznosc ograniczen zostanie stwierdzona po skonczenie

68 ROZDZIAÃL 3. METODA SYMPLEKSOWA

wielu iteracjach I fazy algorytmu sympleksowego. W przypadku niewysta-pienia degeneracji kolejne tablice przedstawiaja bowiem rozne rozwiazaniabazowe, ktorych jest skonczenie wiele). Wowczas z b) wynika, ze po skonczeniewielu iteracjach αk0 bedzie dodatnie (w wyniku kazdej piwotyzacji αk0

rosnie). Ponadto z a) wynika, ze wowczas zbior wierszy z ujemnymi ele-mentami αi0 zmniejszy sie. Zatem po skonczenie wielu iteracjach I faza al-gorytmu sympleksowego doprowadzi do bazowego rozwiazania dopuszczal-nego.

d) Zanim wybierze sie k w kroku 1., mozna pozamieniac wiersze tablicysympleksowej tak, by αi0 < 0 dla i = 1, .., k i αi0 ≥ 0 dla i = k + 1, ..., m.Prowadzi to czesto do szybszego wyznaczenia rozwiazania dopuszczalnego.Nalezy jednak wowczas pamietac o tym, aby po takiej operacji kolejnaewentualna zamiane wierszy przeprowadzic dopiero wtedy, gdy w wynikupiwotyzacji αk0 osiagnie nieujemna wartosc.

Uwaga 3.2.13 Rozwazmy teraz ograniczenia zadania programowania li-niowego w postaci kanonicznej

Ax + Iu = b

x, u ≥ 0

i pomnozmy przez −1 te rownania, dla ktorych prawa strona jest ujemna(bi < 0). Otrzymany ukÃlad rownan zapiszmy w postaci

A′z = b′,

przy czym z = (x>, u>)>. Bazowe rozwiazanie dopuszczalne wyjsciowegozadania mozna rowniez wyznaczyc wprowadzajac tzw. zmienne sztuczney ∈ Rm i nastepnie rozwiazujac problem pomocniczy:

maksymalizowac −e>yprzy ograniczeniach A′z + y = b′

z, y ≥ 0.(3.12)

Mozna pokazac, ze wyjsciowe ZPL posiada rozwiazanie dopuszczalne z =(x>, u>)> wtedy i tylko wtedy, gdy (z, 0) jest rozwiazaniem optymalnym

3.2. OPIS METODY SYMPLEKSOWEJ 69

problemu (3.12). Zauwazmy przy tym, ze dla ostatniego problemu ist-nieje rozwiazanie dopuszczalne (punkt (0, b′) ≥ 0 speÃlnia podane w nimograniczenia) i posiada rozwiazanie optymalne (funkcja celu jest ograniczo-na przez 0).

Zbior rozwiazan dopuszczalnych pusty

PrzykÃlad 3.2.14 Rozwazmy nastepujace ZPL:

maksymalizowac x1 − x2

przy ograniczeniach 2x1 + x2 ≤ 2x1 + 2x2 ≤ 2x1 + x2 ≥ 2x1, x2 ≥ 0.

Poczatkowa tablica sympleksowa ma postac

1 −x1 −x2

0 −1 1 = z

2 2 1 = u1

2 1 2 = u2

−2 −1 −1 = u3

.

Poniewaz odpowiada ona niedopuszczalnemu rozwiazaniu bazowemu, nalezyzastosowac I faze algorytmu sympleksowego. Jako funkcje pomocniczawybierzemy u3. Aby skrocic liczbe dokonywanych piwotyzacji, przesuniemytrzeci wiersz w miejsce pierwszego. Otrzymamy kolejne tablice symplek-sowe

1 −x1 −x2

0 −1 1 = z

−2 −1 −1 = u3

2 2 1 = u1

2 1 2 = u2

,

1 −u1 −x2

1 12

32 = z

−1 12 −1

2 = u3

1 12

12 = x1

1 −12

32 = u2

70 ROZDZIAÃL 3. METODA SYMPLEKSOWA

i1 −u1 −u2

× × × = z

−23

13

13 = u3

× × × = x1

× × × = x2

.

Ostatnia tablica wskazuje na to, ze zbior rozwiazan dopuszczalnych Xjest pusty (ograniczenia u3 = −1

3u1 − 13u2 − 2

3 , u1, u2, u3 ≥ 0 sa sprzeczne)

PrzykÃlad 3.2.15 Rozwazmy nastepujace ZPL:

maksymalizowac 12x1 − x2 − x3

przy ograniczeniach −12x1 + 2x2 + x3 ≤ 2

12x1 − 2x2 + x3 ≤ −3

x2 − x3 ≤ 2x1, x2 ≥ 0

Dwie pierwsze tablice sympleksowe maja postac (u2 wybieramy jako po-mocnicza funkcje celu)

1 −x1 −x2 −x3

0 −12 1 1 = z

2 −12 2 1 = u1

−3 12 −2 1 = u2

2 0 1 −1 = u3

,

1 −x1 −u1 −x3

× × × × = z

× × × × = x2

−1 0 1 2 = u2

× × × × = u3

.

Ostatnia tablica wskazuje na to, ze brak jest rozwiazan dopuszczalnych.

3.3. DEGENERACJA 71

3.3 Degeneracja

Motto:Matematyka uczy, ze nalezy liczyc sie z zerami

Algorytm sympleksowy wyznacza w skonczenie wielu krokach bazowerozwiazanie optymalne (II faza) lub bazowe rozwiazanie dopuszczalne (Ifaza) przy zaÃlozeniu, ze nie wystapia po drodze rozwiazania zdegenerowane.ZaÃlozenie to jest wykorzystywane w istotny sposob w celu pokazania, zefunkcja celu (pomocnicza funkcja celu) rosnie w wyniku kazdej piwotyzacji,z czego z kolei wynika zbieznosc algorytmu w skonczenie wielu krokach. Beztego zaÃlozenia moze powstac cykl kolejnych piwotyzacji, dajacych rozwiazaniazdegenerowane, ktore nie sa optymalne. W ten sposob powstanie nieskon-czony ciag rozwiazan bazowych, nie przyblizajacych sie nawet do rozwiazaniaoptymalnego (II faza) badz dopuszczalnego (I faza).

PrzykÃlad 3.3.1 Rozwazmy nastepujace ZPL:

maksymalizowac 34x1 − 20x2 + 1

2x3 − 6x4

przy ograniczeniach 14x1 − 8x2 − x3 + 9x4 ≤ 0

12x1 − 12x2 − 1

2x3 + 3x4 ≤ 0x3 ≤ 1

x1, x2, x3, x4 ≥ 0

Poczatkowa tablica sympleksowa ma postac

1 −x1 −x2 −x3 −x4

0 −34 20 −1

2 6 = z

0 14 −8 −1 9 = u1

0 12 −12 −1

2 3 = u2

1 0 0 1 0 = u3

72 ROZDZIAÃL 3. METODA SYMPLEKSOWA

i odpowiada rozwiazaniu zdegenerowanemu (x, u) = (0, 0, 0, 0, 0, 0, 1). Wy-bierajac za kazdym razem przy kolejnych piwotyzacjach kolumne gÃlowna j0,dla ktorej −cj0 = min{−cj : j = 1, ..., n}, i pierwszy dopuszczalny wierszgÃlowny, otrzymamy kolejne tablice sympleksowe

1 −u1 −x2 −x3 −x4

0 3 −4 −72 33 = z

0 4 −32 −4 36 = x1

0 −2 4 32 −15 = u2

1 0 0 1 0 = u3

,

1 −u1 −u2 −x3 −x4

0 1 1 −2 18 = z

0 −12 8 8 −84 = x1

0 −12

14

38 −15

4 = x2

1 0 0 1 0 = u3

1 −u1 −u2 −x1 −x4

0 −2 3 14 −3 = z

0 −32 1 1

8 −212 = x3

0 116 −1

8 − 364

316 = x2

1 32 −1 −1

8212 = u3

,

1 −u1 −u2 −x1 −x2

0 −1 1 −12 16 = z

0 2 −6 −52 56 = x3

0 13 −2

3 −14

163 = x4

1 −2 6 52 −56 = u3

1 −x3 −u2 −x1 −x2

0 12 −2 −7

4 44 = z

0 12 −3 −5

4 28 = u1

0 −16

13

16 −4 = x4

1 1 0 0 0 = u3

,

1 −x3 −x4 −x1 −x2

0 −12 6 −3

4 20 = z

0 −1 9 14 −8 = u1

0 −12 3 1

2 −12 = u2

1 1 0 0 0 = u3

.

Widzimy, ze ostatnia tablica jest rownowazna pierwszej oraz, ze kolejnepiwotyzacje dokonywane zgodnie z podana wyzej reguÃla nie dadza zadnegonowego bazowego rozwiazania dopuszczalnego. Jesli jednak w poczatkowejtablicy wybierzemy trzecia kolumne jako kolumne gÃlowna, otrzymamy naste-pujace tablice:

1 −x1 −x2 −u3 −x412 −3

4 20 12 6 = z

1 14 −8 1 9 = u1

12

12 −12 1

2 3 = u2

1 0 0 1 0 = x3

,

3.3. DEGENERACJA 73

1 −u2 −x2 −u3 −x454

32 2 5

4212 = z

34 × × × × = u1

1 × × × × = x1

1 × × × × = x3

Ostatnia tablica odpowiada rozwiazaniu optymalnemu x = (1, 0, 1, 0) zoptymalna wartoscia funkcji celu z = 5

4 .

Degeneracji mozna uniknac zakÃlocajac prawa strone ograniczen, czylirozwiazujac problem

maksymalizowac c>xprzy ograniczeniach Ax ≤ b + ε

x ≥ 0,

przy czym ε = (ε1, ..., εm)> i wspoÃlrzedne εi > 0, i = 1, ...,m, wybranezostaÃly dostatecznie maÃle. Mozna pokazac, ze wyjsciowy problem (3.1)posiada rozwiazanie wtedy i tylko wtedy, gdy problem z zakÃlocona prawastrona posiada rozwiazanie dla kazdego ε > 0. Jesli wziac za εi > 0,i = 1, ..., m, wystarczajaco maÃle liczby losowe, to prawdopodobienstwo, zenastapi degeneracja jest rowne zero.

Uwaga 3.3.2 Dla praktycznej realizacji algorytmu sympleksowego w przy-padku wystapienia degeneracji wystarczy, aby, wyÃlacznie w celu wyznacze-nia wiersza gÃlownego, dodac dostatecznie maÃle ε > 0 do prawej strony tychrownan, dla ktorych bi = 0.

PrzykÃlad 3.3.3 Rozpatrzmy jeszcze raz problem podany w przykÃladzie3.3.1. Jesli zastosujemy powyzsza uwage, otrzymamy nastepujacy ciagtablic sympleksowych:

1 −x1 −x2 −x3 −x4

0 −34 20 −1

2 6 = z

ε 14 −8 −1 9 = u1

ε 12 −12 −1

2 3 = u2

1 0 0 1 0 = u3

,

74 ROZDZIAÃL 3. METODA SYMPLEKSOWA

1 −u2 −x2 −x3 −x4

0 32 2 −5

4212 = z

ε −12 −2 −3

4152 = u1

ε 2 −24 −1 6 = x1

1 0 0 1 0 = u3

,

1 −u2 −x2 −u3 −x454

32 2 5

4212 = z

34 × × × × = u1

1 × × × × = x1

1 × × × × = x3

.

Widzimy, ze ostatnia tablica odpowiada rozwiazaniu optymalnemu x∗ =(1, 0, 1, 0)>.

3.4. ZREWIDOWANA METODA SYMPLEKSOWA 75

3.4 Zrewidowana metoda sympleksowa

Zwrocmy uwage na to, ze w metodzie sympleksowej przeksztaÃlcenia tab-licy sympleksowej polegaja na aktualizacji macierzy niebazowej AN (pi-wotyzacje). Jesli jednak popatrzymy na postac zmiennych bazowych (2.3)i odpowiadajaca im wartosc funkcji celu (2.4), to widzimy, ze do ich wyz-naczenia wystarczy aktualizacja odwrotnosci macierzy bazowej AB odpowia-dajaca aktualizacji bazy. W przypadku gdy liczba ograniczen jest duzomniejsza od liczby zmiennych, macierz AB jest duzo mniejsza niz macierzAN . Wowczas wygodniej jest aktualizowac macierz A−1

B .W rezultacie otrzy-mujemy tak zwana zrewidowana metode sympleksowa, ktora teraz opiszemydokÃladniej.

Rozwazmy ZPL w postaci standardowej

maksymalizowac z = c>xprzy ograniczeniach Ax = b

x ≥ 0,

dla ktorej macierz A typu m × n ma peÃlen rzad wierszowy (r(A) = m).Oznaczmy A =

[AB AN

], x> =

[x>B x>N

]i c> =

[c>B c>N

]. DÃluga

postac tablicy sympleksowej przedstawia sie wowczas nastepujaco

z x>B x>N1 0 −(c>N − c>BA−1

B AN ) = c>BA−1B b

0 I A−1B AN = A−1

B b

Przy kazdej wymianie zmiennej bazowej aktualizowane sa wiec wszystkieelementy tej tablicy. Zauwazmy jednak, ze wystarczy aktualizowac A−1

B ,c>BA−1

B , A−1B b i c>BA−1

B b. W oparciu o nie mozna w razie potrzeby wyznaczycwszystkie elementy tej tablicy. W szczegolnosci, jesli liczba ograniczenm jest duzo mniejsza niz liczba zmiennych n, to przy takiej aktualizacjizaoszczedzone zostana operacje mnozenia przez macierz AN . Jesli wiec

76 ROZDZIAÃL 3. METODA SYMPLEKSOWA

przy wymianie zmiennej bazowej ograniczamy sie do aktualizacji wielkosciA−1

B , c>BA−1B , A−1

B b i c>BA−1B b, to realizowana jest wowczas tzw. zrewi-

dowana metoda sympleksowa. Nalezy jednak podkreslic, ze jest to metodarownowazna omawianej do tej pory metodzie sympleksowej (w obu meto-dach generowane sa te same kolejne rozwiazania bazowe).

Przedstawimy teraz, jak mozna aktualizowac wielkosci A−1B , c>BA−1

B ,A−1

B b i c>BA−1B b. Rozwazmy w tym celu macierz A typu (m + 2)× (m + 2)

przedstawiona w postaci blokowej

A =

−1 0 00 −1 c>Bb 0 AB

.

Zauwazmy, ze jest ona nieosobliwa i, ze

A−1 =

−1 0 0c>BA−1

B b −1 c>BA−1B

A−1B b 0 A−1

B

.

Potrzebne elementy tablicy sympleksowej uzyskamy wowczas mnozac ma-cierz A

−1 przez macierz A typu (m + 2) × (n − m + 1) przedstawiona wpostaci blokowej

A =

1 00 c>N0 AN

.

Mamy bowiem

A−1

A =

−1 0c>BA−1

B b c>N − c>BA−1B AN

A−1B b A−1

B AN

.

ReguÃly wyboru elementu gÃlownego sa takie same jak w zwykÃlej metodziesympleksowej. Jako kolumne gÃlowna mozna wybrac kolumne j-ta, gdzie jjest takie , ze j-ta wspoÃlrzedna wektora −(c>N − c>BA−1

B AN ) jest ujemna.Kolumna gÃlowna jest wiec j-ta kolumna macierzy

[c>N − c>BA−1

B AN

A−1B AN

].

3.4. ZREWIDOWANA METODA SYMPLEKSOWA 77

Zapiszmy ja podobnie jak w ustepie 3.2.2 w postaci (α0j , α1j , ..., αmj)>.Rowniez podobnie jak w zwykÃlej metodzie sympleksowej, jako numer wier-sza gÃlownego mozna wybrac i takie, ze αi0

αij= mink:αkj>0

αk0αkj

. Wymianie e-

lementu gÃlownego odpowiada teraz aktualizacja macierzy A−1. Zauwazmy,

ze wystarczy w tym celu zaktualizowac macierz A−1B . Niech B+ bedzie

zaktualizowana baza, tzn. B+ = B ∪ {j} \ {i}. Wowczas macierz AB+

powstaje z macierzy AB przez dodanie tzw. poprawki rzedu 1

AB+ = AB + (aj − ai)e>i ,

gdzie ai oznacza kolumne macierzy A odpowiadajaca zmiennej usuwanej zbazy, zas aj – kolumne macierzy A odpowiadajaca zmiennej wprowadzanejdo bazy. Macierz A−1

B+ mozna wyznaczyc korzystajac z tzw. formuÃlyShermana–Morrisona

A−1B+ = A−1

B − A−1B (aj − ai)e>i A−1

B

e>i A−1B aj

(porownaj [Kie-Sch]). Zwrocmy uwage na fakt, ze e>i A−1B aj 6= 0, gdyz

wielkosc ta jest elementem gÃlownym. Pozostawiamy czytelnikowi sprawdze-nie, ze powyzszy wzor opisuje rzeczywiscie macierz odwrotna do AB+ . Ist-nieja rowniez inne mozliwosci aktualizacji macierzy A

−1. ZainteresowanychodsyÃlamy do ksiazki [Kal].

78 ROZDZIAÃL 3. METODA SYMPLEKSOWA

ROZDZIAÃL 4

Dualizm w programowaniuliniowym

Motto:Matematyka jest sztuka nadawania roznym rzeczom tych samych nazw

H. Poincare

4.1 Definicja i przykÃlady

Dane jest zadanie programowania liniowego w postaci klasycznej

maksymalizowac c>xprzy ograniczeniach Ax ≤ b

x ≥ 0,(4.1)

gdzie c, x ∈ Rn, A jest macierza typu m× n i b ∈ Rm.

Definicja 4.1.1 Zadanie programowania liniowego

minimalizowac b>yprzy ograniczeniach A>y ≥ c

y ≥ 0,(4.2)

79

80 ROZDZIAÃL 4. DUALIZM W PROGRAMOWANIU LINIOWYM

gdzie y ∈ Rm, nazywa sie zadaniem dualnym do zadania (4.1). Zadanie(4.1) nazywa sie wowczas zadaniem pierwotnym.

Uwaga 4.1.2 Zadanie (4.1) jest zadaniem dualnym do zadania (4.2). Wcelu pokazania tego faktu nalezy zapisac zadanie (4.2) w postaci klasycznej(jako zadanie maksymalizacji), wyznaczyc zadanie don dualne i zauwazyc,ze jest nim (4.1). SzczegoÃly pozostawiamy czytelnikowi. Oba zadania sawiec wzajemnie dualne.

Rozwazmy teraz zadanie programowania liniowego w postaci standar-dowej:

maksymalizowac c>xprzy ograniczeniach Ax = b

x ≥ 0.(4.3)

Mozna je przedstawic w rownowaznej mu postaci klasycznej:

maksymalizowac c>x

przy ograniczeniach[

A−A

]x ≤

[b−b

]

x ≥ 0.

Zgodnie z definicja 4.1.1 zadaniem dualnym do tego ostatniego jest zadanie

minimalizowac b>(v − w)przy ograniczeniach A>(v − w) ≥ c

v, w ≥ 0,

gdzie v, w ∈ Rm. Po wprowadzeniu nowej zmiennej y = v − w ostatniezadanie przyjmie postac

minimalizowac b>yprzy ograniczeniach A>y ≥ c.

(4.4)

Zauwazmy, ze na y nie nakÃlada sie ograniczenia nieujemnosci. Tak wieczadanie (4.4) jest dualne do zadania (4.3). Mozna rowniez nietrudno poka-zac, ze zadanie (4.3) jest dualne do (4.4). Dowod tego faktu pozostawiamyczytelnikowi. Oba zadania (4.3) i (4.4) sa wiec wzajemnie dualne.

4.1. DEFINICJA I PRZYKÃLADY 81

PrzykÃlad 4.1.3 Powrocmy do zagadnienia analizy dziaÃlalnosci gospodar-czej 2.1.2, ktore daje sie przedstawic jako zadanie programowania liniowegow postaci klasycznej:

maksymalizowac c1x1 + c2x2 + ... + cnxn

przy ograniczeniach a11x1 + a12x2 + ... + a1nxn ≤ b1

a21x1 + a22x2 + ... + a2nxn ≤ b2

...am1x1 + am2x2 + ... + amnxn ≤ bm

x1, ..., xn ≥ 0,

gdzie x jest profilem produkcji, b wektorem zasobow surowcowych, c wek-torem zyskow jednostkowych, zas element aij macierzy A wskazuje na iloscjednostek i-tego surowca potrzebna do produkcji jednostki j-tego towaru.Zadaniem dualnym do powyzszego jest zadanie

minimalizowac b1y1 + b2y2 + ... + bmym

przy ograniczeniach a11y1 + a21y2 + ... + am1ym ≥ c1

a12y1 + a22y2 + ... + am2ym ≥ c2

...a1ny1 + a2ny2 + ... + amnyn ≥ cn

y1, y2, ..., ym ≥ 0.

Ostatnie zadanie ma nastepujaca interpretacje ekonomiczna. Niech yi bedziecena jednostki i-tego surowca, i = 1, ..., m. Wowczas j-te ograniczeniezadania dualnego mowi, ze udziaÃl kosztow przy produkcji jednostki j-tego towaru wynosi co najmniej cj , i = 1, ..., m, j = 1, ..., m. Natomi-ast zadanie polega na znalezieniu takiego wektora cen surowcowych, dlaktorego caÃlkowita wartosc uzytych do produkcji surowcow jest minimalna.

82 ROZDZIAÃL 4. DUALIZM W PROGRAMOWANIU LINIOWYM

4.2 Twierdzenia o dualnosci

Twierdzenie 4.2.1 (sÃlabe twierdzenie o dualnosci) Jesli x ∈ Rn jestrozwiazaniem dopuszczalnym zadania pierwotnego (4.1) i y ∈ Rm jest roz-wiazaniem dopuszczalnym zadania dualnego (4.2), to zachodzi nierownosc

c>x ≤ b>y

Dowod. Niech x, y beda rozwiazaniami dopuszczalnymi odpowiedniodla zadania pierwotnego i dualnego, tzn. x, y ≥ 0, Ax ≤ b i A>y ≥ c.wowczas zachodza nastepujace nierownosci i rownosci:

c>x ≤ (A>y)>x = y>Ax ≤ y>b = b>y.

¥

Wniosek 4.2.2 Jesli obydwa zadania (4.1) i (4.2) sa dopuszczalne, tzn.

X = {x : Ax ≤ b, x ≥ 0} 6= ∅i

Y = {y : A>y ≥ c, y ≥ 0} 6= ∅),to posiadaja one rozwiazania optymalne, odpowiednio x∗ i y∗.

Wniosek 4.2.3 Jesli x i y sa rozwiazaniami dopuszczalnymi odpowiedniodla zadania pierwotnego (4.1) i dualnego (4.2) i zachodzi rownosc c>x =b>y, to x jest rozwiazaniem optymalnym zadania pierwotnego i y jest rozwia-zaniem optymalnym zadania dualnego.

Cwiczenie 4.2.4 Dane jest zadanie

maksymalizowac 2x1 + x2

przy ograniczeniach x1 + x2 ≤ 6−x1 + x2 ≤ 5x1 − 2x2 ≤ 2

x1, x2 ≥ 0

4.2. TWIERDZENIA O DUALNOSCI 83

i zadanie don dualne

minimalizowac 6y1 + 5y2 + 2y3

przy ograniczeniach y1 − y2 + y3 ≥ 2y1 + y2 − 2y3 ≥ 1

y1, y2, y3 ≥ 0.

Sprawdzic, czy para (x∗>; y∗>)> = (143 , 4

3 ; 53 , 0, 1

3)> jest rozwiazaniem zada-nia pierwotnego i dualnego.

Wniosek 4.2.5 Jesli zadanie pierwotne (4.1) jest nieograniczone, to zada-nie dualne (4.2) nie posiada rozwiazania dopuszczalnego. Podobnie, jeslizadanie dualne (4.2) jest nieograniczone, to zadanie pierwotne (4.1) nieposiada rozwiazania dopuszczalnego.

Twierdzenie 4.2.6 (mocne twierdzenie o dualnosci) Jesli zadaniepierwotne (4.3) posiada rozwiazanie optymalne x∗, to zadanie dualne (4.4)posiada rozwiazanie optymalne y∗ i zachodzi rownosc

c>x∗ = b>y∗.

Dowod. Niech x∗ bedzie rozwiazaniem optymalnym zadania (4.3).Wowczas istnieje bazowe rozwiazanie optymalne x (funkcja liniowa okreslo-na na zbiorze wypukÃlym osiaga swoje maksimum w punktach ekstremal-nych). Niech A =

[AB AN

]i x = (x>B, 0)>, xB = A−1

B b, gdzie AB jestmacierza bazowa. Niech y = A−>B cB, gdzie c = (c>B, c>N )> i A−>B oznaczamacierz (A>B)−1. Wowczas y jest rozwiazaniem dopuszczalnym problemudualnego (4.4), bo

A>y =[

A>BA>N

]A−>B cB =

[cB

(A−1B AN )>cB

]≥

[cB

cN

]= c.

Nierownosc wynika z nastepujacego rozumowania: Niech f∗ bedzie opty-malna wartoscia funkcji celu zadania (4.3). Mamy wiec dla x ∈ X

f∗ = c>x = (c>B, c>N )[

xB

0

]≥ c>x = (c>B, c>N )

[xB

xN

]=

84 ROZDZIAÃL 4. DUALIZM W PROGRAMOWANIU LINIOWYM

(c>B, c>N )[

A−1B b−A−1

B ANxN

xN

]=

c>BA−1B b− c>BA−1

B ANxN + c>NxN = f∗ − c>BA−1B ANxN + c>NxN ,

czylic>BA−1

B ANxN ≥ c>NxN

dla dowolnego xN . Biorac wiec xN = ei, i = m + 1, ..., n, otrzymamy

c>BA−1B AN ≥ c>N .

Ponadto

c>x = c>BxB = c>BA−1B b = (A−>B cB)>b = y>b = b>y

i na mocy wniosku 4.2.3, y jest rozwiazaniem optymalnym zadania (4.4).¥

Uwaga 4.2.7 Mocne twierdzenie o dualnosci prawdziwe jest rowniez dlapostaci klasycznej (4.1) i (4.2).

Wniosek 4.2.8 Jesli zadania pierwotne i dualne sa dopuszczalne (X 6= ∅i Y 6= ∅), to posiadaja one rozwiazania optymalne.

Wniosek 4.2.9 Niech x i y beda rozwiazaniami dopuszczalnymi odpowied-nio dla zadania pierwotnego (4.1) i dualnego (4.2). Wowczas x i y sarozwiazaniami optymalnymi tych zadan wtedy i tylko wtedy, gdy

c>x = b>y.

Dowod. Wniosek wynika z mocnego twierdzenia o dualnosci i z wniosku4.2.3. ¥

Uwaga 4.2.10

4.2. TWIERDZENIA O DUALNOSCI 85

a) Zadaniu pierwotnemu i dualnemu odpowiada w istocie ta sama tablicasympleksowa. Zadania te mozna bowiem przedstawic jako ukÃladyrownan:

(pierwotne ZPL)

z = c>xb−Ax = u

x, u ≥ 0

i

(dualne ZPL)

z = b>y−c + A>y = v

y, v ≥ 0.

Wspolna poczatkowa tablica sympleksowa obu zadan ma postac:

zmienne niebazowepierwotnego ZPL

zmienneniebazowedualnego

ZPL

1 −x1 ... −xn

1 0 −c1 ... −cn z

y1 b1 a11 ... a1n u1

... ... ... ... ... ...ym bm am1 ... amn um

z v1 ... vn

zmiennebazowe

pierwotnegoZPL

zmienne bazowedualnego ZPL

Powyzszej tablicy odpowiada rozwiazanie bazowe zadania pierwot-nego (x, u) = (0, b) i rozwiazanie bazowe zadania dualnego (y, v) =(0,−c) (oczywiscie w postaci kanonicznej dla obu zadan).

b) Przy piwotyzacji, w ktorej aij jest elementem gÃlownym, wymienionezostaja zmienne ui z xj (zadanie pierwotne) i yi z vj (zadanie dualne).

c) W kazdej tablicy zmienna dualna yi znajduje sie naprzeciw zmiennejuzupeÃlniajacej zadania pierwotnego ui, i = 1, ..., m, oraz zmiennapierwotna xj znajduje sie naprzeciw zmiennej uzupeÃlniajacej zadaniadualnego vj , j = 1, ..., n.

86 ROZDZIAÃL 4. DUALIZM W PROGRAMOWANIU LINIOWYM

d) Rozwiazania bazowe zadania pierwotnego (x, u) i zadania dualnego(y, v) odpowiadajace tej samej tablicy sympleksowej posiadaja naste-pujaca wÃlasnosc: yiui = 0, i = 1, ..., m, i xjvj = 0, j = 1, ..., n (tzw.wÃlasnosc komplementarnosci).

e) Jesli zerowy wiersz tablicy sympleksowej (wektor −c w przypadku,gdy jest to poczatkowa tablica) jest nieujemny, to tablica ta przed-stawia dopuszczalne rozwiazanie zadania dualnego (wowczas o rozwia-zaniu zadania pierwotnego przedstawionego przez te tablice mowimy,ze jest dualnie dopuszczalne). Jesli ponadto przynajmniej jeden z ele-mentow tego wiersza jest rowny zero (cj = 0 dla pewnego j, w przy-padku gdy jest to poczatkowa tablica), to rozwiazanie zadania dual-nego przedstawionego przez te tablice jest zdegenerowane (wowczaso rozwiazaniu zadania pierwotnego przedstawionego przez te tablicemowimy, ze jest dualnie zdegenerowane).

f) Jesli zerowa kolumna tablicy sympleksowej (wektor b w przypadku,gdy jest to poczatkowa tablica) jest nieujemna, to tablica ta przed-stawia rozwiazanie dopuszczalne zadania pierwotnego (mowi sie row-niez, ze rozwiazanie to jest pierwotnie dopuszczalne ). Jesli pon-adto przynajmniej jeden z elementow tej kolumny jest rowny zero(bi = 0 dla pewnego i, w przypadku gdy jest to poczatkowa tablica),to rozwiazanie zadania pierwotnego przedstawionego przez te tablicejest zdegenerowane (mowi sie rowniez, ze rozwiazanie to jest pierwot-nie zdegenerowane).

g) Jesli zerowy wiersz i zerowa kolumna tablicy sympleksowej sa nieu-jemne (−c ≥ 0, b ≥ 0 w przypadku, gdy jest to poczatkowa tablica),to tablica ta przedstawia rozwiazanie optymalne zadania pierwotnegoi rozwiazanie optymalne zadania dualnego.

h) WspoÃlrzedne y∗i , i = 1, ..., m bazowego rozwiazania optymalnego y∗

zadania dualnego nazywaja sie rowniez cenami ukrytymi (z dowodumocnego twierdzenia o dualnosci wynika, ze ta definicja jest rownowaz-na definicji cen ukrytych podanej w ustepie 2.2). Pokazuja one jak

4.2. TWIERDZENIA O DUALNOSCI 87

szybko wzrasta funkcja celu zadania pierwotnego w zaleznosci ododpowiednich wspoÃlrzednych bi, i = 1, ..., m, wektora b: jesli bi zwiekszysie o jednostke, to funkcja celu wzrosnie o y∗i jednostek (o ile bazaodpowiadajaca bazowemu rozwiazaniu optymalnemu nie zmieni siepo tej operacji). Istotnie, niech y∗ bedzie bazowym rozwiazaniemoptymalnym zadania dualnego. Dalej, niech

b′ = b + ei = (b1, ..., bi−1, bi + 1, bi+1, ..., bm)

i niech y′ bedzie bazowym rozwiazaniem optymalnym zadania dual-nego do zakÃloconego zadania:

maksymalizowac c>xprzy ograniczeniach Ax ≤ b′

x ≥ 0.

Wowczas y∗ = y′ (obu rozwiazaniom odpowiada ta sama baza). Niechz i z′ beda optymalnymi wartosciami funkcji celu odpowiednio dlazadania wyjsciowego i zakÃloconego. Otrzymamy nastepujace rownosci

z′ = b′>y′ = b′>y∗ = b>y∗ + y∗i = z + y∗i .

Widzimy wiec, ze y∗i wyraza szybkosc przyrostu optymalnej wartoscifunkcji celu w zaleznosci od zmiany i-tej wspoÃlrzednej wektora b.WÃlasnosc ta ma wazne znaczenie ekonomiczne.

PrzykÃlad 4.2.11 Dane jest zagadnienie analizy dziaÃlalnosci gospodarczej,ktoremu odpowiada nastepujace zadanie programowania liniowego:

maksymalizowac 2x1 + 4x2 + 3x3

przy ograniczeniach x1 + 4x2 + 3x3 ≤ 2402x1 + x2 + 5x3 ≤ 300

x1 + x2 + x3 ≤ 200x1, x2, x3 ≥ 0.

Wyznaczymy rozwiazania optymalne zadan pierwotnego i dualnego i po-damy interpretacje ekonomiczna otrzymanych wynikow.

88 ROZDZIAÃL 4. DUALIZM W PROGRAMOWANIU LINIOWYM

Zadanie dualne ma postac

minimalizowac 240y1 + 300y2 + 200y3

przy ograniczeniach y1 + 2y2 + y3 ≥ 24y1 + y2 + y3 ≥ 4

3y1 + 5y2 + y3 ≥ 3y1, y2, y3 ≥ 0.

Poczatkowa tablica sympleksowa ma dla obu problemow postac

1 −x1 −x2 −x3

1 0 −2 −4 −3 z

y1 240 1 4 3 u1

y2 300 2 1 5 u2

y3 200 1 1 1 u3

z v1 v2 v3

.

Po dwoch piwotyzacjach otrzymamy tablice

1 −u2 −u1 −x3

1 37717

47

67

177 z

v2 2557 × × × x2

v1 13717 × × × x1

y3 3717 × × × u3

z y2 y1 v3

.

Tablica ta przedstawia rozwiazanie optymalne zadania pierwotnego x∗ =(1371

7 , 2557 , 0) i rozwiazanie optymalne zadania dualnego y∗ = (6

7 , 47 , 0). Op-

tymalna wartosc funkcji celu dla obu zadan wynosi z∗ = 37717 . WspoÃlrzedne

wektora y∗ sa cenami ukrytymi czynnikow produkcyjnych (surowcow) R1,R2

i R3. Jesli dostepna ilosc pierwszego surowca zwiekszy sie o jednostke,to zysk producenta wzrosnie o 6

7 jednostek. Podobna interpretacja eko-nomiczna dotyczy drugiej wspoÃlrzednej wektora y∗: producentowi opÃlacasie kupic pewna dodatkowa ilosc drugiego surowca za cene co najwyzej 4

7jednostek pienieznych za jego jednostke (lub innymi sÃlowy: jesli cena ta

4.2. TWIERDZENIA O DUALNOSCI 89

wyniesie co najwyzej 47 , to zysk producenta nie zmniejszy sie). Zwiekszenie

dostepnej ilosci trzeciego surowca nie wpÃlynie na zmiane zysku. Tak wiecjesli cena trzeciego surowca na rynku jest dodatnia, to zakup tego surowcaspowoduje zmniejszenie zysku. Przyczyna jest niepeÃlne wykorzystanie trze-ciego surowca przy optymalnym profilu produkcji: pozostaÃlo go 371

7 jed-nostek, bo tyle wynosi wartosc zmiennej uzupeÃlniajacej u∗3. Zwrocmy przyokazji uwage na wÃlasnosc komplementarnosci: y∗3u

∗3 = 0).

PrzykÃlad 4.2.12 Powrocmy teraz do problemu podanego w przykÃladzie2.1.1 i rozwiazanego w przykÃladzie 3.2.4. Tablica sympleksowa odpowiadajacarozwiazaniu optymalnemu ma postac

1 −u2 −u3

1 150 16

12 = z

y1 10 −16

12 = u1

v1 30 16 −3

2 = x1

v2 60 0 1 = x2

z y2 y3

Optymalne rozwiazanie wynosi dla zadania pierwotnego x∗ = (30, 60), zasdla zadania dualnego y∗ = (0, 1

6 , 12). Wielkosci te maja nastepujaca inter-

pretacje ekonomiczna. Ogrodnik uzyska najwiekszy zysk 150 zÃl, jesli przez-naczy 30 m2 swojego ogrodu na roze i 60 m2 na gozdziki. Zakup dodatkowejpowierzchni pod uprawe zysk ten zmniejszy (y∗1 = 0; ma to zwiazek z do-datnia wartoscia zmiennej uzupeÃlniajacej u∗1 = 10 – tyle metrow kwadra-towych powierzchni ogrodu jest niewykorzystanych przy optymalnym rozwiazaniu).Ogrodnikowi opÃlaci sie zainwestowac wiecej niz 720 zÃl, o ile zdobycie do-datkowej zÃlotowki (kredyt) kosztowac go bedzie co najwyzej 1

6 zÃl. OpÃlacimu sie rowniez przeznaczyc wiecej niz 60 m2 na gozdziki, o ile koszt zagospo-darowania 1 m2 dodatkowej powierzchni wyniesie co najwyzej 1

2 zÃl. Zwrocmyuwage na wÃlasnosc komplementarnosci: y∗i u

∗i = 0, i = 1, 2, 3.

Twierdzenie 4.2.13 (o komplenentarnosci) Niech x i y beda rozwiazaniamidopuszczalnymi odpowiednio dla zadania pierwotnego (4.1) i dualnego (4.2).

90 ROZDZIAÃL 4. DUALIZM W PROGRAMOWANIU LINIOWYM

Wowczas x i y sa rozwiazaniami optymalnymi wtedy i tylko wtedy, gdy

y>(Ax− b) = 0 (4.5)

ix>(c−A>y) = 0. (4.6)

Dowod. Niech x i y beda rozwiazaniami dopuszczalnymi odpowied-nio dla zadania pierwotnego (4.1) i dualnego (4.2). Wowczas, podob-nie jak w dowodzie sÃlabego twierdzenia o dualnosci, zachodza nastepujacenierownosci i rownosci:

c>x ≤ (A>y)>x = y>Ax ≤ y>b = b>y. (4.7)

Jesli x i y sa rozwiazaniami optymalnymi, to c>x = b>y na mocy mocnegotwierdzenia o dualnosci. W konsekwencji

c>x = (A>y)>x = y>Ax = y>b = b>y,

czyli (c − A>y)>x = 0 i y>(Ax − b) = 0. ZaÃlozmy teraz, ze zachodzarownosci (4.5) i (4.6). Wowczas z (4.7) wynika, ze c>x = b>y. W konsek-wencji x i y sa rozwiazaniami optymalnymi na mocy sÃlabego twierdzenia odualnosci. ¥

Uwaga 4.2.14 Niech ai oznacza i-ty wiersz oraz aj - j-ta kolumne macierzyA. Jesli x i y sa rozwiazaniami dopuszczalnymi odpowiednio dla zadaniapierwotnego (4.1) i dualnego (4.2), to rownosci (4.5) i (4.6) mozna zapisacw postaci

yi(aix− bi) = 0 (lub rownowaznie yiui = 0) (4.8)

i = 1, ...,m, i

xj(a>j y − cj) = 0 (lub rownowaznie xjvj = 0) (4.9)

j = 1, ..., n. Wynika to z faktu, ze jesli suma liczb nieujemnych jest rownazero to liczby te sa rowne zero.

4.2. TWIERDZENIA O DUALNOSCI 91

Wniosek 4.2.15 Niech x i y beda rozwiazaniami dopuszczalnymi odpowied-nio dla zadania pierwotnego (4.1) i dualnego (4.2). Wowczas x i y sarozwiazaniami optymalnymi wtedy i tylko wtedy, gdy

yi > 0 ⇒ aix = bi, (lub rownowaznie aix < bi ⇒ yi = 0)

i = 1, ..., m, i

xj > 0 ⇒ a>j y = cj , (lub rownowaznie a>j y > cj ⇒ xj = 0)

j = 1, ..., n.

92 ROZDZIAÃL 4. DUALIZM W PROGRAMOWANIU LINIOWYM

4.3 Dualny algorytm sympleksowy

Zadanie dualne (4.2) mozna rownowaznie przedstawic jako nastepujacezadanie maksymalizacji:

maksymalizowac −b>yprzy ograniczeniach −A>y ≤ −c

y ≥ 0.

Ostatniemu zadaniu odpowiada ponizsza tablica sympleksowa

1 −y1 ... −ym

0 b1 ... bm = z

−c1 −a11 ... −am1 = v1

... ... ... ... ...−cn −a1n ... −amn = vn

Przypuscmy, ze tablica ta przedstawia dopuszczalne rozwiazanie bazowe(czyli c ≤ 0). Jesli teraz zastosujemy do tej tablicy reguÃly piwotyzacjiopisane w punkcie 3.2.3, to jako kolumne gÃlowna wybierzemy i0, dla ktoregobi0 < 0 oraz jako wiersz gÃlowny - j0, dla ktorego

−cj0

−ai0j0

= min{ −cj

−ai0j: −ai0j > 0}.

Nastepnie wymienimy zmienna bazowa vj0 ze zmienna niebazowa yi0 iprzeksztaÃlcimy odpowiednio tablice sympleksowa. Zastosowalismy tu tzw.pierwotny algorytm sympleksowy do zadania dualnego. To samo otrzymamystosujac tzw. do zadania pierwotnego. Ponizej przedstawimy ten algorytmprzyjmujac, ze zadaniu pierwotnemu odpowiada tablica:

1 −r1 ... −rn

α00 α01 ... α0n = z

α10 α11 ... α1n = s1

... ... ... ... ...αm0 αm1 ... αmn = sm

4.3. DUALNY ALGORYTM SYMPLEKSOWY 93

oraz, ze rozwiazanie przedstawione ta tablica jest dualnie dopuszczalne(α0j ≥ 0 dla j = 1, ..., n).

Iteracja dualnego algorytmu sympleksowegoKrok 1 (wybor wiersza gÃlownego):Wybrac dowolny wiersz i0 ≥ 1, dla ktorego αi0 < 0 (najczesciej wybiera

sie i0 takie, ze αio0 = min{αi0 : αi0 < 0}). Jesli brak jest takiego i0, totablica przedstawia rozwiazanie dopuszczalne. (Jesli dodatkowo α0j ≥ 0dla j = 1, ..., n, to rozwiazanie to jest optymalne.)

Krok 2 (wybor kolumny gÃlownej):Wsrod wszystkich kolumn j ≥ 1, takich, ze ai0j < 0, wybrac kolumne

j0, dla ktorejα0j0

αi0j0

= max{ α0j

αi0j: αi0j < 0}.

Jesli brak jest takiej kolumny (αi0j ≥ 0 dla wszystkich j ≥ 1), to problemnie posiada rozwiazania dopuszczalnego.

Krok 3 (Piwotyzacja):Wymienic zmienna bazowa si0 ze zmienna niebazowa rj0 i przetransfor-

mowac tablice sympleksowa zgodnie z reguÃla (3.8).

Uwaga 4.3.1 Dualny algorytm sympleksowy dla zadania pierwotnego ipierwotny algorytm sympleksowy dla zadania dualnego sa sobie rownowazne.

Uwaga 4.3.2 Dualny algorytm sympleksowy nadaje sie w szczegolnosci dowyznaczenia rozwiazania dopuszczalnego zadania pierwotnego, dla ktoregopoczatkowa tablica sympleksowa przedstawia rozwiazanie bazowe, ktorejest dualnie dopuszczalne. Bedzie to wykorzystane przy programowaniuliniowym caÃlkowitoliczbowym.

PrzykÃlad 4.3.3 Rozwazmy teraz problem diety podany w przykÃladzie 2.1.3:

minimalizowac 5x1 + 7x2

przy ograniczeniach 2x1 + x2 ≥ 62x1 + 4x2 ≥ 12

7x2 ≥ 4x1, x2 ≥ 0.

94 ROZDZIAÃL 4. DUALIZM W PROGRAMOWANIU LINIOWYM

Zadanie to mozna sprowadzic do postaci klasycznej:

maksymalizowac −5x1 − 7x2

przy ograniczeniach −2x1 − x2 ≤ −6−2x1 − 4x2 ≤ −12

−7x2 ≤ −4x1, x2 ≥ 0

Poczatkowa tablica sympleksowa ma postac

1 −x1 −x2

0 5 7 = z

−6 −2 −1 = u1

−12 −2 −4 = u2

−4 0 −7 = u3

.

Poniewaz odpowiada ona rozwiazaniu bazowemu, ktore jest niedopuszczal-ne, zadanie mozemy rozwiazac przy pomocy dwufazowego algorytmu sym-pleksowego. Otrzymamy kolejno nastepujace tablice:

1 −x1 −x2

0 5 7 = z

−6 −2 −1 = u1

−12 −2 −4 = u2

−4 0 −7 = u3

,

1 −x1 −u3

−4 5 1 = z

−387 −2 −1

7 = u1

−687 −2 −4

7 = u247 0 −1

7 = x2

,

1 −u2 −u3

−1987

52 −3

7 = z

−307 −1 3

7 = u1

−347 −1

227 = x1

47 0 −1

7 = x2

,

1 −u2 −u1

−24 32 1 = z

10 −73

73 = u3

2 16 −2

3 = x1

2 −13

13 = x2

.

Otrzymalismy rozwiazanie optymalne x∗ = (2, 2).

4.3. DUALNY ALGORYTM SYMPLEKSOWY 95

Istnieje rowniez mozliwosc wyznaczenia rozwiazania optymalnego sto-sujac dualny algorytm sympleksowy. Otrzymamy wowczas kolejno nastepuja-ce tablice:

1 −x1 −x2

0 5 7 = z

−6 −2 −1 = u1

−12 −2 −4 = u2

−4 0 −7 = u3

,

1 −x1 −u2

−21 32

74 = z

−3 −32 −1

4 = u1

3 12 −1

4 = x2

17 72 −4

7 = u3

,

1 −u1 −u2

−24 1 32 = z

2 −23

16 = x1

2 13 −1

3 = x2

10 73 −7

3 = u3

.

Otrzymalismy to samo rozwiazanie optymalne co poprzednio: x∗ = (2, 2).

96 ROZDZIAÃL 4. DUALIZM W PROGRAMOWANIU LINIOWYM

Literatura

[Ale-Pad] D. Alevras, M. W. Padberg, Linear Optimization, Problemsand Extensions, Springer-Verlag, Berlin, 2001.

[Brd-Rus] M. Brdys, A. Ruszczynski, Metody optymalizacji w zadani-ach, WNT, Warszawa, 1985.

[Dom-Dre] W. Domschke, A. Drexl, Einfuhrung in Operations Research,Springer-Verlag, Berlin, 1995.

[Fin-Szy-Wie] W Findeisen, J. Szymanowski, A. Wierzbicki, Teoria imetody obliczeniowe optymalizacji, PWN, Warszawa, 1980.

[Fle] R. Fletcher, Practical Methods of Optimization, John Willey,Chichester, 1987.

[Gal-Nyk] Z. Galas, I. Nykowski (red.), Zbior zadan z programowaniamatematycznego, czesc I, PWN, Warszawa, 1986.

[Gas] S. I.Gass, Programowanie liniowe, metody i zastosowania,PWN, Warszawa, 1963.

[Gil-Mur-Wri] P.Gill, W. Murray, M.H. Wright, Practical Optimization,Academic Press, London, 1981.

[Gra] W. Grabowski, Programowanie matematyczne, PWE,Warszawa, 1980.

97

98 LITERATURA

[Hir-Lem] J.-B. Hiriart-Urruty, C. Lemarechal, Convex Analysis andMinimization Algorithms, Vol I, Springer-Verlag, Berlin,1993.

[Hir-Lem2] J.-B. Hiriart-Urruty, C. Lemarechal, Fundamentals of Con-vex Analysis, Springer-Verlag, Berlin, 2001.

[Kan-Gor] L. Kantorowicz, A. Gorstko, Optymalne decyzje eko-nomiczne, PWE, Warszawa, 1976.

[Kal] P. Kall, Mathematische Methoden des Operations Research,Teubner, Stuttgart, 1976.

[Kar] N. Karmarkar, A new polynomial-time algorithm for linearprogramming, Combinatorica, 4 (1984) 373-395.

[Kie-Sch] KieÃlbasinski, Schwetlick, Numeryczna algebra liniowa,Warszawa WNT.

[Koo] T. C. Koopmans (red.), Activity Analysis of Production andAllocation, Cowles Commission Monograph 13, John Willey& Sons,. Inc., New York, 1951.

[Mus] J. Musielak, Wstep do analizy funkcjonalnej, PWN,Warszawa 1989.

[Owe] G. Owen, Teoria gier, PWN, Warszawa, 1975.

[Sys-Deo-Kow] M. SysÃlo, N. Deo, J. S. Kowalik, Algorytmy optymalizacjidyskretnej, PWN, Warszawa, 1993.

[VdB] R. J. Vanderbei, Linear Programming, Foundation and Ex-tensions, Kluwer, Boston, 1997.

[Wal] S. Walukiewicz, Programowanie dyskretne, PWN,Warszawa, 1986. (tÃlumaczenie angielskie: Integer Pro-gramming, PWN, Warszawa, 1991.)