Sunteți pe pagina 1din 11

ALGORITMICA GRAFURILOR 09-10

C. Croitoru s apt am ana 9

AGENDA

Fluxuri
(ag 09-10 allinone.pdf pag. 212 - 238)

Problemele pt. seminarul 8

(week 10)

Prezentarea temei pentru acas a


1

Fluxuri Problema uxului maxim Numim ret ea (de transport) cu intrarea s si ie sirea t, 4-uplul R = (G, s, t, c) unde: - G = (V, E ) este un digraf, - s, t V ; s = t; d+ ( s ) > 0; d G G(t) > 0, - c : E R+; c(e) este capacitatea arcului e.

Vom presupune c a V = {1, 2, . . . , n} (n N) si c a |E | = m. Extindem funct ia c la c : V V R+ prin c((i, j )) = c(ij ) 0 dac a ij E dac a ij /E

si vom nota c((i, j )) = cij . Numim ux n ret eaua R = (G, s, t, c) o funct ie x : V V R, care satisface (i ) (ii)
j V

0 xij cij xji


j V

ij V V i V {s, t}.

xij = 0

Dac a ij E atunci xij se nume ste uxul (transportat)pe arcul ij . Evident, condit ia (i) cere ca uxul pe orice arc s a e nenegativ si subcapacitar, iar condit ia (ii) (legea de conservare a uxului) cere ca suma uxurilor pe arcele care intr a n v rful i s a e egal a cu suma uxurilor pe arcele care ies din v rful i. 2

Fluxuri Problema uxului maxim


Denit ie: Dac a x este un ux n ret eaua R = (G, s, t, c), se nume ste valoarea uxului x num arul v (x) =
j V

xjt
j V

xtj .

v (x) se poate interpreta ca ind uxul net care ajunge n ie sirea ret elei si este egal cu uxul net care iese din intrarea ret elei. Problema uxului maxim: Dat a R = (G, s, t, c) o ret ea, s a se determine un ux de valoare maxim a. Denit ie. Dac a P este un drum n G, multigraful suport al digrafului G, si e = vivj este o muchie a lui P atunci: dac a e corespunde arcului vi vj al lui G, e se nume ste arc direct al drumului P ; dac a e corespunde arcului vj vi al lui G, atunci e se nume ste arc invers.

Fluxuri Problema uxului maxim


Denit ie. Fie R = (G, s, t, c) si x ux n R. Se nume ste C-drum ( n R relativ la uxul x) un drum D n G cu proprietatea c a ij E (D) : xij < cij dac a ij este arc direct, xji > 0 dac a ij este arc invers. Dac a D este un C-drum si ij E (D), se nume ste capacitatea rezidual a a lui ij (relativ la C-drumul D) num arul r(ij ) = cij xij xji dac a ij arc direct n D dac a ij arc invers n D .

Capacitatea rezidual a a drumului D este r(D) = min r(e).


eE (D )

Denit ie. Se nume ste drum de cre stere a uxului x, n ret eaua R = (G, s, t, c), un C-drum de la s la t.

Fluxuri Problema uxului maxim


Lem a. 1. Dac a D este un drum de cre stere a uxului 1 x n ret eaua R = (G, s, t, c), atunci x = x r(D) denit prin dac a ij / E (D ) xij x1 a ij E (D), ij arc direct n D xij + r(D) dac ij = x r(D) dac a ji E (D), ji arc invers n D ij este ux n R si v (x1 ) = v (x) + r(D). Observ am c a dac a x admite un drum de cre stere atunci x nu este ux de valoare maxim a. Denit ie. Fie R = (G, s, t, c). Se nume ste sect iune n ret eaua R, o partit ie (S, T ) a lui V cu s S si t T . Capacitatea sect iunii (S, T ) este c(S, T ) =
iS j T

cij

(suma capacit a tilor arcelor de la S la T ).

Fluxuri Problema uxului maxim


Lem a. 2. Daca x este un ux n R = (G, s, t, c) si (S, T ) este o sect iune a ret elei, atunci v (x) =
iS j T

(xij xji).

