117
Justyna Kosakowska i Piotr Malicki Badania operacyjne - programowanie liniowe Materiały dydaktyczne dla studentów matematyki (specjalność: matematyka w ekonomii i finansach) Wydział Matematyki i Informatyki Uniwersytet Mikołaja Kopernika Toruń 2009 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

  • Upload
    dokien

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

Justyna Kosakowska i Piotr Malicki

Badania operacyjne - programowanie liniowe

Materiały dydaktyczne dla studentów matematyki(specjalność: matematyka w ekonomii i finansach)

Wydział Matematyki i InformatykiUniwersytet Mikołaja Kopernika

Toruń 2009

Projekt współfinansowany ze środków Unii Europejskiej w ramach

Europejskiego Funduszu Społecznego

Page 2: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

Podczas przygotowywania niniejszych notatek korzystaliśmy z następu-jącej literatury:

[1] M. S. Bazaraa, C. M. Shetty, ”Nonlinear Programming Theory andAlgorithms”, New York 1979.

[2] T. H. Cormen, Ch. E. Leiserson, R. L. Rivest, „Wprowadzenie doalgorytmów”, WN-T, Warszawa 2001.

[3] M. M. Sysło, „Algorytmy”, WSiP, Warszawa 1997.

[4] M. M. Sysło, N. Deo, J. S. Kowalik, „Algorytmy optymalizacji dys-kretnej”, PWN, Warszawa 1995.

Literatura uzupełniająca:

[1] N. Deo, „Teoria grafów i jej zastosowania w technice i informatyce”,PWN 1980.

[2] R. Faure, J.-P. Boss, A. Le Garff, „Badania operacyjne”, PWN, War-szawa 1982.

[3] S. I. Gass, „Programowanie liniowe”, PWN, Warszawa 1980.

[4] B. Korzan, „Elementy teorii grafów i sieci (metody i zastosowania)”,WN-T, Warszawa 1978.

[5] K. Manteuffel, E. Seiffart, „Wstęp do algebry liniowej i programowanialiniowego”, PWN, Warszawa 1975.

Page 3: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

SPIS TREŚCI 3

Spis treści

I Wykład 5

1 Wprowadzenie 51.1 Rys historyczny . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 Oznaczenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3 Tematyka wykładu . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Metoda sympleksowa 92.1 Różne formy zagadnienia programowania liniowego . . . . . . 92.2 Punkty i wektory ekstremalne . . . . . . . . . . . . . . . . . . 102.3 Metoda sympleksowa . . . . . . . . . . . . . . . . . . . . . . . 202.3.1 Dualna metoda programowania liniowego . . . . . . . . 31

2.4 Elementy programowania całkowitoliczbowego . . . . . . . . . 34

3 Strategie zachłanne 433.1 Problem wyboru zajęć . . . . . . . . . . . . . . . . . . . . . . 433.2 Problem plecakowy . . . . . . . . . . . . . . . . . . . . . . . . 45

4 Programowanie dynamiczne 484.1 Problem plecakowy - programowanie dynamiczne . . . . . . . 48

5 Grafy - podstawowe definicje 525.1 Reprezentacje grafów . . . . . . . . . . . . . . . . . . . . . . . 565.1.1 Macierze sąsiedztwa . . . . . . . . . . . . . . . . . . . . 565.1.2 Listy sąsiedztwa . . . . . . . . . . . . . . . . . . . . . . 57

6 Minimalne drzewa rozpinające 586.1 Algorytm Kruskala . . . . . . . . . . . . . . . . . . . . . . . . 59

7 Problem najkrótszych dróg 637.1 Algorytm Dijkstry . . . . . . . . . . . . . . . . . . . . . . . . 647.2 Algorytm Bellmana-Forda . . . . . . . . . . . . . . . . . . . . 69

8 Maksymalny przepływ 718.1 Przekroje w sieciach . . . . . . . . . . . . . . . . . . . . . . . 738.2 Sieci residualne . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Page 4: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

SPIS TREŚCI 4

8.3 Algorytm Forda-Fulkersona . . . . . . . . . . . . . . . . . . . 758.4 Analiza czasu działania algorytmu Forda-Fulkersona . . . . . . 778.5 Sieci z wieloma źródłami i ujściami . . . . . . . . . . . . . . . 78

9 Zagadnienie transportowe 799.1 Rozwiązanie zagadnienia transportowego metodąmaksymalnego przepływu . . . . . . . . . . . . . . . . . . . . 80

10 Skojarzenia w grafach dwudzielnych 89

II Dodatek 95

11 Pesymistyczna złożoność czasowa algorytmów 9511.1 Notacja O, Ω oraz Θ . . . . . . . . . . . . . . . . . . . . . . . 96

12 Przeszukiwanie grafu wszerz 9712.1 Analiza czasu działania algorytmu BFS . . . . . . . . . . . . . 99

13 Zbiory wypukłe i ich własności 10013.1 Topologiczne własności zbiorów wypukłych . . . . . . . . . . . 104

14 Problem dualności w programowaniu liniowym 11414.1 Geometryczna interpretacja dualności programowania liniowego116

Page 5: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

5

Część I

Wykład

Notatki te są istotnym rozszerzeniem skryptu „Badania operacyjne (Kursletni)” przygotowanego w 2009 roku (projekt współfinansowany ze środkówUnii Europejskiej w ramach Europejskiego Funduszu Społecznego). Zdecy-dowaliśmy się włączyć wykład z „Kursu letniego” do niniejszego skryptu,aby był on spójny oraz aby studenci mieli cały materiał dostępny w jednymmiejscu.Szczegółowo omówiliśmy nowe zagadnienia:

• przepływ w sieciach,

• zagadnienie transportowe,

• skojarzenia w grafach dwudzielnych,

Ponadto dodano nowe przykłady, które ilustrują algorytm sympleks. W czę-ści Dodatek umieściliśmy również treści pozwalające lepiej zrozumieć tematy-kę wykładu: problem złożoności czasowej algorytmów, przesukiwanie grafówwszerz, topologiczne własności zbiorów wypukłych oraz problem dualnościw programowaniu liniowym.

1. Wprowadzenie

1.1. Rys historyczny

W roku 1827 matematyk francuski J.B.J. Fourier opublikował metodę roz-wiązywania układu nierówności liniowych. Publikacja ta jest zwykle uważanaza początek programowania liniowego. W 1939 roku rosyjski matematyk L.V.Kantorovich sformułował problem przydziału środków jako problem progra-mowania liniowego. Mniej więcej w tym samym okresie duński ekonomistaT.C. Koopmans sformułował model programowania liniowego dla pewnychklasycznych zagadnień występujących w ekonomii. W czasie trwania II wojnyświatowej modele programowania liniowego były stosowane do rozwiązywaniaproblemów związanych z planowaniem wojskowym. W roku 1947 matematyk

Page 6: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

1. WPROWADZENIE 6

amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji, a zatem z możliwością zastosowania metod programowa-nia liniowego do rozwiązywania problemów występujących w rzeczywistości.W roku 1975 Kantorovich oraz Koopmans otrzymali za swoje prace nagrodęNobla w dziedzinie nauk ekonomicznych.

1.2. Oznaczenia

Będziemy używać następujących oznaczeń.

|X| - moc skończonego zbioru X;

N = 0, 1, 2, . . . - zbiór liczb naturalnych;

Z - pierścień liczb całkowitych;

Q - ciało liczb wymiernych;

R - ciało liczb rzeczywistych;

dalej K ∈ Z, Q, R

≤ - naturalny porządek w Kn („po współrzędnych”);

Mm×n(K) - zbiór m × n-macierzy o współczynnikach w K;

xT - macierz lub wektor transponowany do x;

e1, . . . , en - baza standardowa przestrzeni K-liniowej Kn;

1.3. Tematyka wykładu

Głównym celem wykładu jest omówienie algorytmów rozwiązujących pew-ne problemy, które można sformułować jako zagadnienia programowanialiniowego. Będziemy rozważać problemy postaci: dla danego cT ∈ Rn, zna-leźć minimum funkcji liniowej

f(x) = cT x

Page 7: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

1. WPROWADZENIE 7

na podzbiorze zbioru Rn ograniczonym pewnymi nierównościami oraz rów-naniami liniowymi. Czasami ciało R będziemy zastępować pierścieniem Z

i będziemy wtedy mówić o programowaniu całkowitoliczbowym.Wiele praktycznych problemów występujących w ekonomii oraz bada-

niach operacyjnych może być sformułowanych w postaci zagadnienia pro-gramowania liniowego (m.in. zagadnienie transportowe, problem plecakowy).W trakcie wykładu omawiamy tego typu problemy.Notatki zawierają także część Dodatek, w której umieszczono fakty po-

zwalające lepiej zrozumieć treść wykładu.

Przykład 1.1. Załóżmy, że pewna firma produkuje dwa rodzaje zapa-łek: grillowe (długie) i normalne (krótkie). Zysk z każdego pudła zapałekgrillowych wynosi 300 EUR, a z każdego pudła zapałek normalnych wynosi200 EUR. Firma posiada jedną maszynę robiącą długie lub krótkie zapałki.Maszyna ta może wyprodukować w jednym roku maksymalnie 900 000 pudełzapałek długich lub krótkich. Do produkcji zapałek firma potrzebuje drew-na oraz pudeł. Do otrzymania jednego pudła zapałek grillowych potrzeba 3m3 drewna, natomiast do otrzymania jednego pudła zapałek normalnych po-trzeba 1 m3 drewna. Firma posiada 1 800 000 m3 drewna na rok następny,ponadto nasza firma ma 700 000 pudeł na zapałki grillowe oraz 600 000 pudełna zapałki normalne.Naszym celem jest zmaksymalizowanie zysków firmy w roku następnym,

przy czym zakładamy, że firma może sprzedać wszystko co wyprodukuje. Za-piszmy powyższy problem za pomocą nierówności. Niech x1 oraz x2 oznaczająodpowiednio ilość pudeł (× 100 000) zapałek długich oraz ilość pudeł (× 100000) zapałek krótkich wyprodukowanych w roku następnym. Zysk z jedne-go pudła zapałek długich wynosi 300 EUR (3×100 EUR), zatem zysk z x1

pudeł zapałek długich wynosi 3x1 (stu euro jednostek). Podobnie zysk z x2

pudeł zapałek krótkich wynosi 2x2 (stu euro jednostek). Przy formułowaniunaszego zagadnienia musimy wziąć pod uwagę następujące ograniczenia:

• wydajność maszyny jest ograniczona przez 9 (× 100 000) pudeł na rok,czyli x1 + x2 ≤ 9;

• ograniczenie związane z ilością drewna, to 3x1 + x2 ≤ 18;

• ograniczenie związane z ilością dostępnych pudeł, to x1 ≤ 7, x2 ≤ 6;

• ograniczenie związane z sensownością rozważań, to x1 ≥ 0, x2 ≥ 0.

Page 8: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

1. WPROWADZENIE 8

Możemy teraz napisać model dla naszej firmy:

max(3x1 + 2x2)

przy warunkach:x1 + x2 ≤ 9,

3x1 + x2 ≤ 18,

x1 ≤ 7,

x2 ≤ 6,

x1, x2 ≥ 0.

Jest to przykład modelu programowania liniowego (w skrócie PL-modelu).Funkcję 3x1 + 2x2 nazywamy funkcją celu. W dalszej części wypracujemymetody ogólne, pozwalające rozwiązywać podobne problemy. Powyższy pro-blem rozwiążmy graficznie.

Obszar wyznaczony przez punkty 0, v1, v2, v3, v4 nazywamy dopuszczal-

nym, zawiera on punkty[

x1

x2

]

spełniające ograniczenia. Same zaś punkty

0, v1, v2, v3, v4 nazywamy wierzchołkami obszaru dopuszczalnego. Łatwo

policzyć, że v1 =

[

60

]

, v2 =

[

4, 54, 5

]

, v3 =

[

36

]

, v4 =

[

06

]

. Zauważmy, że nierów-

ność x1 ≤ 7 nie ma wpływu na obszar dopuszczalny. Szkicując funkcję celu

Page 9: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 9

widzimy, że osiąga ona wartość maksymalną dla wierzchołka v2 =

[

4, 54, 5

]

.

Wartość funkcji celu w tym wierzchołku wynosi 22, 5, zatem maksymalnyzysk dla firmy wynosi 22 500 EUR.

2. Metoda sympleksowa

2.1. Różne formy zagadnienia programowania liniowego

Zadanie postaci:

znaleźć minimum funkcji f(x) = cT x (2.1)

na zbiorze ograniczonym warunkami:

Ax = b, (2.2)

x ≥ 0 (2.3)

będziemy nazywać zagadnieniem programowania liniowego w postacistandardowej. Podzbiór X ⊆ Rn zdefiniowany przez ograniczenia (2.2) oraz(2.3) nazywamy zbiorem dopuszczalnym. Każdy element x ∈ X zbiorudopuszczalnego nazywamy rozwiązaniem dopuszczalnym. Rozwiązaniedopuszczalne x, w którym funkcja f osiąga minimum nazywamy rozwiąza-niem optymalnym.Można sobie wyobrazić praktyczne zagadnienia, które nie będą zapisane

w postaci standardowej. Omówimy teraz wszystkie możliwe przypadki.

1. Chcemy znaleźć maksimum (zamiast minimum funkcji f). W tym przy-padku wystarczy wektor c zastąpić wektorem −c oraz otrzymaną mi-nimalną wartość funkcji przemnożyć przez −1.

2. Nierówność ai1x1 + ai2x2 + . . . + ainxn ≤ bi (odp. ai1x1 + ai2x2 + . . . +ainxn ≥ bi) można sprowadzić do równania ai1x1 +ai2x2 + . . .+ainxn +xn+1 = bi (odp. ai1x1 + ai2x2 + . . . + ainxn − xn+1 = bi) poprzez wpro-wadzenie dodatkowej zmiennej xn+1 ≥ 0 (musimy wprowadzić tyle do-datkowych zmiennych, ile mamy nierówności!).

Page 10: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 10

3. Ograniczenia x ≥ 0 mogą mieć inną postać:

(a) ograniczenie xj ≥ dj zamieniamy na ograniczenie x′j ≥ 0 wprowa-

dzając nową zmienną x′j taką, że x′

j = xj − dj;

(b) ograniczenie xj ≤ dj zamieniamy na ograniczenie x′j ≥ 0 wprowa-

dzając nową zmienną x′j taką, że x′

j = dj − xj;

(c) ograniczenie xj ≥ dj zamieniamy na ograniczenia x′j , x

′′j ≥ 0 wpro-

wadzając nowe zmienne x′j , x

′′j takie, że xj = x′

j − x′′j (korzystamy

tutaj z faktu, że każda liczba rzeczywista może być przedstawionajako różnica liczb nieujemnych).

W dalszej części wykładu będziemy zakładać, że mamy dane zagadnienieprogramowania liniowego w postaci standardowej.

2.2. Punkty ekstremalne i wektory kierunkowe ekstre-malne

Łatwo jest udowodnić (zadanie na ćwiczenia), że jeśli funkcja liniowa osią-ga minimum (lub maksimum) na zbiorze wypukłym, to musi ona osiągać toekstremum również w punktach ekstremalnych tego zbioru. Dlatego poniżejponiżej omówimy tematykę związaną z punktami ekstremalnymi. Głównieskupimy się na charakteryzacji punktów ekstremalnych zbiorów dopuszczal-nych.Niech X ⊂ Rn będzie zbiorem wypukłym. Punkt x ∈ X nazywamy

ekstremalnym, jeśli

∀x,y∈X∀λ∈(0,1) p = (1 − λ)x + λy ⇒ x = y = p.

Przykład 2.4. Oznaczmy przez E zbiór punktów ekstremalnych zbioruX.

(i) Dla zbioru X =

[

x1

x2

]

∈ R2;

1 13 11 00 1

[

x1

x2

]

91876

,

[

x1

x2

]

[

00

]

pocho-

dzącego z Przykładu 1.1, E =

[

00

]

,

[

60

]

,

[

4, 54, 5

]

,

[

36

]

,

[

06

]

.

(ii) X = (x1, x2) ∈ R2; x21 + x2

2 ≤ 1, E = (x1, x2) ∈ R2; x21 + x2

2 = 1.

Page 11: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 11

Jeśli zbiór X jest domknięty i ograniczony, to dowolny punkt tego zbiorumoże być przedstawiony jako wypukła kombinacja punktów ekstremalnych.Wektor 0 6= v ∈ Rn nazywamy kierunkowym zbioru X, jeśli

∀x∈X∀λ≥0 x + λv ∈ X.

Dwa wektory kierunkowe v, w zbioru X nazywamy równymi, jeśli

∃λ>0 v = λw.

Wektor kierunkowy v zbioru X nazywamy ekstremalnym, jeżeli

∀w1,w2∀λ1,λ2>0 v = λ1w1 + λ2w2 ⇒ ∃λ>0w1 = λw2,

gdzie w1, w2 są wektorami kierunkowymi zbiory X.W dalszej części rozważać będziemy zbiory X postaciX = x ∈ Rn; Ax =

b, x ≥ 0, gdzie A oznacza macierz wymiaru m× n, b ∈ Rm. Zakładamy po-nadto, że rz(A) = m. Niech A = [BN ] (po ewentualnej permutacji kolumn),gdzie B jest m × m macierzą, N jest m × (n − m) macierzą, natomiastrz (B) = m. Wtedy

Ax = b, x ≥ 0 ⇒ BxB + NxN = b,

gdzie xB ≥ 0, xN ≥ 0. Niech A będzie jak wyżej. Wówczas przez C(A) ozna-czamy zbiór takich macierzy nieosobliwych B wymiaru m × m, dla którychistnieje macierz N wymiaru m × (n − m) taka, że [BN ] da się uzyskać zmacierzy A poprzez przestawienie kolumn.

Uwaga 2.5. Dalej będziemy stosować następujące uproszczenia notacji.Zapis A = [BN ] będzie oznaczać, że macierz A można uzyskać z macierzy[BN ] przez pewną permutację σ kolumn. Wtedy x = [xBxN ] będzie znaczyć,że wektor x powstaje z wektora x = [xBxN ] przez tę samą permutację σwspółrzędnych.

Twierdzenie 2.6 (o charakteryzacji punktów ekstremalnych). Niech X =x ∈ Rn; Ax = b, x ≥ 0, gdzie A ∈ Mm×n(R), b ∈ Rm, rz(A) = m. Punkt

x ∈ X jest punktem ekstremalnym wtedy i tylko wtedy, gdy x =

[

B−1b0

]

=[

xB

xN

]

dla pewnego B ∈ C(A) takiego, że B−1b ≥ 0.

Page 12: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 12

Dowód. Weźmy B ∈ C(A) takie, że B−1b ≥ 0. Niech x =

[

B−1b0

]

. Za-

uważmy, że x ∈ X. Rzeczywiście dla A = [BN ] mamy Ax = [BN ]

[

B−1b0

]

=

b + N0 = b, zarazem x ≥ 0. Załóżmy, że x = λx1 + (1 − λ)x2 dla x1, x2 ∈ Xoraz λ ∈ (0, 1). Niech xT

1 = [xT11, x

T12], x

T2 = [xT

21, xT22]. Wtedy

[

B−1b0

]

= λ

[

x11

x12

]

+ (1 − λ)

[

x21

x22

]

.

Ponieważ x12, x22 ≥ 0, λ ∈ (0, 1), λ, 1 − λ > 0, to mamy x12 = x22 = 0.Ponadto, b = Ax1 = Bx11, a więc x11 = B−1b. Podobnie x21 = B−1b. Wobecrówności x11 = x21 = B−1b mamy x1 = x2 = x, zatem x jest punktemekstremalnym w X.Niech teraz x ∈ Rn będzie punktem ekstremalnym. Załóżmy, że x =

[x1, x2, . . . , xk, 0, 0, . . . , 0]T , gdzie xi > 0 dla i = 1, 2, . . . , k. Pokażemy, żekolumny a1, a2, . . . , ak są liniowo niezależne. Gdyby tak nie było, to istniałybyliczby λ1, λ2, . . . , λk ∈ R,

∑k

i=1 λ2i 6= 0 takie, że

∑k

i=1 λiai = 0. Niech λ =[λ1, λ2, . . . , λk, 0, 0, . . . , 0]T . Rozpatrzmy wektory x(1) = x+rλ, x(2) = x−rλ,gdzie r > 0, x(1), x(2) ≥ 0. Zauważmy, że

Ax(i) =

k∑

j=1

aj(xj + (−1)i−1rλj) =

k∑

j=1

ajxj + (−1)i−1r

k∑

j=1

ajλj = b.

Zatem x(1), x(2) ∈ X, a ponieważ r > 0, to x(1) 6= x(2). Ponadto x = 12x(1) +

12x(2), co przeczy temu, że x jest punktem ekstremalnym. Zatem kolumny

a1, a2, . . . , ak są liniowo niezależne. Czyli z n− k kolumn można wybrać m−k kolumn tak, aby razem z pierwszymi k kolumnami tworzyły m liniowoniezależnych wektorów. Załóżmy, że tymi kolumnami są ak+1, ak+2, . . . , am.Wobec tego macierz A może być zapisana w postaci A = [BN ], gdzie B =[a1, a2, . . . , am] ∈ C(A), rz (B) = m. Mamy b = Ax = BxB + NxN = BxB, a

stąd xB = B−1b, czyli x =

[

B−1b0

]

.

Wniosek 2.7. Niech X = x ∈ Rn; Ax = b, x ≥ 0, gdzie A ∈ Mm×n(R),b ∈ Rm, rz (A) = m. Zbiór X posiada skończenie wiele punktów ekstremal-nych.

Dowód. Wynika z twierdzenia 2.6 oraz faktu, że |C(A)| < ∞.

Page 13: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 13

Twierdzenie 2.8 (o istnieniu punktów ekstremalnych). Niech X = x ∈Rn; Ax = b, x ≥ 0, gdzie A ∈ Mm×n(R), b ∈ Rm, rz (A) = m. Jeśli X 6= ∅,tozbiór X posiada co najmniej jeden punkt ekstremalny.

Dowód. Ustalmy x ∈ X. Niech x = [x1, x2, . . . , xk, 0, 0, . . . , 0]T , gdziexi > 0, i = 1, 2, . . . , k. Rozpatrzmy kolumny a1, a2, . . . , ak macierzy A. Gdy sąone liniowo niezależne, to punkt x jest ekstremalny. Załóżmy, że a1, a2, . . . , ak

są liniowo zależne, to znaczy istnieją liczby λ1, λ2, . . . , λk ∈ R,∑k

i=1 λ2i 6= 0

oraz∑k

i=1 λiai = 0. Niech r = mini=1,2,...,kxi

λi; λi > 0 =

xj

λj. Możemy założyć,

że zbiór i ∈ 1, 2, . . . , k takich, że λi > 0 jest niepusty. Niech x′ ∈ Rn, gdzie

x′i =

xi − rλi dla i = 1, 2, . . . , k0 dla i = k + 1, k + 2, . . . , n

1. x′ ≥ 0, bo inaczej dla pewnego j ∈ 1, 2, . . . , k mielibyśmy xj − rλj <0, a stąd r >

xj

λji otrzymujemy sprzeczność z minimalnością.

2.Ax′ = b, rzeczywiście Ax′ =∑k

i=1(xi−rλi)ai =∑k

i=1 xiai−r∑k

i=1 λiai =Ax = b. Zatem x′ ∈ X.3. x′

i0= 0 dla pewnego indeksu i0 ∈ 1, 2, . . . , k. Wiemy, że istnieje

i0 ∈ 1, 2, . . . , k taki, że r =xi0

λi0

. Zatem x′i0

= xi0 − rλi0 = 0.Jeśli kolumny a1, a2, . . . , ak bez ai0 są liniowo niezależne, to punkt x′ jestekstremalny.

Lemat 2.9. Niech X = x ∈ Rn; Ax = b, x ≥ 0, gdzie A ∈ Mm×n(R),b ∈ Rm, rz (A) = m. Wektor v ∈ Rn jest wektorem kierunkowym niepustegozbioru X wtedy i tylko wtedy, gdy Av = 0 i v ≥ 0, v 6= 0.

Dowód. Niech v ∈ Rn będzie wektorem kierunkowym zbioru X. Weźmyx ∈ X, wtedy x+v ∈ X. Mamy Av = A(x+v−x) = A(x+v)−Ax = b−b = 0,bo v ≥ 0 jest wektorem kierunkowym.Załóżmy teraz, że Av = 0, v ≥ 0. Niech x ∈ X, λ > 0. Mamy A(x+λv) =

Ax + λAv = Ax = b. Ponieważ x ≥ 0, λ > 0, v ≥ 0, to x + λv ≥ 0 czylix + λv ∈ X.

Twierdzenie 2.10 (o charakteryzacji kierunków ekstremalnych). NiechX = x ∈ Rn; Ax = b, x ≥ 0, gdzie A ∈ Mm×n(R), b ∈ Rm, rz (A) = m.Wektor v jest kierunkiem ekstremalnym zbioru X wtedy i tylko wtedy, gdyistnieją B ∈ C(A), kolumna aj macierzy A nie występująca w macierzy Boraz λ > 0 takie, że

Page 14: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 14

(i) B−1aj ≤ 0,(ii) v = λ((−B−1aj)

T , eTj )T , gdzie ej jest wektorem mającym n − m

współrzędnych z których tylko j-ta współrzędna jest różna od zera i równasię jeden.

Dowód. Niech v = λ((−B−1aj)T , eT

j )T i B−1aj ≤ 0. Pokażemy, że v jestwektorem kierunkowym. Zauważmy, że v ≥ 0, v 6= 0 oraz

Av = [BN ]λ

[

−B−1aj

ej

]

= λB(−B−1aj) + λNej = λ(−aj + aj) = 0.

Zatem na mocy Lematu 2.9 wektor v jest kierunkowy.Niech v1, v2 będą wektorami kierunkowymi oraz niech v = λ1v1 + λ2v2,

gdzie λ1, λ2 > 0. Zauważmy, że n − m − 1 współrzędnych wektora v jestrówne 0. Zatem odpowiednie współrzędne wektorów v1 i v2 są również zerowei wektory te mogą być zapisane w postaci vT

1 = α1[vT11, e

Tj ], vT

2 = α2[vT21, e

Tj ],

gdzie α1, α2 > 0. Wiemy, że Av1 = Av2 = 0 zatem mamy

0 = Av1 = [BN ]α1[vT11, e

Tj ]T = α1(BvT

11 + NeTj ) = α1(BvT

11 + aTj ),

stąd v11 = −B−1aj. Podobnie v21 = −B−1aj , mamy więc v11 = v21, a wkonsekwencji v1 = λv2, gdzie λ = α1

α2. Ostatecznie otrzymujemy, że wektor v

jest ekstremalny.Niech v będzie wektorem ekstremalnym, v = [v1, v2, . . . , vk, 0, . . . , 0, vj,

0, . . . , 0]T , vi > 0 dla i = 1, 2, . . . , k oraz i = j. Pokażemy, że kolumnya1, a2, . . . , ak macierzy A są liniowo niezależne. Załóżmy, że tak nie jest tzn.istnieją λ1, λ2, . . . , λk ∈ R takie, że

∑k

i=1 λ2i 6= 0,

∑k

i=1 λiai = 0.Niech λ = [λ1, λ2, . . . , λk, 0, 0, . . . , 0]T . Rozpatrzmy wektory v(1) = v+rλ,

v(2) = v − rλ, gdzie r > 0, v(1), v(2) ≥ 0, r = mini=1,2,...,kvi

λi; λi > 0 =

vj

λj.

Zauważmy, że

Av(i) = A(v + (−1)i−1rλ) = Av + (−1)i−1rAλ = 0 + (−1)i−1rk

i=1

aiλi = 0,

Ponieważ r > 0, to v(1) 6= v(2) 6= v. Zatem v = 12v(1) + 1

2v(2), co przeczy te-

mu, że v jest wektorem ekstremalnym. Czyli kolumny a1, a2, . . . , ak są liniowoniezależne. Dodatkowo rz (A) = m, stąd k ≤ m więc możemy wybrać m − kwektorów ze zbioru ai; i = k + 1, k + 2, . . . , m, i 6= j, które razem z ko-lumnami a1, a2, . . . , ak są liniowo niezależne. Oznaczmy B = [a1, a2, . . . , am]

Page 15: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 15

∈ C(A). Zauważmy, że aj 6∈ B, bo a1, a2, . . . , ak, aj są liniowo zależne. Mamy0 = Av = [BN ]v = BvB + NvN = BvB + ajvj , a stąd vB = vj(−B−1aj),

czyli v = vj

[

−B−1aj

ej

]

. Ponieważ v ≥ 0, vj > 0 więc B−1aj ≤ 0.

Wniosek 2.11. Niech X = x ∈ Rn; Ax = b, x ≥ 0, gdzie A ∈Mm×n(R), b ∈ Rm, rz (A) = m. Zbiór X posiada skończenie wiele kierunkówekstremalnych.

