Sunteți pe pagina 1din 2

Parcurgerea grafurilor

Parcurgerea unui graf presupune examinarea sistematic a vrfurilor grafului, cu scopul prelucrrii informaiilor asociate vrfurilor. Exist dou metode fundamentale de parcurgere a grafurilor: 1. Parcurgerea n adncime (DFS Depth First Search) 2. Parcurgerea n lime (BFS Breadth First Search) Parcurgerea n adncime Parcurgerea n adncime se caracterizeaz prin faptul c se merge n adncime ori de cte ori este posibil. Parcurgerea ncepe cu vrful iniial, denumit vrful de start, care este i vizitat. Se viziteaz apoi primul vecin nevizitat al vrfului de start. Vrful y este considerat vecin al vrfului x dac exis muchia (pentru graful neorientat), respectiv arcul (pentru graful orientat). Se viziteaz n continuare primul vecin nevizitat al primului vecin al vrfului de start, i aa mai departe, mergnd n adncime, pn cnd ajungem ntr-un vrf care nu mai are vecini nevizitai. Cnd ajungem ntr-un astfel de vrf, revenim la vrful su printe (vrful din care acest nod a fost vizitat). Dac acest nod mai are vecini nevizitai, alegem primul vecin nevizitat al su i continum parcurgerea n acelai mod. Dac nici acest vrf nu mai are vecini nevizitai, revenim n vrful su printe i continum n acelai mod, pn cnd toate vrfurile accesibile din vrful de start sunt vizitate.

Parcurgerea n lime Parcurgerea n lime ncepe cu vrful iniial, denumit i vrful de start. Se viziteaz mai nti vrful de start. Se viziteaz n ordine toi vecinii nevizitai ai vrfului de start. Apoi se viziteaz n ordine toi vecinii nevizitai ai vecinilor vrfului de start i aa mai departe, pn la epuizarea tuturor vrfurilor accesibile din vrful de start. Observaii 1. Parcurgerea n lime are o proprietate remarcabil: fiecare vrf este vizitat pe cel mai scurt lan/drum, ncepnd din vrful de start. 2. Complexitatea timp a algoritmilor de parcurgere n adncime i n lime a unui graf depinde de modalitatea de reprezentare a acestuia. n cazul reprezentrii prin liste de adiacen, complexitatea este . n cazul reprezentrii prin matrice de adiacen este .

1 4 6 8 9

2 5 7

3 Parcurgerea n adncime

11

10

12

Parcurgerea n lime

Conexitate
Graful neorientat exist lan ntre x i y. Se numete component conex a grafului G un subgraf conex maximal cu aceast proprietate (adic, dac am mai aduga un vrf i toate muchile incidente cu acesta, subgraful obinut nu ar mai fi conex). se numete conex dac pentru oricare dou vrfuri x i y

Graful orientat

se numete tare conex dac pentru oricare dou vrfuri x i y

exist drum de la x la y i drum de la y la x. Se numete component tare-conex a grafului G un subgraf tare-conex maximal cu aceast proprietate (adic, dac am mai aduga un vrf i toate arcele incidente cu acesta, subgraful obinut nu ar mai fi tare-conex). Observaii 1. Orice graf neconex/ ne-tare-conex conine cel puin dou componente conexe. 2. Componentele conexe/tare-conexe ale unui graf sunt disjuncte. 3. Componentele conexe/tare-conexe conin o partiie a mulimii vrfurilor grafului. 4. Vrful izolat este o component conex/tare-conex a unui graf.

Descompunerea unui graf n componente conexe/tare-conexe Descompunerea unui graf n componente conexe/tare-conexe nseamn a determina toate componentele conexe/tare-conexe. A determina componenta conex/tare-conex a unui vrf x presupune a determina toate vrfurile accesibile din vrful x. Deci, este suficient s realizm o parcurgere a grafului (n lime sau adncime) cu vrful de start x. Pentru a descompune graful n componente conexe/tare-conexe, vom realiza cte o parcurgere pentru fiecare component conex (selectnd ca vrf de start primul vrf nevizitat).