Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Szélességi bejárás A szélességi bejárással egy irányított vagy irányítás nélküli véges gráfot járhatunk be a kezdőcsúcstól való távolságuk növekvő sorrendjében.

Hasonló előadás


Az előadások a következő témára: "Szélességi bejárás A szélességi bejárással egy irányított vagy irányítás nélküli véges gráfot járhatunk be a kezdőcsúcstól való távolságuk növekvő sorrendjében."— Előadás másolata:

1 Szélességi bejárás A szélességi bejárással egy irányított vagy irányítás nélküli véges gráfot járhatunk be a kezdőcsúcstól való távolságuk növekvő sorrendjében. Először lássuk az algoritmus elvi hátterét, a következő diákon pedig grafikusan egy példán keresztül az algoritmus működését!  Először elérjük a kezdőcsúcsot.  Majd elérjük a kezdőcsúcstól 1 távolságra lévő csúcsokat (a kezdőcsúcs szomszédait)  Ezután elérjük a kezdőponttól 2 távolságra lévő csúcsokat (a kezdőcsúcs szomszédainak a szomszédait), és így tovább.  Ha egy csúcsot már bejártunk, akkor a későbbi odajutásoktól el kell tekinteni A következő diára lépéshez kattints az egérrel

2 Az algoritmus elve* Az elérési sorrend biztosítása Az elérési sorrendnél azt kell figyelembe venni, hogy amíg az összes kezdőcsúcstól k távolságra lévő csúcsot ki nem írtuk, addig nem szabad k- nál kisebb vagy nagyobb távolságú csúcsokat kiírni, sőt mire egy k távolságú csúcsot kiírunk, már az összes k-nál kisebb távolságú csúcsot ki kellett írnunk. Egy k+1 távolságú csúcs biztosan egy k távolságú csúcs szomszédja (az egyik legrövidebb úton a megelőző csúcs biztosan k távolságra van a kezdőcsúcstól).A k+1 távolságú csúcsokat a k távolságú csúcsok szomszédai között kell keresni (nem biztos, hogy az összes szomszéd k+1 távolságú, lehet, hogy egy rövidebb úton már elértük.). Használjunk sor adattípust és biztosítsuk azt az invariáns tulajdonságot, hogy a sorba csak k vagy k+1 távolságú csúcsok lehetnek az elérésük sorrendjében, amely egyben az s-től való távolságuk szerinti (növekedő) sorrendnek is megfelel. Ameddig ki nem ürül a sor, vegyünk ki az első elemet, írjuk ki és terjesszük ki, azaz a még "meg nem látogatott" szomszédait érjük el és rakjuk be a sorba. (*forrás: jegyzet) A következő diára lépéshez kattints az egérrel

3 Előkészületek Először lássuk a gráfot, amelyen reprezentáljuk a szélességi bejárást, majd a lap alján a jelölésekhez tartozó jelmagyarázatot. 1 (-1, -1) 2 (-1, -1)3 (-1, -1)4 (-1, -1) 5 (-1, -1) 6 (-1, -1) 7 (-1, -1)8 (-1, -1)9 (-1, -1) A zárójelben található számpár jelentése: az első szám megadja, hogy az adott csúcsot hányadikként jártuk be, a második pedig a kezdőcsúcstól való távolságot jelenti (kezdetben mindkettő -1). A szimuláció elkezdéséhez kattints az egérrel

4 Grafikus megjelenítés Az algoritmus indításakor a következő állásban vagyunk: 1 (-1, -1) 2 (-1, -1)3 (-1, -1)4 (-1, -1) 5 (-1, -1) 6 (-1, -1) 7 (-1, -1)8 (-1, -1)9 (-1, -1) Ha egy csúcsot nem értünk még el, legyen fehér színű Ha egy csúcsot elérünk és bedobjuk a sorba, legyen szürke. Ha egy csúcsot elértünk és kiterjesztettük (elértük a szomszédait), legyen sárga. A következő lépéshez kattints az egérrel

5 Grafikus megjelenítés Kezdetben minden csúcs fehér, kivéve az 1-es csúcsot, amely szürke: 1 (1, 0) 2 (-1, -1)3 (-1, -1)4 (-1, -1) 5 (-1, -1) 6 (-1, -1) 7 (-1, -1)8 (-1, -1)9 (-1, -1) A következő lépéshez kattints az egérrel A sorban is csak az 1-es csúcs szerepel. Az első lépésben kivesszük az 1-es csúcsot a sorból, majd kiterjesztjük, tehát elérjük a még fehér szomszédait (2, 3, 4).