Twierdzenie 2.12 (o reprezentacji). Niech X = x ∈ Rn; Ax = b, x ≥0, gdzie A ∈ Mm×n(R), b ∈ Rm, rz (A) = m. Niech x1, x2, . . . , xk będąwszystkimi punktami ekstremalnymi zbioru X, natomiast v1, v2, . . . , vl wszy-stkimi wektorami ekstremalnymi zbioru X. Wówczas x ∈ X wtedy i tylkowtedy, gdy istnieją takie liczby λ1, λ2, . . . , λk ≥ 0, których suma jest równajeden oraz takie liczby µ1, µ2, . . . , µl ≥ 0, że

x =k

i=1

λixi +l

i=1

µivi.

Dowód. Niech

Y = x ∈ Rn; ∃λ1,λ2,...,λk≥0,Pk

i=1λi=1, ∃µ1,µ2,...,µl≥0 x =

k∑

i=1

λixi +l

i=1

µivi.

Pokażemy, że X = Y . Zauważmy, że Y 6= ∅, bo z twierdzenia 2.8 istnieje conajmniej jeden punkt ekstremalny.(i) Y ⊂ X. Niech x ∈ Y , x =

∑k

i=1 λixi +∑l

i=1 µivi, λi, µj ≥ 0,∑k

i=1 λi =

1, i = 1, 2, . . . , k, j = 1, 2, . . . , l. Mamy x′ =∑k

i=1 λixi ∈ X. Niech x′i =

x′i−1 + µivi, gdzie x′

0 = x′. Wówczas ∀ix′i ∈ X czyli x = x′

l ∈ X.(ii) X ⊂ Y . Zauważmy, że Y jest wypukły i domknięty. Załóżmy, że

X \ Y 6= ∅ i niech z ∈ X \ Y , czyli z 6∈ Y . Na mocy Twierdzenia 13.18istnieją wówczas: wektor p ∈ Rn i α > 0 takie, że pT z > α oraz

(∗) pT (k

i=1

λixi +l

i=1

µivi) ≤ α,

dla dowolnych λi, µj takich, że∑k

i=1 λi = 1, λi, µj ≥ 0, i = 1, 2, . . . , k,j = 1, 2, . . . , l. Ponieważ µj można wybrać dowolnie duże, to nierówność (∗)

Page 16: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 16

jest prawdziwa tylko wtedy, gdy pT vi ≤ 0 dla i = 1, 2, . . . , l. Kładąc µi = 0dla wszystkich i, λi = 1 i λj = 0 dla j 6= i dostajemy z (∗), że pT xi ≤ αdla i = 1, 2, . . . , k. Ponieważ pT z > α, to pT z > pT xi dla dowolnego i. Zpowyższych rozważań wynika, że istnieje niezerowy wektor p, dla któregozachodzą następujące nierówności:

(∗∗) pT z > pT xi dla i = 1, 2, . . . , k,

(∗ ∗ ∗) pT vi ≤ 0 dla i = 1, 2, . . . , l.

Rozważmy punkt ekstremalny x określony następująco:

pT x = max1≤i≤k

pT xi.

Ponieważ x jest punktem ekstremalnym, to z Twierdzenia 2.6 x =

[

B−1b0

]

,

gdzie A = [BN ] oraz B−1b ≥ 0. Ponieważ z ∈ X, to Az = b oraz z ≥ 0.Zatem BzB + NzN = b i zB = B−1(b − NzN ) = B−1b − B−1NzN . NiechzT = [zT

B, zTN ]. Z (∗∗) mamy pT z − pT x > 0, ponadto niech pT = [pT

B, pTN ].

Wówczas

0 < pT z − pT x = pTBzB + pT

NzN − pTBxB − pT

NxN = pTB(B−1b − B−1NzN )+

pTN − pT

BB−1b = pTBB−1b− pT

BB−1NzN + pTN − pT

BB−1b = (pTN − pT

BB−1N)zN ,

bo zN ≥ 0, z ∈ X. Wobec tego istnieje indeks i0 > m taki, że zi0 > 0 orazpi0 − pT

BB−1ai0 > 0. Pokażemy, że nierówność B−1ai0 ≤ 0 nie jest praw-dziwa. Załóżmy, że B−1ai0 ≤ 0. Wówczas vT

i0= ((−B−1ai0)

T , eTi0), gdzie ei0

jest wektorem o n − m współrzędnych z jedynką (jako jedynym niezerowymelementem) na miejscu o indeksie i0, jest ekstremalnym wektorem kierunko-wym zbioru X na mocy Twierdzenia 2.10. Z (∗ ∗ ∗) wynika, że pT vi0 ≤ 0czyli pi0 − pT

BB−1ai0 ≤ 0, co daje sprzeczność. Zatem B−1ai0 6≤ 0. Zdefiniuj-my wektor x następująco:

x =

[

B−1b0

]

+ λ

[

−B−1ai0

ei0

]

,

gdzie λ = min1≤i≤mbi

yij

; yij > 0 = br

yrj

> 0, b = B−1b, yi0 = B−1ai0 .

Zauważmy, że x posiada nie więcej niż m dodatnich współrzędnych orazxr = 0, xi0 = λ. Wektor x ∈ X, ponieważ mamy

Ax = [BN ]x = BB−1b + λ(−BB−1ai0 + Nei0) = BB−1b = b.

Page 17: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 17

Zauważmy, że układ a1, a2, . . . , ar−1, ar+1, ar+2, . . . , am, ai0 jest liniowo nieza-leżny. Mamy yi0 = B−1ai0 zatem ai0 = Byi0. Wówczas

ai0 = α1a1 + α2a2 + · · ·+ αmam oraz αr 6= 0.

Zatem zbiór wektorów a1, a2, . . . , am\ar, ai0 jest liniowo niezależny. NiechB = [a1, a2, . . . , ar−1, ar+1, ar+2, . . . , am, ai0 ]. Mamy B ∈ C(A), A = [B, N ],

b = Ax = [B, N ]x = BxB + NxN = BxB.

Stąd xB = B−1

b ≥ 0. Zatem x =

[

B−1b0

]

i z Twierdzenia 2.6 x jest punktem

ekstremalnym. Ponadto

pT x = [pTB, pT

N ]

[

b − λyi0

λei0

]

= pTB(b − λyi0) + pT

Nλei0 = pTBb − λpT

Byi0 + λpi0 =

= pTBB−1b + λ(pi0 − pT

BB−1ai0) = pTBx + λ(pi0 − pT

BB−1ai0).

Ponieważ λ > 0 oraz pi0−pTBB−1ai0 > 0, to pT x > pT xi0 . Zatem skonstruowa-

liśmy punkt ekstremalny x, dla którego pT x > pT x, co daje sprzeczność,ponieważ pTx = max1≤i≤k pT xi.

Wniosek 2.13 (o istnieniu kierunkowych wektorów ekstremalnych). NiechX = x ∈ Rn; Ax = b, x ≥ 0, gdzie A ∈ Mm×n(R), b ∈ Rm, rz(A) = m.Wówczas X posiada kierunkowy wektor ekstremalny wtedy i tylko wtedy, gdyX jest nieograniczony.

Dowód. Oczywiście jeśli zbiór X posiada kierunkowy wektor ekstremal-ny, to X jest nieograniczony. Pokażemy implikację przeciwną. W tym ce-lu załóżmy, że X nie posiada kierunkowych wektorów ekstremalnych. Niechx ∈ X, x =

∑k

i=1 λixi,∑k

i=1 λi = 1, λi ≥ 0 oraz niech x1, x2, . . . , xk będąpunktami ekstremalnymi. Mamy

‖ x ‖=‖k

i=1

λixi ‖≤k

i=1

|λi| ‖ xi ‖≤ max1≤i≤k

‖ xi ‖.

Zatem X jest ograniczony. Otrzymana sprzeczność dowodzi, że zbiór X po-siada kierunkowy wektor ekstremalny.

Page 18: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 18

Twierdzenie 2.14. Niech X = x ∈ Rn; Ax = b, x ≥ 0, gdzie A ∈Mm×n(R), b ∈ Rm, rz (A) = m i niech x1, x2, . . . , xk będą wszystkimi punk-tami ekstremalnymi, zaś v1, v2, . . . , vl wszystkimi wektorami ekstremalnymizbioru X, c ∈ Rn. Wówczas infcT x; x ∈ X ∈ R ⇔ ∀j=1,2,...,lc

T vj ≥ 0. Jeżeli∀j=1,2,...,lc

T vj ≥ 0, to ∃i∈1,2,...,k infcT x; x ∈ X = cT xi.

Dowód. Z Twierdzenia 2.12 wiemy, że dowolny element x spełnia wa-runki Ax = b, x ≥ 0 wtedy i tylko wtedy, gdy x =

∑ki=1 λixi +

∑lj=1 µjvj ,

λi, µj ≥ 0,∑k

i=1 λi = 1, i = 1, 2, . . . , k, j = 1, 2, . . . , l. Zatem cT x =

cT (∑k

i=1 λixi +∑l

j=1 µjvj), gdzie λi, µj ≥ 0,∑k

i=1 λi = 1, i = 1, 2, . . . , k,j = 1, 2, . . . , l. Jeśli dla pewnego j, cT vj < 0, to nasze wyrażenie jest nie-ograniczone, ponieważ µj możemy wybrać dowolnie duże. Zatem infcT x; x ∈X ∈ R wtedy i tylko wtedy, gdy cT vj ≥ 0 dla dowolnego j = 1, 2, . . . , l.Jeśli cT vj ≥ 0 dla dowolnego j = 1, 2, . . . , l, to w celu osiągnięcia najmniej-

szej wartości możemy przyjąć µj = 0 dla j = 1, 2, . . . , l. Zatem

infcT (

k∑

i=1

λixi +

l∑

j=1

µjvj) = infcT

k∑

i=1

λixi; λi ≥ 0,

k∑

i=1

λi = 1.

Niech λi0 = 1 oraz λi = 0 dla i 6= i0, gdzie indeks i0 jest taki, że cT xi0 =min1≤i≤kc

T xi. Wówczas cT xi0 ≤∑k

i=1 λicT xi, co kończy dowód.

Niech X = x ∈ R; Ax = b, x ≥ 0, gdzie A ∈ Mm×n(R), b ∈ Rm,rz (A) = m. Zajmiemy się szukaniem infcT x; x ∈ X. Niech x będzie punk-tem ekstremalnym zbioru X. Z Twierdzenia 2.6 wiemy, że istnieje B ∈ C(A),

B−1b ≥ 0 oraz A = [BN ], x =

[

B−1b0

]

. Weźmy dowolny x ∈ X, x =

[

xB

xN

]

.

Wówczas Ax = b tzn. [BN ]

[

xB

xN

]

= b, skąd dostajemy BxB + NxN = b.

Zatem xB = B−1b − B−1NxN . Policzmy cT x

cT x = cTBxB + cT

NxN = cT B−1b − cTBB−1NxN + cT

NxN = cTBxB + cT

NxN+

−cTBB−1NxN + cT

NxN = cT x + (cTN − cT

BB−1N)xN .

Przypadek 1:

cTN − cT

BB−1N ≥ 0. Ponieważ x ≥ 0, to xN ≥ 0 i w konsekwencji cT x ≥ cT x.Zatem x jest szukanym punktem.

Page 19: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 19

Przypadek 2:

cTN − cT

BB−1N 6≥ 0. W szczególności niech dla pewnego indeksu j będziecTj − cT

BB−1aj < 0 (stąd cT x < cT x).

Przypadek 2a:

Zakładamy, że B−1aj ≤ 0. Wówczas biorąc vj =

[

−B−1aj

ej

]

, gdzie ej jest

wektorem o n − m współrzędnych mającym jedynkę na miejscu j, a na po-zostałych miejscach zero, otrzymujemy kierunkowy wektor ekstremalny. Wo-bec tego x = x + vj, x ∈ X. Z równości cT x = cT x + cT vj oraz cT x =cT x + (cT

N − cTBB−1N)xN dostajemy

cT vj = (cTN − cT

BB−1N)xN = cTj − cT

BB−1aj < 0,

czyli problem nie posiada rozwiązania.

Przypadek 2b:

Zakładamy, że B−1aj 6≤ 0. Weźmy vj =

[

−B−1aj

ej

]

i oznaczmy y = B−1aj ,

b = B−1b. Niech λ = min1≤i≤mbi

yi; yi > 0 =

bi0

yi0

, x = x + λvj . Pokażemy, że

x ∈ X. Wiemy, że Ax = b, natomiast Avj = [BN ]vj = [BN ]

[

−B−1aj

ej

]

=

−aj + aj = 0, zatem Ax = b. Musimy jeszcze udowodnić, że x ≥ 0. Dlai = 1, 2, . . . , m mamy

x = xi + λ(vj)i = (B−1b)i +bi0

yi0

(−B−1aj)i = bi −bi0

yi0

yi.

Rozważmy dwa przypadki:1. jeśli yi ≤ 0, to oczywiście xi ≥ 0,2. jeśli yi > 0, to bi

yi≥

bi0

yi0

, a stąd xi ≥ 0.Dla i = m + 1, m + 2, . . . , n oraz i 6= j mamy xi = 0. Dla i = j mamy xi =λ > 0. Wektor x posiada niezerowe współrzędne co najwyżej na miejscach1, 2, . . . , i0−1, i0 +1, . . . , m, j. Pokażemy, że a1, a2, . . . , ai0−1, ai0+1, . . . , am, aj

są liniowo niezależne. Wówczas x będzie punktem ekstremalnym. Załóżmy,

Page 20: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 20

że∑

i∈1,...,m,j\i0αiai = 0, mamy

0 =∑

i∈1,...,m,j\i0

αiai =∑

i∈1,...,m\i0

αiai+αjaj =∑

i∈1,...,m\i0

αiai+αjBy =

=∑

i∈1,...,m\i0

αiai + αj

m∑

i=1

yiai =

m∑

i=1

(αi + αjyi)ai,

gdzie αi0 = 0. Wtedy αi + αjyi = 0 oraz αjyi0 = 0. Zatem αj = 0, a stądαi = 0.Niech B′ = [a1, a2, . . . , ai0−1, ai0+1, . . . , am, aj] oraz A = [B′N ′]. Wówczas

Ax = b, stąd b = B′xB +N ′xN = B′xB , czyli xB = B′−1b tzn.[

−B′−1b0

]

oraz

B′−1b ≥ 0. Ponadto

cT x = cT (x + λvj) = cT x + cT λvj = cT x + λcT

[

−B−1aj

ej

]

= cT x+

+λ(cTj − cT

BB−1aj) ≤ cT x.

2.3. Metoda sympleksowa

Przypomnijmy, że chcemy zminimalizować cT x przy warunkach Ax = b,x ≥ 0.

Algorytm sympleks

Krok 1. Wziąć dowolny punkt ekstremalny x zbioru X o zmiennych ba-zowych xB.

Krok 2. Wyliczyć α = cTBB−1N − cT

N . Jeżeli α ≤ 0, to zakończyć algo-rytm (punkt x jest szukanym punktem). W przeciwnym wypadku przejść dokroku 3.

Krok 3. Wybrać maksymalną dodatnią współrzędną α. Niech tą współ-rzędną będzie αj , zatem αj = cT

BB−1aj − cTj . Jeśli yj = B−1aj ≤ 0, to

zakończyć algorytm (brak rozwiązania). W przeciwnym wypadku przejść do

Page 21: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 21

kroku 4.

Krok 4. Skonstruować nowy punkt ekstremalny o zmiennych bazowychxB zgodnie z opisanym powyżej procesem. Przejść do kroku 2.

Przykład 2.15. Znaleźć minimum funkcji f(x1, x2) = 2x1 − 9x2 przywarunkach

x1 + x2 ≤ 6,

−x1 + 3x2 ≤ 3,

x1 ≥ 0, x2 ≥ 0.

Zmiana warunków funkcji f(x1, x2) = 2x1 − 9x2:

x1 + x2 + x3 = 6,

−x1 + 3x2 + x4 = 3,

x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0,

gdzie x3, x4 są zmiennymi dopełniającymi. Mamy

A =

[

1 1 1 0−1 3 0 1

]

, b =

[

63

]

, c = [2,−9, 0, 0]T .

Szukamy macierzy B, dla której B−1b ≥ 0. Weźmy B = [a3, a4] =

[

1 00 1

]

,

wówczas B−1 = B i B−1b = b ≥ 0. Liczymy cTBB−1N − cT

N :

cTBB−1N − cT

N = [0, 0]

[

1 00 1

] [

1 1−1 3

]

− [2,−9] = [−2, 9] 6≤ 0.

Obliczamy y2 = B−1a2 =

[

1 00 1

] [

13

]

=

[

13

]

. Ponieważ[

13

]

6≤ 0, to konstru-

ujemy nowy punkt ekstremalny. Mamy

λ = mini=3,4

bi

y2i

; y2i > 0

= mini=3,4

6

1,3

3

= 1,

v2 =

[

e2

−B−1a2

]

, x = x + λv2 =

0063

+ 1

01−1−3

=

0150

.

Page 22: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 22

Teraz B = [a2, a3] =

[

1 13 0

]

, wówczas B−1 =

[

0 13

1 −13

]

. Ponownie liczymy

cTBB−1N − cT

N :

cTBB−1N − cT

N = [−9, 0]

[

0 13

1 −13

] [

1 0−1 1

]

− [2, 0] = [1,−3] 6≤ 0.

Obliczamy y1 = B−1a1 =

[

0 13

1 −13

] [

1−1

]

=

[

−13

43

]

. Ponieważ[

−13

43

]

6≤ 0, to

konstruujemy kolejny punkt ekstremalny. Mamy

λ = mini=2,3

bi

y1i

; y1i > 0

= min

543

=15

4,

x = x + λv1 =

0150

+15

4

113

−43

0

=

15494

00

.

Teraz przyjmujemy B = [a1, a2] =

[

1 1−1 3

]

, wobec tego B−1 =

[

34

−14

14

14

]

.

Liczymy cTBB−1N − cT

N :

cTBB−1N − cT

N = [2,−9]

[

34

−14

14

14

] [

1 00 1

]

− [0, 0] = [−3

4,−

11

4] < 0.

Zatem kończymy obliczenia i otrzymujemy wartość optymalną f(x1, x2) =2x1 − 9x2 = 215

4− 99

4= −51

4.

Lemat 2.16. Niech B, B ∈ Mm×m(R) będą macierzami nieosobliwymiróżniącymi się jedną kolumną, tzn. B = [a1, a2, . . . , al−1, al, al+1, . . . , am],B = [a1, a2, . . . , al−1, ak, al+1, . . . , am] oraz niech B−1ak = y = [y1, y2, . . . , ym]T .

Wówczas B−1

= FB−1, gdzie macierz F posiada jedynki na głównej przekąt-nej, l-tą kolumnę postaci fl = 1

yl[−y1,−y2, . . . ,−yl−1, 1,−yl+1, . . . ,−ym]T , a

na pozostałych miejscach zera.

Dowód. B = B + (ak − al)eTl = B + (ak − Bel)e

Tl = B(I + B−1(ak −

Bel)eTl ) = B(I + (B−1ak − el)e

Tl ) = B(I + (y − el)e

Tl ), zatem

B−1

= (I + (y − Iel)eTl )−1B−1.

Page 23: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 23

Trzeba pokazać, że F = (I + (y − Iel)eTl )−1. Zauważmy, że I + (y − Iel)e

Tl

jest macierzą jednostkową z l-tą kolumną y. Ponadto det(I + (y − Iel)eTl ) =

yl 6= 0.

Przykład 2.17. Znaleźć maksimum funkcji f(x1, x2) = x1 + 2x2 przywarunkach

x1 + x2 ≤ 5,

−x1 + x2 ≥ 0,

3x1 + 7x2 ≤ 27,

x1 ≥ 0, x2 ≥ 0.

Przeformułowanie i zmiana warunków funkcji: znaleźć minimum funkcjif(x1, x2) = −x1 − 2x2 przy warunkach

x1 + x2 + x3 = 5,

x1 − x2 + x4 = 0,

3x1 + 7x2 + x5 = 27,

x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0,

gdzie x3, x4, x5 są zmiennymi dopełniającymi. Mamy

A =

1 1 1 0 01 −1 0 1 03 7 0 0 1

, b =

5027

, c = [−1,−2, 0, 0, 0]T .

Szukamy macierzy B, dla której B−1b ≥ 0. Weźmy B = [a3, a4, a5] =

1 0 00 1 00 0 1

, wówczas B−1 = B i B−1b = b ≥ 0, xT = [0, 0, 5, 0, 27]. Liczymy

cTBB−1N − cT

N :

cTBB−1N − cT

N = [0, 0, 0]

1 0 00 1 00 0 1

1 11 −13 7

− [−1,−2] = [1, 2] 6≤ 0.

Page 24: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 24

Obliczamy y2 = B−1a2 =

1 0 00 1 00 0 1

1−17

=

1−17

. Ponieważ

1−17

6≤ 0,

to konstruujemy nowy punkt ekstremalny. Mamy

λ = mini=3,4,5

bi

y2i

; y2i > 0

= min

5

1,27

7

=27

7,

v2 =

[

e2

−B−1a2

]

, x = x + λv2 =

005027

+27

7

01−11−7

=

027787277

0

.

Teraz zamiast B = [a2, a3, a4] =

1 1 0−1 0 17 0 0

, możemy rozważać łatwiejszą

do dalszych obliczeń macierz B = [a3, a4, a2] =

1 0 10 1 −10 0 7

. Mamy B−1

=

FB−1 = F =

1 0 −17

0 1 17

0 0 17

, B−1

b =

1 0 −17

0 1 17

0 0 17

5027

=

87277277

, l = 3, yl = 7.

Przykład 2.18. Przedstawimy rozwiązanie zagadnienia z Przykładu 1.1wykorzystując tablice sympleksowe. Nasz PL-model ma następującą postać.Znaleźć maksimum funkcji f(x1, x2) = 3x1 + 2x2 przy warunkach

x1 + x2 + x3 = 9,

3x1 + x2 + x4 = 18,

3x1 + x5 = 7,

3x2 + x6 = 6,

x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0,

gdzie x3, x4, x5, x6 są zmiennymi dopełniającymi. Mamy

A =

1 1 1 0 0 03 1 0 1 0 01 0 0 0 1 00 1 0 0 0 1

, b =

91876

, c = [3, 2, 0, 0, 0, 0]T .

Page 25: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 25

Tablica sympleksowa dla powyższego zagadnienia wygląda następująco:

3 2 0 0 0 0 0

1 1 1 0 0 0 93 1 0 1 0 0 181 0 0 0 1 0 70 1 0 0 0 1 6

Początkowym rozwiązaniem dopuszczalnym jest x1 = 0, x2 = 0, x3 = 9,

x4 = 18, x5 = 7, x6 = 6. Ponadto B = [a3, a4, a5, a6] =

1 0 0 00 1 0 00 0 1 00 0 0 1

,

N = [a1, a2] =

1 13 11 00 1

. Największym dodatnim współczynnikiem funkcji ce-

lu jest 3, zatem x1 wchodzi do nowych zmiennych bazowych. Aby sprawdzić,która ze zmiennych opuszcza zbiór zmiennych bazowych liczymy odpowied-nie minimum: min9

1, 18

3, 7

1 = 18

3= 6. Zatem x4 opuszcza zbiór zmiennych

bazowych. Mamy teraz B = [a1, a3, a5, a6] oraz N = [a2, a4].

3 2 0 0 0 0 0

1 1 1 0 0 0 93 1 0 1 0 0 181 0 0 0 1 0 70 1 0 0 0 1 6

Stosując eliminację Gaussa oraz dokonując odpowiednich uproszczeń otrzy-mujemy następującą tablicę sympleksową:

0 1 0 −1 0 0 −18

0 23

1 −13

0 0 31 1

30 1

30 0 6

0 −13

0 −13

1 0 10 1 0 0 0 1 6

Jedynym dodatnim współczynnikiem funkcji celu jest teraz 2, czyli x2 wcho-dzi do zbioru nowych zmiennych bazowych. Liczymy odpowiednie minimum:min9

2, 18

1, 6

1 = 9

2. Zatem zmienna x3 opuszcza zbiór zmiennych bazowych.

Mamy teraz B = [a1, a2, a5, a6] oraz N = [a3, a4].

Page 26: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 26

0 1 0 −1 0 0 −18

0 23

1 −13

0 0 31 1

30 1

30 0 6

0 −13

0 −13

1 0 10 1 0 0 0 1 6

Stosując eliminację Gaussa oraz dokonując odpowiednich uproszczeń otrzy-mujemy następującą tablicę sympleksową:

0 0 −112

−12

0 0 −2212

0 1 112

−12

0 0 412

1 0 −12

12

0 0 412

0 0 12

−12

1 0 212

0 0 −112

12

0 1 112

Ponieważ nie ma już dodatnich współczynników funkcji celu otrzymujemywartość optymalną f(x1, x2) = 3x1 + 2x2 = 3(41

2) + 2(41

2) = 221

2.

Problem znalezienia pierwszego punktu ekstremalnego

Przypomnijmy, że szukamy min cT x, przy założeniach

Ax = b, x ≥ 0, rz (A) = m, b ∈ Rm.

W podanym wcześniej algorytmie sympleks w kroku pierwszym zakładamyistnienie punktu ekstremalnego. Z Twierdzenia 2.6 wynika, że znalezienie po-czątkowego punktu ekstremalnego związane jest z rozbiciem macierzy A namacierze B oraz N tak, aby B−1b ≥ 0. W Przykładach 2.15 i 2.17 mieliśmyna początku B = I, b ≥ 0.

Dwuetapowy sposób znajdowania pierwszego punktuekstremalnego (bazowego)

Zakładamy, że b ≥ 0. Jeśli bi < 0, to mnożymy odpowiednie równanie przez

-1. Rozpatrzmy pomocnicze zagadnienie minimalizacji. Mamy [AI]

[

xy

]

= b i

szukamy następującego minimum

(∗) min

m∑

i=1

yi,

Page 27: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 27

gdzie Ax + Iy = b, x ≥ 0, y ≥ 0. Do rozwiązania zagadnienia (∗) stosujemymetodę sympleks, ponieważ ma ono początkowe rozwiązanie dopuszczalne.

Zaczynamy następująco B = I, B−1b =

[

0b

]

, x = 0, y = b. Jeśli znajdziemy

optymalne rozwiązanie bazowe dla (∗), takie że∑m

i=1 yi = 0, to otrzymamytakże bazę dającą rozwiązanie xB (czyli Ax = b). Jeśli (∗) posiada dodatnieminimum, to nie ma rozwiązania dopuszczalnego dla Ax = b, x ≥ 0. Mamy

Etap I - znalezienie rozwiązania dopuszczalnego dla Ax = b, x ≥ 0 lubstwierdzenie, że nie istnieje takie rozwiązanie.

Etap II - użycie rozwiązania z etapu pierwszego do rozwiązania nastę-pującego zagadnienia: znaleźć minimum cT x przy warunkach Ax ≤ b, x ≥ 0.

Przykład 2.19. Niech dany będzie następujący układ równań:

2x1 + x2 + 2x3 = 4,

3x1 + 3x2 + x3 = 3,

x1 ≥ 0, x2 ≥ 0, x3 ≥ 0.

Mamy

A =

[

2 1 23 3 1

]

, b =

[

43

]

.

Rozważmy pomocnicze zagadnienie minimalizacji. Znaleźć minimum funkcjif(y1, y2) = y1 + y2 przy warunkach

2x1 + x2 + 2x3 + y1 = 4,

3x1 + 3x2 + x3 + y2 = 3,

x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, y1 ≥ 0, y2 ≥ 0.

Mamy

[AI]

[

xy

]

=

[

2 1 2 1 03 3 1 0 1

]

x1

x2

x3

y1

y2

=

[

43

]

= b, c = [0, 0, 0, 1, 1]T .

Page 28: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 28

Ponadto B =

[

1 00 1

]

, wówczas B−1 = B i B−1b = b ≥ 0. Liczymy cTBB−1N −

cTN :

cTBB−1N − cT

N = [1, 1]

[

1 00 1

] [

2 1 23 3 1

]

− [0, 0, 0] = [5, 4, 3] 6≤ 0.

Obliczamy y1 =

[

23

]

. Ponieważ[

23

]

6≤ 0, to konstruujemy nowy punkt eks-

tremalny. Mamy

λ = min

4

2,3

3

= 1,

x =

00043

+ 1

100−2−3

=

10020

.

Teraz B =

[

2 13 0

]

, wówczas B−1 =

[

0 13

1 −23

]

oraz

cTBB−1N − cT

N = [0, 1]

[

0 13

1 −23

] [

1 2 03 1 1

]

− [0, 0, 1] = [−1,4

3,−

5

3] 6≤ 0.

Obliczamy y2 =

[

0 13

1 −23

] [

13

]

=

[

1−1

]

6≤ 0, zatem konstruujemy kolejny

punkt ekstremalny. Mamy

λ = 1, x =

10020

+ 1

−10110

=

00130

.

Teraz B =

[

2 11 0

]

, wobec tego B−1 =

[

0 11 −2

]

oraz

cTBB−1N − cT

N = [0, 1]

[

0 11 −2

] [

2 1 03 3 1

]

− [0, 0, 1] = [−4,−5,−3] < 0.

Page 29: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 29

Zatem kończymy obliczenia i otrzymujemy wartość optymalną f(y1, y2) =y1 + y2 = 3 + 0 = 3. Ponieważ otrzymaliśmy dodatnie minimum, to nie marozwiązania dopuszczalnego dla Ax = b, x ≥ 0.

