PARCURGERI DE GRAFURI Cmrau AncaMihaela Flint AndaAlexandra PARCURGERI
- Slides: 24
PARCURGERI DE GRAFURI Cămăraşu Anca-Mihaela Flintă Anda-Alexandra
PARCURGERI DE GRAFURI Parcurgerea unui digraf G=(N, A) consta in generarea multimii W a nodurilor y accesibile dintrun nod sursa s dat. Spunem ca nodul y este accesibil din nodul s in digraful G daca exista drum de la nodul sursa s la nodul y. Evident W ⊆ N. N= multime de elemente numite noduri sau varfuri N={1, A= familie de elemente numite arce A={1, …. . , n} …. , m} W=multimea nodurilor vizitate si analizate
PARCURGERI DE GRAFURI Fiecare iteratie a executiei oricarui algoritm de parcurgere stabileste pentru fiecare nod apartenenta la una din urmatoarele trei stari: 1. Nevizitat 2 1 3 4 6 5 U = multimea nodurilor nevizitate U = {2, 3, 4, 5, 6}
� 2. Vizitat si neanalizat, adica un nod vizitat ai carui succesori au fost partial vizitati; 2 3 1 6 5 4 Arc admisibil V = multimea nodurilor vizitate si neanalizate � V = {1, 2} � Daca nodul x este vizitat si neanalizat, exista arc (x, y) si nodul y este nevizitat, atunci se poate vizita nodul y. In acest caz se spune ca arcul (x, y) este arc admisibil si daca nodul y este vizitat explorand arcul (x, y) se spune ca nodul x este predecesorul parcurgere al nodului y. �
� 3. Vizitat si analizat, adica un nod vizitat ai carui succesori au fost ın totalitate vizitati 2 1 3 4 6 �W 5 = multimea nodurilor vizitate si analizate � W = {1}
Algoritmii pentru parcurgerea unui digraf: v Algoritmul generic v Algoritmul de parcurgere in latime [BF] v Algoritmul de parcurgere in adancime [DF]. � Acesti algoritmi utilizeaza urmatoarele notatii comune: v U , V, W definite anterior; v p tabloul predecesor, care este unidimensional cu n elemente �
� 1. Ce a) b) c) � 2. Ce a) b) c) � 3. Ce a) b) c) reprezinta notatia s? Nod accesibil Nod sursa Nod analizat este un nod vizitat si neanalizat? Nod vizitat ai carui predecesori au fost partial vizitati Nod vizitat ai carui succesori nu au fost vizitati Nod vizitat ai carui succesori au fost partial vizitati reprezinta multimea W? Multimea nodurilor vizitate si analizate Multimea nodurilor nevizitate Multimea nodurilor vizitate si neanalizate
ALGORITMUL GENERIC DE PARCURGERE Pe langa notatiile prezentate anterior introducem notiunea de tablou de ordine notat cu o. Acest tablou este unidimensional si are n elemente.
ALGORITMUL PARCURGERII GENERICE PROGRAM PG; BEGIN U = N − {s}; V = {s}; W =ø; FOR toti y Є N DO p(y) = 0; k = 1; o(s) = 1; FOR toti y Є U DO o(y) = ∞; WHILE V ≠ ø DO BEGIN se selecteaza un nod x din V ; IF exista arc(x, y) Є A si y Є U THEN BEGIN U = U − {y}; V = V ∪ {y}; p(y) = x; k = k + 1; o(y) = k ELSE BEGIN V = V − {x}; W = W ∪ {x}; END; END.
ALGORITMUL PARCURGERII GENERICE Teorema 1: � Algoritmul PG are complexitatea O (m). Definitia 1: � Un digraf G=(N, A) se numeste arborescenta cu radacina s daca este fara cicluri, ρ-(s)=0 si ρ-(x)=1 pentru toate nodurile x din N cu x ≠ s. Definitia 2: � Subgraful Gp = (Np , Ap) cu Np ={y∈ N | p(y) ≠ 0} ∪{s}p si = Teorema 2: � Algoritmul PG determina elementele tabloului p astfel incat subgraful predecesor Gp = (Np , Ap) este o arborescenta parcurgere generica.
PROCEDURA DRUM � Drumul de la nodul sursa s la un nod oarecare y se determina folosind vectorul predecesor p, cu urmatoarea procedura: PROCEDURA DRUM(G, s, y); BEGIN IF y=s THEN se tipareste s; ELSE IF p(y)=0 THEN se tipareste “nu exista drum de la s la y”; ELSE BEGIN drum(s, p(y), p) se tipareste y; END.
EXEMPLUL 1 Aplicam algoritmul generic de parcurgere pe digraful urmator: 2 4 3 5 1
DUPA INITIALIZARI 2 4 3 5 1 s=1 U={2, 3, 4, 5} V={1} W= ø p =(0, 0, 0) k=1 o=(1, ∞, ∞)
ITERATIA 1 2 4 3 5 1 Se selecteaza x=1(Nodul 1 fiind singurul nod din V) Avem (1, 2)∈ A, 2∈ U, deci: U={3, 4, 5} k=2 V={1, 2} o=(1, 2, ∞, ∞, ∞) p =(0, 1, 0, 0, 0)
ITERATIA 2 2 4 3 5 1 Nodul x poate fi oricare dintre nodurile V. Pp. ca a fost ales x=1 Deoarece (1, 3)∈ A, 3∈ U, deci: U={4, 5} k=3 V={1, 2, 3} o=(1, 2, 3, ∞, ∞) p =(0, 1, 1, 0, 0)
ITERATIA 3 2 4 3 5 1 Nodul x poate fi oricare dintre nodurile V. Daca se selecteaza x=3 Deoarece (3, 5)∈ A, 5∈ U, deci: U={4} k=4 V={1, 2, 3, 5} o=(1, 2, 3, ∞, 4) p =(0, 1, 1, 0, 3)
ITERATIA 4 2 4 3 5 1 Presupunem ca a fost selectat nodul x=1 din V. Deoarece nu exista arc de la nodul 1 la un nod nevizitat, inseamna ca nodul 1 este vizitat si analizat, deci: V={2, 3, 5} W={1}
ITERATIA 5 2 4 3 5 1 Daca se selecteaza nodul x=3 din V, atunci: V={2, 5} W={1, 3}
ITERATIA 6 2 4 3 5 1 Daca se selecteaza nodul x=2: Deoarece (2, 4)∈ A, 4∈ U, deci: U= ø k=5 V={2, 4, 5} o=(1, 2, 3, 5, 4) p =(0, 1, 1, 2, 3)
ITERATIA 7 2 4 3 5 1 Consideram ca se selecteaza nodul x=2. Deoarece nu mai sunt noduri nevizitate rezulta ca: V={4, 5} W={1, 2, 3}
ITERATIA 8 2 4 3 5 1 Presupunem ca se selecteaza nodul x=5 din V. Atunci: V={4} W={1, 2, 3, 5}
ITERATIA 9 2 4 3 5 1 Se selecteaza nodul x=4 din V. Obtinem: V= ø W={1, 2, 3, 4, 5} Si algoritmul se termina.
ARBORESCENTA PG 2 4 3 5 1 La terminarea parcurgerii, p=(0, 1, 1, 2, 3) o=(1, 2, 3, 4, 5) si W=N, ceea ce inseamna ca toate nodurile digrafului sunt accesibile din nodul sursa s=1. Cu ajutorul vectorului predecesor p putem determina arborescenta parcurgere generica.
Care a) b) c) este complexitatea algoritmului PG? O(m lg m) O (m) O(m 2)
- Postordine arbori
- White flint sector plan
- Flint rotary club
- Flint wellbeing centre
- The basic building block of the silicate minerals
- Heart murmurs
- Um flint rec center
- Who is your favourite heroine
- Hardened piece of steel
- Richard flint england golf
- Austin flint murmur
- Pmi flint
- It consulting flint
- Austin flint murmur
- Flint hills regional council
- Tlc pediatrics flint
- Chapter 13 flint
- Duke kriterleri
- Printable rfid tags cost
- Flint trial
- Grafuri orientate formule
- Graf complet formula
- Multimi disjuncte