1 / 15

PARCURGEREA GRAFURILOR NEORIENTATE

PARCURGEREA GRAFURILOR NEORIENTATE. Cum putem folosi parcurgerea garfurilor in viata de zi cu zi?.

Download Presentation

PARCURGEREA GRAFURILOR NEORIENTATE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PARCURGEREA GRAFURILOR NEORIENTATE

  2. Cum putem folosi parcurgerea garfurilor in viata de zi cu zi?

  3. Sa presupum ca dorim sa ajungem la un prieten care se afla la cateva sute de kilometri distanta si dorim sa ajungem la el foarte repede, evident o sa trebuiasca sa mergem pe drumul cel mai scurt :D

  4. Pentru aceasta vom considera orasele ca fiind nodurile grafurlui, iar drumurile dintre ele muchiile si vom determina toate drumurile intre cele 2 orase si il vom alege pe cel mai scurt. Aceasta parcurgere o vom realizea folosind un algoritm de parcurgere specific grafurilor.

  5. Obiective • Noţiuniteoretice despre parcurgeri (semnificaţie, mod de realizare, scop); • Metode de parcurgere; • Parcurgerea în “lăţime” (prezentarea metodei, exemple); • Algoritmul BF. Sfârșit

  6. Parcurgere(noţiuni teoretice) • Semnificaţie: examinarea în mod sistematic a nodurilor unui graf; • Realizare: se pleacă dintr-un nod dat i, astfel încât fiecare nod accesibil din i pe muchii incidente două câte două, să fie atins o singură dată. • Alte expresii similare: vizitare, traversare. • Scop: • prelucrării informaţiilor asociate nodurilor; • determinarea aranjării lineare a nodurilor în vederea trecerii de la unul la altul • Observaţii: • Presupunem că mulţimea vârfurilor este X={1, 2, … , n}; • Presupunem că ordinea vârfurilor este dată de relaţia „<”, existentă în mulţimea numerelor naturale.

  7. Metode de parcurgere • Parcurgere în „lăţime” (Breadth First - BF) • Parcurgerea în „adâncime” (Depth First - DF)

  8. Parcurgerea în „lăţime”Breadth First - BF Se vizitează vârful iniţial x, apoi vecinii acestuia, apoi vecinii nevizitaţi ai acestora, şi aşa mai departe. Exemplu: Pentru graful din figura următoare ordinea de parcurgere a nodurilor cu metoda BF, când se pleacă din vârful 1 este următoarea: 1 1, 2, 3, 4, 5. 2 3 4 5

  9. 1 Pentru acelaşi graf, dacă se pleacă din nodul iniţial 5, ordinea de parcurgere “în lăţime” este următoarea: Dacă se pleacă din nodul 2, lista vârfurilor obţinută în urma parcurgerii BF este următoarea: 5, 2, 1, 4, 3. 2 3 4 2, 1, 4, 5, 3. 5

  10. Uses crt: Var vizitat:array[1..20] of 0..1; A:array[1..20,1..20] of integer; V:array[1..20] of integer; N,m,p,u,I,k,x1,x2:integer; Procedure init; Begin for i:= 1 to n do begin vizitat[i]:=0; For j:=1 to n do a[I,j]:=0; End; End; Procedure complet; Begin For i:=1 to m do Begin Readln(x1);readln(x2); A[x1,x2]:=1; a[x2,x1]:=1; End; End; Procedure prim_vf; Begin V[1]:=I; P:=1; u:=1; Vizitat[i]:=1; End; procedure prelucrare; Begin K:=v[p]; For j:=1 to n do if (a[k,j]=1) and(vizitat[j]=0) then begin u:-u+1; v[u]:=j; Vizitat[j]:=1; End; P:=p+1; End; Procedure scrie; Begin For j:=2 to u do write(v[j],’ ‘); End; Begin Clrscr; Readln(n0;readln(m); Init; Complet; Readln(i); Prim_vf; While p<=u do prelucrare; Scrie; End. Algoritmul BF - implementare

  11. Variabilele utilizate în programul PASCAL a - matricea de adiacenţă asociată grafului; v-vector în care se trec în ordine nodurile”parcurse”; n - numărul de noduri din graf; m - numărul de muchii din graf; x1,x2- extremităţile muchiilor; i,j - contori; p– nodul din care se „pleacă”; u – ultimul element al cozii; k –vârfulîn lucru;

  12. Vectorul trecut care are n componente este definit astfel: Deoarece algoritmul conţine două cicluri imbricate: unul while (care se execută de cel mult n-1 ori) şi unul for (care se execută de n ori) rezultă că ordinul de complexitate al algoritmului este O(n2).

  13. 2 4 5 10 3 9 8 1 7 11 12 6 Aplicaţie: Fie graful din figura de mai jos. Se cere să se realizeze parcurgerea în “lăţime” pornind pe rând din nodurile: 1, 12, 4, 7, 8, 5 şi 10.

  14. Informatica este un joc al minții

  15. prof. Mirzacu Marius EmilianColegiul Național “Elena Cuza”București Sfârșit

More Related