Przykład 2.20. Znaleźć minimum funkcji f(x1, x2, x3) = 2x1 + x2 − 2x3

przy warunkachx1 + 2x2 + x3 = 7,

2x1 + 3x2 + x3 = 12,

x1 ≥ 0, x2 ≥ 0, x3 ≥ 0.

Mamy

A =

[

1 2 12 3 1

]

, b =

[

712

]

.

Rozważmy pomocnicze zagadnienie minimalizacji. Znaleźć minimum funkcjif(y1, y2) = y1 + y2 przy warunkach

x1 + 2x2 + x3 + y1 = 7,

2x1 + 3x2 + x3 + y2 = 12,

x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, y1 ≥ 0, y2 ≥ 0.

Mamy

[AI]

[

xy

]

=

[

1 2 1 1 02 3 1 0 1

]

x1

x2

x3

y1

y2

=

[

712

]

= b, c = [0, 0, 0, 1, 1]T .

Ponadto B =

[

1 00 1

]

, wówczas B−1 = B i B−1b = b ≥ 0. Liczymy cTBB−1N −

cTN :

cTBB−1N − cT

N = [1, 1]

[

1 00 1

] [

1 2 12 3 1

]

− [0, 0, 0] = [3, 5, 2] 6≤ 0.

Obliczamy y2 =

[

23

]

. Ponieważ[

23

]

6≤ 0, to konstruujemy nowy punkt eks-

tremalny. Mamy

λ = min

7

2,12

3

=7

2,

Page 30: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 30

x =

000712

+7

2

010−2−3

=

072

0032

.

Teraz B =

[

2 03 1

]

, wówczas B−1 =

[

12

0−3

21

]

oraz

cTBB−1N − cT

N = [0, 1]

[

12

0−3

21

] [

1 1 12 1 0

]

− [0, 0, 1] = [1

2,−

1

2,−

5

2] 6≤ 0.

Obliczamy y1 =

[

12

0−3

21

] [

12

]

=

[

1212

]

6≤ 0, zatem konstruujemy kolejny punkt

ekstremalny. Mamy

λ = 3, x =

072

0032

+ 3

1−1

2

00−1

2

=

32000

.

Teraz B =

[

1 22 3

]

, wobec tego B−1 =

[

−3 22 −1

]

oraz

cTBB−1N − cT

N = [0, 0]

[

−3 22 −1

] [

1 1 01 0 1

]

− [0, 1, 1] = [0,−1,−1] < 0.

Otrzymujemy wartość optymalną f(y1, y2) = y1 + y2 = 0 + 0 = 0. Zatemmamy rozwiązanie dopuszczalne dla Ax = b, x ≥ 0.

Powróćmy do rozwiązania zagadnienia początkowego. Wykorzystując powyż-sze obliczenia mamy

cTBB−1N − cT

N = [2, 1]

[

−3 22 −1

] [

11

]

− [−2] = [1] 6≤ 0.

Obliczamy y3 =

[

−3 22 −1

] [

11

]

=

[

−11

]

6≤ 0, zatem konstruujemy kolejny

punkt ekstremalny. Mamy

λ = 2, x =

320

+ 2

1−11

=

502

.

Page 31: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 31

Teraz B =

[

1 12 1

]

, wobec tego B−1 =

[

−1 12 −1

]

oraz

cTBB−1N − cT

N = [2,−2]

[

−1 12 −1

] [

23

]

− [1] = [−1] < 0.

Zatem kończymy obliczenia i otrzymujemy wartość optymalną f(x1, x2, x3) =2x1 + x2 − 2x3 = 10 − 4 = 6.

Zbieżność i złożoność czasowa

Metoda sympleks opiera się na fakcie, że optymalna wartość progra-mu liniowego, jeśli istnieje, jest zawsze osiągnięta w rozwiązaniu bazowym.Niezdegenerowanym bazowym rozwiązaniem dopuszczalnym nazy-wamy bazowe rozwiązanie dopuszczalne, w którym wszystkie zmienne bazo-we są dodatnie (xB > 0). Przy założeniu, że wszystkie bazowe rozwiązaniadopuszczalne są niezdegenerowane, metoda sympleks znajduje rozwiązanieoptymalne w skończonej liczbie iteracji, ponieważ liczba możliwych baz jestskończona i żadna z nich nie powtarza się. W przypadku degeneracji możemyspotkać ciąg iteracji, generujący taki ciąg baz Bi, Bi+1, . . . , Bj, że wszystkieodpowiadają temu samemu bazowemu rozwiązaniu dopuszczalnemu i tej sa-mej wartości funkcji celu. Może się również zdarzyć, że Bi = Bj i metodasympleks wejdzie w cykl nieskończony. Dodajmy również, że istnieją przykła-dy pokazujące, iż złożoność czasowa metody sympleks nie jest ograniczonawielomianowo. Dolne ograniczenie czasu działania tej metody jest wykładni-cze.

2.3.1. Dualna metoda programowania liniowego

Szukamymax yT b

przy założeniachyT A ≤ cT , y ∈ Rm

(nie zakłada się, że y ≥ 0).Zauważmy, że yT b = yTAx ≤ cT x, x ≥ 0. Załóżmy, że yT b = cT x, Ax = b,

AT y ≤ c dla pewnych x oraz x. Wtedy (ćwiczenia) y, x są rozwiązaniami

Page 32: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 32

optymalnymi dla odpowiednich zagadnień (x dla szukania minimum cT x przywarunkach Ax = b, x ≥ 0, a y dla szukania maksimum yT b przy warunkachyTA ≤ cT ).Zagadnienie min cT x, Ax = b, x ≥ 0, będziemy nazywać prymalnym.Znane jest nastepujące twierdzenie.

Twierdzenie 2.21. Jeśli jedno z zadań programowania liniowego (pry-malne lub dualne) posiada skończone rozwiązanie, to takie rozwiązanie po-siada drugie z tych zadań. Ponadto wartości funkcji celu obu powyższych za-gadnień są takie same.

Załóżmy, że xB = B−1b jest rozwiązaniem (dopuszczalnym i optymal-nym) dla zagadnienia prymalnego (min cT x, Ax = b, x ≥ 0). Niech yT =cTBB−1. Wiemy, że cT

N − cTBB−1N ≥ 0 stąd cT

BB−1N ≤ cTN . Okazuje się, że

wektor yT = cTBB−1 jest rozwiązaniem optymalnym zagadnienia dualnego.

MamyyTA = yT [BN ] = [cT

BB−1B, cTBB−1N ] ≤ [cT

B, cTN ] = cT

jak również równość funkcji celu

yT b = cTBB−1b = cT

BxB = cTBxB + cT

NxN =

= [cTB, cT

N ]

[

xB

xN

]

= cT x.

Zatem jeśli zagadnienie prymalne posiada rozwiązanie optymalne xB = B−1b,to zagadnienie dualne ma rozwiązanie optymalne yT = cT

BB−1, które możnabez trudności policzyć, ponieważ macierz odwrotna do bazy jest znana.

Związek pomiędzy rozwiązaniami optymalnymi x oraz y podaje następują-ce twierdzenie.

Twierdzenie 2.22 (o różnicach dopełniających). Jeżeli x, y są odpo-wiednio punktami ekstremalnymi dla zagadnienia prymalnego i dualnego, tosą one rozwiązaniami optymalnymi wtedy i tylko wtedy, gdy dla każdego ispełnione są warunki(i) jeśli xi > 0, to yTai = ci

(ii) jeśli yTai < ci, to xi = 0,gdzie ai oznacza i-tą kolumnę macierzy A.

Z powyższego twierdzenia bezpośrednio wynika następujący fakt.

Page 33: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 33

Wniosek 2.23. Jeżeli x, y są odpowiednio rozwiązaniami optymalnymidla zagadnienia prymalnego i dualnego, to

(cT − yTA)x = 0.

Algorytm dualny sympleks

Dane jest rozwiązanie bazowe xB = B−1b takie, że wektor yT = cTBB−1

spełnia nierówność cTN − yTN ≥ 0.

Krok 1. Jeśli xB ≥ 0, to xB jest rozwiązaniem optymalnym i obliczeniasą zakończone. W przeciwnym razie wybrać ujemną składową xB, niech tąskładową będzie składowa o numerze l (zmienna xl zostaje usunięta ze zbioruzmiennych bazowych, a l-ta kolumna w macierzy A zostaje usunięta z bazyB).

Krok 2. Obliczyć blaj = ulj dla j = m+1, m+2, . . . , n, gdzie bl jest l-tymwierszem macierzy B−1, aj j-tą kolumną macierzy A. Jeśli wszystkie ulj ≥ 0,to zagadnienie dualne nie ma skończonego rozwiązania. W przeciwnym raziedla wszystkich j = m + 1, m + 2, . . . , n takich, że ulj < 0 obliczyć

zj = yTaj = cTBB−1aj

oraz wyznaczyć

ε = minzj − cj

ulj

; ulj < 0.

Niech ε = zk−ck

ulk(k-ta kolumna macierzy A zastępuje w bazie l-tą kolumnę

macierzy A).

Krok 3. Obliczyć nowy wektor yT w następujący sposób:

yT = yT − εbl.

Krok 4. Uaktualnić odwrotną macierz bazową B−1 oraz obliczyć nowerozwiązanie xB = B−1b.

Krok 5. Wrócić do kroku pierwszego.

Page 34: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 34

Uwaga 2.24. Nową zmienną y można obliczyć tak jak w kroku 3 lubwykorzystując zależność yT = cT

BB−1 po tym, gdy macierz B−1 została uak-tualniona. Wartość dualnej funkcji celu yT b jest zwiększana w każdej kolejnejiteracji. Procedura dualna sympleks zostaje zakończona po skończonej liczbiekroków, gdy xB ≥ 0.

2.4. Elementy programowania całkowitoliczbowego

Rozważmy zagadnienie optymalizacji z kawałkami liniowym ogranicze-niem lub funkcją celu jednej zmiennej przedstawione na poniższym rysunku

y

f(y)

y1 y2 y3 yn-2 yn-1 yn

Dowolna wartość y leżąca pomiędzy y1 oraz yn może być przedstawionaw postaci wypukłej kombinacji zmiennych yi oraz yi+1 w następujący spo-sób: y = λiyi + λi+1yi+1, gdzie λi + λi+1 = 1, λi, λi+1 ≥ 0. Podobnief(y) = λif(yi) + λi+1f(yi+1). Za pomocą zmiennych całkowitoliczbowychmożemy wyrazić f(y) w całym przedziale [y1, yn] w następujący sposób:

f(y) =n

i=1

λif(yi),

gdzie

n∑

i=1

λiyi = y,n

i=1

λi = 1, λi ≥ 0, i = 1, 2, . . . , n, λ1 ≤ x1, λi ≤ xi−1 + xi,

i = 2, 3, . . . , n−1, λn ≤ xn−1,

n−1∑

i=1

xi = 1, xi = 0 lub xi = 1, i = 1, 2, . . . , n−1.

Page 35: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 35

Tylko jedna zmienna xi może przyjąć wartość równą 1, a stąd tylko λi orazλi+1 mogą być niezerowe, czyli λi + λi+1 = 1. Mamy zatem do czynieniaze zmiennymi zero-jedynkowymi x1, x2, . . . , xn−1, które określają przedziałzawierający y oraz ze zmiennymi ciągłymi λ1, λ2, . . . , λn, które dokładnieokreślają wartość y.Powyższa technika może być użyta do przybliżania funkcji nieliniowych

funkcjami kawałkami liniowymi i do przekształcania zagadnień z nieliniowymifunkcjami celu do zagadnień całkowitoliczbowych programowania liniowego.W przypadku ogólnym nie można rozwiązywać zagadnień całkowitoliczbo-

wych za pomocą metody sympleks i należy posługiwać się specjalnymi techni-kami obliczeniowymi. Poniżej przedstawimy jedną z nich, a mianowicie meto-dę dualną Gomory’ego. Metoda ta jest bezpośrednim rozwinięciem dualnejmetody sympleks. Różnica polega na tym, że w metodzie całkowitoliczbo-wej wiersz zawierający element główny jest generowany w każdej iteracji iwartość tego elementu wynosi -1. Zapewnia to całkowitoliczbowość dualnejmetody sympleksowej. Algorytm redukuje obszar dopuszczalności do takiego,aby jego wierzchołek optymalny był całkowitoliczbowy.

Leksykograficzna postać dualnej metody sympleks

Rozważmy następującą dualną tablicę sympleksową

Zmienna Stała −xm+1 −xm+2 . . . −xk . . . −xn

x0 p00 p0,m+1 p0,m+2 . . . p0k . . . p0n

x1 p10 p1,m+1 p1,m+2 . . . p1k . . . p1n

......

......

......

xl pl0 pl,m+1 pl,m+2 . . . plk . . . pln

......

......

......

xm pm0 pm,m+1 pm,m+2 . . . pmk . . . pmn

xm+1 0 −1 0 . . . 0 . . . 0xm+2 0 0 −1 . . . 0 . . . 0...

......

.... . .

......

xk 0 0 0 . . . −1 . . . 0...

......

....... . .

...xn 0 0 0 . . . 0 . . . −1

Page 36: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 36

gdzie xl jest zmienną opuszczającą bazę, −xk zmienną wchodzącą do bazy,natomiast plk jest elementem głównym. Powyższa tablica odpowiada zaga-dnieniu całkowitoliczbowemu w postaci:

(∗) znaleźć minimum x0, przy warunkach

xi = pi0 +∑

j∈J

pij(−xj), xi ≥ 0, xi ∈ Z, i = 1, 2, . . . , n,

natomiast J jest zbiorem wskaźników niebazowych zmiennych. W powyższejtablicy wygodnie jest założyć, że pierwsze m zmiennych jest bazowych. Za-piszmy nasze zagadnienie w postaci wektorowej, mamy:

znaleźć minimum x0, przy warunkach

x = p0 +∑

j∈J

pj(−xj), xi ≥ 0, xi ∈ Z, i = 1, 2, . . . , n.

Wektor v 6= 0 nazywamy leksykograficznie dodatnim (ujemnym), jeślipierwsza jego niezerowa składowa jest dodatnia (ujemna). Gdy wektor v jestleksykograficznie dodatni (ujemny), to piszemy v >l 0 (v <l 0). Wektor v jestleksykograficznie większy (mniejszy) od wektora w, jeżeli v − w >l 0(v − w <l 0). Ciąg wektorów vt, t = 1, 2, . . . nazywamy leksykograficzniemalejącym (rosnącym), jeśli vt−vt+1 >l 0 (vt−vt+1 <l 0). Zatem w leksy-kograficznym algorytmie dualnym zagadnienie (∗) przedstawiamy w sposóbnastępujący:

znaleźć leksykograficzne minimum x, przy warunkach

x = p0 +∑

j∈J

pj(−xj), x ≥ 0.

Zmienną xl opuszczającą bazę wyznacza się tak samo jak w zwykłej metodziedualnej tzn.

pl0 = minpi0; pi0 < 0, 1 ≤ i ≤ m.

Zmienną x wchodzącą do bazy znajdujemy za pomocą testu

1

plk

pk = lex max1

plj

; plj < 0, m + 1 ≤ j ≤ n,

Page 37: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 37

gdzie lexmax oznacza maksimum leksykograficzne. Przekształcenie elementa-rne względem plk przekształca powyższą tablicę w nową tablicę z kolumnami

(∗∗) pj = pj −plj

plk

pk, dla j 6= k, pk = −1

plk

pk.

Jeżeli początkowa tablica jest dualnie dopuszczalna w sensie leksykografi-cznym (tzn. wektory pj , j = m+1, m+2, . . . , n są leksykograficznie ujemne),to wzory (∗∗) gwarantują, że nowe wektory kolumnowe pj są również leksyko-graficznie ujemne.

Uwaga 2.25. Można pokazać, że rozwiązanie bazowe p0 jest ściśle ro-snące (w sensie leksykograficznym) w każdej iteracji oraz że żadna baza niepowtórzy się.

Zarys metody dualnej Gomory’ego.

Metoda Gomory’ego rozpoczyna działanie od tablicy całkowitoliczboweji leksykograficznie dualnie dopuszczalnego rozwiązania, to znaczy wektorypj, j = m + 1, m + 2, . . . , n są leksykograficznie ujemne dla zagadnieniaminimalizacji oraz dodatnie dla zagadnienia maksymalizacji. Algorytm jestnastępujący:

Krok 1. Wybrać wiersz o numerze r, w którym pr0 < 0, r 6= 0. Jest towiersz generujący tzw. cięcie. Jeżeli wiersza takiego nie ma, to bieżące roz-wiązanie jest optymalne.

Krok 2. Znaleźć kolumnę pk z elementem głównym, która jest największaw sensie leksykograficznym wśród kolumn, dla których prj < 0. Jeśli takiejkolumny nie ma, to brak jest dopuszczalnego rozwiązania całkowitoliczbowe-go.

Krok 3. Utworzyć nierówność (tzw. odcinającą) z wiersza r-tego, którynie jest spełniony przez bieżące rozwiązanie prymalne. Nowy wiersz jest do-łączony na dole tablicy i jest to wiersz z elementem głównym równym -1.

Krok 4. Wykonać jedno przekształcenie elementarne dualnej metodysympleks.

Page 38: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 38

Krok 5. Usunąć dodany wiersz, który jest teraz trywialny (x = −(−x))i wrócić do kroku 1.

Sposób otrzymania nierówności odcinającej

Przypuśćmy, że wybrano wiersz o numerze r w tablicy dualnej, jako gene-rujący cięcie (przez cięcie rozumiemy dodatkowe ograniczenie posiadające tęwłasność, że odcina część zbioru rozwiązań dopuszczalnych nie gubiąc przytym żadnego rozwiązania całkowitoliczbowego)

xr = pr0 +∑

j∈J

prj(−xj).

Niech λ będzie liczbą dodatnią. Każda liczba p spełnia równość

(i) p =[p

λ

]

λ + R,

gdzie przez [z] oznaczamy część całkowitą liczby z oraz 0 ≤ R < λ. Pozastosowaniu (i) do wiersza generującego, otrzymujemy

(ii)∑

j∈J

Rjxj+Rrxr = R0+λ([pr0

λ

]

+∑

j∈J

[prj

λ

]

(−xj)+

[

1

λ

]

(−xr)) = R0+λx.

Dla dowolnego nieujemnego rozwiązania spełniającego (ii) wartość

(iii) x =[pr0

λ

]

+∑

j∈J

[prj

λ

]

(−xj) +

[

1

λ

]

(−xr)

musi być całkowita, ponieważ wszystkie współczynniki w (iii) są całkowite.Ponadto x ≥ 0, bo 0 ≤ R0 < λ i jeśli x jest ujemną liczbą całkowitą, toR0 + λx < 0. Jednak ostatnia nierówność nie jest możliwa, ponieważ lewastrona w (ii) jest nieujemna. Zatem x ≥ 0. Gdy wybierzemy λ ≥ 1, wówczasnierówność x ≥ 0 uprości się do postaci

(iv)[pr0

λ

]

+∑

j∈J

[prj

λ

]

(−xj) ≥ 0.

Page 39: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 39

Niech πrj =[prj

λ

]

, wówczas całkowitoliczbowe cięcie Gomory’ego określonejest następująco:

(v) x = πr0 +∑

j∈J

πrj(−xj) ≥ 0.

Ograniczenie (v) jest wierszem głównym, a x jest nową nieujemną zmiennądodatkową. Wyznaczymy teraz wartość λ.

Wyznaczanie wartości λ.

Krok 1. Znaleźć kolumnę główną k tak, aby pk = lex maxpj; j ∈ J,gdzie J = j; prj < 0, j 6= 0, a r-ty wiersz generuje cięcie.

Krok 2. Wyznaczyć największą liczbę całkowitą ej , taką że

−1

ej

pj ≥l −pk, j ∈ J, j 6= k.

Ponadto niech ek = 1.

Krok 3. Przyjąć λ = maxλj = −prj

ej; j ∈ J.

Uwaga 2.26. (i) Wyprowadzając zależność (iv) założyliśmy, że λ ≥ 1.Nierówność ta jest spełniona, ponieważ λ ≥ λk = −prk ≥ 1. Jeśli λ = 1,to wiersz generujący jest wierszem zawierającym element główny i nie manowego ograniczenia.(ii) Zgodnie z wyprowadzeniem, λ nie musi być całkowite. Wybierając takąwartość λ, otrzymamy jako element główny −1 oraz wiersz główny, którydaje największy leksykograficznie wzrost kolumny p0.

Całkowitoliczbowy algorytm dualny Gomory’ego.

Zakładamy, że kolumny pj, j = m + 1, m + 2, . . . , n są leksykograficzniedualnie dopuszczalne.

Krok 1. Jeśli p0 ≥ 0, to rozwiązanie prymalne jest dopuszczalne i optyma-lne, a obliczenia się kończą. W przeciwnym razie wybrać taki wiersz generu-jący cięcie, że pr0 < 0.

Page 40: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 40

Krok 2. Znaleźć taką kolumnę główną pk, m + 1 ≤ k ≤ n, aby by-ła ona leksykograficznie największa wśród kolumn, dla których prj < 0.Jeżeli wszystkie prj ≥ 0, to wówczas nie istnieje dopuszczalne rozwiązaniecałkowitoliczbowe. W przypadku przeciwnym przejść do kroku 3.

Krok 3. Dla każdego j ∈ J , j 6= k znaleźć największą liczbę całkowitąej taką, że − 1

ejpj ≥ −pk. Następnie podstawić ek = 1 oraz obliczyć

λ = max−prj

ej

; j ∈ J.

Krok 4. Do tablicy dualnej dołączyć ograniczenie

x = πr0 +∑

j∈J

πrj(−xj) ≥ 0.

Krok 5. Wybrać jedno dualne przekształcenie elementarne używającπrk = −1 jako elementu głównego.

Krok 6. Usunąć dodane ograniczenie, które stało się trywialne i wrócićdo kroku 1.

Uwaga 2.27. W kroku 1 powyższego algorytmu do wyznaczenia wierszagenerującego cięcie można wybrać najmniejsze pi0 < 0.

Przykład 2.28. Znaleźć minimum funkcji f(x1, x2) = x0 = 3x1 + 5x2

przy warunkachx3 = −5 + x1 + 4x2 ≥ 0,

x4 = −7 + 3x1 + 2x2 ≥ 0,

x1, x2, x3, x4 ≥ 0, x1, x2, x3, x4 ∈ Z.

Dualna tablica sympleksowa dla powyższego zagadnienia wygląda następu-jąco:

Zmienna Stała −x1 −x2

x0 0 −3 −5x3 −5 −1 −4x4 −7 −3 −2

Page 41: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 41

Trywialne ograniczenia z pojedyńczym elementem równym -1 zostały pominię-te. Niech wierszem generującym będzie wiersz, który zawiera x4, a kolumnągłówną kolumna pierwsza (k = 1). Wartości ej są następujące e1 = 1, e2 = 1.Zatem

λ = max−prj

ej

; j ∈ J = max3

1,2

1 = 3.

Liczymy dodatkowe ograniczenie

x5 =

[

−7

3

]

+

[

−3

3

]

(−x1) +

[

−2

3

]

(−x2) ≥ 0,

x5 = −3 + x1 + x2 ≥ 0.

Nasza tablica ma następującą postać:

Zmienna Stała −x1 −x2

x0 0 −3 −5x3 −5 −1 −4x4 −7 −3 −2x5 −3 −1 −1

Wymieniamy teraz zmienną x1 na zmienną x5, czyli jest to przekształcenieelementarne z elementem głównym p51 = −1. Mamy

x0 = 9+3x5 +2x2, x1 = 3+x5 −x2, x3 = −2+x5 +3x2, x4 = 2+3x5 −x2.

Nowa tablica wygląda zatem następująco:

Zmienna Stała −x5 −x2

x0 9 −3 −2x1 3 −1 1x3 −2 −1 −3x4 2 −3 1

Po usunięciu dodanego ograniczenia mamy:

Zmienna Stała −x1 −x2

x0 9 −3 −2x3 −2 −1 −3x4 2 −3 1

Page 42: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

2. METODA SYMPLEKSOWA 42

Zauważmy, że p0 < 0 zatem należy prowadzić obliczenia dalej. Zgodnie zuwagą 2.27 wierszem generującym jest teraz wiersz, który zawiera x3, a ko-lumną główną kolumna druga (k = 2). Wartości ej są następujące e1 = 1,e2 = 1. Zatem

λ = max1

1,3

1 = 3.

Liczymy dodatkowe ograniczenie

x5 =

[

−2

3

]

+

[

−1

3

]

(−x1) +

[

−3

3

]

(−x2) ≥ 0,

x5 = −1 + x1 + x2 ≥ 0.

Nasza tablica ma następującą postać:

Zmienna Stała −x1 −x2

x0 9 −3 −2x3 −2 −1 −3x4 2 −3 1x5 −1 −1 −1

Wymieniamy teraz zmienną x2 na zmienną x5, czyli jest to przekształcenieelementarne z elementem głównym p52 = −1. Mamy

x0 = 11+ x1 + 2x5, x2 = 1−x1 + x5, x3 = 1− 2x1 + 3x5, x4 = 1 +4x1 −x5.

Nowa tablica wygląda zatem następująco:

Zmienna Stała −x1 −x5

x0 11 −1 −2x2 1 1 −1x3 1 2 −3x4 1 −4 1

Po usunięciu dodanego ograniczenia mamy:

Zmienna Stała −x1 −x2

x0 11 −1 −2x3 1 2 −3x4 1 −4 1

Ponieważ p0 > 0, to rozwiązanie prymalne jest dopuszczalne i optymalne, copozwala zakończyć wykonywanie algorytmu. Ostatecznie mamy 3x1 + 5x2 =11, a stąd rozwiązaniem optymalnym jest x1 = 2, x2 = 1, x3 = 1 oraz x4 = 1.

Page 43: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

3. STRATEGIE ZACHŁANNE 43

3. Strategie zachłanne

Strategia zachłanna (ang. greedy) jest to metoda rozwiązywania pewnychproblemów optymalizacyjnych. Polega ona na tym, że na każdym etapie roz-wiązywania problemu wybiera opcję lokalnie optymalną.

Strategia taka może, ale NIE MUSI prowadzić do optymalnego global-nego rozwiązania.

Istnieje wiele problemów, w których strategia zachłanna daje rozwiązanieoptymalne.

Strategię zachłanną możemy stosować także wtedy, gdy nie daje ona gwa-rancji uzyskania optymalnego rozwiązania. Np. wtedy, gdy jesteśmy zainte-resowani szybkim, przybliżonym, ale nie koniecznie optymalnym rozwiąza-niem.

3.1. Problem wyboru zajęć

Mamy dany zbiór S = 1, . . . , n złożony z n zajęć, którym trzeba przy-dzielić salę wykładową. W sali mogą odbywać się w danej chwili co najwyżejjedne zajęcia. Każde zajęcia i mają swój czas rozpoczęcia si oraz czas zakoń-czenia fi. Rozsądnie jest założyć, że si < fi. Ponadto zakładamy, że zajęciai zajmują przedział czasowy [si, fi). Mówimy, że zajęcia i oraz j są zgodne,jeśli

[si, fi) ∩ [sj, fj) = ∅.

Problem wyboru zajęć polega na wyborze maksymalnego podzbioru A ⊆S parami zgodnych zajęć.

Problem wyboru zajęć - rozwiązanie

Postępujemy w nastepujący sposób. Najpierw wybieramy zajęcia a1, któremają najwcześniejszy czas zakończenia. Jeżeli mamy już wybrane zajęcia a1,. . ., ak, to jako zajęcia ak+1 wybieramy ze zbioru S \ a1, . . . , ak te, które sązgodne ze wszystkimi a1, . . . , ak oraz mają najwcześniejszy czas zakończenia.Procedurę tę kontynuujemy aż do wyczerpania zajęć ze zbioru S. Otrzymanyzbiór A = a1, . . . , am jest poszukiwanym maksymalnym zbiorem paramizgodnych zajęć.

Page 44: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

3. STRATEGIE ZACHŁANNE 44

Zauważmy, że na każdym etapie wybierając zajęcia o najwcześniejszymczasie zakończenia pozostawiamy najwięcej wolnego czasu do wykorzystania.W tym sensie jest to strategia zachłanna.Jeżeli zajęcia są posortowane niemalejąco względem czasów zakończenia

(tzn. f1 ≤ . . . ≤ fn), to czas działania powyższej procedury wynosi O(n)(a nawet Θ(n)). W przypadku, gdy zajęcia nie są posortowane w ten sposób,to do czasu działania trzeba dodać czas potrzebny na sortowanie.

Problem wyboru zajęć - przykład

Mamy dane: salę wolną w czasie 1−10 oraz zajęcia z1, . . . , z10 wraz z cza-sami rozpoczęcia oraz zakończenia podanymi w poniższej tabeli (w postacisi − fi).

z1 z2 z3 z4 z5 z6 z7

1 − 4 2 − 4 3 − 5 2 − 7 4 − 8 6 − 9 8 − 10

Zgodnie z naszą metodą wybieramy najpierw zajęcia z1, następnie – z5

i ostatecznie – z7. ZbiórA = z1, z5, z7

jest maksymalnym podzbiorem parami zgodnych zajęć.

