Вы находитесь на странице: 1из 46

C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.

Croitoru - Graph Algorithms


* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Algoritmica Grafurilor - Cursul 9
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
6 decembrie 2019
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 1 / 46


Cuprins
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
1 - Graph Algorithms
Fluxuri în reţele* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Prefluxuri
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru
Schema - Graph Algorithms
generală a unui* C.algoritm
Croitoru - de
Graph
tipAlgorithms
preflux * C. Croitoru - Graph
Algorithms * C. Croitoru
Algoritmul - Graph &
lui Ahuja Algorithms
Orlin * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Aplicaţii
- Graph Algorithmscombinatoriale
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Cuplaje
Croitoru - Graph în grafuri *bipartite
Algorithms C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms
Recunoaşterea * C. Croitoru
secvenţelor - Graph Algorithms * C. Croitoru - Graph Algorithms
digrafice
* C. Croitoru - Graph pe
Conexiunea Algorithms
muchii* C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Conexiunea pe noduri
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
2 C. Croitoru - pentru
Exerciţii Graph Algorithms * C. Croitoru
seminarul din -săptămâna
Graph Algorithmsviitoare
* C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 2 / 46


Prefluxuri
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Definiţie
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Un Graph
preflux în R
Algorithms (G ; s-;Graph
* C.=Croitoru t ; c )Algorithms
este o funcţie x -:Graph
* C. Croitoru ) ! R *astfel
E (GAlgorithms încât
C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
0 6 x-ijGraph
(i) Croitoru 6 cAlgorithms
ij , 8ij 2* C.
ECroitoru
; - Graph Algorithms * C. Croitoru - Graph Algorithms *
X * C. X
C. Croitoru - Graph Algorithms Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
(ii) * 8C.i Croitoru
6= s, e- Graph
i = Algorithms xij >
xji * C. Croitoru 0. Algorithms * C. Croitoru - Graph
- Graph
Algorithms * C. Croitoru2 2
ji E- Graph Algorithms
ij E * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
ei (pentru 2 nf ; g
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru i- GraphVAlgorithms
s t * C.
) este
Croitorunumit excesul* C.din
- Graph Algorithms nodul
Croitoru i . Algorithms
- Graph Dacă i 2
nf ; g
V * C.s Croitoru
t şi -eGraph
i > Algorithms
0, atunci * C.i Croitoru
este un - Graph
nod Algorithms
activ.* C.Dacă 2
Croitoruij- Graph
E , xij va fi
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
numitGraphfluxul
Algorithmsde* C.pe arcul
Croitoru ij . Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph
Dacă - Graph
în RAlgorithms * C. Croitoru
nu există noduri - Graph Algorithms
active, * C. Croitoru
atunci - Graph Algorithms
prefluxul x este un * C. flux cu
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
v (x C.
)= et . - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Croitoru
Ideea* C.algoritmilor
Croitoru - Graph Algorithms * C. Croitoru
de tip preflux: un- Graph Algorithms
preflux * C.în
iniţial Croitoru
R este - Graph
transformat
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
prinGraph
modificarea
Algorithms * C.fluxurilor de Algorithms
Croitoru - Graph pe arce* într-un
C. Croitoru - flux cu proprietatea
Graph Algorithms * C. Croitoru că
- Graph Algorithms * C. Croitoru - Graph
nu există drumuri de creştere în R relativ la el.Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 3 / 46


Prefluxuri
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
G este reprezentat folosind liste de adiacenţă. Vom presupune că dacă
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
ij 2Graph
E , atunci 2 Croitoru
Algorithmsji* C. E de -asemeni (altfel,
Graph Algorithms * C.adăugăm arcul
Croitoru - Graph ji de* C.
Algorithms capacitate
Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
0). Croitoru
Astfel,- Graph
G devine digraf simetric.
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
DacăC. Croitoru
x este- Graph Algorithmsîn* C.
un preflux şi ij 2
RCroitoru - Graph Algorithmscapacitatea
E , atunci * C. Croitoru - Graph Algorithms a
reziduală
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
lui ij este * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Algorithms
Graph Algorithms * C. Croitoru - Graph
rij =Algorithms xji ; - Graph Algorithms * C. Croitoru
cij x*ijC.+Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph fluxul
(reprezentând Algorithmssuplimentar
* C. Croitoru - Graph
care Algorithms
poate* fiC. Croitoru
trimis- Graph
de laAlgorithms
nodul *i la
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
nodul
* C. jCroitoru
folosind- Grapharcele
Algorithms ij *şiC.jiCroitoru
). - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. cCroitoru
ij , xij - Graph Algorithms * C. Croitoru cij ,-xGraph Algorithms * C. Croitoru
ij + f orw

- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.


Croitoru - Graphi b
Algorithms * C.b Croitoru
j send a-=Graph
f orw +Algorithms
backw i b * C. Croitoru - b Graph
j Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru on arc-ijGraph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - GraphcAlgorithms
ji , xji
* C. Croitoru - Graph Algorithmscji , x* C. Croitoru - Graph
ji − backw
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms
ei * C. Croitoru - Graph ej Algorithms * C.ei Croitoru
−a - Graph Algorithms
ej + a *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 4 / 46


Prefluxuri
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
În cele de urmează, a trimite flux de la i la j înseamnă creşterea fluxului
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
pe arcul ij sau scăderea
Graph Algorithms * C. Croitoru fluxului pe arcul
- Graph Algorithms ji . - Graph Algorithms * C. Croitoru
* C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Un Croitoru
A-drum în R relativ la prefluxul x , este un drum în G având toate
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru
arcele - Graph Algorithms
de capacitate * C. Croitoru
reziduală strict- Graph Algorithms * C. Croitoru - Graph Algorithms
pozitivă.
* C. Croitoru -în
Algorithmsdistanţă R relativ
Graph Algorithmsla* prefluxul x este
C. Croitoru - Graph o funcţie
Algorithms d : V - ! Z+
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
O funcţie * C. Croitoru
a. î.Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
(D1 ) Croitoru
d (t ) =- Graph
0, Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
(D2 ) * 8C.ijCroitoru
2 E ;- rGraph 0 ) d (*i C.
ij >Algorithms )6 Croitoru
d (j )- Graph
+ 1. Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Remarci
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C.Dacă P- Graph
Croitoru este Algorithms
un A-drum relativ
* C. Croitoru la prefluxul
- Graph Algorithms *xC.în R de- Graph
Croitoru la i la t , atunci
Algorithms
*d i) 6
C.(Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
length (P ) (arcele lui P au capacităţi reziduale pozitive şi - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. (D
apoi se aplică 2 ) în
Croitoru mod
- Graph repetat).
Algorithms Urmează
* C. Croitoru - Graphcă 
( i este
Algorithms * C.lungimea
Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms
minimă a unui A-drum de la i la t ): d (i ) * C. Croitoru6- Graph
i.
Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 5 / 46


Prefluxuri
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Remarci
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Ca Algorithms
Graph de obicei, * C.notăm
Croitoru - cu
Graph (i ) lista*de
AAlgorithms adiacenţă
C. Croitoru - Graph a nodului
Algorithms * C.i Croitoru
.
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graphd(j) Algorithms * C. Croitoru - Graph Algorithms *
d(s) d(j) + 1 d(j) − 1 0
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms s* C. Croitoru
b i - Graph Algorithmsj * C. Croitoru - Graph Algorithms
b b b b b t * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoruj - Graph Algorithms * C. Croitoru - Graph
b
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
b
i
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
b i - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graphb
i Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Definiţie
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Fie Graph
x unAlgorithms
preflux* în R şi d- Graph
C. Croitoru o funcţie
Algorithmsdistanţă
* C. Croitorurelativ
- Graphla x . Un* arc
Algorithms ij 2E
C. Croitoru
- Graph Algorithms * C. Croitoru - Graph >
Algorithms
este numit admisibil dacă rij 0 şi d (i ) = d (j ) + 1. * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 6 / 46


Prefluxuri
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Dacă R Algorithms
Graph este o reţea, considerăm
* C. Croitoru următoarea
- Graph Algorithms * C. Croitoruprocedură de *iniţializare,
- Graph Algorithms C. Croitoru
care-Croitoru
construieşte O
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
în (m ) un preflux x şi o funcţie distanţă d relativ la
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
x . C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. initialization
procedure ();
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph 2
Algorithms
for (ij E ) do * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
if (i -=Graph
Croitoru s) Algorithms
then * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru
xsj - Graph
csj Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
else * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Algorithms
GraphxAlgorithms 0; * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
ij
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
[s ]
d Croitoru -n; d [Algorithms
Graph t] 0; * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
for 2
C. Croitoru
(i V nf ; g
- Graph Algorithms
s t ) do * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
d [i ] *1;C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Algorithms
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 7 / 46


Prefluxuri
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Se observă
Algorithmscă* C.după
Croitoruexecuţia acestei* C.proceduri,
- Graph Algorithms avem
Croitoru - Graph Algorithms 8 2
rsj =* C.0,Croitoru
sj - A(s ).
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Astfel condiţia (D2 )Croitoru
- Graph Algorithms * C.
nu este not afectată de d (s ) = n.
- Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Pentru toate
Croitoru arcele
- Graph ij , *(D
Algorithms 2 ) este- Graph
C. Croitoru îndeplinită:
Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
d(s) = n d(j) = 1 d(t) = 0
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms *rC. = 0 - Graphb Algorithms
sj Croitoru j rjt*>C.0Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * =C.d(t)
1 = d(j) Croitoru
+1 - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph b Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms
s * C.b Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms b t * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graphb Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph j Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithmsrjs *>C.0Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
1 = d(j) < n + 1 = d(s) + 1 b
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 8 / 46


Prefluxuri
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms
Alegerea d (*sC.) Croitoru
= n are - Graph Algorithms * C. Croitoru
semnificaţia: - Graph Algorithms
nu există A-drumuri * C. Croitoru
de la - s la t
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
relativ laAlgorithms
- Graph x (altfel, * C.dacă
CroitoruP- Graph
esteAlgorithms
un astfel * C.de drum,
Croitoru lungimea
- Graph Algorithms *lui
C. trebuie
Croitoru
să fie - Graph Algorithms
cel puţin d (s ) = *n, C. Croitoru
ceea ce - Graph
esteAlgorithms
imposibil).* C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Dacă * C.acesta
Croitoru va fi un
- Graph invariant
Algorithms al algoritmilor
* C. Croitoru de *tip
- Graph Algorithms preflux,
C. Croitoru atunci când
- Graph
x vaAlgorithms
deveni* un C. Croitoru
flux, -va Graph
fi Algorithms
un flux *maxim.
C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Considerăm următoarele
- Graph Algorithms * C. Croitorudouă
- Graph proceduri:
Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
procedure push (i ); // i este un nod diferit de s ; t
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru
alege un arc - Graph 2 A(i );- Graph Algorithms * C. Croitoru - Graph
Algorithmsij* C. Croitoru
admisibil
"trimite"  min f ; g
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
=
Graph Algorithms * C. Croitorue r
i - Graph
ij (unităţi
Algorithmsde* C.flux)
Croitorude la iAlgorithms
- Graph la j ; * C. Croitoru
Dacă 
- Graph=Algorithms
rij atunci* C. Croitoru
avem- Graph Algorithms * C. Croitorusaturată,
o push/pompare - Graph Algorithms * C. avem o
altfel
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
pompare
C. Croitorunesaturată.
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Croitoru - (Graph
Algorithms * C. relabel
procedure i ); // i este *un
Algorithms nod diferit
C. Croitoru - Graphde s ; t * C. Croitoru -
Algorithms
d Graph
[i ] Algorithms f
min d*[C. j ] Croitoru
+ 1 : - ij 2
Graph Algorithms > g
A(i ) şi r* ijC. Croitoru
0 ; - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 9 / 46


Prefluxuri - Schema generală a unui algoritm de tip preflux
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
initialization;
while 9
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru(- Graph
noduri active
Algorithms în R) -do
* C. Croitoru Graph Algorithms * C. Croitoru - Graph Algorithms *
C.alege
Croitoruun
- Graph
nod activ i ; Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Algorithms * C.

9
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
if ( arce
Algorithms admisibile
* C. Croitoru - Graph în A(i ))* then
Algorithms C. Croitoru - Graph Algorithms * C. Croitoru -
Graphpush
Algorithms
(i ); * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
else - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
Croitoru
C. Croitoru
relabel- Graph
(i );Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Lema 1
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
"d este funcţie
C. Croitoru distanţă
- Graph Algorithms * C.relativ Algorithms * C.xCroitoru
la prefluxul
Croitoru - Graph " este- Graph
un invariant
Algorithms al
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
algoritmului de mai sus. La fiecare apel relabel (i ), d (i ) creşte. * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 10 / 46


Prefluxuri - Schema generală a unui algoritm de tip preflux
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Demonstraţie. Am- Graph
Algorithms * C. Croitoru demonstrat
Algorithms *deja că procedura
C. Croitoru de *iniţializare
- Graph Algorithms C. Croitoru - con-
Graph Algorithms * C. Croitoru - Graph Algorithms * C.
struieşte un preflux x şi o funcţie distanţă d relativ la x . ArătămCroitoru - Graph Algorithms * C. Croitoru
că dacă
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
perechea (d; x ) satisface (D
Croitoru - Graph Algorithms * C. Croitoru
1 ) şi (D
- Graph) înaintea unei iteraţii while,
2 Algorithms * C. Croitoru - Graph Algorithms atunci
*
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
după această iteraţie cele două condiţii sunt de asemeni satisfăcute. * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Avem două *cazuri,
Algorithms C. Croitoruîn- Graph
funcţie de care
Algorithms dintre- procedurile
* C. Croitoru Graph Algorithms push sau -relabel
* C. Croitoru
esteGraph Algorithmsîn
executată * C. Croitoru - while
iteraţia Graph Algorithms
curentă: * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
esteCroitoru
apelată- Graphpush (i ): *singura
Algorithms C. Croitoru pereche care poate
- Graph Algorithms viola- Graph
* C. Croitoru ) este d (*i ) şi
(D2Algorithms
d (j )C.
. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Deoarece ij este admisibil, la apelul push (i ) avem d (i ) = d (j ) + 1.
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
După execuţia
Algorithms push-(Graph
* C. Croitoru i ), arcul
Algorithmsji * poate avea
C. Croitoru - Graph >
rjiAlgorithms
0 (fără a fi- astfel
* C. Croitoru
înaintea 6
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
apelului), dar condiţia d (j ) d (i ) + 1 este evident satisfăcută.
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
esteCroitoru
apelată- Graphrelabel
Algorithms (i*)C.
: actualizarea lui d (i )* C.
Croitoru - Graph Algorithms Croitoru
este - Graph
astfel Algorithms
încât (D2 )*este
satisfăcută
* C. Croitorupentru fiecare * arc
- Graph Algorithms ij cu- Graph
C. Croitoru >
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
rij Algorithms
0. Deoarece Graph (i ) este
* C. Croitoru -relabel
Algorithms
apelată când <
* C.dCroitoru
(i ) - Graph 8
d (j )Algorithms
+ 1, ij * C.cu >
Croitoru
rij - Graph Algorithms * C.
0, urmează că,Croitoru
după- apel,
d (i )- Graph
creşte (cu cel
Algorithms * C.puţin
Croitoru1). 
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 11 / 46


Prefluxuri - Schema generală a unui algoritm de tip preflux
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru
Pentru a arăta- Graph
căAlgorithms
algoritmul * C. Croitoru - Graph Algorithms
se opreşte, * C. Croitoru
este necesar să - arătăm
Graph că (în
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
timpul execuţiei) dacă un nod i este activ atunci în lista lui de adiacenţă,
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
A(i -),Graph Algorithms
există * C. Croitoru
cel puţin un arc- Graph cu rij >
ij Algorithms * C.0.Croitoru
Aceasta- Graphdemonstrează
Algorithms * C. lema
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
următoare.
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Lema 2 * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Algorithms
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Dacă- Graph Algorithms
i0 este un x* C. Croitoru
-nod - Graph
activ înAlgorithms
R, atunci * C. Croitoru
există- Graph
un i0Algorithms
s A-drum * C. relativ
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
la xC.
. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Demonstraţie. Dacă
Algorithms * C. Croitoru x Algorithms
- Graph este un* C. preflux
Croitoru -în R,Algorithms
Graph atunci* C.x Croitoru
poate- fi de-
Graph Algorithms
scompus în x =*xC.1 Croitoru
+ x2 +  
- Graph  Algorithms * C. Croitoru
+ x p , unde fiecare- Graph
x k Algorithms * C. Croitoru că
are proprietatea
fij : ij* C.2Croitoru 6= 0gAlgorithms
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
mulţimea
Croitoru - A
k
Graph=Algorithms E ; xijk- Graph este * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
(a) * mulţimea arcelor
C. Croitoru - Graph unui* C.drum
Algorithms Croitorude la sAlgorithms
- Graph la t , sau* C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
(b) Graph
mulţimea
Algorithmsde
* C.arce ale- Graph
Croitoru unuiAlgorithms
drum de * C.la s la -un
Croitoru nod
Graph activ,* C.sau
Algorithms Croitoru
(c) - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
mulţimea arcelor unui circuit.
Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 12 / 46
Prefluxuri - Schema generală a unui algoritm de tip preflux
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Mai- Graph
mult, în cazurile
Algorithms (a)- Graph
* C. Croitoru şi (c), x k este
Algorithms un flux.
* C. Croitoru - Graph(Demonstraţia
Algorithms * C. este
Croitoru - Graph
algoritmică: Algorithms * mai
construim C. Croitoru
întâi- Graph Algorithmsde
mulţimile * C.tipul
Croitoru - Graph
(a), Algorithms
apoi pe cele* de
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
tipul* C.(c) şi (b);
Croitoru - Graphla fiecare* C.
Algorithms pas, căutăm
Croitoru inversul* C.unui
- Graph Algorithms drum
Croitoru - Graphde tip (a)
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
sau (c) (sau (b)); prefluxul obţinut este scăzut din cel curent; - Graph Algorithms * C. Croitoru -
deoarece
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
excesele
- Graphnodurilor
Algorithms * C.sunt nenegative,
Croitoru - Graph Algorithmsconstrucţia
* C. Croitorupoate fi realizată,
- Graph Algorithms * C. ori de
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
câte ori prefluxul curent este nenul; construcţia este finită, deoarece * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
numărul de arce
* C. Croitoru - Graphpe care fluxul
Algorithms curent
* C. Croitoru este
- Graph 0, creşte
Algorithms la fiecare
* C. Croitoru - Graphpas.)
Algorithms
Deoarece * C. Croitoru
i0 este* C.un - nod activ în R relativ la x , cazul C.(b)
Graph Algorithms * C. Croitoru - Graph Algorithms * Croitoru
va -aparea
Graph Algorithms Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
pentru
- Graphnodul i0 *(cazurile
Algorithms C. Croitoru -(a)
GraphşiAlgorithms
(c) nu *afectează excesul
C. Croitoru - Graph din *nodul
Algorithms C. i0 ).
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
Arcele inverse de pe acest drum au capacitatea reziduală pozitivă
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
(vezi
imaginea de -mai
* C. Croitoru Graphjos), astfel
Algorithms * C.ele formează
Croitoru A-drumul
- Graph Algorithms 
cerut.- Graph
* C. Croitoru
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 13 / 46


Prefluxuri - Schema generală a unui algoritm de tip preflux
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru
r > 0- Graph Algorithms
r>0 * C. Croitoru
r > 0 - Graph rAlgorithms
>0 * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms
s b * C. Croitoru
b
- Graph bAlgorithms * C. Croitoru
b i0
- Graphb Algorithms * C.
ei0 > 0
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms
x>0 * C.
x>Croitoru
0 - Graph
x > 0Algorithms * xC.>Croitoru
0 - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Corolarul 1 * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Graph Algorithms
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
8 2
i Croitoru
V , d- (Graph<
i ) Algorithms
2n. * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Demonstraţie.
Graph Algorithms * C.Într-adevăr,
Croitoru - Graphdacă i nu* C.a Croitoru
Algorithms fost reetichetat,
- Graph Algorithmsatunci d (i ) =
* C. Croitoru
<
1 - 2n.
Graph Algorithms * C. Croitoruapelului
Altfel, înaintea - Graph Algorithms
relabel * C.(iCroitoru - Graph
), i este unAlgorithms * C. astfel
nod activ,
din C.Lema
Croitoru2, există
- Graph un is-drum
Algorithms * C. CroitoruP length (P
cu Algorithms
- Graph * C.6
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
) Croitoru
n - Graph
1. Algorithms
Din (D2 ),
* C. Croitoru
urmează - Graph Algorithms
că, după reetichetare* C. Croitoru 6
, d (i-)GraphdAlgorithms
(s ) + n * C.1Croitoru
= 2n- Graph 1 (d (s ) = n
Graph modificat
Algorithms * C.vreodată). 
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
nu este Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 14 / 46


Prefluxuri - Schema generală a unui algoritm de tip preflux
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Corolarul
* C. Croitoru 2
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms
Numărul total de * C.apeluri
Croitoru - ale
Graphprocedurii
Algorithms * C.relabel
Croitoru - Graph Algorithms
nu este mai *mare
C. Croitoru
decât
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
2
2n Croitoru
. - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - GraphÎntr-adevăr,
Demonstraţie. Algorithms * C. Croitoru
există- Graph
n 2Algorithms
noduri*care C. Croitoru
pot -fiGraph
reetichetate.
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Fiecare
Graph dintre
Algorithmsele* C.poate
Croitoru fi reetichetat
- Graph Algorithms *de cel mult
C. Croitoru 2nAlgorithms
- Graph 1 ori* (din Lema
C. Croitoru
- Graph Algorithms
1, Corolarul de * C. Croitoru
mai sus şi - distanţa
Graph Algorithms * C. Croitoru
iniţială d). -
Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Corolarul
* C. Croitoru 3
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms
Numărul total de * C.pompări
Croitoru - Graph Algorithms
saturate nu* C. Croitoru
este mai- Graph
mareAlgorithms
decât *nm.
C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
Demonstraţie. Într-adevăr,
C. Croitoru - Graph Algorithms când- Graph
* C. Croitoru un arc ij devine
Algorithms saturat,
* C. Croitoru avem
- Graph d (i ) =
Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
d (j )+ 1. După aceea, algoritmul nu va mai trimite flux pe acest arc până * C. Croitoru - Graph

cândGraph
nuAlgorithms
va trimite flux pe
* C. Croitoru arcul
- Graph ji , când
Algorithms vom avea
* C. Croitoru
0
- Graphd Algorithms
0
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
(j ) = *dC.(iCroitoru
)+1 >
- Graph Algorithms
d (i ) + 1 = d (j ) + 2. * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 15 / 46


Prefluxuri - Schema generală a unui algoritm de tip preflux
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Demonstraţie - Graph Algorithms Astfel
(continuare).
Algorithms * C. Croitoru o modificare
* C. Croitoru - Graph Algorithmsa *acestui
C. Croitoruflux
- pe
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
arcul ij nu va apărea până când d (j ) nu va creşte cu 2. Urmează că un - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
arc Croitoru
nu poate - Graphdeveni saturat
Algorithms de mai
* C. Croitoru - Graphmult de n
Algorithms * C.ori şi (deoarece
Croitoru numărul
- Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
total de arce este m), nu există mai mult de nm pompări saturate. * C. Croitoru - Graph
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Lema 3
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
(Goldberg şi Tarjan,
C. Croitoru - Graph C. CroitoruNumărul
Algorithms *1986). total* C.deCroitoru
- Graph Algorithms pompări nesaturate
- Graph Algorithms
* C. Croitoru
nu este mai mare- Graph Algorithms
decât 2n* 2C.m. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms *Omisă.
Demonstraţie. C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Lema* C. Croitoru
4 - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Algoritmul de tip* C.
- Graph Algorithms preflux
Croitoru -returnează
Graph Algorithms un* C.flux de -valoare
Croitoru maximă
Graph Algorithms * în R.

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 16 / 46


Prefluxuri - Schema generală a unui algoritm de tip preflux
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Demonstraţie.
Graph Algorithms * C. Din Lemele
Croitoru - Graph1Algorithms
şi 3 şi *din Corolarul
C. Croitoru 3 al Lemei
- Graph Algorithms 2, algo-
* C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms
2 * C. Croitoru
ritmul se opreşte în cel mult 2n m iteraţii while. Deoarece d (s ) = n - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
nu se modifică
C. Croitoru niciodată,
- Graph Algorithms * C.urmează că nu
Croitoru - Graph există* C.
Algorithms vreun
Croitorudrum
- Graphde creştere
Algorithms
* C. Croitoru
relativ la fluxul- Graph
x Algorithms
obţinut,* astfel
C. Croitoru
x -este
Graphde
Algorithms
valoare * C.maximă:
Croitoru - Graph
dacă P ar fi
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
un drum de creştere
Graph Algorithms (în digraful
* C. Croitoru suport
- Graph Algorithms * C.alCroitoru
lui G), atunci
- Graph înlocuind
Algorithms de-a
* C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
lungul lui P fiecare arc invers cu simetricul său se obţine un A-drum de
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
la s C.laCroitoru
t , deci n=
- Graph Algorithms 6
d (s ) * C.d Croitoru
(t ) + n =n
- Graph1Algorithms 1. 
* C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
În locul demonstraţiei Lemei 3, vom prezenta Algoritmul lui Ahuja &
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
OrlinCroitoru - Graph care
(1988) Algorithms * C. Croitoru
utilizează - Graph Algorithms
o metodă * C. Croitoru- -scaling
de scalare Graph Algorithms
method *
pentru a reduce numărul de pompări nesaturate de la (n m ) (Gold- O
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
2 Algorithms

berg Algorithms
& Tarjan * C. Croitoru O
la (*nC.2 Croitoru
- Graph Algorithms
algoritm) log U )- .Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 17 / 46


Prefluxuri - Algoritmul lui Ahuja & Orlin
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru
Să presupunem 2N
că cij- Graph Algorithms
şi U =*max
Graph Algorithms * C. Croitoru - Graph Algorithms 2
C. Croitoru
(1 +- Graph
cij ). Algorithms
Fie K = d e
* C. Croitoru
log2 U- .
ij E* C. Croitoru - Graph Algorithms * C. Croitoru
Ideea- Graph Algorithms * C. Croitoru
algoritmului: - GraphK
Avem Algorithms * C. Croitoru
+ 1 etape. În- Graph Algorithms
fiecare etapă * C.p, cu p
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
luând succesiv
C. Croitoru valorile
- Graph Algorithms ;
K* C. ;:::; ;
KCroitoru
1 - Graph 1 0, următoarele
Algorithms două
* C. Croitoru condiţii
- Graph sunt
Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
îndeplinite:
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
(a) Graph
la începutul 6
etapei p, ei Algorithms
- Graph Algorithms * C. Croitoru - Graph
8 2 nf ; g
Algorithms * C. Croitoru - Graph Algorithms
2p , i * *C.C.V
Croitoru - Graph Algorithms * C. Croitoru
s t .
Croitoru - Graph Algorithms * C.
(b) Croitoru - Graph Algorithms
în timpul etapei p, * C.procedurile
Croitoru - Graph push-relabel
Algorithms * C. Croitorusunt- Graph Algorithms
folosite *
pentru
2f ;::: g
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
p 1 + p
* aC. elimina nodurile
Croitoru - Graph active,
Algorithms i , cu- Graph
* C. Croitoru ei Algorithms
2 1 Croitoru
* C. 2 - Graph
.
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
DinGraph Algorithms
definiţia lui *KC., Croitoru
în prima - Graph
etapă (p =* C.
Algorithms KCroitoru - Graph Algorithms
), condiţia (a) este *îndeplinită,
C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
şi dacă condiţia
Croitoru (b) va* fiC. menţinută
- Graph Algorithms Croitoru - Graph de-a lungul
Algorithms execuţiei
* C. Croitoru - Graphalgoritmului,
Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph
după K + 1 etape, dacă se menţine integralitatea exceselor Algorithms * C. Croitoru - Graphde-a
Algorithms
lungul
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
algoritmului, atunci urmează că, după etapa K +
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - nod
1, excesul fiecărui
2 nf ; g
i Graph
V Algorithms
s t este * C. Croitoru
0, deci- Graph
avem Algorithms
un flux * C.de
Croitoru
valoare- Graph Algorithms * C. Croitoru
maximă.
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 18 / 46


Prefluxuri - Algoritmul lui Ahuja & Orlin
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms
Pentru * C. Croitoru
a menţine (b)- de-a
Graph Algorithms * C. Croitorualgoritmului,
lungul execuţiei - Graph Algorithms schema
* C. Croitoru -
generală
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
a unui algoritm de tip preflux este adaptată după cum urmează:
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C.fiecare etapă
Croitoru - Graph p începe
Algorithms prin- Graph
* C. Croitoru construirea
Algorithms * C.listei
CroitoruL (p ) Algorithms
- Graph a tuturor
* nodurilori
C. Croitoru - Graph
1 i2; ;:::;
Algorithms * C. Croitoru
il (p ) cu excese ei - Graph >
Algorithms p* C.
1 Croitoru - Graph
2 , ordonate crescător
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
după
Graph d (aceasta
Algorithms poate
* C. Croitoru - Graph fi Algorithms
făcută *cu hash-sorting
C. Croitoru în timpul
- Graph Algorithms O (n ),
* C. Croitoru
- Graph Algorithms
deoarece 2 f ; ;:::;
d (i*)C. Croitoru
1 2 - Graph2n g
Algorithms
1 ).* C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C.nodul
Croitoru activ
- Graph Algorithms
selectat *pentru
C. Croitorupush-relabel
- Graph Algorithms * în C. Croitoru
timpul - Graph Algorithms
etapei p va fi
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
primul nod din ( p )
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -(push)
L . Urmează că, dacă se face o pompare
Graph
pe unAlgorithms * C. Croitoru - ij
arc admisibil Graph Algorithms
, atunci >
ei* C. Croitoru
2p 1 - Graph 6
şi ejAlgorithms
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
2p 1* C.(deoarece
Croitoru

d (j ) -=
Croitoru d (Algorithms
Graph i ) 1 şi * C.iCroitoru
este -primul nod din
Graph Algorithms L(p )).
* C. Croitoru Dacă
- Graph  , fluxul
Algorithms *
C.trimis
Croitoru -de
Graph Algorithms * C. Croitoru - Graph Algorithms
la i la j de către apelul push (i ), este limitat la * C. Croitoru - Graph 
Algorithms =
* C. Croitoru - GraphpAlgorithms * C. Croitoru - Graph Algorithms
min (ei * C.
Algorithms ; ;
rijCroitoru j ), atunci
2 - eGraph Algorithms(deoarece
* C. Croitoru 2
p >
* C. Croitoru
- GrapheAlgorithms
j
p 1 - Graph
2 * )C.urmează
Croitoru - că o
Graph Algorithmsnesaturată
pompare * C. Croitoru - Graph Algorithms
trimite cel* C. Croitoru
puţin 2p- Graph Algorithms
1 unităţi de* C. Croitoru
flux.
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 19 / 46


Prefluxuri - Algoritmul lui Ahuja & Orlin
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
După apelul push (i ) excesul din nodul j (singurul pentru care ex-
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms
cesul poate* C. Croitoru
creşte)- Graph
va Algorithms
fi ej + min ; ;
* C. (Croitoru 2p Algorithms
ei rij - Graph 6
ej ) e*j C. +Croitoru 6
2p ej- 2p ,
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
deci Algorithms
- Graph condiţia* C. (b) rămâne
Croitoru - Graphîndeplinită.
Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
etapa p este încheiată când lista L(p ) devine vidă.
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Pentru a determina
Algorithms * C. Croitoru în mod
- Graph eficient
Algorithms * C.un arc- admisibil
Croitoru pentru
Graph Algorithms o pompare
* C. Croitoru -
Graph Algorithms
(push), sau pentru * C. Croitoru - Graph Algorithms
a inspecta toate *arcele
C. Croitoru - Graph
care Algorithmsun
părăsesc * C.nod
Croitoru
i în
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
vederea
Croitorureetichetării
- Graph Algorithms (relabel),
* C. Croitoru -vom organiza* C.listele
Graph Algorithms Croitorude adiacenţă
- Graph Algorithms A* (i )
C. Croitoru -
după cum urmează: Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitorudin
fiecare element - Graph Algorithms
listă conţine:* C. Croitoru
nodul-jGraph
, xij Algorithms
, rij , un *pointer
C. Croitorucătre
- el-
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
ementul corespunzător lui i din lista de adiacenţă A ( j )
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.şi un pointer
Croitoru
către- următorul
Graph Algorithms * C. Croitoru
element din- Graph
listaAlgorithms
A(i ). * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* lista
C. Croitoru
are - asociat
Graph Algorithms * C. Croitoru
un iterator - Graph a-i
pentru Algorithms
înlesni * C.parcurgerea.
Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph
Toate Algorithms
aceste * C.sunt
liste Croitoru - Graph Algorithms
construite în O*(C. mCroitoru - Graph Algorithms
), înaintea apelului* procedurii
C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
initialization.
Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 20 / 46
Prefluxuri - Algoritmul lui Ahuja & Orlin
C. Croitoru - Graph
initialization; log
K Algorithms 
d 2*UC.eCroitoru
; K +1 Algorithms * C. Croitoru - Graph Algorithms
- 2Graph ;
for =
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
(p K* ;C.0)Croitoru
Algorithms do - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph () 
Algorithms *LC.pCroitoru
construieşte ; =2;Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph
- while ( )=
(L p 6 * C.?Croitoru
Graph Algorithms ) do - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
fie i primul
C. Croitoru ()
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
nod din* L
- Graph Algorithms p ;
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. caută
Croitoru în ()
- Graph
A i primul arcCroitoru
Algorithms * C. admisibil- Graph
sauAlgorithms
până se * C.ajunge
Croitoru la
- Graph
sfârşit;
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
if (ij este arcul admisibil găsit) then
min (
- Graph Algorithms *e 
C.i ;Croitoru
rij ; - Graph )
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
 ej ;Algorithms * C. Croitoru - Graph Algorithms * C.
Croitorue-iGrapheAlgorithms
i  ; e j
* C. e+
Croitoru
j  ;- Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
"trimite"
* C. Croitoru  unităţi*de
- Graph Algorithms flux de- Graph
C. Croitoru la i Algorithms
la j ; * C. Croitoru - Graph
Algorithms
if (e* C.i 6  =2)- Graph
Croitoru thenAlgorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms
şterge* C. Croitoru
i din ()
L p- Graph
; Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Croitoruif- Graph 
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
(ej > =2) then
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru adaugă
- Graph Algorithms * C. Croitoru
j la începutul listei()
- Graph
Lp Algorithms
; * C. Croitoru - Graph Algorithms
* C. else
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph

calculează
Graph Algorithms * C. d[ ] = min [ ] + :
i
Croitoru - Graph fdAlgorithms
j ()
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
2 A i- Graph
1 * C.ijCroitoru > 0g * C. Croitoru
şi rijAlgorithms
- Graph Algorithms
repoziţionează* C. Croitoru ()
i în- Graph
L p ;Algorithms * C. Croitoru - Graph Algorithms *
setează poziţia curentă (a pointerului) la începutul listei A i ; ()
Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 21 / 46
Prefluxuri - Algoritmul lui Ahuja & Orlin
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Complexitatea timp -aGraph
Algorithms * C. Croitoru algoritmului este
Algorithms * C. dominată
Croitoru de pompările
- Graph Algorithms * C. Croitoru nesat-
-
Graph
urate Algorithms
(ceea * C. Croitoru
ce rămâne - Graph
este deAlgorithms
complexitate O
* C. Croitoru(-nm
Graph Algorithms * C. Croitoru
)).
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
Lema 5 - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
C. Croitoru
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Numărul pompărilor
Algorithms Algorithms * C.este
nesaturate
* C. Croitoru - Graph Croitorucel- Graph 8n 2 în* C.
multAlgorithms fiecare
Croitoruetapă
- a
scalării, astfel numărul total este O
Graph Algorithms * C. Croitoru - Graph Algorithms *2 C. Croitoru - Graph Algorithms * C. Croitoru
(n log U ).
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms
Demonstraţie. Fie * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms *X
Graph Algorithms * C. CroitoruF (- p
Graph

C. Croitoru - Graph Algorithms * C. Croitoru -
ei d (i )
:
) =Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
2 6
V ;i =Algorithms
2p - Graph Algorithms * C.
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Croitoru - Graph Algorithms * C. Croitorui - Graph s ;t * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms

La începutul F (p ) <
X -2Graph
* C. Croitoru - Graph Algorithms * C. Croitoru 
p (2n )
Algorithms
= 2n
* C.
2 Croitoru - Graph
Algorithms * C.etapei
Croitoru p,
- Graph Algorithms * C. Croitoru
p - Graph .
Algorithms * C. Croitoru -
2
Graph Algorithms * C. Croitoru - Graph Algorithms
i V *2C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 22 / 46


Prefluxuri - Algoritmul lui Ahuja & Orlin
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Dacă,Algorithms * C. Croitoru
în etapa p, se- Graph Algorithms
execută * C. Croitoru
relabel - Graph Algorithms
(i ), atunci nu există * C. Croitoru
arce -admis-
ibile- Graph
ij , şi
Algorithms cu- Graph
* C. Croitoru >
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
d (i ) creşte h Algorithms
1 unităţi. F (p )- Graph
* C. Croitoru va creşte
Algorithms cu* C.cel mult
h. Deoarece, 8
Croitoru - Graph Algorithms <
i , d (i ) * C.2n Croitoru - Graph Algorithms
urmează
C. Croitoru - Graph Algorithms * C. Croitoru
că F (p *) C.vaCroitoru
creşte - Graph Algorithms
(până *
la finalul
- Graph Algorithms * C. Croitoru - Graph Algorithms
etapei p) cel - mult până la* 4n 2 .
* C. Croitoru Graph Algorithms C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Dacă, în etapa p, se execută pushC.
Algorithms * C. Croitoru - Graph Algorithms * (i Croitoru
), atunci- Graph Algorithmstrimite
aceasta >
* C. Croitoru - 2p 1
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
pe arcul admisibil
- Graph Algorithms * C.ijCroitoru > şi d (i )* =
cu r-ijGraph0Algorithms d (j ) +
C. Croitoru 1. Astfel,
- Graph Algorithmsdupă
* C. push,
0 
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms 
d (i )* C. Croitoru 
d (j- )Graph Algorithms *
F (pC.) Croitoru
va avea valoarea
- Graph AlgorithmsF *(pC.)Croitoru
= F (-pGraph
) Algorithms
2p
+* C. Croitoru
p
2Croitoru
-= F (Algorithms
Graph p)
2p
6
* C. Croitoru
p 1 - Graph Algorithms * C. Croitoru - Graph Algorithms * C. - Graph
2 * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Algorithms
F (pGraph
) = *FC.(p
Algorithms )
Croitoru =
1- Graph
2. Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
2p
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Această descreştere nu poate apărea de mai mult de 8n 2 ori* (deoarece
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C.

F (pC.) Croitoru
poate- Graph
creşte cel mult până -la 2 şi F (p
4nAlgorithms ) Croitoru
este nenegativ). Evi-
Algorithms * C. Croitoru Graph * C. - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
dent, numărul pompărilor nesaturate este dominat de acest număr de
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms
descreşteri ale lui (p ). - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
* C.FCroitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 23 / 46


Prefluxuri - Algoritmul lui Ahuja & Orlin
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
În concluzie:
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Teoremă
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
(Ahuja-Orlin,
C. Croitoru - Graph1988)
AlgorithmsAlgoritm
* C. Croitorude tip Algorithms
- Graph preflux *cu scalarea
C. Croitoru exceselor
- Graph Algorithmsare
complexitatea O
* C. Croitoru - Graph Algorithms * C. Croitoru
timp (nm + n log U ). 2 - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 24 / 46


Aplicaţii combinatoriale - Cuplaje în grafuri bipartite
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
A. *Algorithms
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Determinarea unui cuplaj de cardinal maxim şi a unei
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms
mulţimi stabile * C.de
Croitoru - Graph Algorithms
cardinal maxim * C.într-un
Croitoru - Graph
un Algorithms * C. Croitoru
graf bipartit.
1 ; VAlgorithms
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
G = (-V
Fie Croitoru Graph 2 ; E ) un graf bipartit cu n noduri şi m muchii.
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph
Considerăm reţeauaAlgorithms 1 ; s ; t -; Graph
R =* (C.GCroitoru c ), unde
Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms
V (G1 )*= f ; ;g [ [
C. Croitoru
s t - Graph V1Algorithms
V2 ; * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
E (GAlgorithms
- Graph [ [
1 ) = E1* C.E Croitoru
2 E-3Graph
, cu Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

f 2 g;
E1Algorithms
* C. Croitoru - Graph f 2 g;
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
= sv1 *:C.vCroitoru
1 V-1Graph = v2 t* C.
E2Algorithms : Croitoru
v2 V- 2Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
f
- Graph Algorithms * C. Croitoru
2 ; 2 g;
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
E3 = 2 : v1 * C.VCroitoru
v1 vAlgorithms
- Graph 1 v2 - Graph
V2 Algorithms * C.
: E (G
C.cCroitoru !N
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
1 ) Algorithms
- Graph definită prin - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru
* C. Croitoru - Graph Algorithms * C. ( Croitoru - Graph Algorithms * C. Croitoru - Graph
; 2 [
Algorithms * C. Croitoru - Graph Algorithms1 * C.dacă
Croitorue- Graph
E1Algorithms
E2 * C. Croitoru -
1;
Graph Algorithms * C. Croitoru
2
c (e )- Graph
= Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms dacă
* C.eCroitoru
E3- Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 25 / 46


Aplicaţii combinatoriale - Cuplaje în grafuri bipartite
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
+∞
Algorithms * C. Croitoru - Graph Algorithms
b * C. Croitoru - Graph
b Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms +∞ * C. Croitoru - Graph 1 Algorithms * C. Croitoru
1 b b
- Graph Algorithms * C. Croitoru - Graph Algorithms +∞ * C. Croitoru - Graph Algorithms * C.
Croitoru - Graphs Algorithms
b 1 * C. Croitoru - Graph Algorithms * C. Croitoru 1 - Graph
b t Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
1
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * 1C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms +∞
* C. Croitoru - Graph Algorithms * C. Croitoru -
b b

Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru


- Graph Algorithms * C. Croitoru -V Graph Algorithms * C. Croitoru V2
- Graph Algorithms * C.
1
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Dacă* C.xCroitoru
= (x- ijGraph Algorithms
) este un flux* C. Croitoru
întreg- Graph
în R, Algorithms
atunci * C.mulţimea f
Croitoru - Graphij : i 2
; 2 g
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms x
* C. Croitoru -
V1 Graph
j V 2 şi xij* =
Algorithms 1 coresponde
C. Croitoru - Graph Algorithms unui* C.cuplaj
CroitoruM - GraphînAlgorithms
graful *bipartit
C. CroitoruG,
-jGraph
x j
Algorithms
cu M = v (x ). * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.

C. Croitoruorice
- Graphcuplaj
Algorithms 2M
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
Reciproc, M* C. Croitoru G corespunde
- Graph Algorithmsunei mulţimi
* C. Croitoru deAlgorithms
- Graph arce nea-
* C. Croitoru - Graph Algorithms * C. Croitoru
diacente din G1 ; dacă pe fiecare astfel de arc ij (i - Graph Algorithms * C. 2
Croitoru
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph
V1 , j 2 -
V2 )
M M M M (e ) = 0 pe restul
considerăm x
Graph Algorithms = 1 şi x = x
ij * C. Croitorusi- Graph Algorithms
jt = 1, şi adăugăm x
* C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph
arcelor, atunci fluxul întreg x MAlgorithms satisface* C. Croitoru
v (x M ) - = j j
Graph Algorithms *
M .
Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 26 / 46
Aplicaţii combinatoriale - Cuplaje în grafuri bipartite
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Astfel, dacă
- Graph rezolvăm
Algorithms problema
* C. Croitoru fluxului* maxim
- Graph Algorithms C. Croitoruîn R (începând
- Graph Algorithms * C.cu fluxul
nul),Croitoru
atunci - Graph Algorithms
obţinem O
în* C. Croitoru
(nm + 2
- Graph
n log Algorithms
n ) un* cuplaj
C. Croitorude
- Graph Algorithms
cardinal
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
*
maxim
în G.
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
;
Fie Algorithms * C. Croitoru - de
(S T ) secţiunea Graph Algorithms * C.
capacitate Croitoru - Graph
minimă (obţinută O
Algorithms
în* C.(Croitoru
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
-
m ) dintr-un
flux- maxim determinat).
Graph Algorithms * C. CroitoruDin
- GraphTeorema
Algorithms *deC. flux maxim-
Croitoru secţiune
- Graph Algorithms * C.minimă,
;
Croitoru -
c (S T ) = (G ). 
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

<1 \ \
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Deoarece  (G
* C. Croitoru )
- Graph , luând
Algorithms i = S - Graph
* C.SCroitoru şi Ti = *TC. Croitoru
Vi Algorithms ;
= 1 2), avem
Vi (i- Graph
j j j j 
Algorithms * C. Croitoru - Graph [
Algorithms *
T1 + S2 = (G ) şi X = S1 T2 este o mulţime stabilă înC. Croitoru - Graph Algorithms * C. Croitoru -
G (pentru
<1 j j j n j j n j
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
a avea
- Graph ;
c (Algorithms
S T ) * C. Croitoru
). Mai- Graph X =* V
mult,Algorithms T1 -+
C. 1Croitoru V2Algorithms
Graph 
S2 =*nC. (G ).
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Urmează că X este o mulţime stabilă de cardinal maxim, deoarece * C. Croitoru - Graph Algorithms *n
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms

(G*)C.=Croitoru
(G -))Graph
(din teorema
Algorithms * C. lui König).
Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 27 / 46


Aplicaţii combinatoriale - Recunoaşterea secvenţelor digrafice
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
B. Recunoaşterea secvenţelor digrafice
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph
Considerăm Algorithms * C.problemă:
următoarea Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru
+
)
i i =1-;Graph
n şi ( d )
i i =1;*nC., Croitoru
Algorithms există- Graph
un digraf
Algorithms f ; : : : ; g;
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Date* C.(dCroitoru G *=C. (Croitoru
1 - Graph n E ) astfel
încât +
Algorithms
dG (i )*= C. d +
Croitoru 8 ;
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
i şi dG (i ) = di , i = 1 n?
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Condiţii evident *necesare
- Graph Algorithms C. Croitoru -pentru un răspuns
Graph Algorithms afirmativ
* C. Croitoru sunt: * C.
- Graph Algorithms
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
+
2 N; 6
C.dCroitoru - Graph 6
di+ n* C. Croitoru
0 Algorithms
* C.i Croitoru - Graph Algorithms
2 N; 6
1 şi di- Graph Algorithms
* C. Croitoru
6
0 di * C. Croitoru
- Graph Algorithms
;8
n 1- Graph ;
i =Algorithms
* C. Croitoru - Graph
1 n;
Algorithms * C. Croitoru
n - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * X X n
C. Croitoru
di = - Graph
- Graph Algorithms * C. Croitoru = m (*unde
diAlgorithms m=
C. Croitoru j j:
+ - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph )
E Algorithms * C.
Croitoru - Graph Algorithms
i =1 * C. Croitoru
i =1 - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
În aceste ipoteze
* C. Croitoru - Graphconsiderăm reţeaua
Algorithms * C. Croitoru bipartită
- Graph AlgorithmsR * C. ; ; ;
=Croitoru
(G1 s- Graph
t c ).
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 28 / 46


Aplicaţii combinatoriale - Recunoaşterea secvenţelor digrafice
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
G1 *Algorithms
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
este obţinut din graful complet bipartit K ;n Croitoru
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *n C.
cu - bipar-
(f1Algorithms
tiţiaGraph 0
; 2; : : : ; n* C.g;Croitoru 0
f1 ; 2 -;Graph 0
n g), prin
: : : ; Algorithms ştergerea
* C. Croitoru - Graphmulţimii
Algorithms * C.deCroitoru
muchii
0
f11 Croitoru 0 Algorithms0 * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
; 22 ; :-:Graph
- Graph
g şi prin
: ; nnAlgorithms orientarea fiecărei muchii ij (8i 6= j 2 0 * C.
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
f1; 2C.; :Croitoru
: : ; n g- )Graph la i la *jC.0 , Croitoru
de Algorithms şi prin - Graph Algorithms *aC.două
adăugarea Croitorunoi
- Graph Algorithms
noduri s, t ,
, i 2Algorithms
f1; 2; : :*:C.; nCroitoru
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
şi a Algorithms
tuturor*arcelor 0
g şi j- Graph 2 f1; 2; :* :C.: ;Croitoru
n g. -
* C. Croitoru - Graph
C. Croitorusi - Graph t , j Algorithms
Graph Algorithms
Funcţia de capacitate:* C. Croitoruc (-si
Graph di+ , c (j*0C.
) =Algorithms t )Croitoru
= dj -,Graph 0 ) = 1, 8*iC.; jCroitoru
c (ijAlgorithms = 1; n.
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 29 / 46


Aplicaţii combinatoriale - Recunoaşterea secvenţelor digrafice
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Dacă - Graph
în R Algorithms
există* C.unCroitoru
flux - întreg,
Graph Algorithms
x , de* C. Croitoru -maximă
valoare Graph Algorithms
m, *atunci
C. din
fiecare nod i vor pleca exact d
C. Croitoru - Graph Algorithms * C. Croitoru arce, 0
Croitoru - Graph Algorithms * C. Croitoru+- Graph Algorithms * C. Croitoru - Graph Algorithms *
ij , pe care x 0 = 1, şi in fiecare
ij - Graph Algorithms * C. Croitoruij - Graph Algorithms
0
nod* jC. Croitoru
vor intra - Graph Algorithms
exact di *arce, 0
C. Croitoru
ij , - pe
Graph Algorithms
care xij 0 =* C.1.Croitoru - Graph
Digraful dorit, G,
Graph Algorithms * C. este construit
Croitoru luând* C.
- Graph Algorithms (G ) =
VCroitoru f ; ;:::; g
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
1 2Algorithms
- Graph n * C.
şiCroitoru
punând
2
ij - Graph
E (GAlgorithms
) dacă şi * C.numai
Croitoru dacă
- Graph x
Algorithms
ij 0 = 1.
* C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
Reciproc,
C. Croitorudacă
- GraphG există,* C.atunci
Algorithms Croitoru -inversând construcţia
Graph Algorithms * C. Croitoru -anterioară
Graph Algorithmsvom
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
obţine un flux întreg în R de valoare m (deci de valoare maximă). * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Urmează că, recunoaşterea
Graph Algorithms secvenţelor
* C. Croitoru - Graph Algorithms * C.digrafice (şiAlgorithms
Croitoru - Graph construirea digra-
* C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
fului, în cazul unui răspuns afirmativ) poate fi făcută în (nm + O
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
n 2 log O
n ) = - Graph
C. Croitoru (n 3Algorithms
). * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 30 / 46


Aplicaţii combinatoriale - Conexiunea pe muchii
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms
C. Determinarea numărului* C. Croitoru
de- conexiune
Graph Algorithmspe* C. muchii
Croitoru - Graph
a unui graf
s ; t 2* C. , s 6= -tGraph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Fie Graph (V ; E )* un
G =Algorithms graf. - Pentru
C. Croitoru Graph Algorithms V Croitoru , notăm
Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru;
pe (s -tGraph
) = Algorithms
numărul* C.maximCroitoru -de drumuri
Graph Algorithmsdisjuncte
* C. Croitoru -pe muchii
Graph de*la s
Algorithms
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
la t în G,
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
;
Algorithms
ce (s t )* = C. Croitoru - Graph Algorithms
cardinalul minim al * C.unei
Croitoru - Graph Algorithms
mulţimi de muchii* C. Croitoru
astfel- încât
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
nu există
- Graph drum
Algorithms de la- sGraph
* C. Croitoru la Algorithms
t în graful obţinut
* C. Croitoru prin
- Graph ştergerea
Algorithms * C. ei din
Croitoru
G. - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Teoremă
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
;
pe (s- Graph ;
t ) =Algorithms
ce (s t *).C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - GraphFie
Demonstraţie. Algorithms * C. Croitoruobţinut
G1 digraful - Graph Algorithms
din G* prin C. Croitoru - Graph fiecărei
înlocuirea
muchii
Graphprintr-o
Algorithms *pereche
C. Croitorude arce
- Graph simetrice.
Algorithms Fie c- Graph
* C. Croitoru !N
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
: E (Algorithms
G1 ) * C.oCroitoru
funcţie
- Graph Algorithms * C. Croitoru - Graph 8 2
Algorithms
de capacitate definită prin c (e ) = 1, e E (G1 ). * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 31 / 46


Aplicaţii combinatoriale - Conexiunea pe muchii
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms *(continuare).
Demonstraţie Fie x 0*un
C. Croitoru - Graph Algorithms C. Croitoru - Graph Algorithms
flux întreg de valoare * C. Croitoru
maximă
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
= (G
în RCroitoru ; ; ;
- 1Graph c ). Dacă
s tAlgorithms există- Graph
* C. Croitoru un circuit
Algorithms C* C.
înCroitoru
G1 cu- Graph 0
xij = 1 pe toate
Algorithms *
C. Croitoru
arcele lui C- ,Graph Algorithms
atunci putem * C. Croitoru
pune - fluxul
Graph Algorithms * C. Croitoru
0 pe toate - Graph
arcele luiAlgorithms
C fără a
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph 0
modifica valoarea
Algorithms fluxului
* C. Croitoru x0 . Astfel,
- Graph Algorithms putem- Graph
* C. Croitoru presupune
Algorithmscă* C.fluxul
Croitoru x
- este
GraphşiAlgorithms
aciclic atunci *xC.0 Croitoru
poate- Graph Algorithms
fi scris ca o *sumă
C. Croitoru
de - vGraph
(x 0Algorithms
) fluxuri* C. Croitoru x k
întregi
- Graph Algorithms
k * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
fiecare (x Algorithms
cu - vGraph
Croitoru ) = 1. * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph
k
Fiecare flux x corespunde Algorithms * C. Croitoru - Graph Algorithms
unui drum de la s * la C. Croitoru
t în G- Graph Algorithms
1 (considerând
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
arcele pe care
Algorithms * C.fluxul
Croitoru nu este
- Graph 0), care
Algorithms * C.este un- Graph
Croitoru drumAlgorithms
de la s* la t şi în- graful
C. Croitoru
G. Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Urmează
Croitoru -căGraph ;
x 0 ) = p*eC.(sCroitoru
v (Algorithms t ), deoarece orice* C.
- Graph Algorithms mulţime de drumuri
Croitoru - Graph Algorithms * dis-
juncte pe muchiiAlgorithms
C. Croitoru - Graph de la s* C.laCroitoru
t în- Graph Algorithms * C.
G generează un Croitoru
flux- Graph
0 Algorithms
1 în R de
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
valoare egală
Algorithms * C.cu numărul
Croitoru acestor drumuri.
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 32 / 46


Aplicaţii combinatoriale - Conexiunea pe muchii
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Proof* C. Croitoru - Graph Algorithms
(continuare). ; T ) o- secţiune
Fie*(C.SCroitoru Graph Algorithms * C. Croitoru - Graph
de capacitate minimă în R;
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
avem c (S
Graph ; T ) =*vC.(xCroitoru
Algorithms
0 ), din Teorema
- Graph Algorithmsflux
* C. maxim-secţiune minimă.
Croitoru - Graph Algorithms Pe de
* C. Croitoru
altă-Croitoru (S ; T ) este numărul de arce cu o extremitate în S şi cealaltă
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
parte, c
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
în TC. Croitoru
(deoarece- Graphtoate capacităţile
Algorithms * C. Croitoru - arcelor sunt *1).
Graph Algorithms Această
C. Croitoru - Graphmulţime
Algorithms de
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
arceAlgorithms
generează în G o mulţime de muchii de acelaşi cardinal astfel încât
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
nu există vreun *drum
Graph Algorithms de -la
C. Croitoru s to
Graph t în graful
Algorithms obţinut
* C. Croitoru - Graphprin ştergerea
Algorithms ei din
* C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
G. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru
Astfel - Graph Algorithms
am obţinut * C. Croitoru
o mulţime c (S ;Algorithms
de - Graph T ) = v* C. 0 ) = -p
(xCroitoru e (s ;Algorithms
Graph t ) muchii
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
în G care deconectează
Algorithms * C. Croitoru - Graphpe s de *t C.prin
Algorithms ştergerea
Croitoru lor din
- Graph Algorithms * C.G. Urmează
Croitoru -
că ce (s ; t ) 6 pe (s ; t ). Deoarece inegalitatea ce (s ; t ) > pe (sCroitoru
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. ; t ) este
C. Croitoru - Graph 
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
evidentă,
Croitoru -teorema este *demonstrată.
Graph Algorithms Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph
Dacă G este un graf conex, Algorithms (G )-,Graph
* C. Croitoru Algorithms
valoarea * C. Croitoru
maximă alui p 2Algorithms
- Graph N pentru
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
careAlgorithms
G este*p-muchie-conex, este
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -

- Graph Algorithms * C. Croitoru 2


min
s ;-t Graph 6
V (GAlgorithms
);s =t
; 
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
ce (*sC.tCroitoru
)( )
- Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 33 / 46


Aplicaţii combinatoriale - Conexiunea pe muchii
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Urmează că, pentru
Graph Algorithms a calcula
* C. Croitoru  (G ), este
- Graph Algorithms * C.necesar Algorithms *nC.(n
să rezolvăm
Croitoru - Graph =
1) 2
Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
probleme de flux maxim descrise mai sus. Acest număr poate fi redus - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
dacăe observăm
C. Croitoru că, pentru
- Graph Algorithms o pereche
* C. Croitoru - Graph Algorithms ;
fixată (s* C.t Croitoru
), dacă ;
(S Algorithms
- Graph T ) este o
* C. Croitoru
secţiune - Graph Algorithms
de capacitate * C. Croitoru
minimă, - Graph Algorithms * C. Croitoru - Graph
atunci
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
8 2
- Graph Algorithmsv* C. Croitoru 8 2
S şi -wGraphT ;
ce (v w
Algorithms * C.6 ;
) Croitoru
c (S- Graph 
T ) (Algorithms
) * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
În particular,
* C. Croitoru - Graph ;
(s t ) este
dacăAlgorithms perechea
* C. Croitoru - Graph pentru
Algorithmscare minimul
* C. Croitoru 
- Graphdin ( ) se
Algorithms
atinge, avem * C.egalitate
Croitoru - Graph 
în (Algorithms
). * C. Croitoru - Graph Algorithms * C. Croitoru -
Dacă fixăm
- Graph un nod
Algorithms 0 2
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
* C.sCroitoru
V - şi rezolvăm
Graph Algorithmscele n 1 probleme
* C. Croitoru de flux
- Graph Algorithms * C. maxim
Croitoru 2 nf g
luând t0 V s0 vom obţine o pereche (s0 t0 ) cu c (s0 t0 ) = (G*) (t0
- Graph Algorithms * C. Croitoru - Graph Algorithms ; * C. Croitoru ;
- Graph 
Algorithms
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
nu va
* C.fiCroitoru
în aceeaşi clasă a *bipartiţiei
- Graph Algorithms cu sAlgorithms
C. Croitoru - Graph ;
0 în (S * T C. )Croitoru
). - Graph

* C. Croitoru - Graph Algorithms O 
Concluzie: (G ) poate fi găsit în (n (nm + n c )) = * C.(nCroitoru
Algorithms * C. Croitoru - Graph Algorithms
2 O 2 m ).-
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 34 / 46


Aplicaţii combinatoriale - Conexiunea pe noduri
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms
D. Determinarea numărului* C. Croitoru
de -conexiune
Graph Algorithmspe* C.noduri
Croitoru - Graph
a unui graf.
t 2 V , s* C.6=Croitoru
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
(V ; E )* un
G =Algorithms
Fie Graph graf. - C
C. Croitoru s ; Algorithms
Graph t , dacă notăm
- Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru;
p (s t-)Graph
= numărul
Algorithms * maxim
C. Croitorude - Graph Algorithms
drumuri * C. Croitoru
intern - Graph Algorithms
disjuncte (pe noduri) *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
de la s la t în G,
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
;
Algorithms
c (s t ) *=C.cardinalul
Croitoru - Graphminim
Algorithmsal *unei
C. Croitoru - Graph Algorithms
mulţimist * C. Croitoru
-separatoare de -noduri
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
din G,
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru
atunci, Din - teorema
Graph Algorithms * C. Croitoruavem
lui Menger, - Graph Algorithms * C. Croitoru - Graph Algorithms

; ;
(s t ) =*cC.(sCroitoru
Algorithms * C. Croitoru - GraphpAlgorithms 
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
t )( - Graph) Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
În plus,
Croitorunumărul de conexiune
- Graph Algorithms * C. Croitorupe noduri,
- Graph k (G
Algorithms ),Croitoru
* C. al grafului G (valoarea
- Graph Algorithms *
C. Croitoru
maximă a lui p - Graph2N
Algorithms * C. Croitoru - Graph Algorithms
pentru care G este p-conex) este * C. Croitoru -
8Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Graph Algorithms
* C. Croitoru - Graph
< n- Graph
Algorithms * C. Croitoru ;
1 Algorithms * C. Croitoru dacă = Kn * C. Croitoru -
G Algorithms
- Graph
k ( G ) =
Graph Algorithms * C. Croitoru ; ;
- Graph Algorithms * C.dacă 6
CroitoruG- Graph   
(
= KAlgorithms * C.) Croitoru
- Graph Algorithms *:C. sCroitoru
min c (s t )
2
;t V (G - Graph6 n
);s =t Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 35 / 46


Aplicaţii combinatoriale - Conexiunea pe noduri
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Arătăm că *egalitatea
Algorithms C. Croitoru - Graph
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
( ) provine
Algorithms din Teorema
* C. Croitoru flux *maxim-secţiune
- Graph Algorithms C. Croitoru -
Graph Algorithms
minimă, aplicată* C.uneiCroitoru - Graph
reţele Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
corespunzătoare.
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
G1 = -(Graph
Fie Croitoru V (GAlgorithms;
1 ) E (G*1C. ))Croitoru
digraful
- Graph construit
Algorithms *pornind
C. Croitoru de la Algorithms
- Graph G astfel:*
8 2
* C.vCroitoru
V ,- Graph
adăugăm ; 2V (-GGraph
av * bC.v Croitoru
Algorithms 1 ) şi 2
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
av bv * C.
Algorithms (G1 ); - Graph
E Croitoru
8 2
vwAlgorithms
Graph E , adăugăm
* C. Croitoru b ;
v aw Algorithms
- Graph 2
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
bw av *EC.(Croitoru G1 ). - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
Exemplu
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru b1
b
- Graph Algorithms
b
at * C. Croitoru -
Graph Algorithms1* b C. Croitoru -tb Graph Algorithmsb * C. Croitoru - Graph Algorithmsb bt * C. Croitoru
a1
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru a2 b - Graph Algorithms
* C. Croitoru - Graphb
Algorithmsb * C. Croitoruas -b Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru
s - Graph2Algorithms * C. Croitoru b - Graph Algorithms
b * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. bs Croitoru - Graph b2 Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C.S Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 36 / 46


Aplicaţii combinatoriale - Conexiunea pe noduri
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Mai* definim
C. Croitoru -cGraph G1 ) ! *NC.prin
: E (Algorithms Croitoru - Graph Algorithms * C. Croitoru - Graph
(
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
1 ;
Graph Algorithms * C. Croitoru - Graph Algorithms dacă
* C. e = av- bGraph
Croitoru v Algorithms * C. Croitoru
c (e ) =
- Graph Algorithms * C. Croitoru
1;
- Graph Algorithms * C. Croitoru - Graph Algorithms * C.
altfel
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru reţeaua
Considerăm - Graph Algorithms
R = (*G ; ; ;
C.1Croitoru
bs a-t Graph
c ). Algorithms * C. Croitoru - Graph
Algorithms
0
Fie Graph
x un
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
flux întreg
Algorithms în -RGraph
* C. Croitoru de Algorithms
valoare *maximă. În nodurile
C. Croitoru - Graph Algorithms *bC. 2
v (Croitoru
v V)
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
intră exact câte un arc de capacitate 1 şi din nodurile av (v V ) pleacă - Graph 2
Algorithms *
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C.

exact câte un
C. Croitoru arcAlgorithms
- Graph de capacitate 1.- Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru
* C. Croitoru
Urmează că -(din
Graphlegea
Algorithms
Algorithms * C. Croitoru -
de*conservare
Graph
C. Croitoru - Graph
Algorithms * C.
Algorithms * C.
a fluxului)
Croitoru - Graph Algorithms
2f ; g 8 2
căCroitoru
xij0 - Graph
0 1 , ij
* C. Croitoru -
E (GGraph 0 0 k
1 ). Algorithms
Astfel *xC. Croitoru
poate- Graph
fi descompus
Algorithms * C.în v (x - )Graph
Croitoru fluxuri x ,* C.fiecare
Algorithms Croitoru de
- Graph1,Algorithms
valoare * C. Croitoru - Graph
cu proprietatea Algorithms
că arcele pe *care
C. Croitoru - Graphnenul
xk este Algorithms * C.
corespond la
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
0
v (x C.)Croitoru
drumuri intern disjuncte din G. Algorithms * C. Croitoru - Graph Algorithms
- Graph Algorithms * C. Croitoru - Graph
Pe de altă parte, din orice mulţime Graph
* C. Croitoru - Graph Algorithms * C. Croitoru - de pAlgorithms
st -drumuri * C. Croitoru
intern- Graph
disjuncte în
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
G, Graph
putem construi p b a -drumuri
Algorithms * C. Croitorus - Graph
t intern disjuncte în
Algorithms * C. Croitoru - Graph Algorithms G 1 * pe
, care se
C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
poate transporta o singură unitate de flux. Urmează că v (x ) = p (s t ). - Graph Algorithms0 * ;
Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 37 / 46
Aplicaţii combinatoriale - Conexiunea pe noduri
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
;
Fie Algorithms
(S T ) *oC.secţiuneCroitoru - Graph
de Algorithms
capacitate * C. Croitoru
minimă - Graph
în Algorithms
R astfel* C. v (- x 0 ) =
Croitoru
încât
;
c (S - Graph
T ). Algorithms
Deoarece * C. Croitoru <1
v (x ) - Graph Algorithms
, urmează 8 2 8 2
Graph Algorithms * C. Croitoru0 - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
că i - Graph
* C. Croitoru S ,Algorithms
j T
* C. cu ij 2
E (GCroitoru
1 ) ; - Graphc
avem ( ij )<1
Algorithms * C. ,Croitoru
deci -cGraph
( ij )Algorithms
= 1, 9 2
* C. Croitoru
adică u - Graph
V Algorithms
astfel
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
*
încât
i = *aC.u Croitoru
şi j =- Graph
bu . Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms
Astfel, * C. Croitoru
secţiunea ;
(S - T Graph Algorithms * C. Croitoru
) coresponde unei -mulţimi
Graph Algorithms * C. Croitoru
de noduri A0-  V
astfel încât
- Graph ;
c (S T
Algorithms j j
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
* C.) Croitoru
= A0- Graph şi AAlgorithms
0 este o*mulţime
C. Croitoru - st -separatoare.
Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru
Pe de altă parte, pentru orice mulţime st -separatoare,- Graph Algorithms * C. Croitoru - Graph j j>
A, Algorithms
avem A
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
*

;
p (s * tC.) Croitoru 0
= v (x- Graph
). Deci
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -

- Graph Algorithms ; j j ;
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
c (s* C.t )Croitoru
= A-0Graph = cAlgorithms
(S T ) *=C.vCroitoru
(x ) = ; :
0 - Graph Algorithms * C. Croitoru
p (sAlgorithms
- Graph t) * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph
Demonstraţia de Algorithms
mai sus *arată C. Croitoru
că, -pentru
Graph Algorithms * C. Croitoru
a determina k (G- Graph Algorithms
) este suficient
să determinăm minimul
Algorithms * C. Croitoru - Graphîn  
(
Algorithms *)C.rezolvând j
Croitoru - GraphE j
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
(G ) probleme
Algorithms * C. Croitoru de
- flux
Graph Algorithms
maxim, unde G* este C. Croitoru - Graph Algorithms
complementul lui* C.
G.Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 38 / 46


Aplicaţii combinatoriale - Conexiunea pe noduri
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
AvemGraph Algorithms
astfel * C. Croitoru cu
un algoritm - Graph Algorithms * C. Croitoru
complexitatea timp- Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
 * C. Croitoru - Graph
Croitoru - Graph Algorithms  Algorithms * C. Croitoru- Graph Algorithms *
O n (n* C. Croitoru
C. Croitoru - Graph Algorithms 1)
:
- Graph Algorithms2* C. Croitoru - Graph Algorithms
m (nm + n log n )
* C. Croitoru - Graph Algorithms2* C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
O observaţie simplă ne oferă un algoritm mai eficient. Evident,
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
 - Graph Algorithms
Croitoru - Graph Algorithms * C. Croitoru  * C. Croitoru
X - Graph Algorithms *

*kC. 6
C. Croitoru - Graph Algorithms * C.
(G )
Croitorumin
2
v- Graph
V Algorithms n

n min
dG (v ) = * C. Croitoru
2
dG (v ) 6
1 Croitoru - Graph Algorithms * C.
v -VGraph Algorithms n
1 Croitoru
dG -(Graph
* C. Croitoru v) =
2m
:
- Graph Algorithms

2
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
v V * C. Croitoru -
n
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Dacă- Graph
A0 Algorithms * C. Croitoru
este a mulţime - Graph Algorithms
separatoare în G* C.cuj j
Croitoru
A0 - Graph
= k (Algorithms
G ), atunci n
* C. G A0
n 0 ; 00 8 02
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
0 (V V
0
nu este conex
C. Croitoru şi există
- Graph o partiţie
Algorithms of- Graph
* C. Croitoru V A Algorithms * C. )Croitoru
astfel- Graph
încâtAlgorithms
v V
8 00 2 00
şi v* C. Croitoru
V -avem 0 ; 00
Graph Algorithms
p (v v *)C.=Croitoru
k (G )- .Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 39 / 46


Aplicaţii combinatoriale - Conexiunea pe noduri
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru -că
Urmează Graph Algorithms *oC.problemă
rezolvând Croitoru - Graph
deAlgorithms
flux maxim * C. Croitoru 2 0 2
cu s-0GraphVAlgorithms
şi t0 * V 00
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
obţinem că p-(Graph
* C. Croitoru ; ) = valoarea
s0 t0Algorithms fluxului
* C. Croitoru maxim =
- Graph Algorithms (G ). - Graph 
* C.kCroitoru 
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -2m
Putem determina o astfel de pereche după cum urmează: fie l =
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru +
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
n
1, alegem
Croitoru -lGraph
noduri arbitrare
Algorithms * C. Croitoru (G Algorithms
din -VGraph ), şi pentru fiecare- Graph
* C. Croitoru astfel de nod,
Algorithms * v,
C. Croitoru
rezolvăm - Graph
toate Algorithms * C.de
problemele Croitoru
flux -maxim p ( ;
Graph Algorithms
 Algorithms
v * C. 2=
Croitoru - Graph
* C. Croitoru - Graph
w ) , cu vw E Algorithms
. Numărul
acestor probleme este O (nl ) = O
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph2m
n (
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru + 1 O
= (m*)C.
n - Graph Algorithms . Croitoru -
Astfel complexitatea timp a determinării lui k (G ) este * (C.mCroitoru
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph O
Algorithms
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
(nm +
n 2 log n )) .
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 40 / 46


Exerciţii pentru seminarul din săptămâna viitoare
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Exerciţiul 1. Arătaţi
- Graph Algorithms că,- Graph
* C. Croitoru utilizând un* C.
Algorithms algoritm de flux
Croitoru - Graph maxim
Algorithms * C. (într-o
Croitorureţea),
anumită - Graph Algorithms
se poate * C.găsi,
Croitoru - Graphmatrice
într-o Algorithms0* C.1,Croitoru - Graph Algorithms
o mulţime *
de cardinal
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
maxim de elemente
* C. Croitoru egale *cu
- Graph Algorithms 0, în care
C. Croitoru - Graphoricare
Algorithmsdouă elemente
* C. Croitoru - Graphnu se află
Algorithmslinie
pe aceeaşi * C. Croitoru
sau pe - Graph Algorithms
aceeaşi * C. Croitoru - Graph Algorithms * C. Croitoru -
coloană.
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph
Exerciţiul 2. Algorithms
Fie S *şiC. T Croitoru - Graph Algorithms
mulţimi nevide, *disjuncte
C. Croitoru - Graph AlgorithmsSe
şi finite. * dă
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
o funcţie a :- Graph
* C. Croitoru [ !N
S Algorithms
T * .C. Croitoru
Să se - decidă dacă *există
Graph Algorithms un- Graph
C. Croitoru graf bipartit
G =Graph ;
(S T ; E ) astfel încât dG (v ) = a (v ), pentru orice v 2 [
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
S T ; dacă
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
răspunsul este afirmativ
- Graph Algorithms * C. Croitorutrebuie returnate
- Graph Algorithms muchiile
* C. Croitoru - Graphlui G (S *şi
Algorithms C. T sunt
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
clasele bipartiţiei lui G). Arătaţi că această problemă poate fi rezolvată
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru
în timp - Graph Algorithms
polinomial * C. Croitorude
ca o problemă - Graph
fluxAlgorithms
maxim* C.într-o
Croitoruanumită
- Graph reţea.
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 41 / 46


Exerciţii pentru seminarul din săptămâna viitoare
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
Exerciţiul 3. Fiecare student dintr-o mulţime S de cardinal n > 0
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
subscrie la o submulţime
Graph Algorithms de 4Algorithms
* C. Croitoru - Graph cursuri* C.opţionale dintr-o
Croitoru - Graph mulţime
Algorithms C de
* C. Croitoru
cardinal k > 4. Descrieţi un algoritm (de complexitate timp polinomi-
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
ală)C.care
Croitoru
să -determine
Graph Algorithms
(dacă* C. Croitoru
există)- Graph Algorithms
o alocare * C. Croitoru - Graph
a studenţilor cătreAlgorithms
cursurile
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
opţional din* C.
Algorithms CCroitoru
astfel- Graph
încâtAlgorithms
fiecare* C.student
Croitoru -să fieAlgorithms
Graph asignat* C. la Croitoru
exact- 3 cur-
suriGraph
(dinAlgorithms
cele 4 la * C.care
Croitoru - Graph Algorithms
a subscris) * C. Croitoru
şi fiecare curs -să Graph Algorithms
aibă asignaţi* C. Croitoru
cel mult
dn =Croitoru
k e studenţi.
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Exerciţiul
Algorithms *4.C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
(a) - Graph
Adevărat sau* C.fals?
Algorithms CroitoruÎntr-o reţea R* =
- Graph Algorithms ; ; ;
(G s - tGraph
C. Croitoru c ) Algorithms
cu capacităţi
* C. dis-
Croitoru - Graph Algorithms * C. Croitoru -
tincte există un singur flux maxim. De ce? Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
(b) * Descrieţi
C. Croitoru - Graph Algorithms * C. Croitoru
şi demonstraţi - Graph Algorithms
corectitudinea unui* C.algoritm
Croitoru - Graph
de complexi-
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
tateAlgorithms
Graph (timp) *polinomială
C. Croitoru - Graphcare să decidă
Algorithms dacă- Graph
* C. Croitoru într-o reţea *dată
Algorithms există
C. Croitoru
- Graph Algorithms
un singur * C.maxim.
flux Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 42 / 46


Exerciţii pentru seminarul din săptămâna viitoare
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Exerciţiul 5. O* C.
Graph Algorithms companie IT Algorithms
Croitoru - Graph are n angajaţi
* C. Croitoru ; ;:::;
P1- Graph
P2 Algorithms
Pn care trebuie
* C. Croitoru
să lucreze la m proiecte L 1; ;:::;
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
L
Croitoru - Graph Algorithms * C. Croitoru
L
2 - Graph m . Pentru orice angajat P i avem
Algorithms * C. Croitoru - Graph Algorithms *
o
L
listăC. Croitoru
i a proiectelor la care
- Graph Algorithms poate- lucra
* C. Croitoru şi si numărul
Graph Algorithms de- projecte
* C. Croitoru L
din i
Graph Algorithms
pe care le poate termina într-o săptămână (si Algorithms
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
6 jL j
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
i ). *Fiecare proiect
C. Croitoru -
va fiGraph Algorithms
alocat unui* singur
C. Croitoruangajat.
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Cum se poate
Croitoru determina
- Graph Algorithms numărul
* C. Croitoru - Graphminim
Algorithmsde* C.săptămâni
Croitoru - Graphnecesare
Algorithms * ter-
C. Croitoru
minării - Graphproiectelor
tuturor Algorithms * C.folosind
Croitoru - Graph Algorithms
fluxuri * C. Croitoru - Graph Algorithms
în reţele.
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms
Exerciţiul * C. Croitoru
6. Planul de -evacuare
Graph Algorithms * C. Croitorual- Graph
de urgenţă uneiAlgorithms
clădiri *este
C. Croitoru
descris
ca un grid
Croitoru - Graph 
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
n Algorithms
n; frontierele
* C. Croitoru -celulelor sunt* C.rutele
Graph Algorithms Croitorude eavcuare
- Graph Algorithmscătre
*
C. Croitoruclădirii
exteriorul - Graph Algorithms * C. Croitoru
(grid-ului). - Graph Algorithms
O instanţă * C. Croitoruevacuării
a problemei - Graph Algorithms
conţine
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
dimensiunea
Algorithms * C.nCroitoru
a grid-ului şi m puncte
- Graph Algorithms de -plecare
* C. Croitoru (colţurile
Graph Algorithms celulelor).
* C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 43 / 46


Exerciţii pentru seminarul din săptămâna viitoare
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Exerciţiul
Algorithms * 6 (continuare).
C. Croitoru Instanţa
- Graph Algorithms primeşte
* C. Croitoru un răspuns
- Graph Algorithms afirmativ
* C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
dacă există m drumuri disjuncte către frontiera grid-ului plecând - Graph Algorithms * C. Croitorudin
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
celeCroitoru
m puncte de mai* sus.
- Graph Algorithms Dacă
C. Croitoru drumurile
- Graph Algorithms * C.acestea
Croitoru -nu
Graphexistă,
Algorithmsatunci
*
C. Croitoru - Graph Algorithms
instanţa primeşte un răspun negativ. * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Determinaţi
Algorithms * C. o Croitoru
reprezentare a acestei
- Graph Algorithms problem
* C. Croitoru a evacuării
- Graph Algorithms * C.caCroitoru
o problemă
-
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
de flux într-o reţea. Descrieţi un algoritm eficient pentru a recunoaşte - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
instanţele pozitive
Croitoru - Graph ale *problemei
Algorithms (care
C. Croitoru - Graph este complexitatea
Algorithms * C. Croitoru - Graph timp a algo-
Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
ritmului?).
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -

Exerciţiul 7. Fie
- Graph Algorithms * C. G = (-V
Croitoru ; E )Algorithms
Graph un graf * C.cu n noduri
Croitoru f ; ;:::; g
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
v1 v2 * C. vn şi
- Graph Algorithms
c:E !R
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
+ o funcţie de capacitate pe muchiile lui G. O tăietură în G
- Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
este* oC. Croitoru
bipartiţie X(S
- Graph ; T ) a *lui
Algorithms V . Capacitatea
C. Croitoru - Graph Algorithmsunei tăieturi
* C. Croitoru - Graph;
(S T ) este
;
Algorithms
c (S T ) = * C. Croitoru - Graph Algorithms
c (e ). * C. Croitoru - Graph Algorithms * C. Croitoru
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
-

2 j\ j
e E ; e *SC.=Croitoru
- Graph Algorithms 1 - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 44 / 46


Exerciţii pentru seminarul din săptămâna viitoare
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
Exerciţiul 7 (continuare). O tăietură minimă în G este o tăietură
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
;
(S0 Croitoru
T0 ) astfel
- Graph încât
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru ;
c (S0- Graph
T0 ) Algorithms
= * C.min ;
(S T ) * C. Croitoru -
Croitoru - GraphcAlgorithms
;T ) tăietură în G
(SAlgorithms
Graph Algorithms * C. Croitoru - Graph * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
(a) C.Arătaţi că seAlgorithms
Croitoru - Graph poate *determina o tăietură
C. Croitoru - Graph Algorithms *minimă
C. Croitoru -în timp
Graph polino-
Algorithms
* mial
C. Croitoru - Graph Algorithms
rezolvând un număr * C. Croitoru - Graph Algorithms
polinomial de probleme* C. Croitoru
de -flux
Graph maxim în
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
anumite
Graph Algorithmsreţele.
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
(b) Croitoru
Pentru G=
- Graph Cn (circuit
Algorithms indus
* C. Croitoru deAlgorithms
- Graph >
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
ordin n* C. Croitoru
3) cu -toate capacităţile
Graph Algorithms *
C. Croitoru - Graph Algorithms n (nCroitoru
* C. 1) - Graph Algorithms * C. Croitoru - Graph Algorithms
* 1, arătaţi- Graph
C. Croitoru că există
Algorithms * C. Croitorutăieturi minime.
- Graph Algorithms * C. Croitoru - Graph
2
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 45 / 46


Exerciţii pentru seminarul din săptămâna viitoare
C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms
Exerciţiul 8. Fie* C. G
Croitoru
= (V - Graph
; E )Algorithms
un digraf * C. şi
Croitoru !R
w : -VGraph Algorithms
astfel* ca \
C. Croitoru
w (V )
R + Croitoru ) \R 6 ?
- Graph = *. C.
Algorithms OCroitoru
submulţime 
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
şi w (V A V
- Graph Algorithms * C.se numeşte
Croitoru - Graph izolată
Algorithms în
* G
C. Croitoru - Graph
dacă nu există nici un XAlgorithms * C. Croitoru - Graph Algorithms * C. Croitoru
arc care iese din A. Ponderea unei submulţimi - Graph Algorithms


* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
A Algorithms (A) =
V este* C.wCroitoru w (v ). Descrieţi
- Graph Algorithms * C. Croitoru - un algoritm
Graph Algorithms *de compexitate
C. Croitoru -
Graph Algorithms * C. Croitoru2
v A - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms
polinomială bazat * C.pe
Croitoru
un -algoritm
Graph Algorithms * C. Croitoru
de flux maxim - Graph Algorithms
într-o * C.
anumită reţea
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
careC.să determine
Croitoru o submulţime
- Graph Algorithms * C. Croitoruizolată de pondere
- Graph Algorithms maximă
* C. Croitoru - Graphîn G.
Algorithms
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms
Exerciţiul 9. Fie* C.G = (S
Croitoru ; T ; Algorithms
- Graph E ) un graf * C. Croitoru - Graph
bipartit. Algorithms * C. Croitoru
Demonstraţi teorema
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C.
lui Hall (există un cuplaj în G care saturează toate nodurile din S
Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *
C. Croitoru
dacă şi numai - Graph dacă
Algorithms
(H) 8  ;j
* C. Croitoru
A - GraphS NAlgorithmsj>j j
G (A) * C. Croitoru - Graph Algorithms
A ) folosind teorema
* C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph
fluxAlgorithms
maxim* C. - Croitoru
secţiune minimă pe o reţea particulară.
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru -
Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru
- Graph Algorithms * C. Croitoru - Graph Algorithms * C. Croitoru - Graph Algorithms *

Algoritmica Grafurilor - Cursul 9 6 decembrie 2019 46 / 46

Вам также может понравиться