170 likes | 295 Vues
Készítette : Mester Tamás METRABI.ELTE. Gráf szélességi bejárása. Általános leírás a bejárásról. Adott egy G irányított vagy irányítás nélküli, véges gráf . Az eljárás célja a G gráf összes csúcsának bejárása a kezdőcsúcstól való távolságuk szerint növekvő sorrendben .
E N D
Készítette: MesterTamás METRABI.ELTE Gráfszélességibejárása
Általánosleírás a bejárásról • Adott egy G irányított vagy irányítás nélküli, véges gráf.Azeljáráscélja a G gráfösszescsúcsánakbejárása a kezdőcsúcstólvalótávolságukszerintnövekvősorrendben. • A bejárássorán a csúcsokatsoradatszerkezetsegítségéveljárjuk be, amibetesszük a csúcsokat, amiazteredményezi, hogy a bejártcsúcsoksorrendjeszintfolytonoslesz. (Azaz a legközelebbicsúcs(ok) lesz(nek) a bejáráselején, majdígytovább a legtávolabbiig.) • Ha kétcsúcsazonostávolságra van a szülőcsúcstólaz,hogymilyensorrendbetesszük a sorbanemszámít.
Azalgoritmus ,,elve” • 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 s-től 2 távolságra lévő csúcsokat (a kezdőcsúcs szomszédainakaszomszédait), és így tovább. • Ha egy csúcsot már bejártunk, akkor a későbbi odajutásoktól el kell tekinteni.
Azalgoritmus ADS szinten (csúcsokszínezése) • Amikor egy csúcsot még nem értünk el legyen fehér színű. Induláskor a kezdőcsúcskivételével minden csúcs ilyen. (u ∉Q és u ∉ ElértCsúcsok) • Amikor egy csúcsot elérünk és bedobjuk a sorba, színezzük szürkére. A kezdőcsúcsinduláskor ilyen.(u ∈Q és u ∈ ElértCsúcsok) • Amikor egy csúcsot kivettünk a sorból és kiterjesztet-tük(elértük a szomszédait), aszínelegyen fekete. (u ∉Q és u ∈ ElértCsúcsok)
Szemléletesen A S= • 1.Lépés : • Induljunk el a kezdőcsúcsból (s) éstegyük be a sorba (mindegymilyensorrendben) a hozzátartozó (gyerek) csúcsokat. • Tegyük be a d tömbe (feldolgozottcsúcsoktávolsága a kezdőcsúcstól(rendre)) a megfelelőtávolságot. • Végültegyük be a bejáráshozhasználtsorbaa csúcsból(sorból kivett csúcsból)elérhető, még FELDOLGOZATLAN csúcsot. Ezt a háromlépéstcsináljukegészenaddig, amíg a sorkinemürül. D C B E F G H I
1. Lépésután A d: S= sz: sor: D C B E F G bejárt kulcsértékek: H I
2.Lépés után A d: S= sz: sor: D C B E F G bejárt kulcsértékek: H I
3.Lépés után A d: S= sz: sor: D C B E F G bejárt kulcsértékek: H I
4.Lépés után A d: S= sz: sor: D C B E F G bejárt kulcsértékek: H I
5.Lépés után A d: S= sz: sor: D C B E F G bejárt kulcsértékek: H I
6.Lépés után A d: S= sz: sor: D C B E F G bejárt kulcsértékek: H I
7.Lépés után A d: S= sz: sor: D C B E F G bejárt kulcsértékek: H I
8.Lépés után A d: S= sz: sor: D C B E F G bejárt kulcsértékek: H I
9.Lépés után A d: S= sz: sor: D C B E F G bejárt kulcsértékek: H I
A bejárás végeredménye • A bejárás végeredményeként megkaptuk, a gráf szélességi bejárásának feszítőfáját. (vastagon szedett nyilak mentén) • Ez a feszítőfa nem egyértelmű éppen az miatt, hogy a bejárás sorrendje(,,iránya”) nem előre meghatározott. • Valamint megkaptuk a csúcsok távolságát a kezdőcsúcstól egy tömbben, a szülőket egy másik tömbben. Ezek az értékek rendre párosíthatók a bejárás eredményét tartalmazó tömbbel.