Twierdzenie 3.1. Niech S = 1, . . . , n będzie zbiorem zajęć. Opisanapowyżej strategia zachłanna prowadzi do wyboru maksymalnego podzbioru Azbioru S składającego się z parami zgodnych zajęć.

Dowód. Niech S = 1, . . . , n będzie zbiorem zajęć. Ponadto załóżmy,że

f1 ≤ f2 ≤ . . . ≤ fn.

Zatem zajęcia 1 kończą się najwcześniej. Wykażemy, że istnieje podzbiór Ao żądanych własnościach oraz taki, że 1 ∈ A. Niech B będzie pewnym mak-symalnym podzbiorem zbioru S składającym się z parami zgodnych zajęć.Przypuśćmy, że zajęciami o minimalnym numerze należącym bo zbioru Bsą k. Jeżeli k = 1, to przyjmujemy A = B. Jeżeli k > 1, to przyjmujemyA = (B \ k) ∪ 1. Ponieważ f1 ≤ fk, więc zbiór A jest zbiorem paramizgodnych zajęć. Ponieważ B był maksymalny, więc A też jest maksymalny.Możemy więc założyć, że zajęcia 1 należą do maksymalnego podzbioru Aparami zgodnych zajęć.

Page 45: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

3. STRATEGIE ZACHŁANNE 45

Ponadto zauważmy, że jeśli A jest maksymalnym podzbiorem w S, toA′ = A \ 1 jest maksymalnym podzbiorem parami zgodnych zajęć zbioruS ′ = i ∈ S ; si ≥ f1. Istotnie, jeśli istniałby większy podzbiór A′′ paramizgodnych zajęć w S ′, to A′′ ∪ 1 byłby większym od A podzbiorem paramizgodnych zajęć w S. Przeczy to naszym założeniom. Zredukowaliśmy problemdo mniejszego problemu wyboru zajęć w S ′. Dowód kończymy indukcyjnie.

Problem wyboru zajęć poddaje się strategii zachłannej (tzn. zastoso-wanie strategii zachłannej prowadzi do rozwiązania problemu). Poniżej prze-analizujemy problem plecakowy, którego dyskretna wersja nie poddaje sięstrategii zachłannej.

3.2. Problem plecakowy

Zagadnienie optymalizacji zwane „problemem plecakowym” swą nazwęwzięło z analogii do sytuacji praktycznej podobnej do problemu pakowaniaplecaka. Zadanie polega na zapakowaniu maksymalnie cennego zbioru prze-dmiotów nie przekraczając ładowności (nośności lub pojemności) bagażu.

Ogólny problem plecakowy

Mamy danych n rzeczy P1, . . . , Pn. Zakładamy, że każda z rzeczy danajest w nieograniczonej liczbie. Dla każdego i = 1, . . . , n, rzecz Pi ma rozmiar0 < wi ∈ Z oraz wartość 0 < ci ∈ Z. Mamy ponadto daną pojemność plecaka(samochodu, wagonu itp.) 0 < W ∈ Z.Należy znaleźć nieujemne liczby całkowite q1, . . . , qn takie, że

1. w = q1w1 + . . . + qnwn ≤ W (tzn. nie została przekroczona pojemnośćplecaka),

2. wartość spakowanych rzeczy c = q1c1 + . . . + qncn jest maksymalna.

Wartości q1, . . . , qn ∈ N, które spełniają warunek 1 nazywamy rozwiąza-niem dopuszczalnym problemu plecakowego. Rozwiązanie dopuszczalne,które spełnia warunek 2 nazywamy rozwiązaniem optymalnym problemuplecakowego.Jeżeli założymy, że szukamy wartości q1, . . . , qn ∈ 0, 1, to powyższy

problem nazywamy decyzyjnym problemem plecakowym.

Page 46: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

3. STRATEGIE ZACHŁANNE 46

Problem plecakowy - strategie zachłanne

Poniżej opiszemy trzy różne metody zachłanne, które znajdują dopuszcza-lne rozwiązania problemu plecakowego. Skupmy się na ogólnym problemieplecakowym.

(I) W pierwszej kolejności wybieramy najcenniejsze rzeczy. Bez stratyogólności możemy założyć, że przedmioty mamy ponumerowane w ten spo-sób, że

c1 ≥ c2 ≥ . . . ≥ cn.

Za q1 przyjmujemy maksymalną liczbę naturalną taką, że q1w1 ≤ W . Zaq2 przyjmujemy maksymalną liczbę naturalną taką, że q1w1 + q2w2 ≤ W .Ogólnie, jeśli mamy już wybrane liczby q1, . . . , qi, to za qi+1 przyjmujemymaksymalną liczbę naturalną taką, że q1w1 + . . . + qiwi + qi+1wi+i ≤ W .

(II) W pierwszej kolejności wybieramy rzeczy o najmniejszym rozmiarze.Bez straty ogólności możemy założyć, że przedmioty mamy ponumerowanew ten sposób, że

w1 ≤ w2 ≤ . . . ≤ wn.

Dalej postępujemy tak jak w przypadku (I).

(III) W pierwszej kolejności wybieramy najcenniejsze rzeczy w stosunkudo rozmiaru. Bez straty ogólności możemy założyć, że przedmioty mamyponumerowane w ten sposób, że

c1

w1≥

c2

w2≥ . . . ≥

cn

wn

.

Dalej postępujemy tak jak w przypadku (I).

Zauważmy, że powyższe trzy metody (po drobnych modyfikacjach) mo-żemy również zastosować do znajdowania rozwiązań dopuszczalnych w decy-zyjnym problemie plecakowym.Czas działania powyższych procedur wynosi O(n). Ponadto trzeba jeszcze

uwzględnić czas potrzebny na sortowanie rzeczy (np. O(n log(n))).

Problem plecakowy - przykład

Przeanalizujmy na poniższym przykładzie działanie powyższych metodrozwiązywania problemu plecakowego.

Page 47: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

3. STRATEGIE ZACHŁANNE 47

P1 P2 P3 P4 P5 P6 W

ci 6 4 5 7 10 2wi 6 2 3 2 3 1 23

ci/wi 1 2 5/3 7/2 10/3 2

Metoda (I)

• wybieramy rzecz P5 ponieważ jest najcenniejsza (c5 = 10);

• wybieramy jej aż 7 sztuk ponieważ 7w5 = 7 ∗ 3 = 21 < W = 23 oraz 7jest maksymalną liczbą całkowitą o tej własności;

• w plecaku pozostało nam miejsce na rzecz o wadze 2 = 23 − 21;

• Wybieramy rzecz P4, która ma wartość 7.

Wartość rzeczy umieszczonych w plecaku wynosi 7 ∗ 10 + 7 = 77.

Metoda (II)

Wybieramy 23 sztuki rzeczy P6, ponieważ ma ona najmniejszy rozmiar.Zapełniliśmy plecak.Wartość rzeczy umieszczonych w plecaku wynosi 23 ∗ 2 = 46.

Metoda (III)

• pakujemy plecak w nierosnącej kolejności ilorazów ci

wi;

• wybieramy 11 sztuk rzeczy P4;

• wybieramy 1 sztukę P6.

Wartość plecaka wynosi 11 ∗ 7 + 1 ∗ 2 = 79.

Zauważmy, że żadna z tych metod nie dała nam rozwiązania optymalnego.Rozwiązanie optymalne otrzymujemy wybierając 10 sztuk rzeczy P4 oraz 1sztukę rzeczy P5. Wartość plecaka wynosi 10 ∗ 7 + 1 ∗ 10 = 80.

Metody zachłanne nie wyznaczają optymalnego rozwiązania ogólnego pro-blemu plecakowego. Na ćwiczeniach wykażemy, że metody te nie wyznaczająoptymalnego rozwiązania decyzyjnego problemu plecakowego.Optymalne rozwiązanie ogólnego oraz decyzyjnego problemu plecakowego

można znaleźć przy pomocy metody programowania dynamicznego.

Page 48: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

4. PROGRAMOWANIE DYNAMICZNE 48

4. Programowanie dynamiczne

Programowanie dynamiczne jest to metoda rozwiązywania proble-mów, która

1. dany problem P dzieli na mniejsze P1, . . . ,Pn;

2. rozwiązuje problemy P1, . . . ,Pn (albo metodą programowania dynami-cznego, albo innymi metodami) i zapamiętuje ich rozwiązania (najczę-ściej w pewnej tablicy);

3. wykorzystując rozwiązania problemów P1, . . . ,Pn podaje rozwiązanieproblemu P.

Poniżej przedstawimy rozwiązanie problemu plecakowego stosując metodęprogramowania dynamicznego. Metoda ta daje wynik w czasie O(n · W ).

4.1. Problem plecakowy - programowanie dynamiczne

Mamy dany problem plecakowy P:

• przedmioty: P1, . . . , Pn;

• ich wartości: c1, . . . , cn ∈ Z;

• rozmiary przedmiotów: w1, . . . , wn ∈ Z;

• rozmiar plecaka: W ∈ Z.

Jeżeli q1, . . . , qn jest optymalnym rozwiązaniem problemu plecakowego, toliczbę p = q1c1 + . . . + qncn będziemy nazywać wartością optymalnie wypeł-nionego plecaka.Aby zastosować metodę programowania dynamicznego należy podzielić

nasz problem na mniejsze.Dla wszystkich i = 1, . . . , n oraz j = 1, . . . , W definiujemy problem ple-

cakowy Pi,j :

• przedmioty: P1, . . . , Pi;

• ich wartości: c1, . . . , ci ∈ Z;

Page 49: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

4. PROGRAMOWANIE DYNAMICZNE 49

• rozmiary przedmiotów: w1, . . . , wi ∈ Z;

• rozmiar plecaka: j ∈ Z.

Niech Pi,j oznacza wartość optymalnie wypełnionego plecaka w problemiePi,j. Zauważmy, że Pn,W = P oraz Pn,W = p. Stąd wynika, że jeśli znajdziemywszystkie wartości Pi,j, to będziemy znali wartość p.

Wyznaczanie wartości Pi,j

Będziemy wyznaczać Pi,j korzystając z Pk,l dla k ≤ i oraz l ≤ i. Przyokazji będziemy również definiować wartości Qi,j. Liczby Qi,j umożliwią nampóźniej uzyskanie informacji o optymalnym rozwiązaniu problemu plecakowe-go. Stosujemy następującą metodę

• dla wszystkich k = 1, . . . , n oraz l = 1, . . . , W przyjmujemy Pk,0 = 0,Qk,0 = 0, P0,l = 0 oraz Q0,l = 0;

• dla kolejnych i = 1, . . . , n wykonujemy:

– dla kolejnych j = 1, . . . , W wykonujemy:(∗) jeśli j ≥ wi oraz Pi−1,j < Pi,j−wi

+ ci, to przyjmujemy Pi,j =Pi,j−wi

+ ci oraz Qi,j = i; w przeciwnym wypadku przyjmujemyPi,j = Pi−1,j oraz Qi,j = Qi−1,j .

Zauważmy że prawdziwość warunku j ≥ wi w (∗) oznacza, że aktualnierozważany rozmiar plecaka jest wystarczający, aby umieścić tam rzecz Pi. Na-tomiast prawdziwość warunku Pi−1,j < Pi,j−wi

+ ci oznacza, że umieszczenierzeczy Pi zwiększy wartość plecaka. Jeśli oba warunki są spełnione, to umie-szczamy w plecaku rzecz Pi (odpowiada za to przypisanie Pi,j = Pi,j−wi

+ ci

oraz Qi,j = i). W przeciwnym przypadku nie umieszczamy (na tym etapie)rzeczy Pi w plecaku, gdyż albo ona się tam nie zmieści, albo jej umieszcze-nie nie zwiększy wartości plecaka. Liczby Qi,j kontrolują przedmioty, którewkładamy do plecaka.Zwykle wartości Pi,j,Qi,j będziemy zapisywali w postaci n×W macierzach

P = (Pi,j) oraz Q = (Qi,j).

Przykład

Rozważmy ten sam przykład, który analizowaliśmy w trakcie omawianiametod zachłannych. Zmniejszymy tylko rozmiar plecaka do W = 18.

Page 50: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

4. PROGRAMOWANIE DYNAMICZNE 50

P1 P2 P3 P4 P5 P6 W

ci 6 4 5 7 10 2wi 6 2 3 2 3 1 18

Tworzymy tablice P oraz Q.

P 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

1 0 0 0 0 0 6 6 6 6 6 6 12 12 12 12 12 12 1823456

Q 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 123456

W pierwszych pięciu kolumnach macierzy P oraz Q mamy zera, ponieważprzedmiot P1 nie mieści się w plecaku o pojemności j = 1, 2, 3, 4, 5. W plecakuo pojemności j = 6, . . . , 11 mieści się jedna rzecz P1, dlatego w odpowiednichkolumnach macierzy P mamy wartość c1 = 6. W kolumnach macierzy Qstoi 1 (numer przedmiotu, który został ostatnio umieszczony w plecaku).W plecaku o pojemności j = 12, . . . , 17 mieszczą się dwa przedmioty P1,więc w odpowiednich kolumnach mamy 2 · c1 = 12. W ostatniej kolumniemacierzy P mamy 3 · c1 = 18, ponieważ w plecaku o pojemności 18 mieszcząsię trzy sztuki P1.

Page 51: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

4. PROGRAMOWANIE DYNAMICZNE 51

Teraz będziemy wypełniać drugi wiersz macierzy P oraz Q.

P 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

1 0 0 0 0 0 6 6 6 6 6 6 12 12 12 12 12 12 182 0 4 4 8 8 123456

Q 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 12 0 2 2 2 2 23456

Pierwsze pięć kolumn drugiego wiersza macierzy P oraz Q wypełniamypodobnie jak pierwszy wiersz, ponieważ rzecz P1 nie mieści się w plecaku opojemności j = 1, . . . , 5. Omówimy teraz dokładnie metodę wypełnienia pólP2,6 oraz Q2,6. W naszej sytuacji i = 2 oraz j = 6. Warunek w2 < 6 jestoczywiście spełniony. Sprawdzamy teraz warunek Pi−1,j < Pi,j−wi

+ ci, czyliP1,6 < P2,4 + 4. Warunek ten jest oczywiście prawdziwy (elementy P1,6 orazP2,4 oznaczyliśmy kolorem zielonym, a element P2,6 kolorem czerwonym).Zgodnie z naszą metodą postępowania musimy przyjąć P2,6 = P2,4 + 4 =8+4 = 12 oraz Q2,6 = i = 2. Oznacza to, że z plecaka o pojemności 6 usuniętoprzedmiot P1 oraz umieszczono tam trzy przedmioty P2. Mamy Q2,6 = 2ponieważ ostatnią rzeczą włożoną do plecaka jest przedmiot o numerze 2.

Page 52: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

5. GRAFY - PODSTAWOWE DEFINICJE 52

Poniżej mamy uzupełnione macierze P oraz Q.

P 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

1 0 0 0 0 0 6 6 6 6 6 6 12 12 12 12 12 12 182 0 4 4 8 8 12 12 16 16 20 20 24 24 28 28 32 32 363 0 4 5 8 9 12 13 16 17 20 21 24 25 28 29 32 33 364 0 7 7 14 14 21 21 28 28 35 35 42 42 49 49 56 56 635 0 7 10 14 17 21 24 28 31 35 38 42 45 49 52 56 59 636 2 7 10 14 17 21 24 28 31 35 38 42 45 49 52 56 59 63

Q 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 12 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 23 0 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 24 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 45 0 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 46 6 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4

Wartością optymalnie zapełnionego plecaka jest P6,18 = 63. Pokażemy jakwykorzystując dane zapisane w tablicy Q podać optymalne rozwiązanie pro-blemu plecakowego. Ostatnią rzeczą włożoną do plecaka jest ta o numerzeQ6,18 = 4, czyli przedmiot P4. Ponieważ w4 = 2, więc do wypełnienia pozosta-je plecak o pojemności 18−w2 = 16. Odczytujemy element Q6,16 = 4. Zatemprzedostatnim elementem umieszczonym w plecaku jest P4. Dalej postępuje-my analogicznie. Ostatecznie musimy do plecaka włożyć 9 sztuk przedmiotuP4. Mamy p = 9 · c4 = 9 · 7 = 63.

5. Grafy - podstawowe definicje

Definicja 5.1. Grafem (prostym) nazywamy paręG = (V (G), E(G)) =(V, E), gdzie V = V (G) jest zbiorem skończonym, którego elementy nazywa-my wierzchołkami oraz E = E(G) jest zbiorem nieuporządkowanych paru, v dla pewnych u, v ∈ V takich, że u 6= v. Pary te nazywamy krawę-dziami. Będziemy stosować wymiennie następujące oznaczenia krawędzi:

u, v = uv = vu = u v .

Jeżeli uv ∈ E(G), to wierzchołki u, v nazywamy sąsiednimi, natomiast kra-wędź uv nazywamy sąsiednią (incydentną) z wierzchołkami u oraz v.

Page 53: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

5. GRAFY - PODSTAWOWE DEFINICJE 53

Stopniem wierzchołka v (ozn. deg(v)) nazywamy liczbę incydentnychz nim krawędzi.

Przykład 5.2. Rozważmy następujący graf G:

v

@@@@

@@@@

x

????

????

u

y

w

~~~~~~~~

Mamy:

• V = x, y, u, v, w;

• E = uv, uw, ux, xy;

• deg(v) = deg(w) = deg(y) = 1, deg(x) = 2, deg(u) = 3;

• np. wierzchołki u, v są sąsiednie; wierzchołki u oraz y nie są sąsiednie.

Definicja 5.3. Dowolny ciąg wierzchołków d = (x1, . . . , xn), gdzie (dlakażdego i = 1, . . . , n − 1) wierzchołki xi oraz xi+1 są sąsiednie, nazywamydrogą (lub ścieżką). Wierzchołki x1 oraz xn nazywamy odpowiednio po-czątkiem oraz końcem drogi d. Mówimy, że wierzchołek v jest osiągalnyz wierzchołka u, jeśli istnieje droga o początku w u i końcu w v.Długością drogi d (ozn. ℓ(d)) nazywamy liczbę występujących w niej

krawędzi.Cyklem nazywamy drogę d = (x1, . . . , xn) taką, że x1 = xn.Drogę d = (x1, . . . , xn) nazywamy prostą, jeśli wierzchołki x1, . . . , xn są

parami różne. Cykl d = (x1, . . . , xn−1, x1) nazywamy prostym, jeśli wierzchoł-ki x1, . . . , xn−1 są parami różne.Podgrafem grafu G = (V, E) nazywamy dowolny graf G′ = (V ′, E ′) taki,

że V ′ ⊆ V oraz E ′ ⊆ E.Graf G nazywamy spójnym, jeśli dla każdej pary wierzchołków u, v ∈

V (G) istnieje droga d = (x1, . . . , xn) taka, że x1 = u oraz xn = v. Składowąspójności grafu G nazywamy każdy maksymalny spójny podgraf grafu G.Podgrafem grafu G = (V, E) generowanym przez zbiór V ′ ⊆ V nazywamypodgraf G′ = (V ′, E ′) grafu G taki, że

uv ∈ E ′ ⇐⇒ u, v ∈ V ′ oraz uv ∈ E.

Page 54: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

5. GRAFY - PODSTAWOWE DEFINICJE 54

Uwaga 5.4. Na zbiorze wierzchołków V grafuG definiujemy relację dwu-argumentową ∼ w następujący sposób. Niech v, u ∈ V wtedy określamy

v ∼ u ⇐⇒ wierzchołki u, v są połączone drogą w G

Można łatwo uzasadnić, że ∼ jest relacją równoważności. Niech V1, . . . , Vm

będą wszystkimi klasami abstrakcji relacji ∼. Zauważmy, że podgrafy G1,. . ., Gm grafu G generowane odpowiednio przez V1, . . . , Vm są wszystkimispójnymi składowymi grafu G.

Drzewem nazywamy spójny graf, który nie zawiera cyklu prostego.

Przykłady 5.5. Graf z Przykładu 5.2 jest drzewem. Poniższy graf G niejest drzewem, gdyż zawiera on cykl prosty (u, x, y, u).

v

@@@@

@@@@

x

????

????

u

y

w

~~~~~~~~

Powyższy graf jest spójny. Przykładem drogi prostej jest (v, u, x, y); ma onadługość 3. Natomiast droga (v, u, x, y, u, w) (długości 5) nie jest prosta, gdyżwierzchołek u występuje w niej dwukrotnie.Poniższy graf

v

@@@@

@@@@

x

????

????

u

y

w

~~~~~~~~

t z

nie jest spójny. Ma on dwie składowe spójności wyznaczone przez zbiorywierzchołków z, t oraz u, v, w, x, y.

Poniżej podamy twierdzenie, które podaje kryteria pozwalające decydo-wać, czy podany graf jest drzewem.

Twierdzenie 5.6. Niech G = (V, E) będzie grafem. Następujące warunkisą równoważne.

Page 55: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

5. GRAFY - PODSTAWOWE DEFINICJE 55

1. G jest drzewem;

2. każde dwa wierzchołki u, v ∈ V są połączone ze sobą dokładnie jednąścieżką prostą;

3. G jest spójny, lecz jeśli usuniemy jedną krawędź z E, to powstały grafnie będzie spójny;

4. G jest spójny oraz |E| = |V | − 1;

5. G nie zawiera cyklu prostego oraz |E| = |V | − 1;

6. G nie zawiera cyklu prostego, lecz jeśli dodamy jedną krawędź do E, topowstały graf będzie zawierał cykl prosty.

Dowód. Dowód tego twierdzenia można znaleźć w książce T. H. Cor-men, Ch. E. Leiserson, R. L. Rivest, „Wprowadzenie do algorytmów”, WN-T,Warszawa 2001.

Powyższe grafy będziemy czasami nazywać nieskierowanymi. Ważnąrolę w badaniach operacyjnych odgrywają również grafy skierowane.

Definicja 5.7. Grafem skierowanym (digrafem) nazywamy paręG =(V (G), E(G)) = (V, E), gdzie V = V (G) jest zbiorem skończonym, któ-rego elementy nazywamy wierzchołkami oraz E = E(G) jest zbioremuporządkowanych par [u, v] dla pewnych u, v ∈ V . Pary te nazywamy kra-wędziami. Będziemy stosować wymiennie następujące oznaczenia krawędzi:

[u, v] = uv = u // v .

Pojęcie drogi oraz cyklu definiujemy podobnie jak dla grafów nieskierowa-nych.

W praktycznych zastosowaniach grafów często występują grafy ważone(skierowane lub nie).

Definicja 5.8. Niech G = (V, E) będzie grafem (skierowanym lub nie).Funkcją wagową nazywamy dowolną funkcję

ω : E → R.

Page 56: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

5. GRAFY - PODSTAWOWE DEFINICJE 56

Parę (G, ω), gdzie G = (V, E) jest grafem oraz ω : E → R jest funkcjąwagową nazywamy grafem ważonym.Jeżeli uv ∈ E, to wagę ω(uv) krawędzi uv będziemy zapisywać następu-

jąco

uω(uv)

v

lub

uω(uv) // v

w przypadku grafów skierowanych.Jeżeli (G, ω) jest grafem ważonym oraz d = (x1, . . . , xn) jest drogą w G,

to wagą drogi d nazywamy liczbę

ω(d) = ω(x1x2) + ω(x2x3) + . . . + ω(xn−1xn).

5.1. Reprezentacje grafów

Aby pracować z grafami (np. przy pomocy komputera) trzeba je zapi-sać w wygodnej postaci. Poniżej przedstawimy dwa sposoby reprezentowaniagrafów.

5.1.1. Macierze sąsiedztwa

Niech G = (V, E) będzie grafem (skierowanym lub nie). Załóżmy, że V =1, . . . , n.Macierzą sąsiedztwa grafuG nazywamy n×n-macierzM(G) =(mij) taką, że

mij =

1, gdy ij ∈ E0, gdy ij 6∈ E.

Przykłady 5.9. Rozważmy graf nieskierowany G:

1

====

=== 5

====

===

2

3

4

Page 57: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

5. GRAFY - PODSTAWOWE DEFINICJE 57

Wtedy

M(G) =

0 1 0 0 01 0 1 1 10 1 0 0 10 1 0 0 00 1 1 0 0

.

Rozważmy graf skierowany H :

1

===

====

5

===

====

2

@@// 3

4

@@

Wtedy

M(H) =

0 1 0 0 00 0 1 0 10 0 0 0 00 1 0 0 00 0 1 0 0

.

5.1.2. Listy sąsiedztwa

Niech G = (V, E) będzie grafem (skierowanym lub nie) oraz niech v ∈ V .Listą sąsiedztwa wierzchołka v nazywamy listę

L[v] = [x1, . . . , xm]

wszystkich parami różnych wierzchołków takich, że vxi ∈ E.

Przykłady 5.10. Rozważmy graf G z Przykładu 5.9. Wtedy

L[1] = [2],L[2] = [1, 3, 5, 4],L[3] = [2, 5],L[4] = [2],L[5] = [3, 2].

Page 58: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

6. MINIMALNE DRZEWA ROZPINAJĄCE 58

Natomiast dla grafu H z Przykładu 5.9 mamy

L[1] = [2],L[2] = [3, 5],L[3] = [],L[4] = [2],L[5] = [3].

6. Minimalne drzewa rozpinające

Definicja 6.1. Niech (G, ω) będzie spójnym nieskierowanym grafem wa-żonym. Drzewem rozpinającym grafu G nazywamy graf

T = (V (T ), E(T ))

spełniający warunki

• V (G) = V (T );

• E(T ) ⊆ E(G);

• T jest drzewem;

Minimalnym drzewem rozpinającym grafuG nazywamy drzewo rozpina-jące T grafu G, którego waga ω(T ) =

a∈E(T ) ω(a) jest minimalna.

Przykłady zastosowań minimalnych drzew rozpinających zostaną omó-wione na ćwiczeniach.

Przykład 6.2. Rozważmy następujący graf ważony

• 1

12

====

====

====

====

= •

2•

3~~~~~~~

1 @@@@

@@@ •

1@@@@@@@

3~~~~

~~~

•1

Page 59: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

6. MINIMALNE DRZEWA ROZPINAJĄCE 59

Poniżej przerywaną linią zaznaczyliśmy krawędzie, które wchodzą w składminimalnego drzewa rozpinającego powyższego grafu.

• 1 ______

1

2

====

====

====

====

= •

2•

3~~~~~~~

1 @@

@@ •

1@

@@

@

3~~~~

~~~

•1

______ •

Minimalne drzewo rozpinające powyższego grafu wygląda tak:

• 1

1

1 @@@@

@@@ •

1@@@@@@@

•1

Uwaga 6.3. Minimalne drzewo rozpinające grafu NIE musi być wyzna-czone jednoznacznie.

6.1. Algorytm Kruskala

Niech dany będzie graf spójny nieskierowany G = (V, E) z funkcją wa-gową ω : E → R. Poniżej podamy jedną z metod wyznaczania minimalnegodrzewa rozpinającego grafu ważonego (G, ω) (algorytm Kruskala). AlgorytmKruskala jest przykładem metody zachłannej, ponieważ w każdym kroku do-daje on do konstruowanego drzewa krawędź o minimalnej wadze.

Kruskal(G, ω)

• kładziemy E = ∅;

• niech α1, . . . , αm będą wszystkimi krawędziami grafu G posortowanyminiemalejąco względem wag (tzn. ω(α1) ≤ ω(α2) ≤ . . . ≤ ω(αm));

• rozważmy krawędź α1 : u v ; jeśli wierzchołki u, v leżą w różnychspójnych składowych grafu (V, E), to przyjmujemy E := E ∪ α1;

Page 60: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

6. MINIMALNE DRZEWA ROZPINAJĄCE 60

• dalej postępujemy analogicznie, tzn. jeśli rozważyliśmy już krawędzieα1, . . . , αi, to badamy krawędź αi+1 : u v ; jeśli wierzchołki u,v leżą w różnych spójnych składowych grafu (V, E), to przyjmujemyE := E ∪ αi+1;

• po przebadaniu wszystkich krawędzi α1, . . . , αm kończymy procedurę;jako wynik przyjmujemy T = (V, E).

Czas działania algorytmu Kruskala zależy od sposobu implementacji struk-tury zbiorów rozłącznych. Można algorytm zaimplementować tak aby jegoczas działania wynosił O(|E| log(|E|)).

Twierdzenie 6.4. Niech (G, ω) będzie spójnym nieskierowanym grafemważonym. Jeżeli wykonamy procedurę Kruskal(G, ω), to po jej zakończeniugraf T = (V, E) będzie minimalnym drzewem rozpinającym grafu (G, ω).

Dowód. Niech G = (V, E) będzie spójnym nieskierowanym grafem z fun-kcją wagową ω : E → R oraz niech E = α1, . . . , αm będą ponumerowanew ten sposób, że ω(α1) ≤ ω(α2) ≤ . . . ≤ ω(αm). Niech T = (V, E) będziegrafem skonstruowanym przez algorytm Kruskal(G, ω).Zauważmy, że T nie zawiera cykli. Wynika, to z faktu, że w każdym kroku

algorytmu dodawane są tylko krawędzie, które łączą różne spójne składowegrafu. Zatem nigdy nie powstanie nam cykl.Zauważmy, że T jest grafem spójnym. Przypuśćmy, że T nie jest grafem

