Sunteți pe pagina 1din 13

REELE DE TRANSPORT 1. DEFINIII. NOTAII. REZULTATE DE BAZ.

1.1. CHESTIUNI GENERALE. Fie G = (V , E) un graf orientat i r : E N0 o funcie pondere definit pe mulimea arcelor sale. Facem urmtoarele notaii : * pentru e n E e= extremitatea iniial a arcului e (vrful origine), e+ = extremitatea final a arcului e (vrful terminus); * pentru S , T pari disjuncte ale lui V (S , T) = mulimea arcelor e cu e- n S i e+ n T; [S , T] = (S , T) (T , S), n particular, vom considera mulimi de arce de tipul urmtor (S , V-S) i (V-S , S); * pentru S parte a lui V r +(S) = suma ponderilor arcelor e cu e- n S i e+ n V-S, r (S) = suma ponderilor arcelor e cu e- n V-S i e+ n S; * pentru K parte a lui E r(K) = suma ponderilor arcelor din K. Restricia funciei r la mulimea arcelor unui subgraf G al lui G o vom nota rG ' . OBSERVAIA 1.1. Pentru S parte nevid a lui V avem : (1) r +(S) = r ((S , V-S)) i r -(S) = r((V-S , S)). r (u, v) = r ( E (G[S ])) (2) uvE ,
u , vS

(3) r +(S) r -(S) = (r (u ) r (u )) .


+ uS

1.2. REEA DE TRANSPORT. O reea de transport se definete ca fiind un cvintuplu N = (G,X,I,Y,c) unde : G = (V,E) este graf orientat i V = X NI N Y; X , Y i E sunt nevide; X, I i Y sunt mulimi disjuncte; E nu conine bucle sau arce duble; X = se numete mulimea intrrilor; I = se numete mulimea vrfurilor intermediare; Y = se numete mulimea ieirilor; c : E N0 se numete funcia capacitate.

Un flux f ntr-o reea de transport N = (G,X,I,Y,c) este o funcie f definit pe mulimea arcelor grafului G cu valori n mulimea numerelor naturale, f : E N0, cu proprietile urmtoare: (1) Condiiile de mrginire: 0 f(e) c(e) pentru orice e din E; (2) Condiiile de conservare a fluxului: f +(v) = f -(v) pentru orice vrf intermediar v din I. n figura urmtoare este reprezentat o reea de transport. Perechile de numere scrise pe arcele reelei conin pe prima poziie fluxul, scris subire, iar pe a doua capacitatea, scris gros, corespunztoare fiecrui arc. 01 12 12 22 33 24 01 Figura 1 22 22 23 45 24

V-S

PROPOZIIA 1.2.1. Pentru o reea N = (G , X , I , Y , c), un flux f n N i o parte S cu X S X I avem: f +(S) f -(S) = f +(X) f (X). Demonstraie. ntr-adevr, conform observaiei 3) avem + + + f +(S) f -(S) = ( f (u ) f (u )) = ( f (u ) f (u )) + ( f (u ) f (u )) = = ( f (u ) f (u )) = f +(X) f (X).
+ u X uS uX uS X

CONSECINA 1.2.2. Dac n formula demonstrat anterior lum S = X I avem : f - (Y) f +(Y) = f +(X) f - (X) . Numrul f +(X) f (X) se noteaz val (f) i se numete valoarea fluxului f : val (f) = f +(X) f (X); Notm cu F (N) mulimea fluxurilor definibile n reeaua N, F (N) = {f f flux n re eaua N}.

Observm c date fiind condiiile definitorii ale fluxului mulimea F(N) este finit. Notm deasemenea cu f * un flux de valoare maxim : val(f *) = max {val(f) f n F(N) } i cu F *(N) mulimea acestora, F *(N) = {f * f * n F (N) , val(f *) maxim}. Suntem n continuare interesai n caracterizarea i determinarea unui flux de valoare maxim ntr-o reea de transport n care avem: X = {x} , Y = {y} ; d (x) = 0 i d +(y) = 0. 2. PREGTIRI

2.1. TIETURI NTR-O REEA DE TRANSPORT. O tietura K este o mulime de tipul (S , V S) unde S este o parte a lui V cu x n S i y n V S. Notm K(N) = {K K tietura n reeaua N} Observm c mulimea K(N) este finit. Pentru K n K (N) , numrul c(K) se numete capacitatea tieturii K. Notm cu K~ o tietur de capacitate minim: c(K~) = min {c(K) K n K} i K ~ (N) = {K ~ K ~ n K (N) , c(K ~ ) minim}. Fie o parte S a mulimii vrfurilor V cu x n S i y n V S . Pentru un arc e din (S , V S) N (V S , S) definim c(e) f(e) i S (e) = f(e) dac e este n (S , V S), dac e este n (V S , S).

