Download - Parcurgerea Grafurilor Neorientate
![Page 1: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/1.jpg)
PARCURGEREA PARCURGEREA GRAFURILOR GRAFURILOR NEORIENTATENEORIENTATE
![Page 2: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/2.jpg)
Cum putem folosi parcurgerea garfurilor in viata de zi cu zi?
![Page 3: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/3.jpg)
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
![Page 4: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/4.jpg)
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.
![Page 5: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/5.jpg)
ObiectiveObiective•Noţiuni teoretice despre parcurgeri
(semnificaţie, mod de realizare, (semnificaţie, mod de realizare, scop);scop);
•Metode de parcurgere;;•Parcurgerea în “lăţime” (prezentarea (prezentarea
metodei, exemple);metodei, exemple);•Algoritmul BF.
![Page 6: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/6.jpg)
ParcurgereParcurgere (noţiuni teoretice)(noţiuni teoretice)
• Semnificaţie:Semnificaţie: examinarea în mod sistematic a nodurilor examinarea în mod sistematic a nodurilor unui graf;unui graf;
• Realizare:Realizare: se pleacă dintr-un nod dat se pleacă dintr-un nod dat ii, astfel încât fiecare , astfel încât fiecare nod accesibil din nod accesibil din ii pe muchii pe muchii incidenteincidente două câte două, să fie două câte două, să fie atins o singură dată.atins o singură dată.
• Alte expresii similareAlte expresii similare:: vizitare, traversare. vizitare, traversare.• Scop:Scop:
prelucrării informaţiilor asociate nodurilor;prelucrării informaţiilor asociate nodurilor; determinarea aranjării lineare a nodurilor în vederea determinarea aranjării lineare a nodurilor în vederea
trecerii de la unul la altultrecerii de la unul la altul• Observaţii: Observaţii:
Presupunem că mulţimea vârfurilor este X=Presupunem că mulţimea vârfurilor este X={1, 2, … , n};{1, 2, … , n}; Presupunem că ordinea vârfurilor este dată de relaţia „<”, Presupunem că ordinea vârfurilor este dată de relaţia „<”,
existentă în mulţimea numerelor naturale.existentă în mulţimea numerelor naturale.
![Page 7: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/7.jpg)
Metode de parcurgereMetode de parcurgere
• Parcurgere în Parcurgere în „„lăţimelăţime”” ( (Breadth First - BF))
• Parcurgerea în Parcurgerea în „adâncime„adâncime” ” ((Depth First Depth First - - DFDF))
![Page 8: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/8.jpg)
Parcurgerea în Parcurgerea în „„lăţimelăţime”” Breadth FirstBreadth First - - BFBF
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:
2
1
5
4
3
1,2,3,4,5.
![Page 9: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/9.jpg)
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:
2
1
5
4
33.4,1,2,5,
5, 3.4,1,2,
![Page 10: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/10.jpg)
Algoritmul BF - implementareUses 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 dobeginvizitat[i]:=0;
For j:=1 to n do a[I,j]:=0;End;End;Procedure complet;BeginFor i:=1 to m doBeginReadln(x1);readln(x2);A[x1,x2]:=1; a[x2,x1]:=1;End;End;Procedure prim_vf;BeginV[1]:=I;P:=1; u:=1;Vizitat[i]:=1;End;
procedure prelucrare;BeginK:=v[p];For j:=1 to n do
if (a[k,j]=1) and(vizitat[j]=0) thenbeginu:-u+1;v[u]:=j;
Vizitat[j]:=1;End;P:=p+1;End;Procedure scrie;BeginFor j:=2 to u do write(v[j],’ ‘);End;
BeginClrscr;Readln(n0;readln(m);Init;Complet;Readln(i);Prim_vf;While p<=u do prelucrare;Scrie;End.
![Page 11: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/11.jpg)
Variabilele utilizate în programul Variabilele utilizate în programul PASCALPASCAL
aa - - matricea de adiacenţă asociată grafului;matricea de adiacenţă asociată grafului;vv --vector în care se trec în ordine nodurile”parcursevector în care se trec în ordine nodurile”parcurse”;”;nn - - numărul de noduri din graf;numărul de noduri din graf;mm - - numărul de muchii din grafnumărul de muchii din graf;;xx1,1,xx22 - - extremităţile muchiilor;extremităţile muchiilor;i,ji,j - - contori;contori;pp – – nodul din care se „pleacă”;nodul din care se „pleacă”;uu – – ultimul element al coziiultimul element al cozii;;kk – –vvâârful rful îîn lucrun lucru;;
![Page 12: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/12.jpg)
Vectorul trecut care are n componente este definit astfel:
}n..., ,2,1{j
contrar cazîn 0,
atfost vizit a j nodul dacă 1,[j]trecut
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).
![Page 13: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/13.jpg)
1
2
3
4 5
6
7
89
10
11
12
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.
![Page 14: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/14.jpg)
Informatica este un joc al Informatica este un joc al mințiiminții
![Page 15: Parcurgerea Grafurilor Neorientate](https://reader035.vdocuments.pub/reader035/viewer/2022081417/577c797a1a28abe05492c7c3/html5/thumbnails/15.jpg)
prof. prof. Mirzacu Marius EmilianMirzacu Marius EmilianColegiul Național Colegiul Național ““Elena CuzaElena Cuza””
BucureBucureșștiti
Sfârșit