spójnym. Istnieją więc przynajmniej dwie różne spójne składowe grafu T .PonieważG jest grafem spójnym, więc istnieje krawędź α ∈ E(G), która łączyte dwie składowe. Krawędź α musiałaby być dodana w trakcie algorytmu dografu T . Wynika stąd, że T jest spójny.Zatem T jest drzewem, ponieważ jest spójny oraz nie zawiera cykli.Załóżmy, że E = αi1, . . . , αis. Niech T ′ = (V, E ′) będzie minimalnym

drzewem rozpinającym grafu G. Z Twierdzenia 5.6 wynika, że |E| = |E ′|.Niech E ′ = αj1, . . . , αjs

. Ponadto załóżmy, że spośród wszystkich minimal-nych drzew rozpinających grafu G drzewo T ′ zostało wybrane tak aby αi1 =αj1, . . . , αik = αjk

dla możliwie największego k. Wynika stąd, że αik+16∈

E ′. Istotnie, jeśli αik+1∈ E ′, to z naszych założeń wynika, że ik+1 > jk+1

oraz ω(αjk+1) ≤ ω(αik+1

). Więc krawędź αjk+1byłaby w algorytmie Kruskala

rozważana przed krawędzią αik+1i byłaby ona w drzewie T . Zatem αik+1

6∈ E ′.Jeżeli dodamy krawędź αik+1

do drzewa T ′, to otrzymamy dokładnie jedencykl prosty (patrz Twierdzenie 5.6). Weźmy krawędź α należącą do tego cyklu

Page 61: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

6. MINIMALNE DRZEWA ROZPINAJĄCE 61

taką, że α 6= αik+1oraz α 6∈ E (taka krawędź istnieje, gdyż w przeciwnym wy-

padku wszystkie krawędzie z tego cyklu należałyby do E, więc T nie byłobydrzewem). Zatem α 6∈ αi1, . . . , αik , αik+1

. Gdyby ω(α) > ω(αik+1), to graf

T ′′ = (V, (E ′ \ α) ∪ αik+1) byłby drzewem rozpinającym grafu G takim,

że ω(T ′′) < ω(T ′) co przeczy temu, że T ′ jest minimalnym drzewem rozpina-jącym grafu G. Stąd wynika, że ω(α) ≤ ω(αik+1

). Gdyby ω(α) < ω(αik+1), to

algorytm Kruskala wybrałby krawędź α przed krawędzią αik+1. Zatem w E

mielibyśmy krawędź α zamiast αik+1. Zauważmy, że wymiana krawędzi α na

αik+1nie generuje nam cyklu, gdyż α oraz αik+1

leżą na jednym cyklu w grafieT ′ z dodaną krawędzią αik+1

.Ostatecznie ω(α) = ω(αik+1

). Zatem T ′′ = (V, (E ′ \ α) ∪ αik+1) jest

również minimalnym drzewem rozpinającym grafu G zawierającym krawę-dzie α1, . . . , αk, αk+1, co przeczy wyborowi indeksu k oraz drzewa T ′.Ostatecznie pokazaliśmy, że T = T ′ jest minimalnym drzewem rozpinają-

cym grafu G.

Przykład 6.5. Rozważmy następujący graf ważony

x2

5

6 x5

2

7 x7

5x1

2ppppppppppppp

1 NNNNNNNNNNNNN x8

4

NNNNNNNNNNNNN

2ppppppppppppp

x3

1

3x4

2

5x6

Poniżej przedstawimy poszczególne etapy tworzenia minimalnego drzewarozpinającego przy pomocy algorytmu Kruskala. Zaczynamy od grafu, któryma te same wierzchołki co graf wyjściowy oraz nie ma żadnej krawędzi.

x2 x5 x7

x1 x8

x3 x4 x6

Będziemy dodawać krawędzie zaczynając od tych z minimalnymi wagami.

Page 62: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

6. MINIMALNE DRZEWA ROZPINAJĄCE 62

x2 x5 x7

x1

1

OOOOOOOOOOOOO x8

x3 x4 x6

x2 x5 x7

x1

1

OOOOOOOOOOOOO x8

x3

1

x4 x6

x2 x5 x7

x1

1

OOOOOOOOOOOOO

2

ooooooooooooox8

x3

1

x4 x6

x2 x5

2

x7

x1

1

OOOOOOOOOOOOO

2

ooooooooooooox8

x3

1

x4 x6

x2 x5

2

x7

x1

1

OOOOOOOOOOOOO

2

ooooooooooooox8

x3

1

x4

2

x6

x2 x5

2

x7

x1

1

OOOOOOOOOOOOO

2

ooooooooooooox8

2

ooooooooooooo

x3

1

x4

2

x6

Zauważmy, że teraz krawędzią o minimalnej wadze jest krawędź x3x4. Niemożemy jej jednak dodać ponieważ łączy ona wierzchołki z tej samej spójnej

Page 63: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

7. PROBLEM NAJKRÓTSZYCH DRÓG 63

składowej. Dodajemy więc krawędź x7x8.

x2 x5

2

x7

x1

1 NNNNNNNNNNNNN

2ppppppppppppp

x8

2ppppppppppppp

4

NNNNNNNNNNNNN

x3

1

x4

2

x6

Do powyższego grafu nie można już dodać żadnej krawędzi. Graf ten jestwięc minimalnym drzewem rozpinającym wyjściowego grafu.

7. Problem najkrótszych dróg

Niech dany będzie skierowany graf ważony (G, ω) oraz wierzchołek a ∈V (G). Naszym zadaniem będzie, dla każdego wierzchołka b ∈ V (G), znaleźćdrogę d = (x1, . . . , xn) taką, że x1 = a, xn = b oraz waga ω(d) drogi d jestminimalna. Jasne jest, że taka droga (jeśli istnieje) nie musi być wyznaczonajednoznacznie. Powyższy problem będziemy nazywać problemem najkrót-szych dróg z jednym źródłem (NDJZ).

Uwaga 7.1. Zauważmy, że nie dla wszystkich grafów ważonych istniejedroga o minimalnej wadze. Rozważmy następujący graf ważony

a

−6

99 b

3

xx.

Mamy wtedy np. ω((a, b, a)) = −3, ω((a, b, a, b, a, b, a)) = −9. Łatwo zauwa-żyć, że istnieje droga o wadze mniejszej od dowolnie małej liczby rzeczywistej.Nie istnieje więc droga o minimalnej wadze. Powyższy problem możemy roz-wiązać na dwa następujące sposoby.

1. Możemy założyć, że funkcja wagowa ω : E(G) → R jest nieujemna,tzn. ω(α) ≥ 0 dla dowolnej krawędzi α ∈ E(G). Zauważmy, że przytym założeniu istnieją drogi o minimalnej wadze.

Page 64: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

7. PROBLEM NAJKRÓTSZYCH DRÓG 64

2. Możemy założyć, że w grafie żaden cykl o ujemnej wadze (tzn. takicykl d, że ω(d) < 0) nie jest osiągalny z wierzchołka a (tzn. nie istniejedroga (x1, . . . , xn) taka, że x1 = a oraz xn jest wierzchołkiem, któryleży na cyklu o ujemnej wadze). W tej sytuacji również istnieją drogiz a do b o ujemnej wadze.

Uwaga 7.2. Zauważmy, że problem (NDJZ) może (po pewnych modyfi-kacjach) służyć do rozwiązania następujących problemów.

• Problem najkrótszych dróg z jednym ujściem. Dla danego wierz-chołka b ∈ V (G) oraz wszystkich wierzchołków a ∈ V (G) znaleźć drogi(x1, . . . , xn) o minimalnej wadze takie, że x1 = a oraz xn = b. Tutajwystarczy odwrócić kierunek strzałek w grafie oraz rozwiązać problem(NDJZ).

• Problem najkrótszych dróg między parą wierzchołków. Dla da-nych wierzchołków a, b ∈ V (G) znaleźć drogę (x1, . . . , xn) o minimalnejwadze taką, że x1 = a oraz xn = b.

• Problem najkrótszych dróg między wszystkimi parami wierz-chołków. Dla wszystkich par wierzchołków a, b ∈ V (G) znaleźć drogi(x1, . . . , xn) o minimalnej wadze takie, że x1 = a oraz xn = b.

Najprostszą metodą znajdowania najkrótszych dróg w grafie może wyda-wać się rozważenie wszystkich możliwych dróg oraz wybranie tej najkrótszej.Niestety metoda ta przeważnie jest zbyt czasochłonna. Jeżeli rozważamy dużegrafy (np. grafy reprezentujące sieć połączeń drogowych albo kolejowych), towszystkich możliwych dróg jest tak dużo, że nawet najszybsze komputerybędą miały problemy z rozważeniem (w rozsądnym czasie) wszystkich możli-wości. Potrzebne są zatem szybsze metody znajdowania najkrótszych dróg.Poniżej opiszemy dwie z nich.

7.1. Algorytm Dijkstry

Niech (G, ω) będzie skierowanym grafem ważonym oraz niech s ∈V (G) będzie ustalonym wierzchołkiem. Załóżmy ponadto, że funkcja wagowaω jest nieujemna (tzn. ω(α) ≥ 0 dla każdej krawędzi α ∈ E(G)). Przypowyższych założeniach algorytm Dijkstry rozwiązuje problem (NDJZ), gdzie

Page 65: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

7. PROBLEM NAJKRÓTSZYCH DRÓG 65

źródłem jest wierzchołek s. Oczywiście algorytm wyznaczy najkrótsze drogitylko do wierzchołków osiągalnych z wierzchołka s.Algorytm Dijkstry stosuje strategię zachłanną. Będziemy wykorzysty-

wać dwie tablice rozmiaru |V (G)|, które będą indeksowane wierzchołkamigrafu G. Pierwsza z nich δ = [δ(v)]v∈V (G) będzie służyła do przechowywa-nia informacji o długości aktualnie rozważanych dróg. Bardziej precyzyjnie:δ[v] będzie długością aktualnie rozważanej drogi o początku w s oraz końcuw wierzchołku v. Po zakończeniu działania algorytmu δ[v] będzie długościąnajkrótszej drogi o początku w wierzchołku s oraz końcu w wierzchołku v.Druga tablica π = [π(v)]v∈V (G) będzie służyła do przechowywania poprzed-ników wierzchołków w rozważanych drogach. Po zakończeniu algorytmu przypomocy tablicy π będziemy mogli skonstruować najkrótsze drogi z s do wierz-chołków v.

Dijkstry(G, ω, s)

• kładziemy Q = V (G);

• dla każdego wierzchołka v ∈ V (G) kładziemy δ[v] = ∞ oraz π[v] = ⊘;

• kładziemy δ[s] = 0;

• tak długo jak Q 6= ∅ wykonujemy następujące operacje:

– wybieramy wierzchołek u ∈ Q taki, że δ[u] jest minimalne; na-stępnie usuwamy wierzchołek u ze zbioru Q (tzn. Q := Q \ u);

– dla każdego wierzchołka v z listy sąsiedztwa L[u] wierzchołka uwykonujemy:(∗) jeżeli δ[v] > δ[u] + ω(uv), to kładziemy δ[v] := δ[u] + ω(uv)oraz π[v] := u.

Czas działania algorytmu Dijkstry zależy od implementacji kolejki prio-rytetowej potrzebnej do zaimplementowania tej procedury. Jeśli zaimplemen-tujemy kolejkę w postaci tablicy, to otrzymamy czas O(|V |2). Implementu-jąc kolejkę za pomocą tzw. kopca Fibonacciego, to możemy otrzymać czasO(|V | log(|V |) + |E|).

Twierdzenie 7.3. Jeżeli wykonamy algorytm Dijkstry(G, ω, s) dla gra-fu skierowanego G z nieujemną funkcją wagową ω oraz wierzchołkiem źró-dłowym s, to po zakończeniu działania algorytmu wartość δ[v] jest długościąnajkrótszej drogi z s do v (dla każdego v ∈ V (G)).

Page 66: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

7. PROBLEM NAJKRÓTSZYCH DRÓG 66

Dowód. Dowód tego twierdzenia można znaleźć w książce T. H. Cor-men, Ch. E. Leiserson, R. L. Rivest, „Wprowadzenie do algorytmów”, WN-T,Warszawa 2001.

Przeanalizujmy poniższy przykład, który ilustruje działanie algorytmuDijkstry oraz dokładnie wyjaśnia rolę tablic δ, π.

Przykład 7.4. Rozważmy następujący graf ważony:

b

11

26 // e 30 // i k15oo

31

a

10

@@ 28 //

31

===

====

====

====

= c 14 // f

17

OO

15

>>>

>>>>

>>>>

>>>>

> j

23

^^================

32

===

====

====

====

=

d

22

OO

20

@@ 12 // g

19

OO

26 // h

9

OO

18 // l

Zastosujemy do tego grafu algorytm Dijkstry. Zakładamy, że źródłem jestwierzchołek s = a.Mamy Q = a, b, c, d, e, f, g, h, i, j, k, l. Tablice δ oraz π wyglądają nastę-

pująco:

δ :a b c d e f g h i j k l0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

π :a b c d e f g h i j k l⊘ ⊘ ⊘ ⊘ ⊘ ⊘ ⊘ ⊘ ⊘ ⊘ ⊘ ⊘

Usuwamy wierzchołek a ze zbioru Q, więc Q = b, c, d, e, f, g, h, i, j, k, l.Rozważamy listę sąsiedztwa wierzchołka a: L[a] = [b, c, d]. Dla każdego wierz-chołka z tej listy sąsiedztwa wykonujemy (∗) z algorytmu Dijkstry. Mamy

Page 67: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

7. PROBLEM NAJKRÓTSZYCH DRÓG 67

zatem:

δ :a b c d e f g h i j k l0 10 28 31 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

π :a b c d e f g h i j k l⊘ a a a ⊘ ⊘ ⊘ ⊘ ⊘ ⊘ ⊘ ⊘

Ze zbioru Q usuwamy wierzchołek v, który ma minimalną wartość δ[v].Jest to wierzchołek b. Zatem Q = c, d, e, f, g, h, i, j, k, l. Rozważamy listęsąsiedztwa wierzchołka b: L[b] = [e, c]. Dla każdego wierzchołka z tej listysąsiedztwa wykonujemy (∗) z algorytmu Dijkstry. Mamy zatem:

δ :a b c d e f g h i j k l0 10 21 31 36 ∞ ∞ ∞ ∞ ∞ ∞ ∞

π :a b c d e f g h i j k l⊘ a b a b ⊘ ⊘ ⊘ ⊘ ⊘ ⊘ ⊘

Następnym rozważanym wierzchołkiem jest c. WtedyQ = d, e, f, g, h, i, j, k, l,L[c] = [f ] oraz

δ :a b c d e f g h i j k l0 10 21 31 36 35 ∞ ∞ ∞ ∞ ∞ ∞

π :a b c d e f g h i j k l⊘ a b a b c ⊘ ⊘ ⊘ ⊘ ⊘ ⊘

Teraz rozważamy wierzchołek d. Mamy Q = e, f, g, h, i, j, k, l, L[d] =

Page 68: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

7. PROBLEM NAJKRÓTSZYCH DRÓG 68

[c, f, g] oraz

δ :a b c d e f g h i j k l0 10 21 31 36 35 43 ∞ ∞ ∞ ∞ ∞

π :a b c d e f g h i j k l⊘ a b a b c d ⊘ ⊘ ⊘ ⊘ ⊘

Kolejny wierzchołek to f . Mamy Q = e, g, h, i, j, k, l, L[f ] = [h] oraz

δ :a b c d e f g h i j k l0 10 21 31 36 35 43 50 ∞ ∞ ∞ ∞

π :a b c d e f g h i j k l⊘ a b a b c d f ⊘ ⊘ ⊘ ⊘

Teraz musimy rozważyć wierzchołek e. Mamy Q = g, h, i, j, k, l, L[e] =[i] oraz

δ :a b c d e f g h i j k l0 10 21 31 36 35 43 50 66 ∞ ∞ ∞

π :a b c d e f g h i j k l⊘ a b a b c d f e ⊘ ⊘ ⊘

Po rozważeniu wierzchołka g tablice δ oraz π nie ulegną zmianie. Mamyteraz Q = h, i, j, k, l.Kolejny wierzchołek to h. Mamy Q = i, j, k, l, L[h] = [i, l] oraz

δ :a b c d e f g h i j k l0 10 21 31 36 35 43 50 59 ∞ ∞ 68

π :a b c d e f g h i j k l⊘ a b a b c d f h ⊘ ⊘ h

Zauważmy, że rozważając kolejne wierzchołki nie zmienimy tablic δ orazQ. Kończymy wykonywanie algorytmu. W tablicy δ mamy zapisane długościnajkrótszych ścieżek do poszczególnych wierzchołków. Zauważmy, że wierz-chołki j, k nie są osiągalne z wierzchołka a, zatem długości odpowiednichdróg są równe ∞.Korzystając z tablicy π odczytamy najkrótszą drogę z wierzchołka a do

wierzchołka l. Drogę tę będziemy konstruować „od końca”. Mamy d[l] = h,

Page 69: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

7. PROBLEM NAJKRÓTSZYCH DRÓG 69

więc do wierzchołka l „przyszliśmy” z wierzchołka h. Natomiast d[h] = f ,więc do wierzchołka h „przyszliśmy” z wierzchołka f . Postępujemy tak dalej.Wierzchołki poszukiwanej drogi zaznaczyliśmy w poniższej tabeli koloremniebieskim.

π :a b c d e f g h i j k l⊘ a b a b c d f h ⊘ ⊘ h

Poszukiwaną drogą jest więc (a, b, c, f, h, l). Podobnie konstruujemy pozo-stałe drogi.

7.2. Algorytm Bellmana-Forda

W tym rozdziale opiszemy algorytm, który rozwiązuje problem (NDJZ)w ogólniejszym przypadku niż algorytm Dijkstry.Niech (G, ω) będzie grafem skierowanym z funkcją wagową ω : E(G) → R

oraz wierzchołek s ∈ V (G). Funkcja wagowa może przyjmować wartościujemne. Jeżeli w grafie istnieje cykl o ujemnej wadze, to algorytm zwró-ci wartość ”false”; w przeciwnym wypadku algorytm zwróci wartość ”true”oraz najkrótsze drogi wraz z wagami (zapisane w tablicach δ oraz π podob-nie jak w algorytmie Dijkstry). W przeciwieństwie do algorytmu Dijkstry,działanie algorytmu Bellmana-Forda nie jest intuicyjne (nie jest to algorytmzachłanny).

Bellman-Ford(G, ω, s)

• dla każdego wierzchołka v ∈ V (G) kładziemy δ[v] = ∞ oraz π[v] = ⊘;

• kładziemy δ[s] = 0;

• |V (G)| − 1 razy wykonujemy następujące operacje:

– dla każdej krawędzi uv ∈ E(G) wykonujemy:(∗) jeżeli δ[v] > δ[u] + ω(uv), to kładziemy δ[v] := δ[u] + ω(uv)oraz π[v] := u;

• dla każdej krawędzi uv ∈ E(G) wykonujemy:

– jeżeli δ[v] > δ[u] + ω(uv), to kończymy algorytm z wynikiem:”false”;

Page 70: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

7. PROBLEM NAJKRÓTSZYCH DRÓG 70

• kończymy algorytm z wynikiem: ”true”.

Algorytm Bellmana-Forda działa w czasie O(|V | · |E|).

Twierdzenie 7.5. Niech (G, ω) będzie grafem skierowanym z funkcjąwagową ω : E(G) → R oraz źródłem s ∈ V (G). Jeżeli w G istnieje cyklo ujemnej wadze osiągalny ze źródła s, to algorytm Bellman-Ford(G, ω, s)zwraca wartość ”false”; w przeciwnym wypadku algorytm ten zwraca wartość”true” oraz wartość δ[v] jest długością najkrótszej drogi z s do v (dla każdegov ∈ V (G)).

Dowód. Dowód tego twierdzenia można znaleźć w książce T. H. Cor-men, Ch. E. Leiserson, R. L. Rivest, „Wprowadzenie do algorytmów”, WN-T,Warszawa 2001.

Przykłady 7.6. Rozważmy następujący graf ważony:

a

−6

99 b

3

xx,

gdzie źródłem jest wierzchołek s = a. Mamy δ[a] = 0, δ[b] = ∞, π[a] =⊘, π[b] = ⊘ oraz |V (G)| − 1 = 1. Zatem dla dwóch krawędzi ab oraz bamusimy wykonać (∗). Sprawdzamy, czy δ[b] > δ[a] +ω(ab). Warunek ten jestprawdziwy, więc przyjmujemy δ[b] := 0 + (−6) = −6 oraz π[b] = a. Terazsprawdzamy, czy 0 = δ[a] > δ[b] + ω(ba) = −6 + 3 = −3. Warunek ten jestprawdziwy, więc przyjmujemy δ[a] := (−6) + 3 = −3 oraz π[a] = b.Przechodzimy do następnego kroku algorytmu. Sprawdzamy, czy −6 =

δ[b] > δ[a] + ω(ab) = −3 + (−6) = −9. Warunek ten jest prawdziwy, więckończymy algorytm z wynikiem ”false”. Oznacza to, że w grafie istnieje cyklo ujemnej wadze osiągalny ze źródła.Rozważmy teraz następujący graf ważony:

a

−3

99 b

6

xx,

gdzie źródłem jest wierzchołek s = a. Mamy δ[a] = 0, δ[b] = ∞, π[a] =⊘, π[b] = ⊘ oraz |V (G)| − 1 = 1. Zatem dla dwóch krawędzi ab oraz bamusimy wykonać (∗). Sprawdzamy, czy δ[b] > δ[a] +ω(ab). Warunek ten jest

Page 71: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

8. MAKSYMALNY PRZEPŁYW 71

prawdziwy, więc przyjmujemy δ[b] := 0 + (−3) = −3 oraz π[b] = a. Terazsprawdzamy, czy 0 = δ[a] > δ[b] + ω(ba) = −3 + 6 = 3. Warunek ten jestfałszywy.Przechodzimy do następnego kroku algorytmu. Sprawdzamy, czy −3 =

δ[b] > δ[a]+ω(ab) = 0+(−3) = −3. Warunek ten jest fałszywy. Sprawdzamy,czy 3 = δ[a] > δ[b]+ω(ba) = 0+6 = 6. Warunek ten jest fałszywy. Kończymy,więc algorytm z wynikiem ”true”. Tablice δ oraz π odczytujemy w ten samsposób jak w algorytmie Dijkstry.

8. Maksymalny przepływ

Problem maksymalnego przepływu w sieci pojawia się, gdy chcemy „prze-transportować” jakiś towar (materiał) z jednego miejsca do drugiego. Mamydane pewne drogi, po których możemy towar przemieszczać. Drogi te majązadaną przepustowość (tzn. informację o tym jaką maksymalną ilość towa-ru możemy przetransportować daną drogą). Słowo „towar” rozumiemy tutajbardzo szeroko. Przy pomocy przepływu w sieci możemy badać np. ile sa-mochodów w ciągu godziny może maksymalnie przejechać z punktu A dopunktu B, ile maksymalnie osób w ciągu godziny może przemieścić się me-trem z punktu A do punktu B, itp.

Definicja 8.1. Siecią przepływową (siecią) nazywamy graf skierowa-ny G = (V, E), w którym każda krawędź (u, v) ∈ E ma przyporządkowanynieujemną przepustowość c(u, v) ≥ 0. Jeśli (u, v) 6∈ E, to przyjmujemyc(u, v) = 0. W sieci wyróżniamy dwa wierzchołki: źródło s oraz ujście t.

Będziemy zakładać, że każdy wierzchołek v ∈ V leży na pewnej drodzeze źródła do ujścia. Przepustowość c wyznacza nam funkcję c : V × V → R.Jeśli będziemy mieli daną sieć G = (V, E) ze źródłem s, ujściem t oraz funkcjąprzepustowości c, to w skrócie będziemy pisać G = (V, E, s, t, c).

Definicja 8.2. NiechG = (V, E, s, t, c) będzie siecią.Przepływemw sie-ci G nazywamy każdą funkcję

f : V × V → R

spełniającą następujące warunki:

Page 72: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

8. MAKSYMALNY PRZEPŁYW 72

1. dla wszystkich u, v ∈ V mamy f(u, v) ≤ c(u, v) (warunek przepu-stowości);

2. dla wszystkich u, v ∈ V mamy f(u, v) = −f(v, u) (warunek skośnejsymetrii);

3. dla wszystkich u ∈ V \ s, t mamy∑

v∈V f(u, v) = 0 (warunek za-chowania przepływu).

Wartością przepływu f nazywamy liczbę

|f | =∑

v∈V

f(s, v).

Problem maksymalnego przepływu: dla danej sieci G = (V, E, s, t, c)znaleźć przepływ f o maksymalnej wartości |f |.

Uwaga 8.3. 1. Zauważmy, że warunek przepustowości w definicji prze-pływu intuicyjnie oznacza, że daną drogą nie możemy przetransporto-wać więcej towaru niż wynosi przepustowość tej drogi. Warunek zacho-wania przepływu intuicyjnie oznacza, że z ustalonego punktu wyjeżdżatyle towaru ile do niego wjechało. Wartość przepływu natomiast mówinam ile towaru wysyłamy ze źródła. Chcemy zatem znaleźć przepływ,który maksymalizuje ilość towaru wysłaną ze źródła.

2. Problem maksymalnego przepływu można sformułować jako zagadnie-nie programowania liniowego. Niech dana będzie sieć G = (V, E, s, t, c).Dla każdej krawędzi (i, j) ∈ E szukamy takiej wartości f(i, j) ∈ R, żespełnione są warunki:

• dla wszystkich (i, j) ∈ E zachodzi 0 ≤ f(i, j) ≤ c(i, j);

• dla wszystkich wierzchołków j 6= s, t zachodzi∑

i

f(i, j) −∑

l

f(j, l) = 0

(warunek zachowania przepływu);

• wartość∑

i f(s, i) jest maksymalna;

Poniżej opiszemy dokładnie algorytm Forda-Fulkersona znajdowania mak-symalnego przepływu w sieciach. Jest to algorytm iteracyjny. Startuje on odprzepływu f = 0, a nastepnie zwiększa ten przepływ wzdłuż tzw. ścieżekpowiększających. Aby dokładnie omówić ten algorytm najpierw musimy zro-zumieć problem sieci residualnych oraz przekrojów w sieciach.

Page 73: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

8. MAKSYMALNY PRZEPŁYW 73

8.1. Przekroje w sieciach

Niech G = (V, E, s, t, c) będzie siecią. Przekrojem w sieci G nazywamyparę (S, T ) taką, że S ⊆ V , T = V \ S oraz s ∈ S, t ∈ T . Jeśli f jestprzepływem w G, to definiujemy

f(S, T ) =∑

u∈S

v∈T

f(u, v).

Lemat 8.4. Niech f będzie przepływem, a (S, T ) - przekrojem w sieciG = (V, E, s, t, c). Wtedy f(S, T ) = |f |.

Dowód. Wprost z definicji f(S, T ) oraz przekroju (S, T ) wynika, żef(S, T ) = f(S, V ) − f(S, S). Łatwo udowodnić, że f(S, S) = 0 (ćwiczenia).Mamy zatem

f(S, T ) = f(S, V ) = f(s, V ) + f(S \ s, V ).

Z warunku zachowania przepływu można wywnioskować, że f(S\s, V ) = 0.Ostatecznie

f(S, T ) = f(s, V ) = |f |.

Wniosek 8.5. Niech f będzie dowolnym przepływem, a (S, T ) - dowolnymprzekrojem w sieci G = (V, E, s, t, c). Wówczas

|f | ≤ c(S, T ).

Dowód. Z Lematu 8.4 oraz z warunku przepustowości mamy:

|f | = f(S, T ) =∑

u∈S

v∈T

f(u, v) ≤∑

u∈S

v∈T

c(u, v) = c(S, T ).

Page 74: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

8. MAKSYMALNY PRZEPŁYW 74

8.2. Sieci residualne

Definicja 8.6. Niech dana będzie sieć G = (V, E, s, t, c) oraz przepływ f .Dla u, v ∈ V definiujemy cf (u, v) = c(u, v)−f(u, v). Funkcję cf : V ×V → R

nazywamy przepustowością residualną.Niech Ef = (u, v) ∈ V × V ; cf(u, v) > 0. Sieć Gf = (V, Ef , s, t, cf)

nazywamy siecią residualną dla sieci G indukowaną przez przepływ f .Niech G = (V, E, s, t, c) będzie siecią oraz f niech będzie przepływem wG.

Ścieżką powiększającą nazywamy każdą drogę z s do t w sieci residualnejG.

Lemat 8.7. Niech G = (V, E, s, t, c) będzie siecią oraz niech f będzieprzepływem w G. Ponadto niech f ′ będzie przepływem w sieci residualnej Gf .Wtedy funkcja f + f ′ jest przepływem w G o wartości |f + f ′| = |f | + |f ′|.

Dowód. Dowód nie jest trudny i pozostawiamy go na ćwiczenia. Pierwszaczęść dowodu sprowadza się do sprawdzenia warunków występujących w de-finicji przepływu. Natomiast druga część polega na sprawdzeniu równości|f + f ′| = |f | + |f ′|.

