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.

Slides:



Advertisements
Hasonló előadás
A Floyd-Warshall algoritmus
Advertisements

A Dijkstra algoritmus.
Sor láncolt ábrázolással
Készítette: Kosztyán Zsolt Tibor
Készítette: Mester Tamás METRABI.ELTE.  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.
Készítette: Major Máté
Készítette: Mester Tamás METRABI.ELTE.  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.
Dijkstra algoritmus Irányított gráfban.
Szélességi bejárás Párhuzamosítása.
Dijkstra algoritmus Baranyás Bence. Feladat Adott egy G=(V,E) élsúlyozott, irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó, véges.
Gráfok szélességi bejárása
Gráf Szélességi bejárás
Gráfok szélességi bejárása Algoritmus bemutatása egy gráfon példa.
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Számoljuk meg rekurzív függvénnyel egy bináris fa leveleit!
Prím algoritmus.
Dijkstra algoritmusa Egy csúcsból a többibe vezető legkisebb költségű út megkeresése Az algoritmus működésének leírása és bemutatása LL.
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.
Mélységi bejárás.
Gráf szélességi bejárása
Dijkstra algoritmus. Az algoritmus elve Kezdésnél a start csúcson kívül minden csúcs távolsága legyen ∞. (A start csúcs távolsága 0) Feltételes minimum.
Készítette: Lakos Péter.  Adott egy élsúlyozott, véges gráf  Negatív élsúlyokat nem tartalmaz  Lehet irányított vagy irányítatlan  Továbbá adott egy.
Készítette: Lakos Péter.  Adott egy irányított vagy irányítatlan, véges gráf.  Írjuk ki a csúcsokat egy kezdőcsúcstól való távolságuk növekvő sorrendjében.
Algoritmusok II. Gyakorlat 2. Feladat Pup Márton.
Algoritmusok II. Gyakorlat 3. Feladat Pup Márton.
Gráfelmélet: Fák.
Lénárt Szabolcs Páll Boglárka
Hierarchikus lista Kétféle értelemezése van:
Gráf Szélességi bejárás/keresés algoritmusa
Készítette: Mester Tamás METRABI.ELTE.  Adott egy G=(V,E) élsúlyozott, irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó, véges gráf.
A Dijkstra algoritmus.
Gráf szélességi bejárása SzB(G,p). Tetszőleges gráf, melyben a p csúcsot választottam kiindulónak: A gráfnak megfelelő fa:
SZÉLESSÉGI BEJÁRÁS Gréczy Ákos – JKR7ZR. MESE Van egy középkori kisváros, ahol az utcai lámpákat egy korosodó lámpagyújtogató ember gyújtja fel. Egyik.
Logikai programozás 2..
Készítette: Hanics Anikó. Az algoritmus elve: Kezdetben legyen n db kék fa, azaz a gráf minden csúcsa egy-egy (egy pontból álló) kék fa, és legyen minden.
Nevezetes algoritmusok: Fa megvalósítása Készítette: Várkonyi Tibor Zoltán.
Dijkstra algoritmusa Gubicza József (GUJQAAI.ELTE)
Prim algoritmusa Gubicza József (GUJQAAI.ELTE). Jellemzők Cél: Adott egyszerű gráfban a min. költségű feszítőfa meghatározása. Algoritmikus szinten: 3.
A feladat : Építsünk AVL-fát a következő adatokból:100,170,74,81,136,185,150,122,52,190,144 (Az AVL-fa olyan bináris keresőfa, amelynek minden csúcsára.
1 Szélességi Bejárás Györgyi Tamás – GYTNAAI.ELTE 2007 Március 22 Algoritmusok És Adatszerkezetek 2 Gráfalgoritmus S b a d e f h g c.
Az ábrán az inicializáló blokk lefutása utáni állapotot láthatjuk. A KÉSZ halmazhoz való tartozást színezéssel valósítjuk meg. A nem KÉSZ csúcsok fehérek,
Szélességi bejárás. Kezdőcsúcsból felvétele Innen haladunk egy szinttel mélyebbre, felvesszük az összes olyan csúcsot, amit így elérhetünk Ha elfogytak,
Kruskal-algoritmus.
Szélességi bejárás. Kezdőcsúcs felvétele Innen haladunk egy szinttel lejebb, itt felvesszük az összes olyan csúcsot, amit elérünk Ha elfogytak, akkor.
Bellmann-Ford Algoritmus
Horváth Bettina VZSRA6.  Célja: Az eljárás célja egy véges gráf összes csúcsának bejárása a kezdőcsúcstól való távolságuk szerinti növekvő sorrendben.
Útkeresések.
Dag Toplogikus rendezés
SZÉLESSÉGI BEJÁRÁS Pap Imre DVX468. A bejárás Meglátogatjuk az első csúcsot, majd ennek a csúcsnak az összes szomszédját. Aztán ezen szomszédok összes.
Bináris kereső fák Itterátorok.
Diszjunkt halmazok adatszerkezete A diszjunkt halmaz adatszerkezet diszjunkt dinamikus halmazok S={S 1,…,S n } halmaza. Egy halmazt egy képviselője azonosít.
Morvai Mária-Júlia F3D3D4.  Adott egy G=(V,E)élsúlyozott, irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó,véges gráf. Továbbá adott.
Gráf szélességi bejárása. Cél Az algoritmus célja az, hogy bejárjuk egy véges gráf összes csúcsát és kiírjuk őket a kezdőcsúcstól való távolságuk szerint.
DIJKSTRA- ALGORITMUS. A Dijkstra-algoritmus egy mohó algoritmus, amivel irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó, véges gráfokban.
Gráf szélességi bejárása. A szélességi bejárás elmélete Célja egy véges gráf összes csúcsának bejárása a kezdőcsúcstól való távolságuk szerinti növekvő.
Szélességi bejárás Gráf-algoritmusok Algoritmusok és adatszerkezetek II. Gergály Gábor WZBNCH1.
Prim algoritmus Algoritmusok és adatszerkezetek 2. Újvári Zsuzsanna.
MÉLYSÉGI BEJÁRÁS FZGAF0 – PINTÉR LÁSZLÓ. ALGORITMUS ELMÉLETE Egy s kezdőpontból addig megyünk egy él mentén, ameddig el nem jutunk egy olyan csúcsba,
INFOÉRA Gráfok, gráfalgoritmusok II. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Szélességi bejárás. Véges gráf összes csúcsának bejárása a kezdőcsúcstól való távolságuk szerinti növekvő sorrendben Egy csúcsot egyszer járunk be Egyenlő.
Dijkstra algoritmus. Az algoritmus működése  Kezdésnél a kezdő csúcson kívül minden csúcs távolsága legyen ∞, a kezdő csúcs távolsága 0.  Feltételes.
Gráf Szélességi bejárás Készítette: Giligor Dávid Neptun : HSYGGS.
3. Feladat Szélességi Bejárás FZGAF0 – Pintér László.
Szélességi bejárás Pátyerkó Dorina (VTYX9O). Szélességi bejárás algoritmusa Kijelölünk egy kezdőcsúcsot. A csúcs szomszédjait megkeressük, majd betesszük.
Gráfalgoritmusok Tassy Gergely Veres Péter Gimnázium, Budapest június 30.
A Dijkstra algoritmus.
Gráfok szélességi bejárása Dijkstra algoritmus
Depth First Search Backtracking
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Előadás másolata:

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.

Stuktogramok

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.

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

Ki: 1 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.

Szomszéd(1) = [4, 5] 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). Ki: 1 MB(1)

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. Ki: 1 MB(1) MB(4)

Szomszéd(4) = [7] MB(1) MB(4) Ki: 1, 4 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) MB(7) 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MB(1) MB(4) MB(7) MB(5) MB(3) MB(6) MB(8) MB(11) MB(12) Szomszéd(11) = [12] Ki: 1, 4, 7, 5, 3, 2, 6, 8, 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

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 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, 9

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MB(1) MB(4) MB(7) MB(10)

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

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

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

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

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

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

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