Vom spune c tietura K = (S , V S) este f saturat dac i numai dac, prin definiie, pentru orice arc e din (S , V S) (V S , S) avem: i S (e) = 0 ceeace cu alte cuvinte revine la f+(S)=c+(S) i f-(S)=0. 2.2. LANURI NTR-O REEA DE TRANSPORT. Fie u,v dou vrfuri diferite din reeaua N i P un u,v lan. Pentru un arc e din E(P) definim

c(e) f(e) i P (e) = f(e)

dac e este un arc -nainte n P dac e este un arc -napoi n P.

De asemenea, notm i (P) = min {i P (e) e n E(P)}. Vom spune c a,b lanul P este f saturat dac i numai dac, prin definiie, avem: i (P) = 0. 2.3. REVIZUIREA UNUI FLUX DE-A LUNGUL UNUI x,y-LAN NESATURAT. Fie P un x,y-lan nesaturat. Avem aadar i(P)0 Se definete funcia f : E N0 astfel : f(e) + i(P) dac e este arc-nainte n P; f(e) = f(e) i(P) f(e) dac e este arc-napoi n P;

n rest.

Se poate uor constata c f este flux n reeaua N. Vom spune c fluxul f este obinut prin revizuirea fluxului f dea lungul x,y-lanului f-nesaturat P. OBSERVAIA 2.3.1. (1) val(f ) = val(f) + i(P) > val(f). (2) x,y- lanul P este f saturat. (3) Prin urmare, dac exist un x,y lan f nesaturat P ntr-o reea N atunci sigur fluxul f nu este flux maxim i acesta poate fi nlocuit cu un flux de valoare mai mare cu cel puin 1 printr-o operaie revizuire a fluxului f de-a lungul x,y-lanului f-nesaturat P. Caracterul finit al mulimii F (N) a tuturor fluxurilor din reeaua N face ca valoarea fluxului f s nu poat s creasc orict de mult i deci, prin repetarea ct timp este posibil a operaiei de revizuirea a fluxului f de-a lungul cte unui x,y-lan f-nesaturat P s se ajung la un anumit moment n care, faa de fluxul f treptat obinut, s nu existe nici-un x,y-lan f-nesaturat. Vom demonstra prin teorema FORD-FULKERSON c un astfel de flux este un flux de valoare maxim. 2.4. DEFINIREA UNEI TIETURI f-SATURATE NTR-O REEA N CARE ORICE x , y LAN ESTE f - SATURAT.

n situaia n care orice x ,y lan din N este f saturat, adic i(P) = 0 se poate construi o tietur K = (S , V - S) f-saturat definind mulimea S astfel: S = {u u V(G) i exist un x, ulan f - nesaturat } Evident xS i y V-S i se constat uor c tietura K astfel definit este f-saturat. 3. TEOREMA FORD FULKERSON. PROPOZIIA 3.1. Fie N = (G , X , I , Y , c) o reea de transport. Pentru orice flux f din F(N) i orice tietur K=(S, V-S) din K(N) urmtoarele afirmaii sunt adevrate: (1) val (f) c (K); (2) val (f) = c (K) 3 Tietura K este f - saturat. (3) val (f) = c (K) 1 f F * (N) i KK~ (N). (4) Tietura K este f - saturat 1 f F * (N) i KK~ (N). Demonstraie. (1) val(f)= f+(S)-f-(S)c+(S)-0=c+(S)=c(K). (2) innd cont de inegalitile avute n vedere la (1) avem: val (f)=c (K) f+(S)=c+(S) i f-(S)=0 tietura K=(S, V-S) este fsaturat. (3) S considerm un flux de valoare maxim f* F * (N) i o tietur de capacitate minim K~K~ (N). innd cont de (1) avem: val (f) val (f*) c (K~) c (K) Dac val (f)= c (K) atunci n inegalitile precedente avem egalitate peste tot i prin urmare f F * (N) i KK~ (N). (4) Implicaia rezult imediat din cele demonstrate la punctele (2) i (3). PROPOZIIA 3.2. Fie N = (G , X , I , Y , c) o reea de transport i un flux f F (N). Este adevrat echivalena : f F * (N) 3 Orice x,y lan din N este f-saturat. Demonstraie. Dac f F * (N) i dac prin absurd ar exista un x,y-lan fnesaturat P atunci, aa dup cum am observat deja, fluxul f s-ar putea transforma ntr-un flux de valoare mai mare cu cel puin o unitate prin revizuirea lui de-a lungul lui P, contradicie. Deci orice x,y-lan din N este f-saturat.