Definicja 8.8. Niech G = (V, E, s, t, c) będzie siecią, f - przepływemw G oraz niech p będzie ścieżką powiększającą (tzn. dowolną ścieżką z s dot w Gf ). Przepustowością residualną ścieżki p nazywamy liczbę

cf(p) = mincf(u, v) ; (u, v) ∈ p,

gdzie (u, v) ∈ p oznacza, że krawędź (u, v) leży na ścieżce p.

Lemat 8.9. Niech G = (V, E, s, t, c) będzie siecią, f - przepływem w Goraz niech p będzie ścieżką powiększającą. Definiujemy funkcję fp : V ×V → R

następująco

fp(u, v) =

cf(p), jeśli (u, v) ∈ p,−cf (p), jeśli (v, u) ∈ p,0, w pozostałych przypadkach.

Funkcja fp jest przepływem w sieci Gf o wartości |fp| = cf(p) > 0.

Rolę ścieżek powiększających w problemie znajdowania maksymalnegoprzepływu w sieciach ilustruje następujący fakt.

Page 75: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

8. MAKSYMALNY PRZEPŁYW 75

Twierdzenie 8.10. Niech f będzie przepływem w sieci G = (V, E, s, t, c).Następujące warunki są równoważne.

1. Przepływ f jest maksymalnym przepływem w sieci G.

2. Sieć residulana Gf nie zawiera ścieżek powiększających.

3. Dla pewnego przekroju (S, T ) w G zachodzi |f | = c(S, T ).

Dowód. Pokażemy, że z warunku 1 wynika warunek 2. Załóżmy, że f jestmaksymalnym przepływem w sieci G oraz Gf zawiera ścieżkę powiększającąp. Z lematów 8.7 oraz 8.9 wynika, że funkcja f ′ = f +fp jest przepływem w Go wartości |f ′| = |f |+|fp| > |f |. Zatem f nie jest maksymalnym przepływem.Kończy to dowód pierwszej implikacji.Teraz udowodnimy, że z warunku 2 wynika 3. Załóżmy, że wGf nie istnieje

ścieżka z s do t. Definiujemy przekrój (S, T ) w G następująco:

S = v ∈ V ; istnieje ścieżka z s do t w G

oraz T = V \S. Zauważmy, że s ∈ S oraz t ∈ T . Dla każdej pary wierzchołkówu ∈ S oraz v ∈ T mamy f(u, v) = c(u, v), gdyż w przeciwnym wypadku(u, v) ∈ Ef oraz v ∈ S. Zatem z Lematu 8.4 otrzymujemy, że |f | = f(S, T ) =c(S, T ).Udowodnimy, że z warunku 3 wynika warunek 1. Z Wniosku 8.4 wynika,

że dla dowolnego przekroju (S, T ) zachodzi |f | ≤ c(S, T ). Stąd oraz z 3wnioskujemy, że f jest maksymalnym przepływem w G.

8.3. Algorytm Forda-Fulkersona

Fakty przedstawione w poprzednich rozdziałach pozwalają na skonstru-owanie następującego algorytmu Forda-Fulkersona (F-F), który dla danejsieci G = (V, E, s, t, c) konstruuje maksymalny przepływ f w G.

F-F(G, s, t, c)

• dla każdej każdej krawędzi (u, v) ∈ E wykonaj f(u, v) := 0 orazf(v, u) := 0;

• dopóki istnieje ścieżka powiększająca p w Gf wykonuj:

Page 76: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

8. MAKSYMALNY PRZEPŁYW 76

– podstaw cf (p) := mincf (u, v) ; (u, v) ∈ p;

– dla każdej krawędzi (u, v) ∈ p wykonuj:

∗ f(u, v) := f(u, v) + cf (p);∗ f(v, u) := −f(u, v);

Twierdzenie 8.11. Jeśli w sieci G = (V, E, s, t, c) przepustowość c przyj-muje wartości całkowitoliczbowe, to (niezależnie od wybranej metody znajdo-wania ścieżki powiększającej) maksymalny przepływ obliczany metodą Forda-Fulkersona jest całkowitoliczbowy.

Dowód. Zadanie na ćwiczenia.

Przykład 8.12. Rozważmy następującą sieć

•0\3 // •

0\6

&&MMMMMMMMMMMMM

G : s

0\588qqqqqqqqqqqqq

0\2

&&MMMMMMMMMMMMM t

•0\2 //

0\4

AA•

0\3

88qqqqqqqqqqqqq

przy czym dla danej krawędzi (u, v) zapisujemy uf(u,v)\c(u,v) // v . Zgodnie

z algorytmen F-F na początku f = 0. Zatem Gf = G. Wybierzmy ścieżkępowiększającą p, tzn. ścieżkę z s do t w Gf . Ścieżkę tę oznaczymy przerywa-nymi liniami.

• 3 // •6

&&LLLLLLLLLLLLL

Gf : s

5

88rrrrrrrrrrrrr

2

&&LL

LL

LL

L t

• 2 //______

4

AA•

3

88rr

rr

rr

r

Zauważmy, że cf (p) = 2. Zmieniamy odpowiednio przepływ i mamy:

•0\3 // •

0\6

&&MMMMMMMMMMMMM

G : s

0\588qqqqqqqqqqqqq

2\2

&&MMMMMMMMMMMMM t

•2\2 //

0\4

AA•

2\3

88qqqqqqqqqqqqq

Page 77: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

8. MAKSYMALNY PRZEPŁYW 77

oraz• 3 //______ •

6

&&LL

LL

LL

L

Gf : s

5

88rr

rr

rr

rt

4

AA•

1

88rrrrrrrrrrrrr

Teraz cf(p) = 3 i mamy:

•3\3 // •

3\6

&&MMMMMMMMMMMMM

G : s

3\5

88qqqqqqqqqqqqq

2\2

&&MMMMMMMMMMMMM t

•2\2 //

0\4

AA•

2\3

88qqqqqqqqqqqqq

oraz• •

3

&&LLLLLLLLLLLLL

Gf : s

3

88rrrrrrrrrrrrrt

4

AA•

1

88rrrrrrrrrrrrr

W grafie Gf nie ma już ścieżki powiększającej. Zatem przepływ f jest mak-symalny. Zauważmy, że |f | = 2 + 3 = 5.

8.4. Analiza czasu działania algorytmu Forda-Fulkersona

Zauważmy, że czas działania algorytmu Forda-Fulkersona zależy od spo-sobu wybierania ścieżki powiększającej.Okazuje się, że jeśli do szukania ścieżki powiększającej użyjemy przeszu-

kiwania wszerz (patrz Dodatek rozdział 12), to algorytm Forda-Fulkersonadziała w czasie wielomianowym. Algorytm Forda-Fulkersona zaimplemento-wany w ten sposób nazywamy algorytmem Edmondsa-Karpa.

Twierdzenie 8.13. Czas działania algorytmu Edmondsa-Karpa wynosiO(|V | · |E|2).

Page 78: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

8. MAKSYMALNY PRZEPŁYW 78

Dowód. Dowód tego twierdzenia można znaleźć w książce T. H. Cor-men, Ch. E. Leiserson, R. L. Rivest, „Wprowadzenie do algorytmów”, WN-T,Warszawa 2001.

8.5. Sieci z wieloma źródłami i ujściami

W praktycznych zastosowaniach może się okazać, że chcemy towar tran-sportować np. z kilku fabryk do kilku magazynów. Wtedy zamiast sieci z jed-nym źródłem i z jednym ujściem mamy sieć ze źródłami s1. . . . , sn oraz uj-ściami t1, . . . , tm.

Definicja 8.14. Siecią z wieloma źródłami i ujściami nazywamygraf skierowany G = (V, E), w którym każda krawędź (u, v) ∈ E ma przy-porządkowany nieujemną przepustowość c(u, v) ≥ 0. Jeśli (u, v) 6∈ E, toprzyjmujemy c(u, v) = 0. W sieci wyróżniamy wierzchołki: źródła s1. . . . , sn

oraz ujścia t1. . . . , tm.

Będziemy zakładać, że każdy wierzchołek v ∈ V leży na pewnej drodzeze źródła do ujścia. Przepustowość c wyznacza nam funkcję c : V × V → R.

Definicja 8.15. Niech G = (V, E, s1. . . . , sn, t1. . . . , tm, c) będzie taką sie-cią. Przepływem w sieci G nazywamy każdą funkcję

f : V × V → R

spełniającą następujące warunki:

1. dla wszystkich u, v ∈ V mamy f(u, v) ≤ c(u, v) (warunek przepu-stowości);

2. dla wszystkich u, v ∈ V mamy f(u, v) = −f(v, u) (warunek skośnejsymetrii);

3. dla wszystkich u ∈ V \ s1. . . . , sn, t1, . . . , tm mamy∑

v∈V f(u, v) = 0(warunek zachowania przepływu).

Wartością przepływu f nazywamy liczbę

|f | =

n∑

i=1

v∈V

f(si, v).

Problem maksymalnego przepływu: dla danej sieci G znaleźć prze-pływ f o maksymalnej wartości |f |.

Page 79: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

9. ZAGADNIENIE TRANSPORTOWE 79

9. Zagadnienie transportowe

Przypuśćmy, że pewien towar jest produkowany w fabrykach: f1, . . . , fm.Znamy maksymalne moce produkcyjne tych fabryk: a1, . . . , am. Chcemy wy-produkowany towar przetansportować do magazynów (hurtowni): h1, . . . , hm,które mają minimalne zapotrzebowania: b1, . . . , bn. Znamy również koszt trans-portu cij z fabryki fi do hurtowni fj , dla wszystkich i, j. Naszym zadaniemjest zminimalizowanie kosztów transportu.Rozważmy nastepujące zagadnienie transportowe: znaleźć minimum

f(x) =

m∑

i=1

n∑

j=1

cijxij (9.1)

na zbiorze ograniczonym warunkamin

j=1

xij ≤ ai, dla i = 1, 2, . . . , m, (9.2)

m∑

i=1

xij ≥ bj , dla j = 1, 2, . . . , n, (9.3)

xij ≥ 0, dla i = 1, 2, . . . , m; j = 1, 2, . . . , n, (9.4)

gdzie ai, bj , cij ∈ N.Zauważmy, że

n∑

j=1

bj ≤n

j=1

(

m∑

i=1

xij) =

m∑

i=1

(

n∑

j=1

xij) ≤m

i=1

ai.

Zatem warunkiem koniecznym na to aby zagadnienie transportowe posiadałorozwiązanie dopuszczalne jest

n∑

j=1

bj ≤m

i=1

ai.

Załóżmy, że spełniony jest powyższy warunek. Można wtedy pokazać, żezadanie transportowe posiada rozwiązanie dopuszczalne (ćwiczenia) oraz każ-de rozwiązanie optymalne y spełnia warunek

∑m

i=1 yij = bj , dla j = 1, . . . , n,(ćwiczenia).

Page 80: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

9. ZAGADNIENIE TRANSPORTOWE 80

Bez straty ogólności możemy założyć, że (9.2) oraz (9.3) są równościami,gdyż możemy dodać fikcyjny wierzchołek odbioru n + 1 z odbiorem

bn+1 =

m∑

i=1

ai −n

j=1

bj

i kosztami ci,n+1 = 0, dla i = 1, . . . , n.

9.1. Rozwiązanie zagadnienia transportowego metodąmaksymalnego przepływu

Zauważmy, że warunek (9.2) zagadnienia transportowego możemy zapisaćw następujący sposób:

−n

j=1

xij ≥ −ai, dla i = 1, 2, . . . , m.

Wtedy zagadnienie transportowe przyjmuje postać: znaleźć minimum

f(x) = cT x

na zbiorze ograniczonym warunkami

Ax ≥ d,

xij ≥ 0, dla i = 1, 2, . . . , m; j = 1, 2, . . . , n,

gdzie d = (a1, . . . , am, b1, . . . , bn)T ,

x = (x1,1, x1,2, . . . , xi,n, x2,1, . . . , x2,n, . . . , xm,1, . . . , xm,n)T ,

c = (c1,1, c1,2, . . . , ci,n, c2,1, . . . , c2,n, . . . , cm,1, . . . , cm,n)T

oraz A jest odpowiednią (m + n) × mn-macierzą.Łatwo zauważyć, że odpowiednie zagadnienie dualne przyjmuje postać:

znaleźć maksimum

−m

i=1

uiai +n

j=1

vjbj (9.5)

Page 81: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

9. ZAGADNIENIE TRANSPORTOWE 81

na zbiorze ograniczonym warunkami:

−ui + vj ≤ cij, (9.6)

ui ≥ 0 , vj ≥ 0, dla i = 1, 2, . . . , m; j = 1, 2, . . . , n. (9.7)

Niech xi,j oraz ui, vj będą rozwiązaniami optymalnymi odpowiednio za-gadnienia prymalnego oraz dualnego. Z wniosku 2.23 wynika, że

(cij − (−ui + vj))xij = 0. (9.8)

Jeśli znajdziemy rozwiązania dopuszczalne xi,j oraz ui, vj odpowiedniozagadnienia prymalnego oraz dualnego, które spełniają warunek (9.8), toz twierdzenia 2.22 będzie wynikać, że są to rozwiązania optymalne tych za-gadnień. Zatem nasz problem redukuje się do znalezienia rozwiązań dopusz-czalnych spełniających warunek (9.8).Zauważmy, że bardzo łatwo jest znaleźć rozwiązanie dopuszczalne proble-

mu dualnego (9.5)-(9.7). Wystarczy przyjąć ui = 0, dla i = 1, . . . , m, orazvj = mincij ; i = 1, . . . , m, dla j = 1, . . . , n. Niech ui, vi będzie pewnymrozwiązaniem dopuszczalnym zagadnienia dualnego. Rozważmy pomocniczyproblem: znaleźć maksimum

m∑

i=1

n∑

j=1

xij (9.9)

na zbiorze ograniczonym warunkami

n∑

j=1

xij ≤ ai, dla i = 1, 2, . . . , m, (9.10)

m∑

i=1

xij ≤ bj , dla j = 1, 2, . . . , n, (9.11)

xij

= 0, gdy − ui + vi < cij ,≥ 0, gdy − ui + vi = cij .

(9.12)

Zauważmy, że jest to zagadnienie maksymalnego przepływu w sieci G =(V, E, s, t, c), gdzie

V = s, s1, . . . , sm, t1, . . . , tn, t,

E = (s, si) ; i = 1, . . . , m∪(tj, t) ; j = 1, . . . , n∪(si, tj) ; gdy −ui+vi = cij,

Page 82: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

9. ZAGADNIENIE TRANSPORTOWE 82

c(s, si) = ai, dla i = 1, . . . , m, c(tj , t) = bj , dla j = 1, . . . , n, c(α) = ∞, dlapozostałych krawędzi.Niech xij będzie rozwiązaniem optymalnym problemu (9.9)-(9.12). Wte-

dy oczywiście spełniona jest równość (9.8). Może się jednak okazać, że xij

nie spełnia warunku (9.3). Nie jest więc rozwiązaniem dopuszczalnym pro-blemu (9.9)-(9.12). W tej sytuacji będziemy modyfikować rozwiązanie ui, vj

zagadnienia dualnego oraz problem (9.9)-(9.12).Poniżej opiszemy algorytm transportowy Forda-Fulkersona (T-F-F), któ-

ry rozwiązuje problem (9.1)-(9.4). Niech a = (a1, . . . , am), b = (b1, . . . , bn),c = (cij).

T-F-F(m, n, a, b, c)

1. podstaw ui := 0, dla każdego i = 1, . . . , m;

2. podstaw vj := mincij ; i = 1, . . . , m, dla każdego j = 1, . . . , n;

3. podstaw xij := 0, dla wszystkich i = 1, . . . , m oraz j = 1, . . . , n;

4. dopóki warunki∑n

j=1 xij ≤ ai oraz∑m

i=1 xij ≥ bi nie są spełnione dlawszystkich i, j wykonuj:

(a) skonstruuj sieć G = (V, E, s, t, c) (zauważmy, że x = (xij) jestprzepływem w tej sieci)

(b) dopóki istnieje ścieżka powiększająca p w Gx wykonuj:

• podstaw cx(p) := mincx(i, j) ; (i, j) ∈ p;• dla każdej krawędzi (u, v) ∈ p wykonuj:– xij := xij + cx(p);– xji := −xij ;

• jeśli∑m

i=1 xij ≥ bi zachodzi dla wszystkich i, to zakończ algo-rytm (wynik: x = (xij));

(c) w Gx nie ma ścieżki powiększającej; niech

I = i ∈ 1, . . . , m ; (s, i) ∈ Ex ; I = 1, . . . , m \ I;

J = j ∈ 1, . . . , n ; (j, t) ∈ Ex ; J = 1, . . . , n \ J ;

(d) podstaw d := mincij + ui − vj ; i ∈ I , j ∈ J

(e) podstaw ui := ui + d, dla i ∈ I;

Page 83: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

9. ZAGADNIENIE TRANSPORTOWE 83

(f) podstaw vj := vj + d, dla i ∈ J ;

Zauważmy, że powyższy algorytm zakończy się. Istotnie, w trakcie wy-konywania algorytmu dla każdego i zachodzi

∑n

j=1 xij ≤ ai, gdyż jest za-chowywany warunek przepustowości oraz zachowania przepływu. W każdymprzebiegu pętli 4 zwiększa się wartość

∑m

i=1

∑n

j=1 xij , która jest ograniczonaz góry przez

∑m

i=1 ai. Stąd pętla 4 jest skończona.W pewnej iteracji musi zostać spełniony również warunek

∑mi=1 xij ≥ bi,

dla wszystkich i (w przeciwnym wypadku pętla 4 byłaby nieskończona).

Przykład 9.13. Rozważmy następujący problem transportowy:

c =

3 7 3 45 7 2 68 13 9 3

, a =

153055

, b =

30101545

.

Zauważmy, że m = 3 oraz n = 4. Zastosujemy do powyższych danych algo-rytm T-F-F. Kładziemy u1 = u2 = u3 = 0, v1 = 3, v2 = 7, v3 = 2, v4 = 3oraz wszystkie xij = 0. Oczywiście warunki (9.2) oraz (9.3) nie są spełnione.Konstruujemy odpowiednią sieć:

t1

0\30

222

2222

2222

2222

2222

2222

2

s1

0\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

0\∞

**VVVVVVVVVVVVVVVVVVVVVVVV

t2

0\10&&MMMMMMMMMMMMM

s

0\15

AA 0\30 //

0\55

;;;

;;;;

;;;;

;;;;

;;; s2

0\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

0\∞

**VVVVVVVVVVVVVVVVVVVVVVVV t

t3

0\15

88qqqqqqqqqqqqq

s3

0\∞

**VVVVVVVVVVVVVVVVVVVVVVVV

t4

0\45

FF

Page 84: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

9. ZAGADNIENIE TRANSPORTOWE 84

Zastosujemy algorytm F-F, aby znaleźć maksymalny przepływ w tej sieci.Ścieżką powiększającą jest np. (s, s1, t1, t). Zwiększamy przepływ wzdłuż tejścieżki i otrzymujemy:

t1

15\30

222

2222

2222

2222

2222

2222

2

s1

15\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

0\∞

**VVVVVVVVVVVVVVVVVVVVVVVV

t2

0\10&&MMMMMMMMMMMMM

s

15\15

AA

0\30 //

0\55

;;;

;;;;

;;;;

;;;;

;;; s2

0\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

0\∞

**VVVVVVVVVVVVVVVVVVVVVVVV t

t3

0\15

88qqqqqqqqqqqqq

s3

0\∞

**VVVVVVVVVVVVVVVVVVVVVVVV

t4

0\45

FF

Przerywane strzałki oznaczają krawędzie, które nie występują w odpowied-niej sieci residualnej. Warunek (9.3) nie jest spełniony, więc wyznaczamy

Page 85: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

9. ZAGADNIENIE TRANSPORTOWE 85

następną ścieżkę powiększającą (s, s2, t2, t) i powiększamy przepływ:

t1

15\30

222

2222

2222

2222

2222

2222

2

s1

15\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

0\∞

**VVVVVVVVVVVVVVVVVVVVVVVV

t2

10\10&&M

MM

MM

MM

s

15\15

AA

10\30 //

0\55

;;;

;;;;

;;;;

;;;;

;;; s2

10\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

0\∞

**VVVVVVVVVVVVVVVVVVVVVVVV t

t3

0\15

88qqqqqqqqqqqqq

s3

0\∞

**VVVVVVVVVVVVVVVVVVVVVVVV

t4

0\45

FF

Kolejną ścieżką powiększającą jest (s, s2, t3, t). Mamy:

t1

15\30

222

2222

2222

2222

2222

2222

2

s1

15\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

0\∞

**VVVVVVVVVVVVVVVVVVVVVVVV

t2

10\10&&M

MM

MM

MM

s

15\15

AA

25\30 //

0\55

;;;

;;;;

;;;;

;;;;

;;; s2

10\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

15\∞

**VVVVVVVVVVVVVVVVVVVVVVVV t

t3

15\15

88qq

qq

qq

q

s3

0\∞

**VVVVVVVVVVVVVVVVVVVVVVVV

t4

0\45

FF

Page 86: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

9. ZAGADNIENIE TRANSPORTOWE 86

Rozważmy ostatnią ścieżkę powiększającą (s, s3, t4, t):

t1

15\30

222

2222

2222

2222

2222

2222

2

s1

15\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

0\∞

**VVVVVVVVVVVVVVVVVVVVVVVV

t2

10\10&&M

MM

MM

MM

s

15\15

AA

25\30 //

45\55

;;;

;;;;

;;;;

;;;;

;;; s2

10\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

15\∞

**VVVVVVVVVVVVVVVVVVVVVVVV t

t3

15\15

88qq

qq

qq

q

s3

45\∞

**VVVVVVVVVVVVVVVVVVVVVVVV

t4

45\45

FF

Zauważmy, że nie ma już żadnej ścieżki powiększającej. Będziemy zatem zmo-dyfikować u oraz v. Mamy I = 2, 3, J = 1. Widzimy, że warunek (9.3)nie jest spełnione dla j = 1. Musimy dodać pewne krawędzie z wierzchołkóws2, s3 do wierzchołka t4 i zwiększyć przepływ. Mamy

d = mincij+ui−vj ; i ∈ I, j ∈ J = minc2,1−v1, c3,1−v1 = min2, 3 = 2

orazuT = [2, 0, 0] , vT = [5, 7, 2, 3].

Page 87: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

9. ZAGADNIENIE TRANSPORTOWE 87

Tworzymy nową sieć

t1

15\30

222

2222

2222

2222

2222

2222

2

s1

15\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

t2

10\10&&M

MM

MM

MM

s

15\15

AA

25\30 //

45\55

;;;

;;;;

;;;;

;;;;

;;; s2

0\∞

==

10\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

15\∞

**VVVVVVVVVVVVVVVVVVVVVVVV t

t3

15\15

88qq

qq

qq

q

s3

45\∞

**VVVVVVVVVVVVVVVVVVVVVVVV

t4

45\45

FF

Mamy nową ścieżkę powiększającą (s, s2, t1, t). Powiększamy przepływ wzdłużtej ścieżki:

t1

20\30

222

2222

2222

2222

2222

2222

2

s1

15\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

t2

10\10&&M

MM

MM

MM

s

15\15

AA

30\30 //______

45\55

;;;

;;;;

;;;;

;;;;

;;; s2

5\∞

==

10\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

15\∞

**VVVVVVVVVVVVVVVVVVVVVVVV t

t3

15\15

88qq

qq

qq

q

s3

45\∞

**VVVVVVVVVVVVVVVVVVVVVVVV

t4

45\45

FF

Page 88: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

9. ZAGADNIENIE TRANSPORTOWE 88

W powyższej sieci nie istnieje już ścieżka powiększająca. Warunek (9.3) niejest spełniony dla j = 1. Musimy ponownie zmodyfikować wektory u oraz v.Zauważmy, że I = 3, J = 1 oraz d = c3,1 + u3 − v1 = 8 − 5 = 3. Mamywięc

uT = [5, 3, 0] , vT = [8, 7, 2, 3]

orazt1

20\30

222

2222

2222

2222

2222

2222

2

s1

15\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

t2

10\10&&M

MM

MM

MM

s

15\15

AA

30\30 //______

45\55

;;;

;;;;

;;;;

;;;;

;;; s2

5\∞

==t

t3

15\15

88qq

qq

qq

q

s3

0\∞

DD

45\∞

**VVVVVVVVVVVVVVVVVVVVVVVV

t4

45\45

FF

Powstała nowa ścieżka powiększająca (s, s4, t1, t), wzdłuż której możemy po-

Page 89: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

10. SKOJARZENIA W GRAFACH DWUDZIELNYCH 89

większyć przepływ:

t1

30\30

22

22

22

22

22

22

s1

15\∞

44hhhhhhhhhhhhhhhhhhhhhhhh

t2

10\10&&M

MM

MM

MM

s

15\15

AA

30\30 //______

55\55

;;

;;

;;

;;

; s2

5\∞

==t

t3

15\15

88qq

qq

qq

q

s3

10\∞

DD

45\∞

**VVVVVVVVVVVVVVVVVVVVVVVV

t4

45\45

FF

Zauważmy, że warunki (9.2) oraz (9.3) są spełnione. Zatem kończymy algo-rytm. Rozwiązaniem wyjściowego zagadnienia transportowego jest

x =

15 0 0 05 10 15 010 0 0 45

.

10. Skojarzenia w grafach dwudzielnych

Poniżej opiszemy problem, który również można rozwiązać przy pomocymaksymalnego przepływu w sieciach. Jest to problem znajdowania maksy-malnego skojarzenia w grafach dwudzielnych. Wyobraźmy sobie, że mamy dodyspozycji pewną liczbę maszyn (odp. ludzi), które mogą wykonywać pewnezadania (w danej chwili tylko jedno zadanie). Problem polega na przydzie-leniu pracy w ten sposób, żeby w danym momencie było wykonywanychmożliwie najwięcej zadań.

Page 90: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

10. SKOJARZENIA W GRAFACH DWUDZIELNYCH 90

Definicja 10.1. Niech G = (V, E) będzie grafem nieskierowanym. Sko-jarzeniem w G nazywamy podzbiór M ⊆ E taki, że dla dowolnej parykrawędzi u1, v1 6= u2, v2 należących do M mamy u1, v1 ∩ u2, v2 = ∅.Maksymalnym skojarzeniem nazywamy skojarzenie o maksymalnej

mocy.

Definicja 10.2. Graf nieskierowany G = (V, E) nazywamy dwudziel-nym, jeśli V = V1∪V2 dla pewnych rozłącznych podzbiorów V1, V2 ⊆ V , orazżadna krawędź nie łączy wierzchołków z tego samego zbioru Vi, dla i = 1, 2.

Opiszemy metodę znajdowania maksymalnego skojarzenia w grafie dwu-dzielnym.Z danym grafem dwudzielnym G = (V, E), gdzie V = V1 ∪ V2, stowarzy-

szamy sieć przepływową G′ = (V ′, E ′, s, t, c) w następujący sposób. Niech

• V ′ = V ∪ s, t, gdzie s, t 6∈ V ;

• E ′ = (s, u) ; u ∈ V1∪(u, v) ∈ E ; u ∈ V1, v ∈ V2∪(v, t) ; v ∈ V2;

• c(u, v) = 1, dla wszystkich (u, v) ∈ E ′.

Twierdzenie 10.3. Niech G = (V, E) będzie grafem dwudzielnym orazniech G′ = (V ′, E ′, s, t, c) będzie odpowiadającą mu siecią przepływową. JeśliM jest skojarzeniem w G, to istnieje przepływ całkowitoliczbowy f w G′ taki,że |M | = |f |. Odwrotnie, jeśli f jest przepływem całkowitoliczbowym w G′,to istnieje skojarzenie M w G takie, że |M | = |f |.

Dowód. Niech M będzie skojarzeniem w grafie dwudzielnym G. Defi-niujemy funkcję f : E ′ → R następująco. Jeśli (u, v) ∈ M , to przyjmujemy

f(s, u) = f(u, v) = f(v, s) = 1 , f(u, s) = f(v, u) = f(s, v) = −1;

jeśli (u, v) 6∈ M , to kładziemy f(u, v) = 0. Udowodnimy, że f jest przepły-wem w sieci G′. Zauważmy, że f powstaje z przepływu zerowego poprzezzwiększanie go wzdłuż ścieżek powiększających (s, u, v, t), dla (u, v) ∈ M .Na podstawie lematu 8.7, f jest przepływem w G′ o wartości |f | = |M |.Udowodnimy teraz odwrotną implikację. Niech f będzie przepływem cał-

kowitoliczbowym w sieci G′. Definiujemy zbiór

M = (u, v) ∈ E ; f(u, v) > 0.

Page 91: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

10. SKOJARZENIA W GRAFACH DWUDZIELNYCH 91

