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.

Slides:



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

A Dijkstra algoritmus.
KÉSZÍTETTE: Takács Sándor
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.
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
Készítette Schlezák Márton
Az összehasonlító rendezések
OPERÁCIÓKUTATÁS Kalmár János, 2012 Tartalom A nulla-egy LP megoldása Hátizsák feladat.
1. Univerzális nyelő Csúcsmátrixos ábrázolás esetén a legtöbb gráfalgoritmus futási ideje O(n2) azonban van kivétel. Egy irányított gráf egy csúcsa univerzális.
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.
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 3. Feladat Pup Márton.
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:
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.
Készítette Schlezák Márton
Háló- (gráf-) algoritmusok
Business Mathematics A legrövidebb út.
Bellmann-Ford Algoritmus
Útkeresések.
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.
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.
Szállításszervezés.
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.
3. Feladat Szélességi Bejárás FZGAF0 – Pintér László.
V 1.0 Szabó Zsolt, Óbudai Egyetem, Programozás II. Gráfok Dijkstra algoritmus Kruskal algoritmus.
A Dijkstra algoritmus.
Gráfok szélességi bejárása Dijkstra algoritmus
INFOÉRA Gráfok, gráfalgoritmusok II. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) IDE KELL: prioritási sor kupaccal. Juhász.
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
Előadás másolata:

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

Adott: Egy gráf, súlyozott élekkel. (Egy városcsoport, és hogy melyikből melyikbe juthatunk el, és mennyiért.) Vagy mennyibe kerül közéjük építeni egy utat… Mj.: Vehetünk irányított éleket is. Amennyiben irányítatlan élekkel van dolgunk, úgy képzeljük, hogy az élen mindkét irányban közlekedhetünk.) Feladat: Határozzuk meg egy adott csúcsból az összes többibe vezető legkisebb költségű út költségét. Adjuk meg azt is, hogy ezen az optimális úton melyik csúcs előzi meg az aktuális csúcsot. (Ki a szülője?)

Megoldás: (Dijkstra algoritmusa) Először is tegyük fel, hogy mindenhova végtelen nagy költséggel juthatunk csak el; kivéve oda, ahol vagyunk, ahová ingyen eljuthatunk. Majd minden körben válasszuk ki a még nem elintézett csúcsok közül azt, amelyikbe a legolcsóbban tudtunk eljutni. Majd vizsgáljuk meg a szomszédjait, el tudunk-e oda jutni az addiginál kisebb költséggel. (Ábrán: El tudunk-e jutni F-be az eddigi 12-nél olcsóbban? Igen.) Ha igen, módosítsuk ezen szomszéd elérési költségét és szülőjét. Ha nem, hagyjuk békén. Majd ha minden szomszédját megvizsgáltuk, a csúcsot besoroljuk az „elintézett” csúcsok közé. Akkor végeztünk, ha minden csúcsot elintéztünk.

A gráf. Az A csúcsból indulunk. A B C D E F G

0 ∞ ∞ ∞ ∞ ∞ ∞ Kiinduló-helyzet Kezdőcsúcsban 0, többiben végtelen érték A B C D E F G

0 ∞ ∞ ∞ ∞ ∞ ∞ Válasszuk ki a legolcsóbban elérhető pontot. (A) Majd vizsgáljuk meg sorra a szomszédait. A B C D E F G

0 ∞ ∞ ∞ ∞ ∞ ∞ B: = 3 < végtelen A B C D E F G

0 ∞ ∞ ∞ ∞ ∞ Végtelen helyére 3. A, mint B szülője megjegyezve A B C D E F G

0 ∞ ∞ ∞ ∞ ∞ D: = 5 < végtelen A B C D E F G

0 5 ∞ ∞ ∞ ∞ Végtelen helyére 5. A, mint D szülője megjegyezve A B C D E F G

0 5 ∞ ∞ ∞ ∞ A B C D E F G G: = 8 < végtelen

0 5 ∞ ∞ ∞ A B C D E F G Végtelen helyére 8. A, mint G szülője megjegyezve

0 5 ∞ ∞ ∞ Végeztünk A-val. (Nincs több szomszédja) A B C D E F G

0 5 ∞ ∞ ∞ A B C D E F G Válasszuk ki a legolcsóbban elérhető pontot a még nem szürkék közül. (B) Majd vizsgáljuk meg sorra a szomszédait.

0 5 ∞ ∞ ∞ A B C D E F G C: = 9 < végtelen

0 5 9 ∞ ∞ A B C D E F G Végtelen helyére 9. B, mint C szülője megjegyezve

0 5 9 ∞ ∞ A B C D E F G F: = 12 < végtelen

0 5 9 ∞ A B C D E F G Végtelen helyére 12. B, mint F szülője megjegyezve

0 5 9 ∞ A B C D E F G D: = 7 > 5

0 5 9 ∞ A B C D E F G Ez az út (ABD) tehát nem jobb, mint az eddig D-be vezető út. (AD) D szülője marad A.

0 5 9 ∞ A B C D E F G Végeztünk B-vel. (Nincs több szomszédja)

0 5 9 ∞ A B C D E F G Válasszuk ki a legolcsóbban elérhető pontot a még nem szürkék közül. (D) Majd vizsgáljuk meg sorra a szomszédait.

0 5 9 ∞ A B C D E F G C: = 12 > 9

0 5 9 ∞ A B C D E F G Ez az út (ADC) tehát nem jobb, mint az eddig D-be vezető út. (ABC) C szülője marad B.

0 5 9 ∞ A B C D E F G E: = 6 < végtelen

A B C D E F G Végtelen helyére 6. D, mint E szülője megjegyezve

A B C D E F G G: = 7 < 8

A B C D E F G Ez az út (ADG) tehát jobb, mint az eddig G-be vezető út. (AG) G szülője ezentúl D.

A B C D E F G Végeztünk D-vel. (Nincs több szomszédja)

A B C D E F G Válasszuk ki a legolcsóbban elérhető pontot a még nem szürkék közül. (E) Majd vizsgáljuk meg sorra a szomszédait.

A B C D E F G F: = 11 < 12

A B C D E F G Ez az út (ADEF) tehát jobb, mint az eddig F-be vezető út. (ABF) F szülője ezentúl E.

A B C D E F G G: = 9 > 7

A B C D E F G Ez az út (ADEG) tehát nem jobb, mint az eddig G-be vezető út. (ADG) G szülője marad D.

A B C D E F G Végeztünk E-vel. (Nincs több szomszédja)

A B C D E F G Válasszuk ki a legolcsóbban elérhető pontot a még nem szürkék közül. (G) Majd vizsgáljuk meg sorra a szomszédait.

A B C D E F G F: = 16 > 11

A B C D E F G Ez az út (ADGF) tehát nem jobb, mint az eddig F-be vezető út. (ADEF) F szülője marad E.

A B C D E F G Végeztünk G-vel. (Nincs több szomszédja)

A B C D E F G Válasszuk ki a legolcsóbban elérhető pontot a még nem szürkék közül. (C)

A B C D E F G F: = 10 < 11

A B C D E F G Ez az út (ABCF) tehát jobb, mint az eddig F-be vezető út. (ADEF) F szülője ezentúl C.

A B C D E F G Végeztünk C-vel. (Nincs több szomszédja)

A B C D E F G Válasszuk ki a legolcsóbban elérhető pontot a még nem szürkék közül. (F) Nagyon nehéz feladat. Majd vizsgáljuk meg az összes szomszédját!

A B C D E F G Végeztünk F-vel.

Így talán jobban látszik a végeredmény. A B C D E F G

Megjegyzés: Dijkstra algoritmusa egy „mohó” algoritmus. Minden lépésben az akkor legkedvezőbbnek tűnő utat választja. Ez a stratégia ezen feladat esetén el is vezet a helyes megoldáshoz. Az a feladat, hogy egy ilyen gráf esetén határozzuk meg két adott csúcs között a legkisebb költségű utat, nem számottevően egyszerűbb ennél. Jobban megéri ezt végigszámolni. A struktogramot lásd: máshol

Lócsi Levente