Reciproc, dac orice x,y-lan din N este f-saturat atunci, aa dup cum am vzut, exist o tietura f-saturat K=(S, V-S) i prin urmare f F * (N). TEOREMA 3.3. (FORD FULKERSON) Fie N = (G , X , I , Y , c) o reea de transport. Avem: val (f *) = c (K~). Demonstraie. Inegalitatea val (f *) c (K~) este adevrat conform Propoziiei 4.1. (1). Pentru inegalitatea contrar s considerm un flux maxim f *. Conform Propoziiei 3.2. tim c orice x,y-lan este f *-saturat i deci, conform 2.4. exist o tietur K=(S, V-S) f*-saturat. Dar atunci, conform propoziiei 3.1. (2), avem val (f *) = c (K) i deci val(f *) = c(K) c(K~). 4. ALGORITMUL FORD FULKERSON PENTRU DETERMINAREA UNUI FLUX DE VALOARE MAXIM NTR-O REEA DE TRANSPORT. S considerm o reea de transport N = (G , X , I , Y , c). Algoritmul urmtor conduce la determinarea unui flux de valoare maxim n reeaua N. 0. Se consider un flux iniial f definit prin f(e) = 0 pentru e n E(G). 1. t(x)=infinit T = ({x},O) 2. Se caut o muchie e n [V(T),V(G)-V(T)] , e = uv cu: u i V(T) , v iV(G) V(T), i V(T) (e) > 0. 2.1. Dac muchia e nu exist atunci : f este n F * (N), STOP. 2.2. Dac muchia e exist atunci : t(v) = min {t(u), i V(T) (e)}, T = T + [e]. 2.2.1. Dac y este n V(T) atunci se revizuiete fluxul f dea lungul unicului x,y-lan din T, REPETA 1. 2.2.2.

Dac y nu este n V(T) atunci: REPETA 2. OBSERVAIA 4.1. Algoritmul are un numr finit de pai deoarece vectorul (val(f), V(T)) ia valori n mulimea {0, 1, 2, ,c+ (x)} x {1 ,2,3, ,V(G)} i la repetarea pailor 1 sau 2 , vectorul (val(f), V(T)) crete strict n raport cu ordinea lexicografic . Algoritmul nu se sfrete dac V(T) = V(G) deoarece n acest caz avem V(T) = V(G) i atunci y fiind n V(T) fluxul f este revizuibil. Deci algoritmul nu poate sfri dect n cazul n care se ajunge la val(f) maxim. n figura urmtoare este prezentat un exemplu de aplicare a algoritmului Ford Fulkerson. Perechile de numere scrise pe arcele reelei conin pe prima poziie fluxul iar pe a doua capacitatea corespunztoare fiecrui arc. La fiecare pas, x,y-lanul nesaturat determinat este marcat mai nti cu linie ntrerupt iar n faza imediat urmtoare, cea a revizuirii fluxului de-a lungul lui, este marcat cu linie continu i groas.

01

11 02 03 02 03 02 15 04 12 12 13 02 03

02 05 04

02

04 01 11

02

04 01 01

02

02

12

12 13

03

12

12

12 13

13

15 04

y
02

15 04

y
02

04 01 01

02

04 01 01

02

12

12

12 13

13

12

12

12 23

13

x
04

15

y
02

25 04

y
02

04 01

02

14 11

12

01 12 12 12 23 02 13 12 12 x

01 12 23 12 13

25 04

25 14

14 11

12

14 01

12

01 12 12 12 23 12 14 01 01 12 12 22 23 12 23 12 12 12 13 12 12

01 22 23 12 14 01 01 22 23 22 23 12 23

25 14

35 14

35 14

45 14

14 01

12

14 01

22

01 12 12 22 23 22 23 12

01

45 14

12

22 33

23

45 24

y
22

14 01 01

22

24 01

22

12

12

22 33

23

45 24

y
22

24 01

22

Valoarea maxim a fluxului este 7.


Figura 2