Pokażemy, że M jest skojarzeniem w grafie dwudzielnym G (gdzie V = V1 ∪V2). Z definicji przepływu w sieci G′ można wywnioskować, że f(u, v) ≥ 0dla wszystkich (u, v) ∈ E ′. Jeżeli u ∈ V1, to jedyną krawędzią o końcu w ujest (s, u). Ponieważ c(s, u) = 1 oraz f jest przepływem całkowitoliczbowym,więc f(s, u) ∈ 0, 1. Stąd oraz z warunku zachowania przepływu wynika,że istnieje co najwyżej jeden wierzchołek v ∈ V2 taki, że f(u, v) > 0 (gdyżf jest całkowitoliczbowy oraz dla każdej krawędzi (u, v) mamy f(u, v) ≥ 0).Pokazaliśmy, że dla każdego wierzchołka u ∈ V1 istnieje co najwyżej jedenwierzchołek v ∈ V2 taki, że (u, v) ∈ M . Analogicznie można udowodnić, żedla każdego wierzchołka v ∈ V2 istnieje co najwyżej jeden wierzchołek u ∈ V1

taki, że (u, v) ∈ M . Stąd już łatwo wywnioskować, że M jest skojarzeniemw G oraz |M | = f(V1, V2).Udowodnimy, że |M | = |f |. Zauważmy, że (V1 ∪ s, V2 ∪ t) jest prze-

krojem w sieci G′. Ponadto w G′ nie ma żadnej krawędzi z s do V2 ∪ t aniżadnej krawędzi z V1 ∪ s do t. Zatem na podstawie lematu 8.4 mamy

|M | = f(V1, V2) = f(V1 ∪ s, V2 ∪ t) = |f |.

Wniosek 10.4. Moc maksymalnego skojarzenia w grafie dwudzielnym Gjest równa wartości maksymalnego przepływu f w sieci G′ stowarzyszonejz G.

Dowód. Zadanie na ćwiczenia.

Niech dany będzie graf dwudzielny G, gdzie (V = V1 ∪V2). Z powyższychrozważań wynika, że aby znaleźć maksymalne skojarzenie M w G należy:

1. skonstruować odpowiednią sieć przepływową G′;

2. znaleźć maksymalny całkowity przepływ f w sieci G′; Ponieważ prze-pustowość c przyjmuje wartości całkowitoliczbowe, więc z twierdzenia8.11 wynika, że algorytm Forda-Fulkersona maksymalny przepływ cał-kowitoliczbowy.

3. określić M = (u, v) ∈ E ; f(u, v) > 0.

Page 92: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

10. SKOJARZENIA W GRAFACH DWUDZIELNYCH 92

Przykład 10.5. Rozważmy następujący graf dwudzielny

&&NNNNNNNNNNNNN

• // •

G : •

88qqqqqqqqqqqqq

&&MMMMMMMMMMMMM

88ppppppppppppp

Wyznaczymy maksymalne skojarzenie w G. Odpowiadająca mu sieć przepły-wowa, to

•0\1

&&NNNNNNNNNNNNN

•0\1

// •0\1

&&MMMMMMMMMMMMM

G′ : s

0\1

@@ 0\1

88qqqqqqqqqqqqq

0\1//

0\1

<<<

<<<<

<<<<

<<<<

<<•

0\1

88qqqqqqqqqqqqq

0\1

&&MMMMMMMMMMMMM t

0\1

88qqqqqqqqqqqqq

0\188ppppppppppppp

Obliczymy maksymalny przepływ w G′ metodą Fulkersona-Forda. Będziemy

Page 93: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

10. SKOJARZENIA W GRAFACH DWUDZIELNYCH 93

stosować te same oznaczenia jak w przykładzie 8.12. Mamy

•1

&&NNNNNNN

•1

// •1

%%LL

LL

LL

L

G′f : s

1

AA

1

99rrrrrrrrrrrrr

1//

1

;;;

;;;;

;;;;

;;;;

;;•

1

99rrrrrrrrrrrrr

1

%%LLLLLLLLLLLLL t

1

99rrrrrrrrrrrrr

1

88ppppppppppppp

oraz cf (p) = 1. Zatem

•1\1

&&NNNNNNNNNNNNN

•0\1

// •1\1

&&MMMMMMMMMMMMM

G′ : s

1\1

@@ 0\1

88qqqqqqqqqqqqq

0\1//

0\1

<<<

<<<<

<<<<

<<<<

<<•

0\1

88qqqqqqqqqqqqq

0\1

&&MMMMMMMMMMMMM t

0\1

88qqqqqqqqqqqqq

0\188ppppppppppppp

oraz•

•1

// •

G′f : s

1

99rrrrrrrrrrrrr

1//

1

;;

;;

;;

;;

; •1

99rrrrrrrrrrrrr

1

%%LLLLLLLLLLLLL t

1

99rr

rr

rr

r

1

88ppppppp

Page 94: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

10. SKOJARZENIA W GRAFACH DWUDZIELNYCH 94

przy czym cf (p) = 1. Następnie

•1\1

&&NNNNNNNNNNNNN

•0\1

// •1\1

&&MMMMMMMMMMMMM

G′ : s

1\1

@@ 0\1

88qqqqqqqqqqqqq

0\1//

1\1

<<<

<<<<

<<<<

<<<<

<<•

0\1

88qqqqqqqqqqqqq

0\1

&&MMMMMMMMMMMMM t

1\1

88qqqqqqqqqqqqq

1\188ppppppppppppp

oraz•

•1

// •

G′f : s

1

99rrrrrrrrrrrrr

1// •

1

99rrrrrrrrrrrrr

1

%%LLLLLLLLLLLLL t

Ponieważ w sieci residualnej nie ma już ścieżek powiększających, więc ob-liczony przepływ jest maksymalny. Aby uzyskać maksymalne skojarzenie,wybieramy te krawędzie grafu G, dla których przepływ jest dodatni. Poniżej

Page 95: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

95

maksymalne skojarzenie w G oznaczyliśmy podwójnymi krawędziami:

"*NNNNNNNNNNNN

NNNNNNNNNNNN

• // •

G : •

88qqqqqqqqqqqqq

&&MMMMMMMMMMMMM

4<pppppppppppp

pppppppppppp

Część II

Dodatek

11. Pesymistyczna złożoność czasowa algoryt-mów

Przedstawimy tutaj intuicje związane z problemem pesymistycznej zło-żoności czasowej algorytmów.Złożoność obliczeniowa algorytmów zależy od rozmiaru wprowadzonych

danych. Rozmiar danych jest pojęciem intuicyjnym i zależy od rodzajurozważanego problemu. Zwykle jest to liczba naturalna lub ciąg liczb natu-ralnych, od których zależy szybkość działania algorytmu. I tak np.

• w algorytmach sortowania rozmiarem danych jest liczba n, jeśli sortu-jemy ciąg złożony z n elementów;

• w algorytmach grafowych zwykle rozmiar danych jest parą liczb (|V |, |E|),gdzie G = (V, E) jest rozważanym grafem grafem;

• w problemie plecakowym rozmiarem danych jest para: (liczba rzeczy,rozmiar plecaka);

Page 96: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

11. PESYMISTYCZNA ZŁOŻONOŚĆ CZASOWA ALGORYTMÓW 96

Niech W będzie zbiorem rozmiaru danych dla ustalonego algorytmu orazdla w ∈ W , niech Dw oznacza zbiór danych wejściowych algorytmu, któremają rozmiar w. Chcemy policzyć tzw. pesymistyczną złożoność czasowąalgorytmu, czyli funkcję (częściową) T : W 99K N taką, że

T (w) = supt(x) ; x ∈ Dw,

gdzie t(x) jest liczbą operacji potrzebnych do wykonania algorytmu dla da-nych rozmiaru w.Dla skomplikowanych algorytmów trudno jest dokładnie obliczyć funkcję

T . W praktyce nie zlicza się wszystkich operacji, które wykonuje algorytm.Liczy się tylko te operacje, które są istotne dla szybkości działania algorytmu(np. w większości algorytmów sortowania zlicza się liczbę porównań sorto-wanych elementów). To ograniczenie często nie wystarcza i nadal trudno jestwyznaczyć funkcję T . Zatem podaje się zwykle rząd funkcji T .Reasumując, pojawiająca się informacja: algorytm ma złożoność oblicze-

niową O(n) oznacza, że funkcja T jest co najwyżej rzędu f(n) = n (orazW = N).

11.1. Notacja O, Ω oraz Θ

Definicja 11.1. Niech f, g : N → R. Mówimy, że

1. funkcja f jest co najwyżej rzędu funkcji g (ozn. f = O(g)), jeśliistnieją stałe c ∈ R, c > 0, oraz n0 ∈ N takie, że

|f(n)| ≤ c · |g(n)|

dla wszystkich n ≥ n0.

2. funkcja f jest co najmniej rzędu funkcji g (ozn. f = Ω(g)), jeśliistnieją stałe c ∈ R, c > 0, oraz n0 ∈ N takie, że

|f(n)| ≥ c · |g(n)|

dla wszystkich n ≥ n0.

Page 97: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

12. PRZESZUKIWANIE GRAFU WSZERZ 97

3. funkcja f jest dokładnie rzędu funkcji g (ozn. f = Θ(g)), jeśli istniejąstałe c1, c2 ∈ R, c1 > 0, c2 > 0, oraz n0 ∈ N takie, że

c1 · |g(n)||f(n)| ≤ c2 · |g(n)|

dla wszystkich n ≥ n0.

Lemat 11.2. f = Θ(g) wtedy i tylko wtedy, gdy f = O(g) oraz f = Ω(g).

Dowód. Zadanie na ćwiczenia.

Lemat 11.3. Niech Γ ∈ O, Ω, Θ oraz niech f, g, h, r : N → R.

1. Jeśli f = Γ(g) oraz g = Γ(h), to f = Γ(h).

2. Jeśli f = Γ(g) oraz h = Γ(r), to f · h = Γ(g · r).

3. Jeśli f jest zadana przez wielomian stopnia d, to f = Θ(nd).

Dowód. Zadanie na ćwiczenia.

12. Przeszukiwanie grafu wszerz

Niech G = (V, E) będzie grafem (skierowanym lub nieskierowanym) orazniech s ∈ V będzie wyróżnionym wierzchołkiem (zwanym źródłem). Poniżejprzedstawimy algorytm (tzw. przeszukiwanie grafu wszerz lub BFS), którymoże wyć wykorzystany do znajdowania najkrótszych dróg (w sensie liczbykrawędzi) między wierzchołkami w grafie.W algorytmie wykorzystywana jest kolejka (obiekt FIFO). Jest to struktu-

ra danych, która przechowuje ciąg elementów a1, . . . , an. NiechQ = [a1, . . . , an]będzie kolejką. Na Q możemy wykonywać następujące operacje.

1. Operacja DeQueue(Q) usuwa z Q oraz zwraca jako wynik element a1

(po jej wykonaniu mamy Q = [a2, . . . , an]).

2. Operacja EnQueue(Q, x) dodaje do Q element x (po jej wykonaniumamy Q = [a1, . . . , an, x]).

3. Operacja Head(Q) zwraca jako wynik element a1 (po jej wykonaniumamy Q = [a1, . . . , an]).

Page 98: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

12. PRZESZUKIWANIE GRAFU WSZERZ 98

Zanim opiszemy algorytm BFS, przedstawimy kilka uwag.

• W algorytmie BFS każdy wierzchołek grafu ma przypisany kolor biały,szary lub czarny. Kolor biały mają wierzchołki, które jeszcze nie byłyrozważane w algorytmie; kolor szary mają wierzchołki, których listasąsiedztwa jest właśnie przetwarzana; kolor czarny mają wierzchołki,których lista sąsiedztwa została już rozważona.

• Graf jest reprezentowany przez listy sąsiedztwa.

• Kolor danego wierzchołka v pamiętany jest w zmiennej color[v].

• Dla każdego v ∈ V , π[v] jest poprzednikiem wierzchołka v w najkrótszejdrodze (w sensie liczby krawędzi) z s do v. Tablicę π odczytuje sięanalogicznie jak w algorytmie Dijkstry oraz Bellmana-Forda.

• Dla każdego v ∈ V , δ[v] jest długością najkrótszej drogi (w sensie liczbykrawędzi) z s do v.

• W algorytmie BFS w kolejce Q przechowywane są szare wierzchołki.

Page 99: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

12. PRZESZUKIWANIE GRAFU WSZERZ 99

BFS(G, s)

• dla każdego wierzchołka u ∈ V \ s wykonaj:

– podstaw color[u] := biały;

– podstaw δ[u] := ∞;

– podstaw π[u] := ⊘;

• podstaw color[s] := szary;

• podstaw δ[s] := 0;

• podstaw π[s] := ⊘;

• podstaw Q := [s];

• dopóki Q 6= ∅ wykonuj:

– podstaw u := Head(Q);

– dla każdego wierzchołka v z listy sąsiedztwa L[u] wykonaj:

∗ jeżeli color[u] = biały, to wykonaj· podstaw color[v] := szary;· podstaw δ[v] := δ[u] + 1;· podstaw π[v] := u;· EnQueue(Q, v)

– DeQueue(Q);

– podstaw color[u] := czarny;

12.1. Analiza czasu działania algorytmu BFS

Zauważmy, że każdy wierzchołek jest wstawiany oraz usuwany z kolejkiQ co najwyżej raz. Ponadto lista sąsiedztwa każdego wierzchołka jest prze-glądana co najwyżej raz. Suma długości wszystkich list sąsiedztwa wynosiO(E). Stąd już łatwo wywnioskować, że czas działania procedury BFS wy-nosi O(|V | + |E|).

Page 100: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

13. ZBIORY WYPUKŁE I ICH WŁASNOŚCI 100

13. Zbiory wypukłe i ich własności

Łatwo jest zauważyć, że zbiory rozwiązań układu (2.2) oraz (2.3) są zbio-rami wypukłymi (patrz ćwiczenia). Poniżej przedstawimy pewne własnościzbiorów wypukłych.

Definicja 13.1. Niepusty zbiór S ⊆ Rn nazywamy wypukłym, jeśli dladowolnych dwóch elementów x1, x2 ∈ S oraz dowolnego λ ∈ [0, 1] zachodziλx1 + (1 − λ)x2 ∈ S.

Przykład 13.2. (i) Płaszczyzna w R3, S = (x1, x2, x3) ∈ R3; 2x1 +x2 − 3x3 = 7 lub ogólniej hiperpłaszczyzna w Rn, S = cT x = α, gdzie0 6= c ∈ Rn, α ∈ R.(ii) Półprzestrzeń w R3, S = (x1, x2, x3) ∈ R3; 2x1 + x2 − 3x3 ≤ 7 lubogólniej półprzestrzeń w Rn, S = cT x ≤ α, gdzie 0 6= c ∈ Rn, α ∈ R.(iii) Zbiór S pochodzący z Przykładu 1.1

S =

[

x1

x2

]

∈ R2;

1 13 11 00 1

[

x1

x2

]

91876

,

[

x1

x2

]

[

00

]

.

Uwaga 13.3. (i) Niech S1, S2 ⊆ Rn będą zbiorami wypukłymi. Wówczaszbiory S1 +S2 = x1 +x2; x1 ∈ S1, x2 ∈ S2, S1−S2 = x1−x2; x1 ∈ S1, x2 ∈S2 są również zbiorami wypukłymi.(ii) Niech St ⊆ Rn, t ∈ T będą zbiorami wypukłymi. Wówczas zbiór

t∈T St

jest również wypukły.

Definicja 13.4. Niech ∅ 6= S ⊆ Rn. Otoczką wypukłą zbioru S nazy-wamy najmniejszy zbiór wypukły w Rn zawierający S i oznaczamy go przezconv (S).

Page 101: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

13. ZBIORY WYPUKŁE I ICH WŁASNOŚCI 101

conv (S)

Lemat 13.5. Dowolny zbiór ∅ 6= S ⊆ Rn posiada otoczkę wypukłą.

Dowód. Niech ∅ 6= S ⊆ Rn, A = T ∈ Rn; S ⊆ T, T−wypukły. Od-notujmy, że A 6= ∅, bo Rn ∈ A. Definiujemy

T∈A T = conv (S). MamyS ⊆

T∈A T , bo ∀T∈AS ⊆ T . Ponadto⋂

T∈A T 6= ∅, ponieważ z założeniaS 6= ∅. Z faktu, że dowolny zbiór T ∈ A jest wypukły, dostajemy że zbiór⋂

T∈A T jest wypukły. Załóżmy, że⋂

T∈A T nie jest najmniejszym zbioremwypukłym zawierającym S. Wówczas istnieje zbiór wypukły T0 zawierającyS taki, że

T∈A T 6⊆ T0. Otrzymujemy zatem sprzeczność, bo T0 ∈ A (czyli⋂

T∈A T ⊆ T0).

Twierdzenie 13.6. Niech ∅ 6= S ⊆ Rn. Wówczas x ∈ conv (S) wtedyi tylko wtedy, gdy istnieją x1, x2, . . . , xk ∈ S, λ1, λ2, . . . , λk ≥ 0,

∑k

i=1 λi = 1

takie, że x =∑k

i=1 λixi.

Dowód. Dla ustalonego ∅ 6= S ⊆ Rn oznaczmy

C(S) =

x ∈ Rn; ∃x1,x2,...,xk∈S∃λ1,...,λk≥0,Pk

i=1λi=1 x =

k∑

i=1

λixi

.

Aby wykazać inkluzję conv (S) ⊂ C(S) wystarczy pokazać, że S ⊂ C(S) orazże zbiór C(S) jest wypukły. Oczywiście S ⊂ C(S), ponieważ jeśli x ∈ S, tox = 1x (k = 1, λ1 = 1, x1 = x).Pokażemy, że C(S) jest zbiorem wypukłym. Niech v, w ∈ C(S). Istnieją

zatem v1, v2, . . . , vk, w1, w2, . . . , wl ∈ S oraz λ1, λ2, . . . , λk, µ1, µ2, . . . , µl ≥ 0

Page 102: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

13. ZBIORY WYPUKŁE I ICH WŁASNOŚCI 102

takie, że v =∑k

i=1 λivi, w =∑l

i=1 µiwi oraz∑k

i=1 λi = 1,∑l

i=1 µi = 1.Musimy wykazać, że dla dowolnego t ∈ [0, 1], tv + (1 − t)w ∈ C(S). Mamy

tv + (1 − t)w = t

k∑

i=1

λivi + (1 − t)

l∑

i=1

µiwi =

k∑

i=1

tλivi +

l∑

i=1

(1 − t)µiwi.

Jest to kombinacja liniowa wektorów v1, v2, . . . , vk, w1, w2, . . . , wl ∈ S oraztλi ≥ 0 dla i = 1, 2, . . . , k, (1 − t)µi ≥ 0 dla i = 1, 2, . . . , l. Ponadto

k∑

i=1

tλi +l

i=1

(1 − t)µi = tk

i=1

λi + (1 − t)l

i=1

µi = t + 1 − t = 1.

ostatecznie otrzymujemy, że conv (S) ⊂ C(S).Pozostała nam jeszcze do udowodnienia inkluzja C(S) ⊂ conv (S). Niech

S ⊆ T ⊆ Rn będzie dowolnym zbiorem wypukłym. Pokażemy, że C(S) ⊂ T .Weźmy x ∈ C(S), zatem x =

∑ki=1 λixi, xi ∈ S,

∑ki=1 λi = 1. Dowód faktu,

że x ∈ T przeprowadzimy indukcyjnie ze względu na k.Jeśli k = 1, to x = x1 ∈ S ⊆ T . Czyli x ∈ T . Załóżmy, że x ∈ T dla k−1.

Wówczas

x =k

i=1

λixi =k−1∑

i=1

λixi + λkxk =k−1∑

i=1

(1 − λk)λi

1 − λk

xi + λkxk =

(1 − λk)

k−1∑

i=1

λi

1 − λk

xi + λkxk.

Możemy założyć, że λk 6= 1 (w przeciwnym razie k = 1). Zauważmy, żeelement x′ =

∑k−1i=1

λi

1−λkxi należy do T , gdyż

k−1∑

i=1

λi

1 − λk

=

∑k−1i=1 λi

1 − λk

=1 − λk

1 − λk

= 1

oraz xi ∈ S. Zatem x = (1−λk)x′+λkxk, gdzie x′ ∈ T, xk ∈ S ⊆ T należy do

T , ponieważ T jest zbiorem wypukłym. Z dowolności T dostajemy C(S) ⊂conv (S). Ostatecznie otrzymujemy równość C(S) = conv (S).

Definicja 13.7. Otoczkę wypukłą skończonego zbioru x1, x2, . . . , xk ⊂Rn nazywamy wielościanem. Jeśli ponadto wektory x2−x1, x3−x1, . . . , xk−x1 są liniowo niezależne, to wielościan nazywamy sympleksem.

Page 103: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

13. ZBIORY WYPUKŁE I ICH WŁASNOŚCI 103

wielościan sympleks

Twierdzenie 13.8 (Carathe’odory). Niech ∅ 6= S ⊆ Rn będzie dowolnymzbiorem. Wówczas x ∈ conv (S) wtedy i tylko wtedy, gdy istnieją x1, x2, . . .,xn+1 ∈ S takie, że x ∈ conv (x1, x2, . . . , xn+1).

Dowód. Oczywiście jeżeli istnieją elementy x1, x2, . . . , xn+1 ∈ S takie, żex ∈ conv (x1, x2, . . . , xn+1),to x ∈ conv (S).Niech x ∈ conv (S). Wówczas x =

∑k

i=1 λixi, przy czym x1, x2, . . . , xk ∈

S, λ1, λ2, . . . , λk ≥ 0,∑k

i=1 λi = 1. Jeżeli k ≤ n+1, to odpowiednia implikacjajest prawdziwa z Twierdzenia 13.6. Jeśli k > n+1, to wektorów x2−x1, x3−x1, . . . , xk − x1 jest co najmniej n + 1, zatem są one liniowo zależne (w Rn).Dlatego istnieją liczby µi ∈ R, i = 2, 3, . . . , k takie, że

∑ki=2 µi(xi − x1) = 0

oraz∑k

i=2 µ2i 6= 0. Niech µ1 = −

∑k

i=2 µi. Wówczas

k∑

i=1

µixi = µ1x1 +

k∑

i=2

µixi = −k

i=2

µix1 +

k∑

i=2

µixi =

k∑

i=2

µi(xi − x1) = 0.

Ponadto∑k

i=1 µi = 0 oraz∑k

i=1 µ2i 6= 0. Rozpatrzmy zbiór A = λi

µi; µi > 0.

Zauważmy, że A 6= ∅ (istnieje i ∈ 1, 2, . . . , k, dla którego µi > 0, ponieważjeśli dla każdego i ≥ 2, µi ≤ 0, to µ1 > 0). Niech

α = minλi

µi

; µi > 0 =λs

µs

> 0

dla pewnego s ∈ 1, 2, . . . , k. Mamy

x =k

i=1

λixi + 0 =k

i=1

λixi − αk

i=1

µixi =k

i=1

(λi − αµi)xi.

Page 104: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

13. ZBIORY WYPUKŁE I ICH WŁASNOŚCI 104

Jeśli µi ≤ 0, to λi−αµi > 0. Jeśli µi > 0, to λi

µi≥ λs

µs= α. Czyli λi−αµi ≥ 0.

Ponadtok

i=1

(λi − αµi) =k

i=1

λi − αk

i=1

µi = 1 − α0 = 1.

Równocześnie λs − αµs = λs − λs

µsµs = 0. Wobec powyższych zależności

x =∑k

i=1,i6=s(λi − αµi)xi, czyli x ∈ conv ((xi)i, 1 ≤ i ≤ k, i 6= s). Zatemx posiada przedstawienie w postaci wypukłej kombinacji k − 1 elementówze zbioru S. Jeżeli k − 1 > n + 1, to postępujemy analogicznie. Proces tenkontynuujemy, dopóty dopóki x nie okaże się wypukłą kombinacją n + 1elementów ze zbioru S.

13.1. Topologiczne własności zbiorów wypukłych

Przypomnijmy kilka podstawowych pojęć związanych z przestrzeniamimetrycznymi. Przestrzenią metryczną nazywamy parę (X, d) złożoną zezbioru X oraz funkcji d (zwanej metryką), która każdej parze elementówx, y ∈ X przyporządkowuje liczbę rzeczywistą d(x, y) w taki sposób, że speł-nione są poniższe warunki:1. d(x, y) = 0 wtedy i tylko wtedy, gdy x = y,2. d(x, y) = d(y, x) dla każdych x, y ∈ X,3. d(x, z) ≤ d(x, y) + d(y, z) dla każdych x, y, z ∈ X.

Niech x ∈ X, 0 < r ∈ R, kulą otwartą o środku w x i promieniu r nazywamyzbiór K(x, r) = y ∈ X; d(x, y) < r. Niech S będzie dowolnym podzbioremprzestrzeni metrycznej (X, d). Mówimy, że punkt x ∈ S należy do domknię-cia S zbioru S, jeśli dla dowolnej liczby rzeczywistej r > 0, S ∩K(x, r) 6= ∅.Jeżeli S = S, to zbiór S nazywamy domkniętym. Punkt x ∈ S należydo wnętrza Int S zbioru S, jeśli istnieje liczba rzeczywista r > 0 taka, żeK(x, r) ⊂ S. Jeżeli S = IntS, to zbiór S nazywamy otwartym.Odnotujmy, że rozważania nasze dotyczą podzbiorów przestrzeni Rn dla

dowolnego n ≥ 1. Okazuje się, że para (Rn, d) jest przestrzenią metryczną zmetryką d : Rn × Rn → R indukowaną przez normę euklidesową:

d(x, y) = ||x − y|| =

n∑

i=1

(xi − yi)2,

Page 105: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

13. ZBIORY WYPUKŁE I ICH WŁASNOŚCI 105

gdzie x = (x1, x2, . . . , xn), y = (y1, y2, . . . , yn) ∈ Rn.

Twierdzenie 13.9. Niech S ⊆ Rn będzie zbiorem wypukłym takim, żeIntS 6= ∅. Jeśli x1 ∈ S, x2 ∈ IntS, to dla dowolnego λ ∈ (0, 1) zachodziλx1 + (1 − λ)x2 ∈ IntS.

Dowód. Niech S, x1, x2 będą jak wyżej. Ustalmy λ ∈ (0, 1) i niech y =λx1+(1−λ)x2. Aby pokazać, że y ∈ IntS wystarczy znaleźć otoczenie punktuy zawarte w S. Pokażemy, że K(y, (1−λ)ε) ⊂ S, gdzie ε > 0 jest taką liczbą,dla której K(x2, ε) ⊂ S.

Weźmy z ∈ K(y, (1− λ)ε) i rozważmy zbiór K(

x1,(1−λ)ε−||z−y||

λ

)

. Ponie-

waż z ∈ K(y, (1− λ)ε), to ||z − y|| < (1− λ)ε, czyli (1 − λ)ε− ||z − y|| > 0.

Ponieważ x1 ∈ S, to przekrój K(

x1,(1−λ)ε−||z−y||

λ

)

∩ S 6= ∅. Weźmy z1 na-

leżący do powyższego przekroju i niech z2 = z−λz1

1−λ. Pokażemy, że z2 ∈ S.

Mamy

||z2 − x2|| =

z − λz1

1 − λ− x2

=

z − λz1 − (1 − λ)x2

1 − λ

=

z − λz1 + λx1 − λx1 − (1 − λ)x2

1 − λ

=

z − λz1 + λx1 − y

1 − λ

=

1

1 − λ||z − y + λ(x1 − z1)|| ≤

1

1 − λ(||z − y|| + λ||x1 − z1||) <

1

1 − λ

(

||z − y|| + λ(1 − λ)ε − ||z − y||

λ

)

= ε.

Zatem z2 ∈ K(x2, ε) ⊂ S. Ponadto mamy

λz1 + (1 − λ)z2 = λz1 + (1 − λ)z − λz1

1 − λ= z.

Wiemy, że z1, z2 ∈ S oraz że S jest zbiorem wypukłym, wobec tego z ∈S. Zatem dowolny element z ∈ K(y, (1 − λ)ε) należy do zbioru S, czyliostatecznie y ∈ IntS.

Wniosek 13.10. Niech S ⊆ Rn będzie zbiorem wypukłym takim, żeIntS 6= ∅. Wówczas IntS jest zbiorem wypukłym.

Page 106: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

13. ZBIORY WYPUKŁE I ICH WŁASNOŚCI 106

Dowód. Niech x1, x2 ∈ IntS. Wówczas x1 ∈ S (bo IntS ⊂ S) oraz x2 ∈IntS, zatem na mocy Twierdzenia 13.9 IntS jest zbiorem wypukłym.

Wniosek 13.11. Niech S ⊆ Rn będzie zbiorem wypukłym takim, żeIntS 6= ∅. Wówczas S jest zbiorem wypukłym.

Dowód. Weźmy x1, x2 ∈ S oraz ustalmy z ∈ IntS. Chcemy pokazać, żedla dowolnego µ ∈ (0, 1), µx1 + (1− µ)x2 ∈ S. Z Twierdzenia 13.9 wiemy, żedla dowolnego λ ∈ (0, 1), λx2 + (1 − λ)z ∈ IntS. Podobnie

µx1 + (1 − µ)(λx2 + (1 − λ)z) ∈ Int S ⊂ S.

Ustalmy ciąg (λn) taki, że limn→∞ λn = 1, λn ∈ (0, 1), n ≥ 1. Dla dowolnegon ≥ 1 mamy

yn = µx1 + (1 − µ)(λnx2 + (1 − λn)z) ∈ IntS.

