Sunteți pe pagina 1din 5

TARJAN

Algoritm pentru determinarea componentelor


tare conexe ale unui graf orientat.

Proiect realizat de Cristian Ciacu


Algoritmul
Acesta este format din mai multi pasi:
• Se realizeaza o parcurgere a grafului (dfs) prin care
introducem nodurile in stiva
• Daca putem gasi nodul “cap” pentru un subgraf, afisam toate
nodurile acelui subgraf, inclusiv nodul cap si acel subgraf
poate fi considerat o componenta tare conexa a grafului.

• Pentru a calcula capul unei componente conexe, calculam


vectorii viz si low, unde vectorul low ne indica nodul cu cel
mai mic timp de descoperire care poate fi atins din nodul
“nod”. Vectorul viz retine in cati pasi am putut ajunge la
fiecare nod in parte. Un nod este cap daca viz[nod] este egal
cu low[nod].
Complexitate

• Algoritmul lui Tarjan are un timp de rulare liniar in numarul


de muchii si noduri ale grafului, O(|V| + |E|), datorita
faptului ca functia “dfs” este apelata o data pentru fiecare
nod in parte.
Un mic exemplu
1 2 4

**(x, y) – x = viz[nod], y = low[nod]

3 5

(1, 1) (2, 2) (4, 4)

1 2 4

(3, 3) 3 (5, 5) 5
Continuarea micului exemplu
(1, 1) (2, 1)

1 2 4 (4, 4)

(3, 1) 3 (5, 5) 5

1 2 4

3 5

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