CONEXITATE N GRAFURI: CARACTERIZAREA GRAFURILOR 2-CONEXE. TEOREMA LUI WHITNEY. Fie G=(V,E) un graf simplu, conex. O k-vrf-tietur sau karticulaie a lui G este o mulime S de k vrfuri a lui G prin a crei tergere graful G se disconecteaz adic G[V-S] este neconex. Nu orice graf admite o vrf-tietur cum este de exemplu cazul grafurilor complete. Pentru un graf conex, necomplet cu cel puin dou vrfuri definim conexitatea lui G drept cel mai mic numr k=k(G) pentru care n G exist o k-vrf-tietur: k(G)=min{kG conine k-vrf-tietur} Dac graful G este neconex definim k(G)=0 iar dac G este complet lum k(G)=V-1. Spunem c G este k-conex dac k(G)k. Un graf 2-conex mai este numit i bloc. TEOREMA 1. (Whitney) Un graf G=V,E) cu n=V3 vrfuri este 2-conex dac i numai dac pentru orice dou vrfuri x i y exist dou x,y-lanuri elementare intern disjuncte. Demonstraie. S presupunem mai nti c pentru orice dou vrfuri x i y din V exist dou x,y-lanuri intern disjuncte. Dac, prin absurd, G ar conine o articulaie de cardinal 1, w, atunci orice lan din G cu capetele n dou vrfuri x i y aflate n componente conexe diferite din G-w ar conine vrful w, fapt care contrazice proprietatea presupus a grafului G. Deci G nu conine 1-articulaii i prin urmare G este 2-conex. Reciproc, s presupunem c G este 2-conex. Vom demonstra prin inducie dup distana dintre ele, d(x,y), c pentru orice dou vrfuri x i y din V exist dou lanuri intern disjuncte. Notm cu I(d(x,y)) ipoteza inductiv. I(1) este adevrat. Fie x i y dou vrfuri adiacente din G. S presupunem prin absurd c G nu conine nici-un alt x,y-lan n afara de [x,y]. Atunci, prin tergerea muchiei xy din G se obine un graf G cu dou componente conexe, G=Gx+Gy unde am notat cu Gx i cu Gy componenta din G care conine pe x respectiv pe y. Deoarece V3, fie Vx fie Vy are cel puin dou vrfuri. Dac, de exemplu, Vy ar mai conine un al doilea vrf z, diferit de y, atunci x i z ar fi n componente conexe diferite ale grafului G-y i deci y ar fi 1-articulaie a lui G, ceeace nu se poate deoarece G este 2-conex. Deci G conine un x,y-lan diferit de [x,y]. I(a-1) I(a), pentru 2adiam(G). Fie x i y dou vrfuri ntre care este o distana egala cu a, a2. Pe un x,y-lan optim

fie z vrful care precede y. Avem d(x,z)=a-1 i, conform ipotezei inductive I(a-1), exist dou x,z-lanuri intern disjuncte n G, P i Q. Graful G fiind 2-conex nu conine 1-articulaii i deci G-z este conex. Fie R un x,y-lan elementar din G-z. S notm cu t ultimul vrf comun al lanului R cu lanurile P sau Q. Deoarece x este un astfel de vrf, t exist. Presupunem c t aparine lanului P.

t z

x Q

R Figura 3

n fine, putem acum construi dou x,y-lanuri intern disjuncte, P i Q, astfel: lanul Q se obine prin concatenarea x,z-lanului Q cu lanul [z,y] iar lanul P se obine prin concatenarea x,t-lanului indus de P cu t,y-lanul indus de R.

PROBLEME.

1. Se consider reeaua de transport reprezentat n figura urmtoare pe arcele creia este definit un flux. Se cere: a) S se determine toate tieturile i s se calculeze pentru fiecare capacitatea ei; b) S se probeze c fluxul indicat are capacitatea minim a uneia din tieturile determinate la a). c) S se determine un flux maxim cu ajutorul algoritmului Ford Fulkerson. (Perechile de numere scrise pe arcele reelei conin pe prima poziie fluxul, scris subire, iar pe a doua capacitatea, scris gros, corespunztoare fiecrui arc.)

x
56

23

44

22

01 37

22 13

11

Figura 4

1. Utiliznd algoritmul Ford Fulkerson determinai cte un flux maxim pentru fiecare din reelele de transport reprezentate n figura urmtoare:

2 3 x 3 4 1 3 4 3 5 y x 6 12 4 9

2 2 1 4
Figura 5

4 1

4 2 7 y 11

5 4 2

1 2

2. Fie N o reea de transport, i dou tieturi n ea (S, S ) i (T, T ). a) Demonstrai inegalitatea: c(ST, S T ) + c(ST, S T ) c(S, S ) +c(T, T ). b) Demonstrai c dac fiecare din aceste dou tieturi au capacitatea minim atunci i tieturile urmtoare (ST, S T ), (ST, S T ) au deasemenea capaciti minime. 3. Fie G=(V, E) un graf 2-conex i v un vrf auxiliar, v V(G). Se construiete graful G = (V {v}, E) obinut din G prin conectarea vrfului v de exact dou vrfuri ale acestuia. Demonstrai c graful G este deasemenea 2-conex. 4. Fie G=(V,E) un graf simplu cu n=V3 vrfuri. Demonstrai c urmtoarele afirmaii sunt echivalente: a) G este 2-conex. b) Pentru orice dou vrfuri x i y din V exist dou x,y-lanuri elementare intern disjuncte. c) Pentru orice dou vrfuri x i y din V exist un ciclu elementar care le conine. d) (G) 1 i orice dou muchii din G aparin cel puin unui ciclu elementar.