Sunteți pe pagina 1din 13

ALGORITMICA GRAFURILOR S apt am ana 10

C. Croitoru
croitoru@info.uaic.ro FII

December 4, 2013

1 / 13

OUTLINE

Fluxuri (ag 13-14 allinone.pdf pag. 239 . . . )

Problemele pentru seminarul 10

2 / 13

Problema uxului maxim


Algoritmi de tip preux
Se nume ste preux n ret eaua R , o funct ie x : E R astfel nc t (i ) (ii ) 0 xij cij i = s ei =
j :ji E

ij E xij 0.
j :ij E

xji

Num arul ei i V {s , t } se nume ste excesul din v rful i . Dac a i V {s , t } si ei > 0 atunci i se nume ste nod activ. Dac a ij E xij va numit uxul pe arcul ij . Dac a n ret eaua R nu exist a noduri active, atunci preuxul x este ux de la s la t n R de valoare et . Ideea algoritmulor de tip preux: se porne ste cu un preux n R si se transform a prin modic ari ale uxului pe arce ntr-un ux care nu admite drumuri de cre stere. Reprezentarea digrafului G cu ajutorul listelor de adiacent a. Totu si, vom considera c a dac a ij E atunci si ji E (altminteri, ad aug am arcul ji cu capacitate 0).
3 / 13

Problema uxului maxim


Algoritmi de tip preux
x preux n R , ij E . Capacitatea rezidual a a arcului ij este rij = cij xij + xji (reprezent nd uxul adit ional ce poate trimis de la nodul i la nodul j utiliz nd arcele ij si ji ). A trimite ux de la i la j nseamn a s a cre stem uxul pe arcul ij sau s a mic sor am uxul pe arcul ji . Se nume ste C-drum n R relativ la preuxul x , un drum al lui G ale c arui arce au capacitatea rezidual a pozitiv a. Se nume ste funct ie de distant a n R relativ la preuxul x , o funct ie d : V Z+ care satisface (D 1) d (t ) = 0 (D 2) ij E , rij > 0 d (i ) d (j ) + 1

P C-drum relativ la preuxul x n R de la i la t d (i ) lg(P ) (arcele lui P au capacitate rezidual a pozitiv a si se aplic a (D2)). Rezult a c a d (i ) i (lungimea minim a a unui C-drum de la i la t ).

4 / 13

Problema uxului maxim


Algoritmi de tip preux
Fie x un preux n R si d o funct ie de distant a relativ la x . Un arc ij E se nume ste admisibil dac a rij > 0 d (i ) = d (j ) + 1. Dac a R este o ret ea, consider am init ializare procedura care construie ste n O (m) un preux x si o funct ie de distant a d corespunz atoare acestuia: procedure init ializare; for ij E do if i = s then xsj csj else xij 0; d [s ] n; d [t ] 0; for i V {s , t } do d [i ] 1 Alegerea lui d (s ) = n are interpretarea:nu exist a C-drum de la s la t n R relativ la x (altfel, ar trebui ca lungimea acestuia s a e n). Dac a, n algoritmii de tip preux vom p astra acest invariant, atunci c nd x va deveni ux, va rezulta c a nu admite drumuri de cre stere si deci x va de valoare maxim a.
5 / 13

Problema uxului maxim


Algoritmi de tip preux
procedure pompeaz a (i ); // i este un v arf diferit de s , t alege ij A(i ) ij admisibil; trimite = min(ei , rij ) unit a ti de ux de la i la j Dac a = rij avem o pompare saturat a, altfel pomparea e nesaturat a. procedure reetichetare (i ); // i este un v arf diferit de s , t d (i ) min{d (j ) + 1 | ij A(i ) rij > 0} Schema general a a unui algoritm de tip preux este: init ializare; while noduri active n R do { selecteaz a un nod activ i ; if arce admisibile n A(i ) then pompeaz a(i ) else reetichetare(i ) }
6 / 13

Problema uxului maxim


Algoritmi de tip preux
Lem a Algoritmul de tip preux, de mai sus, are ca invariant d este funct ie de distant a relativ la preuxul x . La ecare apel al lui reetichetare(i), d (i ) cre ste strict. Lem a Dac a pe parcursul algoritmului, i0 este un nod activ, atunci exist a un C-drum de la i0 la s, n R, relativ la preuxul curent x. Corolar 1. i V d (i ) < 2n. Corolar 2. Num arul total de apeluri ale procedurii reetichetare este mai mic dec t 2n2 . Corolar 3. Nr. total de pomp ari saturate este nm. Lem a (Goldberg si Tarjan 1986) Num arul pomp arilor nesaturate este cel mult 2n2 m. Lem a La terminarea algoritmului x este ux de valoare maxim a.
7 / 13

Problema uxului maxim


