Gráfok szélességi bejárása Dijkstra algoritmus

Slides:



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

A Dijkstra algoritmus.
Nevezetes algoritmusok
Segéd-pszichoterapeuta-biogyógyász TANFOLYAM „Herbály” Oktatási- és Egészségvédő Bioközpont TEMATIKA.
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.
Készítette: Hanics Anikó. Az algoritmus ADT szintű leírása: A d[1..n] és P[1..n] tömböket, a korábban ismertetett módon, a távolság és a megelőző csúcs.
Dijkstra algoritmus Irányított gráfban.
Szélességi bejárás Párhuzamosítása.
Szélességi bejárás , 0.
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
Készítette Schlezák Márton
Gráfok szélességi bejárása Algoritmus bemutatása egy gráfon példa.
Gazdaságmatematika 5. szeminárium.
Gráf szélességi bejárása. Alapfogalmak G = (V,E)irányított, véges, nem üres gráf d (s,u)két csúcs távolsága lút hossza, élek száma Qsor adatszerkezet.
Prím algoritmus.
Dijkstra algoritmus. Kiválasszuk a legkisebb csúcsot, ez lesz a kezdőcsúcs, amit 0-val címkézünk és megjelöljük sárgaszínnel. Szomszédjai átcímkézése.
1 Györgyi Tamás – GYTNAAI.ELTE 2007 Április 03 Algoritmusok És Adatszerkezetek 2 Gráfalgoritmus Bellman-Ford Algoritmusa S a b d e
„Országos” feladat. Feladat: Egy tetszőleges, színes országokat tartalmazó térképen akar eljutni egy kommandós csapat egy országból egy másikba. Viszont.
Dijkstra algoritmus Algoritmusok és adatszerkezetek 2. Újvári Zsuzsanna.
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.
Így kezd ő dött Anyuci hasában vagyok. Els ő napjaim idekint…. Nem Is Olyan Rossz Idekint.
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.
Gráf Szélességi bejárás/keresés algoritmusa
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:
Feladat: Adott egy város, benne metrók és állomások. Írjunk algoritmust amely megszámolja hogy mennyi az a legkevesebb átszállás amellyel egy tetszőleges.
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.
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.
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.
1 Dijkstra Algoritmusa Györgyi Tamás – GYTNAAI.ELTE 2007 Április 02 Algoritmusok És Adatszerkezetek 2 Gráfalgoritmus S a b c d e
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,
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.
Dijkstra-algoritmus. A Dijkstra-algoritmus egy mohó algoritmus, amivel irányított gráfokban lehet megkeresni a legrövidebb utakat egy adott csúcspontból.
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.
Készítette Schlezák Márton
Egy élet 14 állomása „…mert megmarad a hit, a remény és a szeretet …”
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.
Osztott adatbázisok.  Gyors ismétlés: teljes redukáló  Teljes redukáló költsége  Természetes összekapcsolások vetítése  Természetes összekapcsolások.
Business Mathematics A legrövidebb út.
Bellmann-Ford Algoritmus
Szélességi bejárás. Feladat  Szélességi bejárás módszerrel menjünk végig egy tetszőleges gráfon.  Kikötés: A gráf egyszerű, azaz hurok- és többszörös.
Útkeresések.
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.
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.
Készítette : Giligor Dávid Neptun : HSYGGS
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. Egy minimális költségű utat keres élsúlyozott gráfban A gráf lehet irányított vagy irányítás nélküli Feltétele, hogy pozitív élsúlyok.
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.
Dijkstra algoritmus Gráf-algoritmusok Algoritmusok és adatszerkezetek II. Gergály Gábor WZBNCH1.
Kincskereső „kilenc”-próba
A Dijkstra algoritmus.
Nem módosítható keresések
Készítette Tácsik Attila
Dijkstra algoritmusa: legrövidebb utak
Dijkstra algoritmusa: legrövidebb utak
Dijkstra algoritmusa: legrövidebb utak
Adatbázisrendszerek elméleti alapjai 9. előadás
Előadás másolata:

Gráfok szélességi bejárása Dijkstra algoritmus Készítette: Tácsik Zoltán TAZPAAI

Gráfok szélességi bejárása Dijkstra algoritmus Jelölések: d[1..n] : távolság a start csúcstól π[1..n] : a csúcsok szülő csúcsai KÉSZ halmaz : azon csúcsok melyek már megvizsgáltunk

Gráfok szélességi bejárása Dijkstra algoritmus Az algoritmus működése: s távolságát nullára állítjuk, minden más csúcsét ∞ -re minden lépésben a nem KÉSZ csúcsok közül kiválasztjuk a minimum távolságút (u): u-t beletesszük a KÉSZ halmazba u-t kiterjesszük, ha valamely szomszédos csúcsba kisebb útköltséggel jutunk, ekkor javítjuk a távolságot és a szülőt