6 Grafikus megjelenítés Az egyes csúcs kiterjesztése: 1 (1, 0) 2 (2, 1)3 (3, 1)4 (4, 1) 5 (-1, -1) 6 (-1, -1) 7 (-1, -1)8 (-1, -1)9 (-1, -1) A következő lépéshez kattints az egérrel Ezen csúcsokat szürkére színezzük és bedobjuk őket a sorba. Az egyes csúcsot kiterjesztettük, tehát készen vagyunk vele, sárgára színezhetjük. A sorba a szürke csúcsok szerepelnek, az elérési szám szerint rendezve!

7 Grafikus megjelenítés A kettes csúcs kiterjesztése: 1 (1, 0) 2 (2, 1)3 (3, 1)4 (4, 1) 5 (5, 2) 6 (6, 2) 7 (-1, -1)8 (-1, -1)9 (-1, -1) A következő lépéshez kattints az egérrel A kettes csúcsot terjesztjük ki eztán. Ezzel is készen vagyunk, tehát sárgára színezhetjük. A két szomszédját (5, 6) szürkére színeztük. A sorba a szürke csúcsok szerepelnek, az elérési szám szerint rendezve!

8 Grafikus megjelenítés A hármas csúcs kiterjesztésekor egy észrevétel: 1 (1, 0) 2 (2, 1)3 (3, 1)4 (4, 1) 5 (5, 2) 6 (6, 2) 7 (-1, -1)8 (-1, -1)9 (-1, -1) A következő lépéshez kattints az egérrel A hármas csúcs kiterjesztésekor nem kerül újabb csúcs a sorba, mivel a 3-as csúcs minden szomszédját elértük már. Tehát színezzük a 3-as csúcsot sárgára.

9 Grafikus megjelenítés A négyes csúcs kiterjesztése a 9-es csúcs szürkére színezése 1 (1, 0) 2 (2, 1)3 (3, 1)4 (4, 1) 5 (5, 2) 6 (6, 2) 7 (-1, -1)8 (-1, -1)9 (7, 2) A következő lépéshez kattints az egérrel A négyes csúcsot terjesztjük ki, hiszen ez a sorban a következő elem. Színezzük őt is sárgára, a szomszéd csúcsot (9) pedig szürkére. Figyeljük meg a 9-es csúcsot: ő a 7. bejárt csúcs és kettő hosszú úttal elérhető a kezdőcsúcsból.

10 Grafikus megjelenítés 5-ös és 6-os csúcs kiterjesztése 1 (1, 0) 2 (2, 1)3 (3, 1)4 (4, 1) 5 (5, 2) 6 (6, 2) 7 (8, 3)8 (9, 3)9 (7, 2) A következő lépéshez kattints az egérrel Az 5-ös és 6-os csúcs kiterjesztése hasonlóképpen történik. Színezzük őket sárgára, a szomszédaikat pedig szürkére  ezen lépés után nem marad több fehér színű csúcs. Figyeljük meg a 7-es és 8-as csúcs elérési száma miként változik

11 Grafikus megjelenítés Az algoritmus vége, majd a végeredmény kiírása: 1 (1, 0) 2 (2, 1)3 (3, 1)4 (4, 1) 5 (5, 2) 6 (6, 2) 7 (8, 3)8 (9, 3)9 (7, 2) A végeredmény kiírásához kattints az egérrel Mivel már nincsen fehér csúcs, így most már csupán a sorból kivesszük a csúcsokat és sárgára színezzük őket. Ezzel az algoritmus futása véget ért. A záró dián látható a végeredmény.

12 Végeredmény 1 (1, 0) 2 (2, 1)3 (3, 1)4 (4, 1) 5 (5, 2) 6 (6, 2) 7 (8, 3)8 (9, 3)9 (7, 2) A bemutatóból való kilépéshez kattints az egérrel. A algoritmus által megkaptuk a kezdő csúcsból a többi csúcsba való legrövidebb utat. A csúcsok, és a berajzolt élek alkotta részgráfot jobban megnézve látható, hogy egy kezdőcsúcs gyökerű fát alkot, amely mentén minden csúcs a legrövidebb úton érhető el. Készítette: Hardi Péter


Letölteni ppt "Szélességi bejárás A szélességi bejárással egy irányított vagy irányítás nélküli véges gráfot járhatunk be a kezdőcsúcstól való távolságuk növekvő sorrendjében."

Hasonló előadás


Google Hirdetések