1 / 57

Mélységi bejárás

Mélységi bejárás. Az algoritmus elve:

nonnie
Download Presentation

Mélységi bejárás

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. Mélységi bejárás Az algoritmus elve: Egy kezdőpontból kiindulva addig megyünk egy él mentén, ameddig el nem jutunk egy olyan csúcsba, amelyből már nem tudunk tovább menni, mivel nincs már meg nem látogatott szomszédja. Ekkor visszamegyünk az út utolsó előtti csúcsához, és onnan próbálunk egy másik él mentén tovább menni. Ha ezen az ágon is minden csúcsot már bejártunk, ismét visszamegyünk egy csúcsot, és így tovább.

  2. Stuktogramok

  3. A két ábrán látható ugyanozon gráf különböző elrendezésben. Az alsó ábrán láthatjuk a gráfot az inicializáló lépés lefutását követően. • Egy csúcs legyen fehér, ha még nem jutottunk el hozzá a bejárás során • Egy csúcs legyen szürke, ha a bejárás során már elértük a csúcsot, de még nem állíthatjuk, hogy az illető csúcsból elérhető összes csúcsot meglátogattuk • A csúcs legyen fekete, ha azt mondhatjuk, hogy az illető csúcsból elérhető összes csúcsot már meglátogattuk és és visszamehetünk (vagy már visszamentünk) az idevezető út megelőző csúcsára. A bejárás során tároljuk el, hogy egy csúcsot hányadikként értünk el, azaz hányadikként lett szürke és tároljuk el, hogy hányadikként fejeztük be a csúcs, és a belőle elérhető csúcsok bejárását, azaz a csúcs hányadikként lett fekete. Az említett számokat nevezzük mélységi (bal alsó), illetve befejezési (jobb alsó) számnak és az ábrákon a csúcsok címkéi alatt fogjuk megjeleníteni.

  4. Az 1. csúcsot érjük el elsőként, erre hívjuk meg az MB(u) eljárást

  5. Ezen a dián az MB(u) eljárás inicializáló lépése utáni állapotot látjuk. A kezdőcsúcsot érjük el elsőként, tehát ezt színezzük szürkére és a mélységi számot 1-re állítjuk. Ki: 1

  6. Az 1-es csúcsból két él vezet ki. Ezen két él mentén indulhatunk ki, melyek a Szomszéd(1) minimum prioritásos sorban vannak elhelyezve. Ez az adatszerkezet biztosítja, hogy a 4-es csúcsot érjük el másodikként. (Hiszen csak a legelső vagyis a legkisebb kulcsú elemet vehetjük ki a sorból). Szomszéd(1) = [4 , 5] MB(1) Ki: 1

  7. Következő lépésben megvizsgáljuk a 4. csúcs színét. Ha fehér, akkor az igaz ág hajtódik végre, melynek során a 4. csúcs szülőpointerét ráállítjuk az 1-es csúcsra és rekurzívan meghívódik az MB(u) eljárás a 4. csúcsra. A rekurzív hívás szerkezetét jobb oldalon láthatjuk. MB(1) MB(4) Ki: 1

  8. Hasonlóan mint az 1-es csúcsnál, az MB(u) eljárás inicializáló rész lefutása utáni állapotot látjuk: a 4-es csúcs szürke, értékét kiírattuk , a mélységi számot megnöveltük eggyel és feljegyeztük értékét a 4-es csúcshoz. Szomszéd(4) = [7] MB(1) MB(4) Ki: 1, 4

  9. Megvizsgáljuk a 4-es csúcshoz tartozó szomszédsági sort. Jelenleg egy eleme van (7), melynek színe fehér ezért ismételten az igaz ág hajtódik végre. Itt a 7 csúcs szülő pointerét ráállítjuk a 4-es csúcsra és rekurzívan meghívjuk az MB(u) eljárást a 7. csúcsra. Szomszéd(4) = [7] MB(1) MB(4) MB(7)

  10. MB(7) eljárás inicializálás utáni állapot. Szomszéd(7) = [4 , 5 , 10] MB(1) MB(4) MB(7) Ki: 1, 4, 7

  11. Szomszéd(7) első eleme szürke csúcsra mutat ezért továbblépünk a következő elemre. Szomszéd(7) = [4 , 5 , 10] MB(1) MB(4) MB(7) Ki: 1, 4, 7

  12. Szomszéd(7) következő eleme az 5 csúcsra mutat. MB(5) fv-t, rekurzívan meghívjuk. Szomszéd(7) = [4 , 5 , 10] MB(1) MB(4) MB(7) MB(5) Ki: 1, 4, 7

  13. MB(1) MB(4) MB(7) MB(5) Ki: 1, 4, 7, 5

  14. Szomszéd(5) = [3] MB(1) MB(4) MB(7) MB(5) MB(3) Ki: 1, 4, 7, 5

  15. MB(1) MB(4) MB(7) MB(5) MB(3) Ki: 1, 4, 7, 5, 3

  16. Szomszéd(3) = [2,6] MB(1) MB(4) MB(7) MB(5) MB(3) MB(2) Ki: 1, 4, 7, 5, 3

  17. MB(1) MB(4) MB(7) MB(5) MB(3) MB(2) Ki: 1, 4, 7, 5, 3, 2

  18. Szomszéd(2) = [1] MB(1) MB(4) MB(7) MB(5) MB(3) MB(2) Ki: 1, 4, 7, 5, 3, 2

  19. Szomszéd(2) = [1] MB(1) MB(4) MB(7) MB(5) MB(3) MB(2) Ki: 1, 4, 7, 5, 3, 2

  20. Szomszéd(3) = [6] MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) Ki: 1, 4, 7, 5, 3, 2

  21. MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) Ki: 1, 4, 7, 5, 3, 2, 6

  22. Szomszéd(6) = [8] MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) Ki: 1, 4, 7, 5, 3, 2, 6

  23. MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) Ki: 1, 4, 7, 5, 3, 2, 6, 8

  24. Szomszéd(8) = [11, 12] MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) MB(11) Ki: 1, 4, 7, 5, 3, 2, 6, 8

  25. MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) MB(11) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11

  26. Szomszéd(11) = [12] MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) MB(11) MB(12) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11

  27. MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) MB(11) MB(12) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12

  28. Szomszéd(12) = [9, 11] MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) MB(11) MB(12) MB(9) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12

  29. MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) MB(11) MB(12) MB(9) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  30. Szomszéd(9) = [8, 12] MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) MB(11) MB(12) MB(9) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  31. Szomszéd(9) = [8, 12] MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) MB(11) MB(12) MB(9) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  32. MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) MB(11) MB(12) MB(9) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  33. Szomszéd(12) = [9, 11] MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) MB(11) MB(12) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  34. MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) MB(11) MB(12) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  35. Szomszéd(11) = [12] MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) MB(11) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  36. MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) MB(11) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  37. Szomszéd(8) = [11, 12] MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  38. MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  39. Szomszéd(6) = [8] MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  40. MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  41. Szomszéd(3) = [2,6] MB(1) MB(4) MB(7) MB(5) MB(3) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  42. MB(1) MB(4) MB(7) MB(5) MB(3) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  43. Szomszéd(5) = [3] MB(1) MB(4) MB(7) MB(5) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  44. MB(1) MB(4) MB(7) MB(5) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  45. Szomszéd(7) = [4 , 5 , 10] MB(1) MB(4) MB(7) MB(10) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9

  46. Szomszéd(10) = [7, 8, 11] MB(1) MB(4) MB(7) MB(10) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9, 10

  47. Szomszéd(10) = [7, 8, 11] MB(1) MB(4) MB(7) MB(10) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9, 10

  48. Szomszéd(10) = [7, 8, 11] MB(1) MB(4) MB(7) MB(10) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9, 10

  49. Szomszéd(10) = [7, 8, 11] MB(1) MB(4) MB(7) MB(10) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9, 10

  50. MB(1) MB(4) MB(7) MB(10) Ki: 1, 4, 7, 5, 3, 2, 6, 8, 11, 12, 9, 10

More Related