Gráfok szélességi bejárása Dijkstra algoritmus   SKIP

Gráfok szélességi bejárása Dijkstra algoritmus 8 Jelölések a prezentációban: 2 (2) d[C]=1 c(A,B)=2 A és B közötti él költsége B c(A,C)=8 C G(c)=8 1 Szülő kapcsolat 3 9 5 D távolsága a startcsúcstól (3) (4) d[D]=2 A startcsúcstól a D csúcsig a minimális útköltség 2 D E F G(c)=5 2 10 Él költség 5 (6) 3 G H Nem javít az él az útköltségen Feldolgozás sorrendje

Gráfok szélességi bejárása Dijkstra algoritmus 8 Példa gráf 2 B C 1 3 9 5 2 D E F 2 10 5 3 G H

Gráfok szélességi bejárása Dijkstra algoritmus 8 Első lépés s startcsúcs kiválasztása 2 B C 1 3 9 5 2 D E F 2 10 5 3 G H

Gráfok szélességi bejárása Dijkstra algoritmus (1) A = s 8 Első lépés s startcsúcs kiválasztása KÉSZ : A 2 B C 1 3 9 5 2 D E F 2 10 5 3 G H

Gráfok szélességi bejárása Dijkstra algoritmus (1) A = s 8 Második lépés Az A csúcsból vezető utak útköltségének vizsgálata. KÉSZ : A 2 d[B]=1 d[C]=1 c(A,B)=2 B c(A,C)=8 C G(c)=2 G(c)=8 1 3 9 5 2 D E F 2 10 5 3 G H

Gráfok szélességi bejárása Dijkstra algoritmus (1) A = s 8 Harmadik lépés Kiválasztjuk a legkisebb költségű élet, és a hozzá tartozó csúcsot. KÉSZ : A,B 2 d[B]=1 (2) d[C]=1 c(A,B)=2 B c(A,C)=8 C G(c)=2 G(c)=8 1 3 9 5 2 D E F 2 10 5 3 G H

Gráfok szélességi bejárása Dijkstra algoritmus (1) A = s 8 Negyedik lépés A B csúcsból vezető utak útköltségének vizsgálata. KÉSZ : A,B 2 d[B]=1 (2) d[C]=1 c(A,B)=2 B c(A,C)=8 C G(c)=2 G(c)=8 1 3 9 5 d[E]=2 d[D]=2 c(B,E)=2 c(B,D)=3 2 G(c)=3 D E F G(c)=5 2 10 5 3 G H

Gráfok szélességi bejárása Dijkstra algoritmus (1) A = s 8 Ötödik lépés Kiválasztjuk a legkisebb költségű élet, és a hozzá tartozó csúcsot. KÉSZ : A,B,E 2 d[B]=1 (2) d[C]=1 c(A,B)=2 B c(A,C)=8 C G(c)=2 G(c)=8 1 3 9 5 d[E]=2 (3) d[D]=2 c(B,E)=2 c(B,D)=3 2 G(c)=3 D E F G(c)=5 2 10 5 3 G H

Gráfok szélességi bejárása Dijkstra algoritmus (1) A = s 8 Hatodik lépés Mivel az E csúcsból nem lehet tovább menni, vissza lépünk a B csúcsra, és kiválasztjuk a legkisebb él költséget. KÉSZ : A,B,E,D 2 d[B]=1 (2) d[C]=1 c(A,B)=2 B c(A,C)=8 C G(c)=2 G(c)=8 1 3 9 5 d[E]=2 (3) (4) d[D]=2 c(B,E)=2 c(B,D)=3 2 G(c)=3 D E F G(c)=5 2 10 5 3 G H

Gráfok szélességi bejárása Dijkstra algoritmus (1) A = s 8 Hetedik lépés A D csúcsból vezető utak útköltségének vizsgálata. KÉSZ : A,B,E,D 2 d[B]=1 (2) d[C]=1 c(A,B)=2 B c(A,C)=8 C G(c)=2 G(c)=8 1 3 9 5 d[E]=2 (3) (4) d[D]=2 c(B,E)=2 c(B,D)=3 2 G(c)=3 D E F G(c)=5 2 10 5 d[H]=3 d[G]=3 3 G H c(D,G)=10 c(D,H)=2 G(c)=15 G(c)=7

