Documente Academic
Documente Profesional
Documente Cultură
PARCURGERI DE GRAFURI
Teorema 1 .
(1) Algoritmul PBF calculeaz elementele tabloului l astfel încât
d(y) l(y), y N ;
(2) Dac la itera ia k oarecare a algoritmului PBF avem V = (x1, ..., xr) în
aceast ordine, atunci l(x r ) l(x1 ) 1 i l(x i ) l(x i 1 ), i 1, r 1 .
Demonstra ie.
(1) Utiliz m induc ia dup k, num rul de itera ii ale ciclului WHILE.
Ini ial l(s) := 0, l(y) := pentru y U i evident d(y) l(y), y N .
Presupunem c , la itera ia k avem d(y) l(y) pentru y N . La itera ia
k + 1 pot exista cazurile:
(Cl ) Exist arc (x,y) admisibil ((x,y) A i y U). În acest caz
l(y) = l(x) + 1
i
d(y) d(x) 1 l(x) 1 l(y)
(l(x) pentru x V nu se modific ). Deci pentru toate arcele (x,y) A i
y U avem d(y) l(y) . Pentru celelalte noduri y, conform ipotezei
induc iei, avem d(y) l(y) , deoarece la itera ia k + 1, l(y) nu se mai
modific .
(C2) Nu exist arc (x,y) admisibil ((x,y) A sau y U). În acest caz la
itera ia k + 1 nu se modific nici un element l(y) i conform ipotezei
induc iei d(y) l(y) pentru y N .
(2) Utiliz m induc ia dup k num rul de itera ii ale ciclului WHILE.
Ini ial V := {s}. Deci x1 = a, xr = a i l(s) < l(s) + 1, l(s) = l(s). Presupunem
c la itera ia k avem l(xr) l(x1) + 1 i l(xi) < l(xi+1), pentru i = 1, r 1 . La
itera ia k + 1 pot exista cazurile:
(Cl ) Exist arc (x,y) admisibil ((x,y) A i y U). În acest caz
V={x1, ..., xr, xr+1}, x1 = x, xr+1 = y. Astfel, l(xr+1) = l(y) = l(x) + 1 = l(x1)+1.
De asemenea, avem l(xr) l(xr) + 1 = l(x) + 1 = l(y) = l(xr+1) i inegalit ile
l(xi) l(xi+1), i = 1, r 1 au r mas nemodificate.
(C2) Nu exist arc (x,y) admisibil ((x,y) A sau y U). În acest caz
V = {x2, ..., xr}. Avem l(xr) l(x1) + 1 l(x2) + 1 i inegalit ile
l(xi) l(xi+1), i = 1, r 1 au r mas nemodificate.
Teorema 2. Algoritmul PBF este convergent i la terminarea
execu iei determin m mul imea tuturor nodurilor care sunt accesibile
din nodul surs s în digraful G = (N,A).
Demonstra ie. Din liniile (10), (11) i (12) ale algoritmului
rezult c toate nodurile introduse în V sunt eliminate dup ce sunt
analizate. Deci dup un num r finit de itera ii se ob ine V = 0 i
execu ia algoritmului se opre te. Pentru a ar ta c la terminarea
execu iei, algoritmul determin mul imea tuturor nodurilor care sunt
accesibile din nodul surs s în digraful G = (N,A), trebuie s ar t m c
la terminarea execu iei algoritmului mul imea W este:
W {y y N i exist drum de la s la y}.
Din liniile (10), (11) i (12) ale algoritmului rezult c în V sunt
introduse numai noduri y care sunt accesibile din s i c dup ce un nod
x V a fost analizat el este eliminat din V i introdus în W. Deoarece
algoritmul se opre te când V = 0 rezult c W con ine toate nodurile
y N care sunt accesibile din s i introduse în V. S ar t m c W
con ine toate nodurile y N care sunt accesibile din s. Prin reducere la
absurd s presupunem c exist un drum D = (yl,y2, ... ,yk-l,yk) cu yi = s,
yk = y în G i y W. Rezult c yk V. Deoarece yk V i (yk-h,yk) A
deducem c yk-1 V, astfel yk ar fi fost introdus în V. Continuând
procedeul vom deduce în final c s = y1 V. Aceasta contrazice faptul
c în linia (3) a algoritmului ini ializ m V:={s}. Rezulta c y V, deci y W
i teorema este demonstrat .
Teorema 3.
Algoritmul PBF este convergent i determin :
(1) mul imea tuturor nodurilor care sunt accesibile din nodul surs s;
(2) elementele tabloului l astfel încât l(y) = d(y) pentru y N.
Demonstra ie. Convergen a i punctul (1) se demonstreaz la fel
ca Teorema 2. Punctul (2) se demonstreaz prin induc ie dup k num rul
itera iilor ciclului WHILE. Fie mul imea Nk = {y N |d(y) = k}. Pentru k
= 0 avem N0 = {s} i deci d(s) = l(s) = 0. Presupunem afirma ia adev rat
pentru k. Afirma ia pentru k + 1 rezult cu u urin , deoarece, în
conformitate cu Teorema 1 punctul (2), un nod y Nk+l este vizitat plecând
de la un nod x Nk numai dup ce toate nodurile din Nk sunt vizitate. Deci,
dac y Nk+l i este vizitat explorând arcul (x,y), x Nk, atunci,
l(y) = l(x) + 1 = d(x) + 1 = k + 1 = d(y).
Teorema 4.
Algoritmul PBF are complexitatea O(m).
Demonstra ie. Din liniile (10) , (11) i (12) ale algoritmului rezult
c fiecare nod al digrafului G este introdus i eliminat din V cel mult o dat .
Deoarece execu ia algoritmului se termin când V = 0 deducem c
algoritmul execut cel mult 2n itera ii. Fiecare arc (x,y) A este explorat cel
mult o dat pentru identificarea arcelor admisibile. Deci complexitatea
algoritmului PBF este O(m + n) = O(m).
În parcurgerea BF, dac Np = W i subgraful predecesor
Gp = (Np,Ap) este o arborescen atunci Gp se nume te arborescen
parcurgere BPF.
Teorema 5.
Algoritmul PBF determin elementele tabloului p astfel încât
subgraful predecesor Gp = (Np,Ap) este o arborescen parcurgere BPF.
Demonstra ie. Din liniile (10), (11) i (12) ale algoritmului rezult
c p(y) := x numai dac y este accesibil din s. Evident c la terminarea
execu iei algoritmului avem Np = W. Din modul cum sunt definite Np i Ap
rezult c Gp este o arborescen . Deci subgraful predecesor Gp este o
arborescen parcurgere a digrafului G = (N,A).
Observa ia 2. Drumul unic de la nodul surs s la un nod y din
arborescen a parcurgere BF este un cel mai scurt drum de la nodul surs s la
acela i nod y din digraful G, conform punctului (2) al Teoremei 3.
Observa ia 3. Algoritmul PBF sau PTBF se poate aplica i
grafurilor neorientate. În acest caz, subgraful predecesor Gp = (Np,Ap)
este o arborescen . sau mai multe arborescen e.
Observa ia 4. Un drum unic de la nodul surs s la un nod y din
arborescenta parcurgere BF se poate determina cu urm toarea procedur .
(1) PROCEDURA DRUM (G,s,y);
(2) BEGIN;
(3) se tip re te u;
(4) WHILE p (y) i-0 DO
(5) BEGIN
(6) x := p(y); se tip re te x;
(7) IF x s
(8) THEN y := x
(9) ELSE EXIT;
(10) END;
(11) END.
Figura 1
Figura 3
4.3. Aplica ii
4.3.1. Sortarea topologic
Teorema 9. Un digraf G = (N,A) este f r circuite dac i numai
dac orice parcurgere total DF a lui G nu produce arce de revenire.
Demonstra ie. Presupunem c digraful G este f r circuite. Prin
reducere la absurd presupunem ca o parcurgere total DF a lui G produce
arce de revenire ( R 0 ). Fie arcul (z, x) R . În acest caz nodul z este un
descendent al nodului x în p durea parcurgere DF. Deci exist un drum D de
G con ine un circuit D . Fie x primul nod vizitat din D i fie arcul
Figura 4
Figura 5
Itera ia 11:
x = 7 : V = {5,6,8}, W = {4,3,2,1,7}.
Dup înc trei itera ii se ob ine
V = 0 , W = {4,3,2,1,7,8,6,5}
Se tip resc
p = 2 i N' = {5,6,8,7}
i execu ia algoritmului se opre te.