• Nie Znaleziono Wyników

Zajmiemy si ¾e problemem maksymalizacji ilo´sci energii przesy÷anej z jednego w¾ez÷a (´zród÷a) do innego (uj´scia)

N/A
N/A
Protected

Academic year: 2021

Share "Zajmiemy si ¾e problemem maksymalizacji ilo´sci energii przesy÷anej z jednego w¾ez÷a (´zród÷a) do innego (uj´scia)"

Copied!
17
0
0

Pełen tekst

(1)

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

(2)

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.

(3)

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.

(4)

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:

(5)

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.

(6)

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 :

(7)

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.

(8)

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.

(9)

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).

(10)

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.

(11)

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

(12)

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

(13)

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.

(14)

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

(15)

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 .

(16)

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.

(17)

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

Cytaty

Powiązane dokumenty

Na koniec warto zwróci´c jeszcze uwag˛e na kwesti˛e nieuchron- nie zwi ˛ azan ˛ a z p˛etl ˛ a o nieokre´slonej ilo´sci przebiegów, mianowicie na fakt, ˙ze je´sli nie

Use the Heisenberg uncertainty principle from the previous problem to calcu- late the uncertainty (in meters) in the position of a honeybee weighing 0.68 g and traveling at a

Wyznaczyæ zale¿noœæ wspó³czynnika przep³ywu C dla trzech ró¿nych kszta³tów otworu tarczy zwê¿ki przedstawionych na rysunku 9 w zale¿noœci od liczby Reynoldsa i

Samochód ma pokona´c nierówno´s´c w kształcie klina (patrz rys.. Kr ˛a˙zki pchni˛eto, przy czym pierwszemu nadano tylko ruch post˛epowy, a drugiemu tak˙ze ruch obrotowy.

[r]

To oznacza, ˙ze T nie jest epimorfizmem i kolumny jego macierzy s¸ a liniowo zale˙zne... W´ owczas, macierz F w tej bazie ma wszystkie elementy w diagonale r´

Tablice tego typu mog ˛ a by´c tworzone na podstawie bazy danych, proto- kołu wywiadu z ekspertem lub protokołu obserwacji danego procesu. pacjenci, jednostki czasu itp. W

Sze´scian z lo˙zony jest z warstw dw´och materia l´ow o ro˙znych wsp´o lczynikach prze- wodno´sci cieplnej.. Pokaza´c, ˙ze przewodnictwo cieplne sze´scianu w kierunku r´ownoleg