1. Sieci przep÷ywowe
Wyobra´zmy sobie sie´c energetyczn ¾a lub teleinformatyczn ¾a, czyli pewn ¾a ilo´s´c w¾ez÷ów po÷¾ac- zonych kablami, którymi przesy÷ana jest energia (dane). Kable maj ¾a okre´slon ¾a przepustowo´s´c powoduj ¾ac ¾a ograniczenia w przesyle energii. Zajmiemy si ¾e problemem maksymalizacji ilo´sci energii przesy÷anej z jednego w¾ez÷a (´zród÷a) do innego (uj´scia). Opiszemy model takiej sieci wykorzystuj ¾acy grafy skierowane.
Niech G = (V; E) b ¾edzie prostym grafem skierowanym, c : V V ! [0; 1) funkcj ¾a tak ¾a, ze c (a; b) = 0, gdy (a; b) =· 2 E oraz s, t ró·znymi wierzcho÷kami w G. Czwórk¾e N = (G; c; s; t) nazywamy sieci ¾a przep÷ywow ¾a lub krótko sieci ¾a, funkcj ¾e c funkcj ¾a przepustowo´sci lub przepustowo´sci ¾a, wierzcho÷ek s ´zród÷em oraz wierzcho÷ek t uj´sciem tej sieci. Przep÷y- wem w sieci nazywamy dowoln ¾a funkcj ¾e f : V V ! R tak ¾a, ·ze
(P1) 8
a;b2V f (a; b) c (a; b) (warunek przepustowo´sci).
(P2) 8
a;b2V f (a; b) = f (b; a) (warunek sko´snej symetryczno´sci).
(P3) 8
a2V nfs;tg
X
b2V
f (a; b) = 0 (warunek zachowania przep÷ywu).
Liczb ¾e c (a; b) nazywamy przepustowo´sci ¾a mi ¾edzy wierzcho÷kami a i b lub przepus- towo´sci ¾a kraw ¾edzi (a; b), natomiast liczb ¾e f (a; b) przep÷ywem z wierzcho÷ka a do wierzcho÷ka b.
Potraktujmy wierzcho÷ki digrafu jako w¾ez÷y sieci energetycznej oraz kraw¾edzie jako kable pomi ¾edzy w¾ez÷ami. Przepustowo´s´c c (a; b) interpretujemy wtedy jako maksymaln ¾a ilo´s´c en- ergii jak ¾a mo·zemy przes÷a´c mi ¾edzy a i b w jednostce czasu. Warunek c (a; b) = 0, gdy (a; b) =2 E mówi, ·ze nie da si ¾e przesy÷a´c energii je´sli nie ma kabla. Mo·ze si ¾e jednak zdarzy´c, ·ze (a; b) 2 E i c (a; b) = 0, czyli dopuszczamy kable o przepustowo´sci 0.
Sie´c przep÷ywowa opisuje "infrastruktur ¾e" dzi ¾eki której mo·zemy przesy÷a´c energi ¾e. Sposób w jaki j ¾a przesy÷amy opisuje funkcja przep÷ywu f . Przep÷ywem jest np. funkcja to·zsamo´s- ciowo równa zero f (a; b) = 0 dla a; b 2 V . Na ogó÷mo·zna zde…niowa´c równie·z przep÷ywy niezerowe. Warunek przepustowo´sci (P1) mówi, ·ze ilo´s´c energii jak ¾a mo·zna przes÷a´c mi ¾edzy wierzcho÷kami a i b nie mo·ze by´c wi ¾eksza ni·z przepustowo´s´c kabla ÷¾acz ¾acego te wierzcho÷ki.
Warunek sko´snej symetryczno´sci (P2) ma charakter techniczny. Pokazuje, ·ze je·zeli z a do b przysy÷amy pewn ¾a ilo´s´c energii f (a; b) > 0, to z b do a przep÷ywa ilo´s´c przeciwna f (b; a) = f (a; b) < 0. Mówimy wtedy, ·ze energia wyp÷ywa z a oraz wp÷ywa do b.
Warunek zachowania przep÷ywu (P3) oznacza, ·ze ze wszystkich wierzcho÷ków, poza ´zród÷em i uj´sciem, wyp÷ywa tyle samo energii ile do nich wp÷ywa.
1
U·zyty przez nas model sieci nie jest jedynym mo·zliwym. W niektórych pracach (np. w ksi ¾a·zce Forda i Fulkersona "Przep÷ywy w sieciach") rozwa·za si ¾e wy÷¾acznie przyp÷ywy nieu- jemne. Przyjmuje si ¾e, ·ze je´sli f (a; b) > 0, to f (b; a) = 0. Przy takiej de…nicji trzeba zmody…kowa´c warunki (P2) i (P3).
Zauwa·zmy, ·ze nasz model jest uproszczeniem rzeczywisto´sci. Rozwa·zamy wy÷¾acznie digrafy proste, czyli energi ¾e mi ¾edzy ustalonymi w¾ez÷ami mo·zna przesy÷a´c tylko po jednym kablu.
Ponadto warunek sko´snej symetryczno´sci nie pozwala na jednoczesne przesy÷anie energii z a do b i z b do a. Oznacza to, ·ze w naszym modelu rozwa·zamy sumaryczny przep÷yw mi ¾edzy wierzcho÷kami. Je´sli w rzyczywistej sieci mamy kilka kabli mi ¾edzy wierzcho÷kami, to jako f (a; b)przyjmujemy sum ¾e przep÷ywów przez poszczególne kable. Je´sli za´s przesy÷amy energi ¾e zarówno z a do b jak i z b do a, to jako f (a; b) przyjmujemy ró·znic ¾e przep÷ywów.
Przy rysowaniu sieci przep÷ywowych przyjmuje si ¾e umow¾e, ·ze nie s ¾a rysowane kraw¾edzie o przepustowo´sci 0 oraz nie zaznacza si ¾e przep÷ywów ujemnych i zerowych.
Pojedyncza liczba oznacza przepustowo´s´c. Dwie liczby, np. 11=16 oznaczaj ¾a przep÷yw i prze- pustowo´s´c. Brak kraw¾edzi oznacza przepustowo´s´c 0. Je´sli nie jest podana warto´s´c przep÷ywu, to przyjmujemy, ·ze jest równa zero lub ujemna (w zale·zno´sci od przep÷ywu w przeciwnym kierunku). Przyk÷adowo w powy·zszej sieci mamy
c (s; a) = 16; c (a; s) = 0; c (a; b) = 10; c (b; a) = 4; c (s; c) = c (c; s) = 0;
f (s; a) = 11; f (a; s) = 11; f (a; b) = 1; f (b; a) = 1; f (s; c) = f (c; s) = 0:
Cwiczenie 1.´ Sprawdzi´c, ·ze funkcja f zde…niowana na ostatnim rysunku jest przep÷ywem.
Uwaga 1. Uwa·zny czytelnik móg÷zwróci´c uwag ¾e na to, ·ze digraf G nie gra praktycznie ·zadnej roli w de…nicji sieci przep÷ywowej. Funkcje c i f s ¾a okre´slone na V V, a nie na E. Gdyby z de…nicji usun ¾a´c G (czyli nie wyró·znia´c ·zadnych kraw ¾edzi), to upro´sci÷aby si ¾e nawet, bo mogliby´smy zrezygnowa´c z warunku "c (a; b) = 0, gdy (a; b) =2 E". Przyczyna, dla której w de…nicji sieci u·zyli´smy grafu skierowanego stanie si ¾e jasna w dalszej cz ¾e´sci wyk÷adu. W wielu miejscach wygodnie b ¾edzie u·zywa´c terminologii zwi ¾azanej z grafami. Szczególnie przydatne b ¾ed ¾a poj ¾ecia kraw ¾edzi i ´scie·zki.
Zanim sformu÷ujemy g÷ówny problem zwi ¾azany z sieciami przep÷ywowymi, wprowadzimy jeszcze uproszczone oznaczenia. Dla dowolnych a; b 2 V i A; B V przyjmujemy:
fab = f (a; b) ; f (A; B) = P
a2A
P
b2B
fab;
f (a; B) = f (fag ; B) ; f (B; a) = f (B; fag) ;
f (An a; B) = f (A n fag ; B) ; f (B; A n a) = f (B; A n fag)
oraz analogiczne oznaczenia stosujemy dla funkcji c (i ka·zdej innej okre´slonej na V V).
Z de…nicji przep÷ywu ÷atwo wynika
W÷asno´s´c 1. Niech f b ¾edzie przep÷ywem w sieci. Dla dowolnych zbiorów A; eA; B V takich,
·ze A \ eA =; zachodzi
(1) f (A; B) = f (B; A) ; (2) f (A; A) = 0;
(3) f A [ eA; B = f (A; B) + f A; B ;e (4) f B; A [ eA = f (B; A) + f B; eA : Dowód. (1) f (A; B) = P
a2A
P
b2B
fab P 2= P
a2A
P
b2B
( fba) = P
b2B
P
a2A
fba = f (B; A) : (2) Z (1) wynika, ·ze f (A; A) = f (A; A). St ¾ad f (A; A) = 0.
(3) f A [ eA; B = P
a2A[ eA
P
b2B
fab A\ e=A=; P
a2A
P
b2B
fab + P
a2 eA
P
b2B
fab = f (A; B) + f A; Be .
Warunek (4) mo·zna wywnioskowa´c z (3) i (1), albo udowodni´c tak jak (3).
Niech f b ¾edzie przep÷ywem w sieci ((V; E) ; c; s; t). Warto´sci ¾a przep÷ywu f nazywamy liczb ¾e
jfj = f (s; V ) =X
a2V
fsa;
czyli ilo´s´c "energii" wyp÷ywaj ¾acej ze ´zród÷a, a dok÷adniej ró·znic ¾e mi ¾edzy tym co wyp÷ywa a tym co wp÷ywa.
Cwiczenie 2.´ Obliczy´c warto´s´c przep÷ywu z ostatniego przyk÷adu.
W÷asno´s´c 2. Je·zeli f jest przep÷ywem w sieci, to jfj = f (V; t) .
Dowód. Z de…nicji przep÷ywu oraz poprzedniej w÷asno´sci mamy 0(2)= f (V; V ) (3)= f (s; V ) + f (t; V ) + f (V n fs; tg ; V )(1)=
= f (s; V ) f (V; t) + X
a2V nfs;tg
X
b2V
fab
!
P 3= f (s; V ) f (V; t) + X
a2V nfs;tg
0 =
= f (s; V ) f (V; t) : St ¾ad f (V; t) = f (s; V ) = jfj.
W dalszych rozwa·zaniach b ¾edziemy cz ¾esto szuka´c niezerowego przep÷ywu w sieci. Najprost- sz ¾a metod ¾a jest znalezienie ´scie·zki bez powtarzaj ¾acych si ¾e wierzcho÷ków ze ´zród÷a do uj´scia z÷o·zonej z kraw¾edzi o dodatnich przepustowo´sciach, a nast ¾epnie zde…niowanie przep÷ywu w oparciu o kraw¾edzie tej ´scie·zki.
Niech d b ¾edzie ´scie·zk ¾a bez powtarzaj ¾acych si ¾e wierzcho÷ków ze ´zród÷a do uj´scia w sieci przep÷ywowej (G; c; s; t). Przepustowo´sci ¾a ´scie·zki d nazywamy liczb ¾e
c (d) = minfcab; (a; b)2 dg :
Cwiczenie 3.´ W poni·zszej sieci znale´z´c pi ¾e´c ró·znych ´scie·zek bez powtarzaj ¾acych si ¾e wierz- cho÷ków ze ´zród÷a do uj´scia i obliczy´c ich przepustowo´sci.
Twierdzenie 1. Je·zeli d jest ´scie·zk ¾a bez powtarzaj ¾acych si ¾e wierzcho÷ków ze ´zród÷a do uj´scia w sieci przep÷ywowej, to funkcja fd: V V ! R okre´slona wzorem
fabd = 8>
<
>:
c (d) ; (a; b)2 d;
c (d) ; (b; a)2 d;
0; (a; b) =2 d ^ (b; a) =2 d jest przep÷ywem oraz fd = c (d).
Dowód. Poniewa·z w d nie powtarzaj ¾a si ¾e wierzcho÷ki, wi ¾ec do d nie mog ¾a jednocze´snie nale·ze´c kraw¾edzie (a; b) i (b; a). Zatem de…nicja funkcji fd jest poprawna. Poka·zemy, ·ze fd spe÷nia warunki (P1)-(P3).
Warunek sko´snej symetryczno´sci jest oczywisty. ·Zeby udowodni´c warunek przpustowo´sci rozpatrzmy przypadki. Je´sli (a; b) 2 d, to
fabd = c (d) = minfcxy; (x; y)2 dg cab: Je´sli (b; a) 2 d, to
fabd = c (d) 0 cab. Je´sli natomiast (a; b) =2 d i (b; a) =2 d, to
fabd = 0 cab.
Dowodzi to warunku (P1). Udowodnimy teraz warunek zachowania przep÷ywu. Niech a 2 V n fs; tg. Je´sli a =2 d, to X
b2V
fabd =X
b2V
0 = 0:
Za÷ó·zmy z kolei, ·ze a 2 d. Istniej ¾a wtedy wierzcho÷ki x, y takie, ·ze (x; a) ; (a; y) 2 d. St ¾ad X
b2V
fabd = faxd + fayd + X
b2V nfx;yg
fabd = c (d) + c (d) + X
b2V nfx;yg
0 = 0,
co dowodzi warunku (P3). Do zako´nczenia dowodu pozostaje obliczenie fd . Poniewa·z s jest pocz ¾atkiem ´scie·zki d, wi ¾ec (a; s) =2 d dla a 2 V oraz istnieje dok÷adnie jeden wierzcho÷ek x2 V taki, ·ze (s; x) 2 d. St ¾ad
fd =X
a2V
fsa= fsx = c (d) :
Cwiczenie 4.´ Wyznaczy´c przep÷ywy generowane przez´scie·zki znalezione w poprzednim´cwicze- niu.
Niech d1; d2; : : : ; dk b ¾ed ¾a ´scie·zkami prostymi w gra…e skierowanym lub nieskierowanym (k 2 N). ´Scie·zki te nazywamy kraw ¾edziowo roz÷¾acznymi je·zeli dowolne dwie z nich nie maj ¾a wspólnych kraw¾edzi.
Cwiczenie 5.´ W sieci z ostatniego przyk÷adu wskaza´c trzy pary kraw ¾edziowo roz÷¾acznych
´scie·zek prostych ze ´zród÷a do uj´scia. Czy istnieje zbiór kraw ¾edziowo roz÷¾acznych ´scie·zek prostych ze ´zród÷a do uj´scia maj ¾acy wi ¾ecej ni·z dwa elementy?
Cwiczenie 6.´ Niech d1; d2; : : : ; dk b ¾ed ¾a kraw ¾edziowo roz÷¾acznymi ´scie·zkami bez powtarzaj ¾a- cych si ¾e wierzcho÷ków ze ´zród÷a do uj´scia w sieci przep÷ywowej oraz fd1; fd2; : : : ; fdk b ¾ed ¾a przep÷ywami generowanymi przez te ´scie·zki. Przyjmijmy f def.= fd1 + fd2+ : : : + fdk. Udowod- ni´c, ·ze
(1) f jest przep÷ywem,
(2) jfj = fd1 + fd2 + : : : + fdk = c (d1) + c (d2) + : : : + c (dk),
(3) je·zeli´scie·zki d1; d2; : : : ; dknie zawieraj ¾a ·zadnej pary kraw ¾edzi przeciwnych (x; y), (y; x), to dla dowolnych wierzcho÷ków a, b zachodzi
fab = 8>
<
>:
c (di) gdy (a; b) 2 di dla pewnego i = 1; : : : ; k;
c (di) gdy (b; a)2 di dla pewnego i = 1; : : : ; k;
0 gdy (a; b) =2 di oraz (b; a) =2 di dla wszystkich i = 1; : : : ; k:
Mówimy, ·ze f0 jest przep÷ywem maksymalnymw sieci przep÷ywowej je·zeli dla dowol- nego przep÷ywu f zachodzi jfj jf0j. Problem szukania przep÷ywu maksymalnego jest podstawowym zagadnieniem zwi ¾azanym z sieciami przep÷ywowymi. Zacznijmy od pytania o istnienie przep÷ywu maksymalnego. Przypomnijmy, ·ze zgodnie z wcze´sniejsz ¾a umow ¾a, rozwa·zamy tylko sieci sko´nczone. Dzi ¾eki temu mo·zna do´s´c ÷atwo udowodni´c istnienie przep÷ywu maksymalnego. Dowód opiera si ¾e na twierdzeniu Weierstrassa mówi ¾acym, ·ze funkcja ci ¾ag÷a okre´slona na domkni ¾etym i ograniczonym (czyli zwartym) podzbiorze przestrzeni Rn osi ¾aga swoje kresy.
Twierdzenie 2. W dowolnej sieci przep÷ywowej istnieje przep÷yw maksymalny.
Cwiczenie 7.´ Udowodni´c poprzednie twierdzenie korzystaj ¾ac z poni·zszych wskazówek.
(1) Oznaczy´c V V =fe1; e2; : : : ; eng i zde…niowa´c zbiór
D = [ c (e1) ; c (e1)] [ c (e2) ; c (e2)] : : : [ c (en) ; c (en)] Rn: (2) Pokaza´c, ·ze zbiór D jest domkni ¾ety i ograniczony.
(3) Uto·zsami´c dowolny przep÷yw f : V V ! R z punktem zbioru D.
(4) Udowodni´c, ·ze zbiór F wszystkich przep÷ywów jest domkni ¾etym podzbiorem D.
(5) Udowodni´c, ·ze funkcja F 3 f 7 ! jfj jest ci ¾ag÷a.
(6) Korzystaj ¾ac z twierdzenia Weierstrassa pokaza´c, ·ze istnieje przep÷yw maksymalny.
Idea szukania przep÷ywu maksymalnego opisana dalej polega na znalezieniu jakiegokolwiek przep÷ywu (np. zerowego), a nast ¾epnie sukcesywnym poprawianiu go. W zwi ¾azku z tym szczególnie interesuj ¾a nas kraw¾edzie, dla których nie wykorzystali´smy pe÷nej przepustowo´sci, czyli takie, ·ze fab < cab. B ¾edziemy je nazywa´c kraw ¾edziami nienasyconymi. Do ich badania wykorzystamy zde…niowane ni·zej poj ¾ecia.
Niech f b ¾edzie przep÷ywem w sieci N = ((V; E) ; c; s; t). Funkcj ¾e cf = c f nazywamy przepustowo´sci ¾a rezydualn ¾a. Sieci ¾a rezydualn ¾a indukowan ¾a przez przep÷yw f nazy- wamy sie´c Nf = (V; Ef) ; cf; s; t , gdzie
Ef =n
(a; b) 2 V V ; cfab > 0o :
Poni·zej przedstawiona jest sie´c N z przep÷ywem f oraz sie´c rezydualna Nf
Przepustowo´s´c rezydualna kraw¾edzi pokazuje o ile mo·zna zwi ¾ekszy´c przep÷yw przez t ¾e kraw¾ed´z w sieci oryginalnej lub o ile mo·zna zmniejszy´c przep÷yw przez kraw¾ed´z przeciwn ¾a.
W rozwa·zaniej sieci rezydualnej mamy na przyk÷ad
cfsa= 5 - w sieci N mo·zna zwi ¾ekszy´c przep÷yw przez (s; a) o 5.
cfas= 11 - w sieci N mo·zna zmniejszy´c przep÷yw przez (s; a) o 11.
cfab = 11 - w sieci N mo·zna zwi ¾ekszy´c przep÷yw przez (a; b) o 10 oraz zmniejszy´c przep÷yw przez (b; a) o 1.
Twierdzenie 3. Je·zeli f jest przep÷ywem w sieci N , za´s f0 przep÷ywem w sieci rezydualnej Nf, to funkcja f + f0 jest przep÷ywem w N oraz
jf + f0j = jfj + jf0j :
Dowód. Warunki (P2) i (P3) oraz równo´s´c jf + f0j = jfj + jf0j wynikaj ¾a z w÷asno´sci dodawa- nia. Z kolei warunek (P1) dostajemy z de…nicji przepustowo´sci rezydualnej oraz warunku przepustowo´sci dla f0:
(f + f0)ab= fab+ fab0 fab+ cfab= fab+ (cab fab) = cab:
Cwiczenie 8.´ Zapisa´c dowody warunków (P2), (P3) oraz równo´sci jf + f0j = jfj + jf0j.
Niech f b ¾edzie przep÷ywem w sieci N . ´Scie·zk ¾a powi ¾ekszaj ¾ac ¾adla f nazywamy dowoln ¾a
´scie·zk¾e bez powtarzaj ¾acych si ¾e wierzcho÷ków ze ´zród÷a do uj´scia w sieci rezydualnej Nf. Twierdzenie 4. Je·zeli f jest przep÷ywem w sieci N oraz p ´scie·zk ¾a powi ¾ekszaj ¾ac ¾a, to funkcja f + fp jest przep÷ywem w N takim, ·ze
jf + fpj > jfj :
Dowód. Z twierdzenia 1 wynika, ·ze fp jest przep÷ywem w sieci rezydualnej Nf. Poniewa·z wszystkie kraw¾edzie w sieci rezydualnej maj ¾a dodatnie przepustowo´sci, wi ¾ec
jfpj = cf(p) = minn
cfab; (a; b)2 po
> 0:
Korzystaj ¾ac z twierdzenia 3 stwierdzamy, ·ze f + fp jest przep÷ywem w N oraz
jf + fpj = jfj + jfpj > jfj :
O przep÷ywie f + fp mówimy, ·ze jest to przep÷yw f powi ¾ekszony wzd÷u·z ´scie·zki p.
W sieci z poprzedniego przyk÷adu ´scie·zk ¾a powi ¾ekszaj ¾ac ¾a jest p = sbct.
Przepustowo´s´c rezydualna ´scie·zki p wynosi cf(p) = 4. Poni·zsze rysunki przedstawiaj ¾a przep÷yw f + fp oraz odpowiadaj ¾ac ¾a mu sie´c rezydualn ¾a.
×atwo sprawdzi´c, ·ze w ostatniej sieci rezydualnej nie da si ¾e znale´z´c ´scie·zki powi ¾ekszaj ¾acej.
Twierdzenie 4 jest podstaw ¾a dzia÷ania metody Forda-Fulkersona, pierwszego opisanego sposobu szukania maksymalnego przep÷ywu.
Ford-Fulkerson(N ) f := 0
while istnieje ´scie·zka powi ¾ekszaj ¾aca w Nf do p := ´scie·zka powi ¾ekszaj ¾aca
f := f + fp fmax:= f
Mówi ¾ac o metodzie Forda-Fulkersona u·zyli´smy terminu "metoda", a nie "algorytm" bo opisany schemat post ¾epowania nie zawiera, kluczowego dla wydajno´sci, sposobu znajdowania
´scie·zki powi ¾ekszaj ¾acej. Mo·zemy zde…niowa´c ró·zne algorytmy oparte na metodzie Forda- Fulkersona, precyzuj ¾ac jak znajdujemy ´scie·zk¾e powi ¾ekszaj ¾ac ¾a. Zainteresowanych odsy÷am do ksi ¾a·zki "Wprowadzenie do algorytmów".
Twierdzenie 5. Je·zeli przepustowo´s´c w sieci N przyjmuje tylko warto´sci wymierne, to wynikiem dzia÷ania procedury Ford-Fulkerson jest przep÷yw maksymalny fmax.
Twierdzenie 5 udowodnimy pó´zniej, bo jego dowód b ¾edzie wykorzystywa´c twierdzenie o maksymalnym przep÷ywie i minimalnym przekroju. Zanim jednak zajmiemy si ¾e tematem przekrojów w sieci, prze´cwiczymy znajdowanie maksymalnego przep÷ywu metod ¾a Forda- Fulkersona.
Cwiczenie 9.´ W poni·zszych sieciach znale´z´c maksymalny przep÷yw i wyznaczy´c jego warto´s´c.
1) 2)
Niech N = ((V; E) ; c; s; t) b ¾edzie sieci ¾a przep÷ywow ¾a. Dowoln ¾a par ¾e zbiorów (A; B) takich, ze A· V, B = V n S, s 2 A i t 2 B nazywamy przekrojem w tej sieci. Przepustowo´s- ci ¾a przekroju (A; B) nazywamy liczb ¾e c (A; B). Przekrojem minimalnym nazywamy przekrój o najmniejszej przepustowo´sci. Poniewa·z liczba wszystkich przekrojów w sieci jest sko´nczona, wi ¾ec przekrój minimalny zawsze istnieje. Je·zeli f jest przep÷ywem w N , to liczb ¾e f (A; B) nazywamy przep÷ywem przez przekrój (A; B).
Cwiczenie 10.´ W sieci zde…niowany jest przep÷yw f . Obliczy´c warto´s´c przep÷ywu jfj, prze- pustowo´s´c przekroju c (A; B) i przep÷yw przez przekrój f (A; B) dla
(1) A =fsg ; B =fa; b; c; d; tg : (2) A =fs; ag ; B =fb; c; d; tg : (3) A =fs; a; bg ; B =fc; d; tg : (4) A =fs; a; b; dg ; B = fc; tg : (5) A =fs; dg ; B =fa; b; c; tg :
W÷asno´s´c 3. Dla dowolnego przep÷ywu f i dowolnego przekroju (A; B) zachodzi jfj = f (A; B) c (A; B) :
Dowód. Z (P3) oraz w÷asno´sci 1 wynika, ·ze jfj = f (s; V )P 3= f (s; V ) + X
a2Anfsg
f (a; V ) = f (s; V ) + f (An s; V ) =
= f (A; V ) = f (A; A) + f (A; B) = f (A; B) : Nierówno´s´c f (A; B) c (A; B) wynika z (P1).
Twierdzenie 6. Niech f b ¾edzie przep÷ywem w sieci N . Nast ¾epuj ¾ace warunki s ¾a równowa·zne.
(1) Przep÷yw f jest maksymalny.
(2) Sie´c rezydualna Nf nie zawiera ´scie·zek powi ¾ekszaj ¾acych.
(3) Istnieje przekrój (A; B) taki, ·ze jfj = c (A; B).
Dowód.
(1)) (2) Teza wynika z twierdzenia 4.
(2)) (3) Za÷ó·zmy, ·ze sie´c rezydualna nie zawiera ´scie·zek powi ¾ekszaj ¾acych. Niech A b ¾edzie zbiorem wszystkich wierzcho÷ków osi ¾agalnych ze ´zród÷a w sieci rezydualnej Nf oraz niech B = V n A. Oczywi´scie s 2 A. Z twierdzenia ?? wynika, ·ze t 2 B. We´zmy dowolne a 2 A i b 2 B. Poka·zemy, ·ze
(*) (a; b) =2 Ef.
Przypu´s´cmy nie wprost, ·ze (a; b) 2 Ef. Poniewa·z a 2 A, wi¾ec w digra…e Gf istnieje
´scie·zka z s do a. Dodaj ¾ac do niej kraw¾ed´z (a; b) dostajemy ´scie·zk¾e z s do b, czyli b2 A. Otrzymana sprzeczno´s´c dowodzi warunku (*). W konsekwencji cfab = 0, czyli
cab = fab dla a 2 A, b 2 B:
Z w÷asno´sci 3 wnioskujemy wi ¾ec, ·ze c (A; B) =X
a2A
X
b2B
cab =X
a2A
X
b2B
fab = f (A; B) =jfj : (3)) (1) Z w÷asno´sci 3 wynika, ·ze dla dowolnego przep÷ywu g zachodzi
jgj c (A; B) =jfj ; czyli f jest przep÷ywem maksymalnym.
Twierdzenie 7 (O maksymalnym przep÷ywie i minimalnym przekroju). Warto´s´c maksymal- nego przep÷ywu w sieci przep÷ywowej jest równa przepustowo´sci minimalnego przekroju w tej sieci.
Dowód. Niech f b ¾edzie przep÷ywem maksymalnym. Z twierdzenia 6 wynika, ·ze istnieje przekrój (A; B) taki, ·ze c (A; B) = jfj. Zatem na mocy w÷asno´sci 3, dla dowolnego przekroju (A0; B0) zachodzi c (A; B) = jfj c (A0; B0), czyli (A; B) jest przekrojem minimalnym.
Twierdzenie o maksymalnym przep÷ywie i minimalnym przekroju jest wnioskiem z ogól- niejszego twierdzania 6. W niektórych ksi ¾a·zkach twierdzenie 6 lub twierdzenia do niego podobne bywaj ¾a równie·z okre´slane t ¾a nazw ¾a.
Twierdzenie o maksymalnym przep÷ywie i minimalnym przekroju jest przyk÷adem twierdze´n minimaksowych mówi ¾acych, ·ze dla pewnych obiektów maksymalna warto´s´c jednego para- metru jest równa minimalnej warto´sci innego. W dalszej cz ¾esci wyk÷adu sformu÷ujemy kilka innych twierdze´n tego typu.
Rozwa·zmy sie´c
W trakcie wcze´sniejszych rozwa·za´n znale´zli´smy przep÷yw f generuj ¾acy sie´c rezydualn ¾a Nf
Wida´c, ·ze w Nf nie istnieje ´scie·zka powi ¾ekszaj ¾aca. Z twierdzenia 6 wynika wi ¾ec, ·ze f jest przep÷ywem maksymalnym. Wyznaczymy przekrój minimalny w N . Wystarczy powtórzy´c post ¾epowanie z dowodu twierdzenia 6, tzn. przyj ¾a´c jako A zbiór wszystkich wierzcho÷ków osi ¾agalnych ze ´zród÷a w sieci rezydualnej. Mamy wi ¾ec
A =fs; a; b; dg ; B = fc; tg :
Poniewa·z c (A; B) = 12 + 7 + 4 = 23 = jfj, wi ¾ec na podstawie twierdzenia 6, przekrój (A; B) istotnie jest przekrojem minimalnym.
Przekrój minimalny mo·zna równie·z wyznaczy´c badaj ¾ac przepustowo´sci wszystkich przekro- jów, których jest 2jV j 2 (w rozwa·zanym przyk÷adzie 16). Dla du·zych grafów jest to metoda nieefektywna (z÷o·zono´s´c obliczeniowa wyk÷adnicza).
Przekrój zosta÷zde…niowany jako para zbiorów (A; B). Jednak "istot ¾a" przekroju s ¾a kraw¾edzie ÷¾acz ¾ace wierzcho÷ki tych zbiorów. Przekrój wyznacza nam sposób "rozci ¾ecia" sieci
mi ¾edzy zbiorami A i B, czyli "w poprzek" kraw¾edzi biegn ¾acych z A do B. Przepustowo´s´c przekroju jest sum ¾a przepustowo´sci tych kraw¾edzi. Przekrój minimalny mo·zna interpretowa´c jako "w ¾askie gard÷o" sieci. Je´sli chcemy zwi ¾ekszy´c przep÷yw przez sie´c, powi ¾ekszaj ¾ac prze- pustowo´sci niektórych kraw¾edzi, to nie da si ¾e tego osi ¾agn ¾a´c bez powi ¾ekszenia przepustowo´sci której´s kraw¾edzi z przekroju minimalnego.
Cwiczenie 11.´ Znale´z´c przekroje minimalne w sieciach z ´cwiczenia 9.
Mo·zemy teraz udowodni´c poprawno´s´c metody Forda-Fulkersona dla sieci o przepustowo´s- ciach wymiernych.
Dowód twierdzenia 5. Poka·zemy przede wszystkim, ·ze procedura zako´nczy prac ¾e. Przy- pu´s´cmy nie wprost, ·ze tak nie jest, czyli warunek logiczny w p ¾etli jest zawsze prawdziwy.
Za÷ó·zmy najpierw, ·ze przepustowo´s´c c przyjmuje tylko warto´sci ca÷kowite. W trakcie wykonywania procedury obliczane s ¾a warto´sci przepustowo´sci rezydualnej cf := c f, prze- pustowo´sci ´scie·zki powi ¾ekszaj ¾acej c (p) oraz kolejnego przep÷ywu f := f + fp. Obliczenie tych wielko´sci polega na wykonaniu sko´nczonej liczby operacji odejmowania, wyznaczenia mini- mum i dodawania. Poniewa·z przepustowo´s´c c i pocz ¾atkowy przep÷yw f = 0 s ¾a funkcjami o warto´sciach ca÷kowitych, wi ¾ec w dowolnym miejscu procedury liczby jfj i jfpj = c (p) s ¾a ca÷kowite. Oznaczmy przez f0 pocz ¾atkow ¾a warto´s´c przep÷ywu (tzn. f0 = 0) oraz przez fn
warto´s´c przep÷ywu po n-tej iteracji. Przepustowo´s´c ´scie·zki powi ¾ekszaj ¾acej pn (z sieci rezydu- alnej Nfn) jest ca÷kowita i dodatnia. Zatem przep÷ywy fn spe÷niaj ¾a warunki
(1) jf0j = 0;
(2) jfn+1j = jfnj + jfnpj = jfnj + c (pn) jfnj + 1 dla n 0:
Prosty dowód indukcyjny pokazuje, ·ze z (1) i (2) wynika (3) jfnj n dla n 0;
co jest sprzeczne z istnieniem przep÷ywu maksymalnego. Otrzymana sprzeczno´s´c dowodzi, ze w przypadku przepustowo´sci ca÷· kowitoliczbowych procedura zako´nczy prac ¾e.
Za÷ó·zmy teraz, ·ze przepustowo´sci przyjmuj ¾a warto´sci wymierne. Niech M b ¾edzie najm- niejsz ¾a wspóln ¾a wielokrotno´sci ¾a mianowników wszystkich niezerowych przepustowo´sci cab. Dla dowolnych a; b 2 V mamy wtedy
cab = k
M gdzie k 2 Z.
Mo·zemy teraz powtórzy´c poprzednie rozumowanie zast ¾epuj ¾ac warunki (2) i (3) warunkami (2’) jfn+1j jfnj + M1 dla n 0;
(3’) jfnj Mn dla n 0:
Udowodnili´smy, ·ze procedura zako´nczy prac ¾e. Pozostaje jeszcze pokaza´c, ·ze fmax jest przep÷ywem maksymalnym. Z p ¾etli wychodzimy gdy sie´c rezydualna Nf nie ma ´scie·zek powi ¾ekszaj ¾acych. Zatem na podstawie twierdzenia 6, przep÷yw fmax= f jest maksymalny.
W dowodzie zosta÷o pokazane, ·ze je·zeli przepustowo´sci w sieci przyjmuj ¾a wy÷¾acznie warto´sci ca÷kowite, to w algorytmie Forda-Fulkersona, we wszystkich iteracjach, przep÷yw f przyjmuje
warto´sci ca÷kowite. W konsekwencji przep÷yw maksymalny otrzymany t ¾a metod ¾a jest ca÷kow- itoliczbowy. Powy·zsz ¾a uwag ¾e mo·zna zapisa´c w postaci twierdzenia.
Twierdzenie 8 (O przep÷ywie ca÷kowitoliczbowym). Je·zeli w sieci przep÷ywowej wszystkie przepustowo´sci maj ¾a warto´sci ca÷kowite, to istnieje przep÷yw maksymalny przyjmuj ¾acy wy÷¾acznie warto´sci ca÷kowite.
Poni·zszy przyk÷ad pokazuje, ·ze w sieci o przepustowo´sciach ca÷kowitych istniej ¾a przep÷ywy maksymalne maj ¾ace warto´sci nieca÷kowite.
jf1j = 2 jf2j = 2
Wró´cmy do twierdzenia 5. Naturalne jest pytanie, czy za÷o·zenie o wymiernych warto´sciach przepustowo´sci jest istotne. Okazuje si ¾e, ·ze w przypadku gdy funkcja przepustowo´sci przyj- muje warto´sci niewymierne, metoda Forda-Fulkersona mo·ze nie dzia÷a´c (procedura "zap ¾etla si ¾e"). Przyk÷ad takiej sieci znajduje si ¾e w ksi ¾a·zce Forda i Fukkersona "Przep÷ywy w sieciach".
Poni·zszy (prostszy) przyk÷ad pochodzi z pracy Uri Zwicka "The smallest networks on which the Ford-Fulkerson maximum ‡ow procedure may fail to terminate". Dane bibliogra…czne oraz szkic dowodu mo·zna znale´z´c w angielskiej wersji Wikipedii (has÷o: Ford–Fulkerson algo- rithm). Niech r = p5 12 .
Przyjmijmy p0 = sbct, p1 = sdcbat, p2 = sbcdt, p3 = sabct. Mo·zna pokaza´c, ·ze w procedurze Ford-Fulkerson da si ¾e uzyska´c niesko´nczony ci ¾ag ´scie·zek powi ¾ekszaj ¾acych:
p0; p1; p2; p1; p3
| {z }; p1; p2; p1; p3
| {z }; p1; p2; p1; p3
| {z }; : : : Cwiczenie 12.´ Udowodni´c, ·ze w powy·zszej sieci, ´scie·zki:
p0; p1; p2; p1; p3
| {z }; p1; p2; p1; p3
| {z }; p1; p2; p1; p3
| {z }; : : :
mog ¾a by´c przyj ¾ete jako´scie·zki powi ¾ekszaj ¾ace w kolejnych iteracjach procedury Ford-Fulkerson.
Kolejny problem to wydajno´s´c metody Forda-Fulkersona. Rozwa·zmy sie´c
Wida´c, ·ze przep÷yw maksymalny ma warto´s´c 2000. Dla f0 = 0wybierzmy ´scie·zk¾e powi ¾eksza- j ¾ac ¾a sabt. Ma ona przepustowo´s´c 1. Powi ¾ekszaj ¾ac przep÷yw f0 wzd÷u·z tej ´scie·zki dostajemy przep÷yw f1
f1 Sie´c rezydualna Nf1
W sieci rezydualnej wybierzmy ´scie·zk¾e powi ¾ekszaj ¾ac ¾a sbat (przepustowo´s´c 1). Powi ¾ekszaj ¾ac przep÷yw f1 wzd÷u·z tej ´scie·zki dostajemy przep÷yw f2
f2 Sie´c rezydualna Nf2
Post ¾epuj ¾ac nadal w podobny sposób, przep÷yw maksymalny znajdziemy po 2000 iteracji.
Wybieraj ¾ac jako ´scie·zk¾e powi ¾ekszaj ¾ac ¾a sat, a nast ¾epnie sbt, ten sam wynik dostajemy po 2 iteracjach.
Wida´c, ·ze sposób wyznaczania ´scie·zki powi ¾ekszaj ¾acej ma olbrzymie znaczenie dla pr ¾edko´sci dzia÷ania algorytmów opartych na metodzie Forda-Fulkersona. W ksi ¾a·zce "Wprowadzenie do algorytmów" opisany jest oparty na tej metodzie algorytm Edmondsa-Karpa. Wybierana jest w nim najkrótsza (w sensie liczby kraw¾edzi) ´scie·zka powi ¾ekszaj ¾aca. Algorytm ten dzia÷a w czasie O jV j jEj2 .
Najszybsze znane obecnie algorytmy szukania maksymalnego przep÷ywu nie korzystaj ¾a z metody Forda-Fulkersona. Oparte s ¾a one na metodzie "prze´slij i przemianuj", której opis tak·ze mo·zna znale´z´c we "Wprowadzeniu do algorytmów".
Rozwa·zania dotycz ¾ace sieci przep÷ywowych zako´nczymy kilkoma uwagami dotycz ¾acymi sieci z wieloma ´zród÷ami i uj´sciami. Praktycznym przyk÷adem takiej sieci jest sie´c trans- portowa …rmy posiadaj ¾acej kilka fabryk (´zród÷a) i kilku odbiorców (uj´scia).
Sieci ¾a przep÷ywow ¾a (z wieloma ´zród÷ami i uj´sciami) nazywamy czwórk¾e N = (G; c; S; T ), gdzie G = (V; E) jest prostym grafem skierowanym, c : V V ! [0; 1) funkcj ¾a tak ¾a, ·ze
c (a; b) = 0, gdy (a; b) =2 E (funkcja przepustowo´sci) oraz S, T niepustymi i roz÷¾acznymi podzbiorami V . Elementy zbioru S nazywamy ´zród÷ami, a elementy zbioru T uj´sciami sieci. Jak wida´c przyjmuj ¾ac S = fsg i T = ftg dostajemy sie´c z jednym ´zród÷em i jednym uj´sciem jak ¾a rozwa·zali´smy do tej pory.
Przep÷ywemw sieci z wieloma ´zród÷ami i uj´sciami nazywamy dowoln ¾a funkcj ¾e f : V V ! R spe÷niaj ¾ac ¾a warunki
(P1) 8
a;b2V f (a; b) c (a; b) (warunek przepustowo´sci).
(P2) 8
a;b2V f (a; b) = f (b; a) (warunek sko´snej symetryczno´sci).
(P3’) 8
a2V n(S[T )
X
b2V
fab = 0 (warunek zachowania przep÷ywu).
Warto´sci ¾a przep÷ywuf jest liczba
jfj = f (S; V ) =X
s2S
X
a2V
fsa.
Przekrojem w sieci nazywamy dowoln ¾a par ¾e zbiorów (A; B) takich, ·ze A V, B = V n A, S A i T B. Przepustowo´s´c przekroju (A; B) de…niujemy tak jak poprzednio, czyli jako c (A; B).
Poni·zszy rysunek przedstawia sie´c ze ´zród÷ami S = fs1; s2; s3g i uj´sciami T = ft1; t2g, przep÷yw f w tej sieci o warto´sci jfj = 34 oraz przekrój A = fs1; s2; s3; a2; a3; a4; a7g, B = fa1; a5; a6; t1; t2g o przepustowo´sci c (A; B) = 46.
Problem szukania maksymalnego przep÷ywu w sieci z wieloma ´zród÷ami i uj´sciami mo·zna sprowadzi´c do szukania maksymalnego przep÷ywu w pewnej sieci z jednym ´zród÷em i uj´sciem.
Niech N = ((V; E) ; c; S; T ) b ¾edzie sieci ¾a przep÷ywow ¾a z wieloma ´zród÷ami i uj´sciami.
Zde…niujmy graf skierowany (V0; E0) dodaj ¾ac do (V; E) dwa nowe wierzcho÷ki s0 i t0 oraz kraw¾edzie ÷¾acz ¾ace s0 ze ´zród÷ami i kraw¾edzie ÷¾acz ¾ace uj´scia z t0, tzn.
V0 = V [ fs0; t0g , gdzie s0; t0 2 V i s= 0 6= t0, E0 = E[ f(s0; s) ; s 2 Sg [ f(t; t0) ; t2 T g .
Wierzcho÷ek s0 nazywamy super´zród÷em, za´s wierzcho÷ek t0 superuj´sciem. Funkcj ¾e prze- pustowo´sci c0 : V0 V0 ! [0; 1) de…niujemy przyjmuj ¾ac
c0(a; b) = 8>
<
>:
c (a; b) ; a; b2 V;
M ; (a; b)2 E0n E;
0 ; w pozosta÷ych przypadkach, gdzie
M = c (S; V ) + 1:
Twierdzenie 9. (1) N0 = ((V0; E0) ; c0; s0; t0) jest sieci ¾a przep÷ywow ¾a (z jednym ´zród÷em i uj´sciem).
(2) Je·zeli f0 jest przep÷ywem w N0, to f = f0jV V jest przep÷ywem w N oraz jfj = jf0j.
(3) Je·zeli f0 jest przep÷ywem maksymalnym w N0, to f jest przep÷ywem maksymalnym w N.
Sie´c z ostatniego przyk÷adu generuje nast ¾epuj ¾ac ¾a sie´c z jednym ´zród÷em i uj´sciem
Twierdzenie 10. (1) Je·zeli (A; B) jest przekrojem w N0 takim, ·ze S A i T B, to (An fs0g ; B n ft0g) jest przekrojem w N oraz c (A n fs0g ; B n ft0g) = c0(A; B).
(2) Je·zeli (A; B) jest przekrojem minimalnym w N0, to (A n fs0g ; B n ft0g) jest przekro- jem minimalnym w N oraz c (A n fs0g ; B n ft0g) = c0(A; B).
Cwiczenie 13.´ Udowodni´c twierdzenia 9 i 10.
Z dwóch ostatnich twierdze´n wynika, ·ze twierdzenia "O maksymalnym przep÷ywie i mini- malnym przekroju" oraz "O przep÷ywie ca÷kowitoliczbowym" pozostaj ¾a prawdziwe dla sieci z wieloma ´zród÷ami i uj´sciami.
Twierdzenie 11 (O maksymalnym przep÷ywie i minimalnym przekroju). Warto´s´c maksy- malnego przep÷ywu w sieci z wieloma ´zród÷ami i uj´sciami jest równa przepustowo´sci minimal- nego przekroju w tej sieci.
Twierdzenie 12 (O przep÷ywie ca÷kowitoliczbowym). Je·zeli w sieci z wieloma ´zród÷ami i uj´sciami wszystkie przepustowo´sci maj ¾a warto´sci ca÷kowite, to istnieje przep÷yw maksymalny przyjmuj ¾acy wy÷¾acznie warto´sci ca÷kowite.
Cwiczenie 14.´ Znale´z´c maksymalny przep÷yw i minimalny przekrój w sieci z ostatniego przyk÷adu.
Uwaga 2. W de…nicji funkcji c0 mo·zna jako M przyj ¾a´c dowoln ¾a liczb ¾e wi ¾eksz ¾a ni·z c (S; V ).
W podr ¾ecznikach na ogó÷jest przyjmowane M = 1, co nale·zy rozumie´c jako M > c (S; V ).
Cwiczenie 15.´ Udowodni´c, ·ze maksymalny przep÷yw i minimalny przekrój w sieci N0 nie zale·z ¾a od sta÷ej M . Dok÷adniej, niech N b ¾edzie sieci ¾a z wieloma ´zród÷ami i uj´sciami, M1, M2
liczbami takimi, ·ze M1 > c (S; V ) i M2 > c (S; V ) oraz N1, N2 sieciami z jednym ´zród÷em i uj´sciem generowanymi przez N i sta÷e M1, M2. Pokaza´c, ·ze
(1) f jest przep÷ywem maksymalnym w N1 wtedy i tylko wtedy, gdy f jest przep÷ywem maksymalnym w N2.
(2) (A; B) jest przekrojem minimalnym w N1 wtedy i tylko wtedy, gdy (A; B) jest przekro- jem minimalnym w N2.
Cwiczenie 16.´ Znale´z´c maksymalny przep÷yw i minimalny przekrój w sieci