(valoarea uxului este egal a cu uxul net ce trece prin orice sect iune.) Teorem a. 1. (Teorema drumului de cre stere) Un ux x este de valoare maxim a ntr-o ret ea R, dac a si numai dac a, nu exist a drumuri de cre stere a uxului x n ret eaua R. Teorem a. 2. (Teorema uxului intreg) Dac a toate capacit a tile s nt ntregi, atunci exist a un ux de valoare maxim a cu toate componentele ntregi (ux ntreg de valoare maxim a). Teorem a. 3. ( Ford-Fulkerson, 1956) Valoarea maxim a a unui ux n ret eaua R = (G, s, t, c) este egal a cu capacitatea minim a a unei sect iuni a ret elei.

Fluxuri Problema uxului maxim


Algoritmul lui Ford si Fulkerson pentru aarea unui ux de valoare maxim a
Se va folosi un procedeu de etichetare a v rfurilor ret elei, n vederea depist arii drumurilor de cre stere a uxului curent x. Dac a nu exist a drumuri de cre stere, uxul va de valoare maxim a. Eticheta atribuit a unui v rf j V are trei componente (e1 , e2, e3 ) si au urmatoarea unde e1 V {0} ; e2 {direct, invers} ; e3 R+ semnicat ie: si e1 = i atunci un C-drum P de la s la j cu - dac a e2 = direct ultimul arc ij , arc direct si r ( P ) = e 3 ; si e1 = i atunci un C-drum P de la s la j cu - dac a e2 = invers ultimul arc ij , arc invers si r ( P ) = e 3 . Init ial, se eticheteaz a sursa s cu eticheta (0, ., ). Celelalte v rfuri primesc etichet a prin cercetarea v rfurilor deja etichetate: Dac a i este un v rf etichetat, atunci j V Dac a j neetichetat, ij E si xij < cij atunci j se etichet. e = (i, direct, min(e3 [i], cij xij )); Dac a j neetichetat, ji E si xji > 0 atunci j se etichet. e = (i, invers, min(e3 [i], xji )).

Fluxuri Problema uxului maxim Algoritmul lui Ford si Fulkerson 1: Se alege x = (xij ) ux init ial (de ex. uxul nul); Se eticheteaz a s cu (0, ., ) 2: while ( v rfuri etichetate necercetate) do { alege un v rf etichetat si necercetat i; etichetare(i); if (t a primit etichet a) then { modic a uxul pe drumul dat de etichete; sterge toate etichetele; eticheteaz a s cu (0, ., ) } } 3: S {i|i V, i are etichet a} T V S x este ux de valoare maxim a (S, T ) este sect iune de capacitate minim a.
Algoritmul are complexitatea O(mv ), unde v este valoarea uxului maxim iar m = |E |.
8

Fluxuri Problema uxului maxim Modicarea lui Edmonds si Karp a algoritmului lui Ford & Fulkerson
Numim drum minim de cre stere a uxului x n ret eaua R, un drum de cre stere de lungime minim a printre toate drumurile de cre stere. Fie x un ux oarecare n ret eaua R. Denim sirul de k uxuri x n R astfel: x0 x; xk xk1 r(Pk1 ), Pk este drum minim de cre stere k 1 ; k = 1, 2, . . . relativ la x

Teorem a. 4. (Edmonds, Karp) Dac a x = x0 este un ux oarecare n ret eaua R, atunci sirul de uxuri x1 , x2 , . . . obt inut din x0 prin cre steri succesive pe druelemente ( n muri minime de cre stere, are cel mult mn 2 mn cel mult 2 cre steri succesive, se obt ine un ux care nu admite drumuri de cre stere). Teorem a. 5. (Edmonds- Karp 1972)Dac a se modic a algoritmul lui Ford si Fulkerson cu precizarea alegerii bf s a v rfurilor etichetate n vederea cercet arii, atunci, uxul 2 maxim se obt ine n timpul O(m n) .
9

Problemele pentru seminarul 8

Problema 4, Setul 8
Nu avem drumuri de cre stere. La algoritm se folose ste faptul c a m = n 1.

Problema 1, Setul 9
Construct ia sugerat a este evident a !

Problema 4, Setul 9
Se evalueaz a q (G S ), num ar and muchiile dintre S si componentele conexe impare ale lui G S ; se folose ste faptul c a nu avem punt i si, de asemenea, c a n orice graf num arul v arfurilor de grad impar e par. (GS Petersen)

Problema 1, Setul 10
Se arat a prin induct ie dup a |E (T )E (T )| c a orice 2 arbori ine unul din altul prin aplic ari diferit i T si T se pot obt repetate ale operat iei scot o muchie - pun o muchie.

10

S-ar putea să vă placă și