Gráfok szélességi bejárása Dijkstra algoritmus (1) A = s 8 Nyolcadik lépés Kiválasztjuk a legkisebb költségű élet, és a hozzá tartozó csúcsot, a D csúcsból két élnek is 2 az él költsége, de a c(D,E) nem javítana az E út költségén. KÉSZ : A,B,E,D,H 2 d[B]=1 (2) d[C]=1 c(A,B)=2 B c(A,C)=8 C G(c)=2 G(c)=8 1 3 9 5 d[E]=2 (3) (4) d[D]=2 c(B,E)=2 c(B,D)=3 2 G(c)=3 D E F G(c)=5 2 10 (5) 5 d[H]=3 d[G]=3 3 G H c(D,G)=10 c(D,H)=2 G(c)=15 G(c)=7

Gráfok szélességi bejárása Dijkstra algoritmus (1) A = s 8 Kilencedik lépés Kiválasztjuk a legkisebb költségű élet, és a hozzá tartozó csúcsot, a H csúcsból találtunk egy jobb költségű utat G-be, így ezt javítjuk. KÉSZ : A,B,E,D,H 2 d[B]=1 (2) d[C]=1 c(A,B)=2 B c(A,C)=8 C G(c)=2 G(c)=8 1 3 9 5 d[E]=2 (3) (4) d[D]=2 c(B,E)=2 c(B,D)=3 2 G(c)=3 D E F G(c)=5 2 10 (5) 5 d[H]=3 d[G]=4 3 G H c(H,G)=3 c(D,H)=2 G(c)=10 G(c)=7

Gráfok szélességi bejárása Dijkstra algoritmus (1) A = s 8 Tízedik lépés Kiválasztjuk a legkisebb költségű élet, és a hozzá tartozó csúcsot. KÉSZ : A,B,E,D,H,G 2 d[B]=1 (2) d[C]=1 c(A,B)=2 B c(A,C)=8 C G(c)=2 G(c)=8 1 3 9 5 d[E]=2 (3) (4) d[D]=2 c(B,E)=2 c(B,D)=3 2 G(c)=3 D E F G(c)=5 2 10 (5) 5 (6) d[H]=3 d[G]=4 3 G H c(H,G)=3 c(D,H)=2 G(c)=10 G(c)=7

Gráfok szélességi bejárása Dijkstra algoritmus (1) A = s 8 Tizenegyedik lépés C is belekerül a KÉSZ halmazba KÉSZ : A,B,E,D,H,G,C 2 (8) d[B]=1 (2) d[C]=1 c(A,B)=2 B c(A,C)=8 C G(c)=2 G(c)=8 1 3 9 5 d[E]=2 (3) (4) d[D]=2 c(B,E)=2 c(B,D)=3 2 G(c)=3 D E F G(c)=5 2 10 (5) 5 (6) d[H]=3 d[G]=4 3 G H c(H,G)=3 c(D,H)=2 G(c)=10 G(c)=7

Gráfok szélességi bejárása Dijkstra algoritmus (1) A = s 8 Tizenkettedik lépés A C csúcsból vezető utak útköltségének vizsgálata. Mivel C csúcsból el lehet jutni 9 út költséggel E-be, ezt is megvizsgáljuk, de nem javít E elérési költségén. KÉSZ : A,B,E,D,H,G,C 2 (8) d[B]=1 (2) (2) d[C]=1 c(A,B)=2 B c(A,C)=8 C G(c)=2 G(c)=8 1 3 9 5 d[E]=2 (3) (3) (4) (4) d[D]=2 c(B,E)=2 c(B,D)=3 2 G(c)=3 D E F G(c)=5 2 10 d[F]=2 (5) (5) 5 (6) (6) d[H]=3 c(C,F)=5 d[G]=4 3 G H G(c)=13 c(H,G)=3 c(D,H)=2 G(c)=10 G(c)=7

Gráfok szélességi bejárása Dijkstra algoritmus (1) A = s 8 Tizenharmadik lépés Az F csúcsból vezető utak útköltségének vizsgálata. Mivel F csúcsból el lehet jutni 5 út költséggel H-be, ezt is megvizsgáljuk, de nem javít H elérési költségén. KÉSZ : A,B,E,D,H,G,C,F 2 (8) d[B]=1 (2) d[C]=1 c(A,B)=2 B c(A,C)=8 C G(c)=2 G(c)=8 1 3 9 5 d[E]=2 (3) (4) d[D]=2 c(B,E)=2 (9) c(B,D)=3 2 G(c)=3 D E F G(c)=5 2 10 d[F]=2 (5) 5 (6) d[H]=3 c(C,F)=5 d[G]=4 3 G H G(c)=13 c(D,G)=3 c(D,H)=2 G(c)=10 G(c)=7

Gráfok szélességi bejárása Dijkstra algoritmus 8 A feszítőfa (minimális útköltség) 2 B C 1 3 5 D E F 2 3 G H