Zatem y = limn→∞ yn ∈ IntS ⊂ S, ale y = µx1 + (1 − µ)x2 ∈ S, czyli S jestzbiorem wypukłym.

Wniosek 13.12. Niech S ⊆ Rn będzie zbiorem wypukłym takim, żeIntS 6= ∅. Wówczas S = Int S.

Dowód. Zawieranie Int S ⊂ S jest prawdziwe dla dowolnego zbioru S.Niech x ∈ S i wybierzmy y ∈ Int S (z założenia IntS 6= ∅). Wówczas namocy Twierdzenia 13.9 λx + (1 − λ)y ∈ IntS dla dowolnego λ ∈ (0, 1).Ustalmy ciąg (λn) taki, że limn→∞ λn = 1, λn ∈ (0, 1), n ≥ 1. Oznaczmyprzez xn = λnx+(1−λn)y. Wówczas xn ∈ Int S oraz x = limn→∞ xn ∈ Int S,czyli S ⊂ Int S.

Wniosek 13.13. Niech S ⊆ Rn będzie zbiorem wypukłym takim, żeIntS 6= ∅. Wówczas IntS = IntS.

Dowód. Oczywiście IntS ⊂ IntS, pokażemy natomiast, że prawdziwajest również inkluzja odwrotna.Niech x ∈ Int S. Istnieje wówczas ε > 0 taki, że K(x, ε) ⊂ S. Ustalmy

y ∈ Int S, y 6= x. Rozważmy z = (δ + 1)x − δy, gdzie δ = ε2||x−y||

. Wówczas

||z − x|| = ||(δ + 1)x − δy − x|| = ||δx − δy|| = δ||x − y|| =ε

2.

Zatem z ∈ K(x, ε) ⊂ S, czyli z ∈ S. Zauważmy, że x = zδ+1

+ δy

δ+1i jeśli

przyjmiemy oznaczenie λ = 1δ+1, to δ

δ+1= 1 − λ oraz λ ∈ (0, 1). Ponieważ

z ∈ S oraz y ∈ IntS, to z Twierdzenia 13.9 otrzymujemy, że x ∈ Int S.

Page 107: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

13. ZBIORY WYPUKŁE I ICH WŁASNOŚCI 107

Twierdzenie 13.14. Niech S ⊆ Rn będzie zbiorem wypukłym takim, żeS = S oraz niech y 6∈ S. Wówczas istnieje dokładnie jeden punkt x ∈ Staki, że odległość y od x jest minimalna, tzn. ||y − x|| = minx∈S||y − x||.Ponadto punkt x jest jedynym punktem zbioru S spełniającym nierówność:(x − x)T (x − y) ≥ 0 dla wszystkich x ∈ S.

Dowód. Niech γ = infx∈S||y − x||. Ponieważ zbiór S jest domknięty,to γ > 0. Rzeczywiście, gdyby γ = 0, to istniałby ciąg (xn) ⊂ S taki, żelimn→∞ xn = y, czyli y ∈ S i w konsekwencji y ∈ S, co daje sprzeczność.Wobec tego istnieje ciąg (xn) ⊂ S taki, że limn→∞ ||xn − y|| = γ. Pokażemy,że ciąg (xn) jest zbieżny. Niech k, n ∈ N. Mamy

||xk−xn||2 = ||xk−y−(xn−y)||2 = 2||xk−y||2+2||y−xn||

2−||xk+xn−2y||2 =

2||xk − y||2 + 2||xn − y||2 − 4

xk + xn

2− y

2

.

Ponieważ xk, xn ∈ S, to xk+xn

2∈ S. Z określenia γ mamy

xk+xn

2− y

2≥ γ2.

Stąd||xk − xn||

2 ≤ 2||xk − y||2 + 2||xn − y||2 − 4γ2.

Wiemy, że limk→∞ ||xk −y|| = γ, czyli limk→∞ ||xk −y||2 = γ2. Istnieje zatemN takie, że dla m ≥ N

||xm − y||2 < γ2 +ε

4.

Stąd dla k, n ≥ N

||xk − xn||2 < 2γ2 +

ε

2+ 2γ2 +

ε

2− 4γ2 = ε.

Zatem (xn) jest ciągiem Cauchy’ego. Z zupełności Rn dostajemy, że ciąg (xn)jest zbieżny. Niech x = limn→∞ xn, odnotujmy że x ∈ S, ponieważ S = S.Mamy

||y − x|| = ||y − limn→∞

xn|| = limn→∞

||y − xn|| = γ.

Aby pokazać jedyność załóżmy, że istnieje element x′ ∈ S taki, że ||y−x′|| =γ. Pokażemy, iż x′ = x. Ponieważ zbiór S jest wypukły, to x+x′

2∈ S. Mamy

y −x + x′

2

=

y

2−

x

2+

y

2−

x′

2

≤1

2||y − x|| +

1

2||y − x′|| = γ.

Page 108: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

13. ZBIORY WYPUKŁE I ICH WŁASNOŚCI 108

Z określenia γ wynika, że∣

∣y − x+x′

2

∣ = γ, ale

4

y −x + x′

2

2

+ ||x′ − x||2 = 2||y − x||2 + 2||y − x′||2.

Czyli 4γ2 + ||x′ − x||2 = 2γ2 + 2γ2, a zatem ||x′ − x|| = 0 i x′ = x.Pokażemy teraz, że (x − x)T (x − y) ≥ 0 dla dowolnego x ∈ S. Weźmy

x ∈ S, wówczas ||y−x||2 ≤ ||y−x||2 (x jest najbliżej y). Zbiór S jest wypukłyoraz x, x ∈ S zatem dla λ ∈ [0, 1], λx + (1 − λ)x ∈ S. Mamy ponadto

||y−x||2 ≤ ||y−x−λ(x−x)||2 = ||y−x||2 +λ2||x−x||2 +2λ(y−x)T (x−x).

Stąd λ2||x − x||2 + 2λ(x − x)T (x − y) ≥ 0 i dla λ > 0, λ||x − x||2 + 2(x −x)T (x − y) ≥ 0. Gdy λ zmierza do zera otrzymujemy (x − x)T (x − y) ≥ 0.Pokażemy teraz, że x jest jedynym punktem spełniającym powyższą nie-

równość. Niech x′ ∈ S oraz niech dla dowolnego x ∈ S zachodzi (x−x′)T (x′−y) ≥ 0. Wówczas

||y − x||2 = ||y − x′ + x′ − x||2 = ||y − x′||2 + ||x′ − x||2 + 2(y − x′)T (x′ − x).

Ponieważ ||x′ − x||2 ≥ 0 oraz (x− x′)T (x′ − y) ≥ 0, to ||y − x||2 ≥ ||y − x′||2

dla dowolnego x ∈ S. Zatem ostatecznie x′ = x, bo tylko x posiada tęwłasność.

Przypomnijmy, że zbiór H = x ∈ Rn; cTx = α ⊂ Rn, gdzie 0 6=c ∈ Rn, α ∈ R nazywamy hiperpłaszczyzną w Rn. Wektor c nazywa-my wektorem normalnym hiperpłaszczyzny H . Ponadto hiperpłaszczy-zna wyznacza dwie półprzestrzenie: H+ = x ∈ Rn; cT x ≥ α orazH− = x ∈ Rn; cT x ≤ α. Odnotujmy, że H+ ∩ H− = H .

Uwaga 13.15. Obszar dopuszczalny F = x ∈ Rn; Ax ≤ b, x ≥ 0,A ∈ Mm×n(R), b ∈ R LP-modelu maxcTx; Ax ≤ b, x ≥ 0 jest przekrojem

m + n półprzestrzeni. Istotnie niech A =

a11 a12 . . . a1n

a21 a22 . . . a2n

....... . .

...am1 am2 . . . amn

, b =

b1

b2...

bm

,

Page 109: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

13. ZBIORY WYPUKŁE I ICH WŁASNOŚCI 109

x =

x1

x2...

xn

. Dowolny element x ∈ F spełnia następujące ograniczenia:

a11 a12 . . . a1n

a21 a22 . . . a2n

....... . .

...am1 am2 . . . amn

x1

x2...

xn

b1

b2...

bm

,−x1 ≤ 0,−x2 ≤ 0, . . . ,−xn ≤ 0.

Definiujemy H−i = x ∈ Rn; ai1x1 + · · · + ainxn ≤ bi, dla i = 1, 2, . . . , m

oraz H−m+j = x ∈ Rn;−xj ≤ 0, dla j = 1, 2, . . . , n. Czyli F =

⋂m+n

i=1 H−i ,

natomiast wektorami normalnymi są:

a11

a12...

a1n

, . . .,

am1

am2...

amn

,

−10...0

, . . .,

00...−1

.

Przykład 13.16. Rozważmy przykład 1.1 z dodatkowym ograniczeniemx1 + x2 ≥ 5 (powiedzmy, że nasza firma zobowiązała się dostarczyć co naj-mniej 500 000 pudeł zapałek długich lub krótkich). Wówczas półprzestrzeniewyznaczone przez ograniczenia są następujące:

H−1 =

[

x1

x2

]

∈ R2; x1 + x2 ≤ 9

,

H−2 =

[

x1

x2

]

∈ R2; 3x1 + x2 ≤ 18

,

H−3 =

[

x1

x2

]

∈ R2; x1 ≤ 7

,

H−4 =

[

x1

x2

]

∈ R2; x2 ≤ 6

,

H−5 =

[

x1

x2

]

∈ R2;−x1 − x2 ≤ −5

,

H−6 =

[

x1

x2

]

∈ R2;−x1 ≤ 0

,

Page 110: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

13. ZBIORY WYPUKŁE I ICH WŁASNOŚCI 110

H−7 =

[

x1

x2

]

∈ R2;−x2 ≤ 0

,

czyli F =⋂7

i=1 H−i , natomiast wektorami normalnymi są:

[

11

]

,[

31

]

,[

10

]

,[

01

]

,[

−1−1

]

,[

−10

]

,[

0−1

]

.

Definicja 13.17. Hiperpłaszczyzna H = x ∈ Rn; cTx = α ⊂ Rn,gdzie 0 6= c ∈ Rn, α ∈ R rozdziela zbiory S1, S2 ⊆ Rn, jeśli dla dowol-nych x ∈ S1, y ∈ S2, cT x ≥ α i cT y ≤ α. Hiperpłaszczyzna H właściwierozdziela zbiory S1, S2 ⊆ Rn, jeśli H rozdziela S1 i S2 oraz S1∪S2 6⊆ H . Hi-perpłaszczyzna H ostro rozdziela zbiory S1, S2 ⊆ Rn, jeśli dla dowolnychx ∈ S1, y ∈ S2, cT x > α i cT y < α. Hiperpłaszczyzna H silnie rozdzielazbiory S1, S2 ⊆ Rn, jeśli istnieje ε > 0 takie, że dla dowolnych x ∈ S1,y ∈ S2, cT x ≥ α + ε i cT y ≤ α.

Twierdzenie 13.18. Niech S ⊆ Rn będzie wypukłym i domkniętym zbio-rem oraz niech y 6∈ S. Wówczas istnieje wektor c ∈ Rn oraz α ∈ R takie, żecT y > α oraz cT x ≤ α dla każdego x ∈ S.

Dowód. Z twierdzenia 13.14 wiemy, że istnieje w zbiorze S taki elementx, że ||y−x|| = minx∈S ||y−x|| oraz dla dowolnego x ∈ S, (x−x)T (y−x) ≤ 0.Stąd xT (y − x) ≤ xT (y − x),

||y−x||2 = (y−x)T (y−x) = yT (y−x)−xT (y−x) ≤ yT (y−x)−xT (y−x) =

(y − x)T (y − x) = cT (y − x),

gdzie c = y − x 6= 0. Mamy cT y ≥ cT x + ||y − x||2 dla dowolnego x ∈ S.Niech α = supcTx; x ∈ S, wówczas cT y ≥ α + ||y − x||2 > α oraz cT x ≤ αz definicji α.

Wniosek 13.19. Niech S ⊆ Rn będzie wypukłym i domkniętym zbiorem.Wówczas przekrój wszystkich półprzestrzeni zawierających zbiór S jest równyS.

Twierdzenie 13.20 (Farkas). Niech A ∈ Mm×n(R), c ∈ Rn. Wówczasdokładnie jeden z poniższych układów nierówności posiada rozwiązanie:(i) Ax ≤ 0, cT x > 0, x ∈ Rn,(ii) AT y = c, y ≥ 0, y ∈ Rm.

Page 111: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

13. ZBIORY WYPUKŁE I ICH WŁASNOŚCI 111

Dowód. Załóżmy, że układ (ii) posiada rozwiązanie tzn. istnieje y ≥ 0,y ∈ Rm takie, że AT y = c. Załóżmy, że Ax ≤ 0 dla pewnego x ∈ Rn. Wówczas

cT x = (AT y)T x = yTAx ≤ 0,

ponieważ Ax ≤ 0, y ≥ 0, sprzeczność.Załóżmy teraz, że układ (ii) nie posiada rozwiązania. Niech S = x ∈

Rn; ∃y≥0 x = AT y. Zbiór S jest domknięty oraz wypukły, ponadto z założe-nia c 6∈ S. Z twierdzenia 13.18 wiemy, że istnieje wektor p ∈ Rn oraz α ∈ R

takie, że pT c > α i pT x ≤ α dla każdego x ∈ S. Ponieważ 0 ∈ S, to α ≥ 0.Zatem pT c > 0. Ponadto mamy

α ≥ pT x = pT AT y = yTAp

dla dowolnego y ≥ 0. Rozważmy yi = λei, λ > 0. Wtedy λ(Ap)i ≤ α, a więc(Ap)i ≤

αλ. Z dowolności λ, Ap ≤ 0, czyli otrzymaliśmy, że p spełnia układ

(i).

Wniosek 13.21. Niech A ∈ Mm×n(R), c ∈ Rn. Wówczas dokładnie jedenz poniższych układów nierówności posiada rozwiązanie:(i) Ax ≤ 0, x ≥ 0, cT x > 0, x ∈ Rn,(ii) AT y ≥ c, y ≥ 0, y ∈ Rm.

Dowód. Niech A0 = [AT ,−In]T , wtedy A0x = [Ax,−x]T . Jeśli A0x ≤ 0,to znaczy że Ax ≤ 0 oraz x ≥ 0. Jeżeli istnieje y ∈ Rn+m taki, że AT

0 y = coraz y ≥ 0, to

AT0 y = [AT ,−In]y = AT y′ − y′′ = c.

Zatem AT y′ ≥ c, y′ ≥ 0, y′ ∈ Rm.

Wniosek 13.22. Niech A ∈ Mm×n(R), B ∈ Ml×n(R), c ∈ Rn. Wówczasdokładnie jeden z poniższych układów nierówności posiada rozwiązanie:(i) Ax ≤ 0, Bx = 0, cT x > 0, x ∈ Rn,(ii) AT y + BT z = c, y ≥ 0, y ∈ Rm, z ∈ Rl.

Dowód. Niech A0 = [AT , BT ,−BT ]T , wtedy A0x = [Ax, Bx,−Bx]T .Zatem aby A0x ≤ 0, to Ax ≤ 0, Bx = 0. Jeżeli y0 = (y, z′, z′′), to AT

0 y0 = c,AT y + BT (z′ − z′′) = c.

Definicja 13.23. Niech S ⊆ Rn będzie zbiorem wypukłym, x ∈ δS.Hiperpłaszczyzna H = x ∈ Rn; cT (x − x) = 0 nazywa się styczną do S wpunkcie x, jeśli S ⊆ H+ lub S ⊆ H−. Jeżeli ponadto S 6⊆ H , to H nazywasię hiperpłaszczyzną właściwą styczną do S w punkcie x.

Page 112: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

13. ZBIORY WYPUKŁE I ICH WŁASNOŚCI 112

Twierdzenie 13.24. Niech S ⊆ Rn będzie zbiorem wypukłym. Wówczasdla każdego x ∈ δS istnieje hiperpłaszczyzna styczna do S w punkcie x.

Dowód. Ponieważ x ∈ δS, to istnieje ciąg (yk) w Rn, k ∈ N taki, żelimk→∞ yk = x, ale dla każdego k ∈ N, y 6∈ S. Z twierdzenia 13.18 wiemy, żegdy S jest wypukły i domknięty oraz y 6∈ S, to istnieje wektor 0 6= c ∈ Rn

oraz α ∈ R takie, że cT y > α ≥ cT x dla każdego x ∈ S. Istnieją zatemelementy ck ∈ Rn, ck 6= 0 takie, że cT

k yk > cTk x dla dowolnego x ∈ S. Weźmy

c′k = ck

||ck||, wówczas dla dowolnego x ∈ S, c′Tk yk > c′Tk x. Ponadto ciąg (c′k) jest

ograniczony, więc można wybrać podciąg zbieżny (c′lk). Niech limn→∞ c′lk = c.Dla dowolnego x ∈ S mamy wtedy, że cT x ≥ cT x. Stąd dla każdego x ∈ S,cT (x − x) ≤ 0. Zatem S ⊆ H−.

Wniosek 13.25. Niech S ⊆ Rn będzie zbiorem wypukłym. Dla dowolnegox 6∈ S istnieje niezerowy wektor c ∈ Rn taki, że cT (x− x) ≤ 0 dla dowolnegox ∈ S.

Dowód. Jeżeli x ∈ S, to x ∈ δS i na mocy twierdzenia 13.24 otrzymuje-my tezę, natomiast jeśli x 6∈ S, to teza wynika z twierdzenia 13.18.

Twierdzenie 13.26 (o rozdzielaniu zbiorów wypukłych). Niech S1, S2 ⊆Rn będą zbiorami wypukłymi takimi, że S1∩S2 = ∅. Wówczas istnieje wektorc ∈ Rn, c 6= 0 taki, że

infcT x; x ∈ S1 ≥ supcT x; x ∈ S2.

Dowód. Niech S = S2 − S1 = x2 − x1; x1 ∈ S1, x2 ∈ S2. Wiemy,że S jest zbiorem wypukłym oraz że 0 6∈ S2 − S1, co wynika z założenia

Page 113: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

13. ZBIORY WYPUKŁE I ICH WŁASNOŚCI 113

S1∩S2 = ∅. Z twierdzenia 13.18 istnieje c ∈ Rn taki, że dla dowolnego x ∈ S,cT x ≤ 0. Zatem dla dowolnych x1 ∈ S1, x2 ∈ S2, cT (x2 − x1) ≤ 0, to znaczycT x2 ≤ cT x1.

Wniosek 13.27. Teza twierdzenia 13.26 pozostaje prawdziwa przy poniż-szych założeniach:(i) Int S1 6= ∅, S2 6= ∅, IntS1 ∩ S2 = ∅(ii) S1 6= ∅, IntS2 6= ∅, IntS1 ∩ IntS2 = ∅.

Twierdzenie 13.28 (o silnym rozdzielaniu zbiorów wypukłych). NiechS1, S2 ⊆ Rn będą zbiorami wypukłymi i domkniętymi takimi, że S1 ∩ S2 = ∅.Ponadto niech S1 będzie zbiorem ograniczonym. Wówczas istnieją: wektorc ∈ Rn, c 6= 0 oraz skalar ε > 0 takie, że

infcT x; x ∈ S1 ≥ ε + supcT x; x ∈ S2.

Dowód. Niech S = S1 − S2 = x1 − x2; x1 ∈ S1, x2 ∈ S2, wówczas Sjest zbiorem wypukłym oraz 0 6∈ S. Pokażemy, że zbiór S jest domknięty.Niech xk będzie ciągiem z S, zbieżnym do x. Z określenia zbioru S wiemy,że każdy element ciągu można przedstawić w postaci xk = yk − zk, k ∈ N,yk ∈ S1, zk ∈ S2. Ponieważ S1 jest zbiorem zwartym (jako zbiór domkniętyi ograniczony w Rn), to istnieje podciąg ykl

zbieżny do y oraz y ∈ S1.Ponieważ limk→∞(yk − zk) = x, limk→∞ ykl

= y, limk→∞ zk = z, przy czymz2 ∈ S2, bo S2 jest domknięty. Zatem x = y − z, y ∈ S1, z ∈ S2 czyli x ∈ S.Wobec tego zbiór S jest domknięty. Z twierdzenia 13.18 wiemy, że istnieją0 6= c ∈ Rn, ε ∈ R takie, że cT x ≥ ε dla dowolnego x ∈ S oraz cT 0 < ε.Zatem ε > 0. Z określenia zbioru S (0 6∈ S) otrzymujemy, że cT x1 ≥ ε+ cT x2

dla dowolnych x1 ∈ S1, x2 ∈ S2.

Twierdzenie 13.29 (Jordan). Niech A ∈ Mm×n(R). Wówczas dokładniejeden z poniższych układów nierówności posiada rozwiązanie:(i) Ax < 0, x ∈ Rn,(ii) AT c = 0, c ∈ Rm, c > 0.

Dowód. Jeśli x jest rozwiązaniem układu (i), natomiast c rozwiązaniemukładu (ii), to Ax < 0, AT c = 0, c > 0 i mamy xT AT c = xT 0 = 0, alexT AT c = cT Ax < 0, sprzeczność.Załóżmy, że układ (i) nie posiada rozwiązania. Rozważmy następujące

zbiory: S1 = z ∈ Rm; ∃x∈Rn z = Ax oraz S2 = z ∈ Rm; z < 0. Zauważ-my, że zbiory S1 i S2 są wypukłe. Ponadto S1 ∩ S2 = ∅. Rzeczywiście, jeśli

Page 114: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

14. PROBLEM DUALNOŚCI W PROGRAMOWANIU LINIOWYM 114

z ∈ S1 ∩ S2, to ∃x∈Rn Ax = z < 0 co ma miejsce wtedy i tylko wtedy, gdywektor x jest rozwiązaniem (i), sprzeczność.Z twierdzenia 13.26 wiemy, że istnieje wektor c ∈ Rm, c 6= 0 taki, że

cT Ax ≥ cT z dla z < 0, x ∈ Rn. Zatem dla x = 0, cT z ≤ 0, gdzie z < 0. Stądc ≥ 0. Z faktu, że każda współrzędna wektora z może być dowolnie małamamy, że cT Ax ≥ 0. Niech x = −AT c, wówczas

0 ≤ cT A(−AT c) = −(AT c)T (AT c) = −||AT c||2 ≤ 0.

Czyli ||AT c|| = 0, co daje równość AT c = 0. Otrzymaliśmy zatem, że wektorc jest rozwiązaniem układu (ii).

14. Problem dualności w programowaniu linio-wym

W skrócie problem programowania liniowego (PL-problem), to wyzna-czanie maksimum lub minimum funkcji liniowej na wielościanie wypukłym.Problem ten może być sformułowany na jeden z poniższych równoważnychsposobów:

(i) maxcx; Ax ≤ b,(ii) maxcx; x ≥ 0, Ax ≤ b,(iii) maxcx; x ≥ 0, Ax = b,(iv) mincx; Ax ≥ b,(v) mincx; x ≥ 0, Ax ≥ b,(vi) mincx; x ≥ 0, Ax = b,

gdzie A jest macierzą, b wektorem kolumnowym, c wektorem wierszowym.Zauważmy, że (ii) redukuje się do (i), ponieważ x ≥ 0, Ax ≤ b jest równo-

ważne[

−IA

]

x ≤

(

0b

)

; (iii) redukuje się do (ii) poprzez zamianę Ax = b

z Ax ≤ b,−Ax ≤ −b; (i) redukuje się do (iii) poprzez zamianę Ax ≤ b zx′, x′′, x′′′ ≥ 0, Ax′ − Ax′′ + x′′′ = b. Podobnie (iv), (v), (vi) są równoważne.Ponadto (iii) i (vi) są równoważne poprzez zamianę c z −c.

Page 115: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

14. PROBLEM DUALNOŚCI W PROGRAMOWANIU LINIOWYM 115

Twierdzenie 14.1 (o dualności programowania liniowego). Niech A bę-dzie macierzą, b wektorem kolumnowym oraz c wektorem wierszowym. Wów-czas

(∗) maxcx; Ax ≤ b = minyb; y ≥ 0, yA = c

jeśli zbiory Ax ≤ b i y ≥ 0, yA = c są niepuste.

Dowód. Zauważmy, że jeśli Ax ≤ b oraz y ≥ 0, yA = c, to cx = yAx ≤yb. Zatem jeżeli wartości maksimum i minimum są skończone, to mamymaxcx; Ax ≤ b ≤ minyb; y ≥ 0, yA = c. Wobec tego wystarczy po-kazać, że istnieją x i y takie, że Ax ≤ b, y ≥ 0, yA = c, cx ≤ yb, to znaczy,że:

(∗∗) istnieją x, y takie, że y ≥ 0 oraz

A 0−c bT

0 AT

0 −AT

[

xyT

]

b0cT

−cT

.

Korzystając z wniosku 10.8 otrzymujemy, że zdanie (∗∗) jest równoważneponiższemu stwierdzeniu

(∗ ∗ ∗) jeśli u, λ, v, w ≥ 0 przy czym uA− λc = 0 i λbT + vAT −wAT ≥ 0, toub + vcT − WcT ≥ 0.

W celu pokazania (∗ ∗ ∗) załóżmy, że u, λ, v, w spełniają warunek (∗ ∗ ∗).Jeśli λ > 0, to ub = λ−1λbT uT = λ−1(w − v)AT uT = λ−1λ(w − v)cT =(w − v)cT . Jeżeli λ = 0, to niech Ax0 ≤ b oraz y0 ≥ 0, y0A = c (ponieważzbiory Ax ≤ b, y ≥ 0, yA = c są niepuste, to x0 i y0 istnieją). Wówczasub ≥ uAx0 = 0 ≥ (w − v)AT yT

0 = (w − v)cT .

Przykład 14.2. Równoważne sformułowania twierdzenia o dualności pro-gramowania liniowego.

(1) maxcx; x ≥ 0, Ax ≤ b = minyb; y ≥ 0, yA ≥ c,

(2) maxcx; x ≥ 0, Ax = b = minyb; yA ≥ c.

Aby uzasadnić prawdziwość powyższych sformułowań wystarczy wymienić w

zależności (∗) macierz A, odpowiednio na macierze[

−IA

]

oraz

−IA−A

.

Page 116: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

14. PROBLEM DUALNOŚCI W PROGRAMOWANIU LINIOWYM 116

Uwaga 14.3. Niech A będzie macierzą, b wektorem kolumnowym, a cwektorem wierszowym. Rozważmy następującą równość

(∗) maxcx; Ax ≤ b = minyb; y ≥ 0, yA = c.

Załóżmy ponadto, że obie wartości optymalne są skończone. Niech x0, y0 będąosiąganymi rozwiązaniami (tzn. Ax0 ≤ b oraz y0 ≥ 0, y0A = c). Wówczasnastępujące warunki są równoważne(i) x0 oraz y0 są optymalnymi rozwiązaniami dla (∗),(ii) cx0 = y0b,(iii) jeśli wektor y0 jest dodatni, to odpowiadająca mu nierówność w ukła-

dzie Ax ≤ b jest spełniona przez x0 ze znakiem równości (tzn. y0(b−Ax0) =0).Zauważmy, że równoważność warunków (i) oraz (ii) wynika bezpośrednio ztwierdzenia 14.1, natomiast równoważność warunków (ii) oraz (iii) wynika zfaktu, że cx0 = yoAx0 ≤ y0b. Zatem y0Ax0 = y0b wtedy i tylko wtedy, gdyspełniony jest warunek (iii).

14.1. Geometryczna interpretacja dualności programo-wania liniowego

Rozważmy PL-problem (∗) maxcx; Ax ≤ b. Niech P = x ∈ Rn; Ax ≤b będzie wielościanem wypukłym. Poszukując maksimum (∗) możemy prze-suwać hiperpłaszczyznę cx = δ prostopadle do wektora c tak długo, aż otrzy-mamy punkt wspólny z wielościanem P . Załóżmy, że maksimum jest skoń-czone. Niech jego wartość wynosi δ i niech jest ono osiągane przez elementw ∈ P . Niech ponadto a1x ≤ β1, a2x ≤ β2, . . . , akx ≤ βk będą nierówno-ściami pochodzącymi z układu Ax ≤ b, które spełnia element w ze znakamirówności.Interpretacja geometryczna pozwala zobaczyć, że cx = δ jest nieujemną kom-binacją liniową równości a1x = β1, a2x = β2, . . ., akx = βk. Powiedzmy, żec = λ1a1 + λ2a2 + · · · + λkak oraz δ = λ1β1 + λ2β2 + · · · + λkβk, gdzieλ1, λ2, . . . , λk ≥ 0. Wobec tego mamy

maxcx; Ax ≤ b = δ = λ1β1 + λ2β2 + · · ·+ λkβk ≥ minyb; y ≥ 0, yA = c.

Zauważmy, że powyższa nierówność wynika z faktu, że liczby λi dostarczająmożliwych rozwiązań dla minimum. Wobec prostej zależności cx = yAx ≤ yb

Page 117: Justyna Kosakowska i Piotr Malickipmalicki/wyk-bo-pl-zima-2009.pdf · 1.WPROWADZENIE 6 amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwo-jem komputeryzacji,

14. PROBLEM DUALNOŚCI W PROGRAMOWANIU LINIOWYM 117

otrzymujemy równość

maxcx; Ax ≤ b = minyb; y ≥ 0, yA = c.