160 likes | 264 Views
Gráfalgoritmus. Algoritmusok És Adatszerkezetek 2. Szélességi Bejárás. e. 2. c. S. 0. b. d. g. 1. 1. 3. a. 2. 2. 3. f. h. Györgyi Tamás – GYTNAAI.ELTE. 2007 Március 22. Algoritmusok És Adatszerkezetek 2. A szélességi bejárás az egyik legegyszerűbb gráfbejáró algoritmus,
E N D
Gráfalgoritmus Algoritmusok És Adatszerkezetek 2 Szélességi Bejárás e 2 c S 0 b d g 1 1 3 a 2 2 3 f h Györgyi Tamás – GYTNAAI.ELTE 2007 Március 22
Algoritmusok És Adatszerkezetek 2 A szélességi bejárás az egyik legegyszerűbb gráfbejáró algoritmus, melyre sok gráfalgoritmus is alapul. Például a Dijkstra legrövidebb utat meghatározó algoritmusa is a szélességi kereséshez hasonló gondolat menetet használja. A szélességi keresés elnevezés onnan kapta a nevét, hogy az algoritmus a már elért és a még felfedezetlen csúcsok közötti határvonalat egyenletesen terjeszti ki a határ teljes széltében. Az algoritmus egyaránt alkalmazható irányított és irányítatlan gráfok esetén. A szélességi bejárás feladata: Minden csúcsot egy s kezdőcsúcsból kiinduló legrövidebb úton érjünk el. A szélességi bejárás létrehoz egy szélességi fát, amely kezdetben csak a gyökeret tartalmazza.
Algoritmusok És Adatszerkezetek 2 Az algoritmus a bejárás pillanatnyi állapotát a csúcsok fehér szürke, illetve fekete színezésével tartja számon. Kezdetben minden csúcs szine fehér. for all u Є V\{s} szin[u]:=fehér; d[u]:=∞; π[u]:=Nil; Amikor először rátalálunk egy csúcsra, úgy a színe már megváltozik Szürkére. Egy fekete csúcs összes szomszédja már elért csúcs, tehát a szürke csúcsoknak lehetnek fehér szomszédjai, melyek alkotják az élért és még felfedezetlen csúcsok közötti határt. A szélességi bejárás eredménye függhet attól, hogy az egyes csúcsok szomszédjait milyen sorrendben vesszük figyelembe. Ez az jelenti hogy a szélességi változhat, azonban a d távolság értékek ugyanazok lesznek minden esetben.
Algoritmusok És Adatszerkezetek 2 Szélességi Bejárás (G, s) for all u Є V\{s} szin[u]:=fehér; d[u]:=∞; π[u]:=Nil; szin[u]:=szürke; d[s]:=0; π[u]:=Nil; üresSor(Q); sorba(Q,s); ┐üres-e(Q) sorból(Q,u); szin[u]:=fekete; for all v Є szomsz[u] szin[v] = fehér szin[v]:=szürke; π[v]:=u; d[v]:=d[u]+1; sorba(Q,v); skip
Algoritmusok És Adatszerkezetek 2 Az algoritmus hatékonysága: T(n) = Θ(n) + σ(e) = σ(n+e) ahol n a csúcsok száma e az élek száma A szélességi keresés futási ideje a szomszédsági listás ábrázolás méretének linearis függvénye. A két reprezentáció esetén a következők adódnak: 1 – Éllista esetén σ(n+e) . 2 – Csúcsmátrix esetén σ(n+n2) .
Algoritmusok És Adatszerkezetek 2 A szélességi bejárás működésének szemléltetése egy irányítatlan gráfon: - Így néz ki az irányítatlan gráfom: e c Sor Tartalma - Q b d g a f h
Algoritmusok És Adatszerkezetek 2 A szélességi bejárás működésének szemléltetése egy irányítatlan gráfon: 1. lépés: e ∞ c S Sor Tartalma - Q 0 c 0 b d g ∞ ∞ ∞ a ∞ ∞ ∞ f h
Algoritmusok És Adatszerkezetek 2 A szélességi bejárás működésének szemléltetése egy irányítatlan gráfon: 2. lépés: e ∞ c S Sor Tartalma - Q 0 d b 1 1 b d g 1 1 ∞ a ∞ ∞ ∞ f h
Algoritmusok És Adatszerkezetek 2 A szélességi bejárás működésének szemléltetése egy irányítatlan gráfon: 3. lépés: e 2 c S Sor Tartalma - Q 0 b e f 1 2 2 b d g 1 1 ∞ a 2 ∞ ∞ f h
Algoritmusok És Adatszerkezetek 2 A szélességi bejárás működésének szemléltetése egy irányítatlan gráfon: 4. lépés: e 2 c S Sor Tartalma - Q 0 e f a 2 2 2 b d g 1 1 ∞ a 2 2 ∞ f h
Algoritmusok És Adatszerkezetek 2 A szélességi bejárás működésének szemléltetése egy irányítatlan gráfon: 5. lépés: e 2 c S Sor Tartalma - Q 0 f a g 2 2 3 b d g 1 1 3 a 2 2 ∞ f h
Algoritmusok És Adatszerkezetek 2 A szélességi bejárás működésének szemléltetése egy irányítatlan gráfon: 6. lépés: e 2 c S Sor Tartalma - Q 0 a g h 2 3 3 b d g 1 1 3 a 2 2 3 f h
Algoritmusok És Adatszerkezetek 2 A szélességi bejárás működésének szemléltetése egy irányítatlan gráfon: 7. lépés: e 2 c S Sor Tartalma - Q 0 g h 3 3 b d g 1 1 3 a 2 2 3 f h
Algoritmusok És Adatszerkezetek 2 A szélességi bejárás működésének szemléltetése egy irányítatlan gráfon: 8. lépés: e 2 c S Sor Tartalma - Q 0 h 3 b d g 1 1 3 a 2 2 3 f h
Algoritmusok És Adatszerkezetek 2 A szélességi bejárás működésének szemléltetése egy irányítatlan gráfon: 9. lépés: e 2 c S Sor Tartalma - Q 0 b d g 1 1 3 a 2 2 3 f h
Gráfalgoritmus Algoritmusok És Adatszerkezetek 2 Szélességi Bejárás Vége Györgyi Tamás – GYTNAAI.ELTE 2007 Március 22