Algoritmi de tip preux
Algoritmul lui Ahuja si Orlin (1988) cu o metod a de scalare, va m argini num arul pomp arilor nesaturate de la O (n2 m) la O (n2 log U ). Capacit a tile sunt ntregi, maxij E (1 + cij ) = U . Fie Ideia algoritmului: Se vor executa K + 1 etape. Pentru ecare etap a p , cu p lu nd succesiv valorile K , K 1, . . . , 1, 0 vor ndeplinite urm atoarele condit ii: (a) - la nceputul etapei p , i satisface ei 2p (b) - n timpul etapei p se utilizeaz a procedurile pompare-etichetare n vederea elimin arii nodurilor active cu ei (2p1 , 2p ]. Din alegerea lui K , n etapa init ial a (p = K ) condit ia (a) este satisf acut a si deci, dac a (b) va invariant al algoritmului, dup a K + 1 etape, excesele nodurilor vor 1 2. Dac a, toate transform arile datelor vor p astra integritatea exceselor, va rezulta c a excesul oric arui nod este 0, si, deci, dispunem de un ux de valoare maxim a (datorit a propriet a tilor funct iei distant a d (i )).
8 / 13

log2 U = K .

Problema uxului maxim


Algoritmul Ahuja-Orlin
init ializare; K log2 (U ) ; 2K +1 ; for p = K , K 1, . . . , 0 do { construie ste L(p ); 2 while L(p ) = do { e i primul element din L(p ); parcurge lista A(i ) din locul curent p n a se determin a un arc admisibil sau se depisteaz a sf r situl ei; if ij este arcul admisibil g asit then { min(ei , rij , ej ); ei ei ; ej ej + ; trimite unit a ti de ux de la i la j ; then s terge i din L(p ); if ei 2 if ej > then adaug a j ca prim nod n L(p ) } 2 else // s-a depistat sf r situl listei { sterge i din L(p ); parcurge toat a lista A(i ) pentru calculul lui d (i ) = min{d (j ) + 1; ij A(i ) rij > 0}; introdu i n L(p ); pune pointerul curent al listei A(i ) la nceput } }

9 / 13

Problema uxului maxim

Algoritmul Ahuja-Orlin Lem a. Num arul pomp arilor nesaturate este cel mult 8n2 n ecare 2 etap a a scal arii, deci O (n log U ) n total.

Teorem a. (Ahuja-Orlin 1988) Algoritmul de tip preux cu scalarea exceselor are complexitatea O (nm + n2 log U ).

10 / 13

Aplicat ii combinatorii
Aarea cuplajului maxim si a stabilei maxime ntr-un graf bipartit.
V 1 ++ 1 1 1 s 1 1 1 ++ ++ ++ ++ 1 1 1 1 t V 2

Dac a x = (xij ) este un ux cu componente ntregi n R atunci se observ a c a mult imea de arce {ij | i V1 , j V2 xij = 1} induce n graful G bipartit un cuplaj M (x ). In plus, v (x ) este cardinalul cuplajului M (x ). Reciproc, orice cuplaj din G induce o mult ime de arce neadiacente n G1 ; dac a pe ecare astfel de arc ij (i V1 , j V2 ) se consider a uxul xij egal cu 1 si de asemenea xsi = xjt = 1, si lu nd uxul x = 0 pe orice alt arc, atunci uxul construit are valoarea |M |. Rezolv nd problema uxului maxim pe ret eaua R se determin a (pornind de la uxul nul) n O (nm + n2 log n) un cuplaj de cardinal maxim n graful bipartit G .
11 / 13

Aplicat ii combinatorii
Aarea cuplajului maxim si a stabilei maxime ntr-un graf bipartit.
Fie (S , T ) sect iunea de capacitate minim a ce se obt ine n O (m), din uxul maxim aat. Avem, c (S , T ) = (G ) (max-ow min-cut). V
V 1 2 ++ 1 1 1 s 1 1 1 ++ ++ ++ ++ 1 1 1 1 t T

Cum (G ) < , rezult a c a pun nd Si = S Vi si Ti = T Vi (i = 1, 2), avem: |T1 | + |S2 | = (G ), iar X = S1 T2 este mult ime stabil a n graful G (pentru a avea c (S , T ) < ). In plus, |X | = |V1 T1 | + |V2 S2 | = n (G ). Rezult a c a X este stabil a de cardinal maxim, ntruc t n (G ) = (G ) (teorema lui K onig).
12 / 13

Problemele pentru seminarul 10

Se vor discuta (cel put in) patru probleme dintre urm atoarele:
1 2 3 4 5 6

Problemele 4,2 Setul 11 Problemele 1,4 Setul 16 Problema 2, Setul 15 Problema 2 Setul 18 Problema 1, Setul 19 Problema 2 Setul 22

13 / 13

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