A Dijkstra algoritmus.

Slides:



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

A Dijkstra algoritmus.
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.
Matematika II. 4. előadás Geodézia szakmérnöki szak 2010/2011. tanév Műszaki térinformatika ágazat tavaszi félév.
Illés Tibor – Hálózati folyamok
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.
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.
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.
Dijkstra-algoritmus ismertetése
Algoritmusok II. Gyakorlat 2. Feladat Pup Márton.
Algoritmusok II. Gyakorlat 3. Feladat Pup Márton.
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.
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:
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.
Kruskal-algoritmus.
Készítette Schlezák Márton
Business Mathematics A legrövidebb út.
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.
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.
Készítette : Giligor Dávid Neptun : HSYGGS
Prim algoritmus Algoritmusok és adatszerkezetek 2. Újvári Zsuzsanna.
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.
Eötvös Konferencia, 2008 április 26. Kovács Máté 1 Útkeresések optimalizálása számítógépes játékokban.
V 1.0 Szabó Zsolt, Óbudai Egyetem, Programozás II. Gráfok Dijkstra algoritmus Kruskal algoritmus.
HÁLÓZAT Maximális folyam, minimális vágás
A Dijkstra algoritmus.
Gráfok szélességi bejárása Dijkstra algoritmus
Készítette Tácsik Attila
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Dijkstra algoritmusa: legrövidebb utak
Dijkstra algoritmusa: legrövidebb utak
Dijkstra algoritmusa: legrövidebb utak
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Előadás másolata:

A Dijkstra algoritmus

Mi az a Dijkstra algoritmus? Egy gráfalgoritmus a „legrövidebb utak egy forrásból” probléma megoldására. Bemenet: egy G = (E,V) élsúlyozott véges gráf, valamint egy s ∈ V csúcs, a forrás. Az élek súlyozása nemnegatív. A gráf lehet irányított vagy irányítatlan. Kimenet: a forrást és az onnan elérhető csúcsokat tartalmazó gráf, ami egyben a forrásból induló legrövidebb utak fája.

Fontos megjegyzés A legrövidebb út alatt most nem a legkevesebb élt tartalmazó utat értjük, hanem azt az, amelyikre az alkotóélek súlyainak összege minimális.

Dijkstra algoritmus röviden 1/2 Minden lépésben tartsuk nyilván az összes csúcsra, a forrástól az illető csúcsba vezető, eddig talált legrövidebb utat. Ehhez tekintsünk egy d[1..n] és egy P[1..n] tömböt (n a csúcsok száma), melyek rendre a távolságokat és a szülő csúcsokat tartalmazzák. Jelölje K azoknak a csúcsoknak a halmazát, amelyekhez már kiszámítottuk az odavezető legrövidebb utat.

Dijkstra algoritmus röviden 2/2 Kezdetben a távolság a kezdőcsúcsra 0, a többire ∞. Minden lépésben a nem kész csúcsok közül tekintsük valamelyik legkisebb távolságú (dmin) csúcsot (v): Vegyük észre, hogy v távolsága a megelőző lépés eredményei és a v-be vezető imént érintett él alapján ismert, ezért v bekerül a K halmazba. Számítsuk ki a v szomszédaira a v-be vezető útnak a v egyes szomszédaiba vezető élekkel kibővített hosszát (kiterjesztés). Amennyiben ez kisebb, mint az illető szomszédba eddig talált legrövidebb út, akkor mostantól ezt tekintjük az ebbe a csúcsba vezető legrövidebb útnak (közelítés).

Dijkstra algoritmus struktogram d[s], P[s] ≔ 0, NIL for all u ∊ V ∖ {s} d[u], P[u] ≔ ∞, NIL Üres(K); Üres(Qmin) Feltölt(Qmin) Qmin ≠ ∅ u ≔ Kivesz(Qmin) K ≔ K ∪ {u} for all v ∊ Szomszédok(u) ∖ K d[v] ≩ d[u] + c(u,v) SKIP d[v] ≔ d[u] + c(u,v) Helyreállít(Qmin) P[v] ≔ u Qmin egy a még feldolgozásra váró csúcsokat tartalmazó minimum választó prioritásos sor. A sor kulcsai a már felfedezett legrövidebb távolságok.

Dijkstra algoritmus példa ∞ ∞ ∞ ∞ ∞ ∞ ∞

Dijkstra algoritmus példa ∞ ∞ ∞ ∞ ∞ ∞

Dijkstra algoritmus példa ∞ ∞ ∞ ∞ ∞ ∞

Dijkstra algoritmus példa 5 ∞ ∞ 3 ∞ 2

Dijkstra algoritmus példa 5 ∞ ∞ 3 ∞ 2

Dijkstra algoritmus példa 5 ∞ ∞ 3 ∞ 2

Dijkstra algoritmus példa 5 5 3 3 3 2

Dijkstra algoritmus példa A két lehetséges minimum távolságú csúcs közül ADS szinten teljesen mindegy, hogy melyik választjuk, de ADT szinten – a minimum kiválasztásos sor miatt – azt fogjuk választani, amelyiket korábban tettük be 5 5 3 3 3 2

Dijkstra algoritmus példa 5 5 3 3 3 2

Dijkstra algoritmus példa Az aktuálisan feldolgozott csúcs egyik szomszédja már kész, a másikhoz pedig már találtunk egy a jelenleginél rövidebb utat, a harmadiknál viszont az eddiginél egy rövidebb utat találtunk! 5 5 3 3 3 2

Dijkstra algoritmus példa A helyzet ugyanaz, mint az előző csúcs esetén. 5 4 3 3 3 2

Dijkstra algoritmus példa 5 4 3 3 3 2

Dijkstra algoritmus példa 5 4 3 3 3 2

Dijkstra algoritmus példa 5 4 3 3 3 2

Dijkstra algoritmus példa Legrövidebb utak feszítőfája 5 4 3 3 3 2

Felhasznált irodalom Fekete István jegyzet: http://people.inf.elte.hu/fekete/docs_2/grafalg/grafalg.htm#dijkstra Thomas, Cormen, Leiserson, Rivest: Új Algoritmusok. Scolar Kiadó, 2003 http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm