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.

Slides:



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

A Dijkstra algoritmus.
Készítette: Kosztyán Zsolt Tibor
Nevezetes algoritmusok
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.
DAG topologikus rendezése
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.
DAG topologikus rendezés
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.
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 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.
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:
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.
Előadó: Nagy Sára Mesterséges intelligencia Kereső rendszerek.
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
Algoritmus és adatszerkezet Tavaszi félév Tóth Norbert1 Floyd-Warshall-algoritmus Legrövidebb utak keresése.
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.
Dijkstra algoritmus Gráf-algoritmusok Algoritmusok és adatszerkezetek II. Gergály Gábor WZBNCH1.
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
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:

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 s kezdőcsúcs  Határozzuk meg minden csúcsra az s-ből odavezető legrövidebb utat és annak hosszát! Feladat:

 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  a d[1..n] tömbben a távolságot  a P[1..n] tömbben a megelőző csúcsot Az algoritmus elve:

1) Kezdetben a távolság legyen a kezdőcsúcsra 0, a többi csúcsra ∞ 2) Minden lépésben a nem KÉSZ csúcsok közül tekintsük az egyik legkisebb távolságú csúcsot a) Azt mondhatjuk, hogy ez a v csúcs már KÉSZ, azaz ismert a hozzá vezető legrövidebb út. b) A v-t terjesszük ki, azaz a v csúcs szomszédaira számítsuk ki a (már ismert) v-be vezető, és onnan egy kimenő éllel meghosszabbított út hosszát. c) Amennyiben ez jobb (kisebb), mint az illető szomszédba eddig talált legrövidebb út, akkor innentől kezdve ezt az utat tekintsük az adott szomszédba vezető, eddig talált legrövidebb útnak. Az algoritmus elve:

Az algoritmus: A d[1..n] és P[1..n] tömböket a távolság és a megelőző csúcs nyilvántartására használjuk. inicializálás

Az algoritmus: A KÉSZ halmazba rakjuk azokat a csúcsokat, amelyekhez már ismerjük az egyik legrövidebb utat. inicializálás

Az algoritmus: Ezen kívül használunk egy minimum választó prioritásos sort (minQ) inicializálás Ebben a csúcsokat tároljuk a már felfedezett, legrövidebb d (s -> u) távolsággal, mint kulcs értékkel.

Az algoritmus működése: minQ CsúcsKulcs A (s) B C D E F G H KÉSZ: H C F D A B G E Legyen A a kezdőcsúcs (s:=A) A (s)BCDEFGH d: P: A (s)BCDEFGH d:0 P:NIL A (s)BCDEFGH d:0 ∞∞∞∞∞∞∞ P:NIL minQ CsúcsKulcs A (s) 0 B ∞ C ∞ D ∞ E ∞ F ∞ G ∞ H ∞

BCDEFGH d:0 ∞∞∞∞∞∞∞ P:NIL minQ CsúcsKulcs A (s) 0 B ∞ C ∞ D ∞ E ∞ F ∞ G ∞ H ∞ Az algoritmus működése: KÉSZ: H C F D A B G E u minQ CsúcsKulcs B ∞ C ∞ D ∞ E ∞ F ∞ G ∞ H ∞ A v A (s)BCDEFGH d:0 20∞∞∞∞∞∞ P:NIL minQ CsúcsKulcs B 20 C ∞ D ∞ E ∞ F ∞ G ∞ H ∞ A (s)BCDEFGH d:0 20∞∞∞∞∞∞ P:NILA v A (s)BCDEFGH d:0 20∞ 80 ∞∞∞∞ P:NILA minQ CsúcsKulcs B 20 C ∞ D 80 E ∞ F ∞ G ∞ H ∞ A (s)BCDEFGH d:0 20∞ 80 ∞∞∞∞ P:NILA A v A (s)BCDEFGH d:0 20∞ 80 ∞∞ 90 ∞ P:NILA A minQ CsúcsKulcs B 20 C ∞ D 80 E ∞ F ∞ G 90 H ∞ A (s)BCDEFGH d:0 20∞ 80 ∞∞ 90 ∞ P:NILA A A Nincs több ilyen csúcs, kilépünk a belső ciklusból.

A (s)BCDEFGH d:0 20∞ 80 ∞∞ 90 ∞ P:NILA A A minQ CsúcsKulcs B 20 C ∞ D 80 E ∞ F ∞ G 90 H ∞ Az algoritmus működése: KÉSZ: H C F D A B G E A Az előző lépés mintájára folytatjuk az algoritmust, amíg ki nem ürül a minQ. minQ CsúcsKulcs C ∞ D 80 E ∞ F ∞ G 90 H ∞ u B v A (s)BCDEFGH d:0 20∞ 80 ∞30 90 ∞ P:NILA A BA minQ CsúcsKulcs C ∞ D 80 E ∞ F 30 G 90 H ∞

A (s)BCDEFGH d:0 20∞ 80 ∞30 90 ∞ P:NILA A BA minQ CsúcsKulcs C ∞ D 80 E ∞ F 30 G 90 H ∞ Az algoritmus működése: KÉSZ: H C F D A B G E A u B v minQ CsúcsKulcs C ∞ D 80 E ∞ G 90 H ∞ F A (s)BCDEFGH d: ∞30 90 ∞ P:NILAFA BA minQ CsúcsKulcs C 40 D 80 E ∞ G 90 H ∞ v A (s)BCDEFGH d: ∞30 90 ∞ P:NILAFF BA minQ CsúcsKulcs C 40 D 70 E ∞ G 90 H ∞

A (s)BCDEFGH d: ∞30 90 ∞ P:NILAFF BA minQ CsúcsKulcs C 40 D 70 E ∞ G 90 H ∞ Az algoritmus működése: KÉSZ: H C F D A B G E A u B v F v minQ CsúcsKulcs D 70 E ∞ G 90 H ∞ C A (s)BCDEFGH d: ∞30 90 ∞ P:NILAFC BA minQ CsúcsKulcs D 50 E ∞ G 90 H ∞ A (s)BCDEFGH d: ∞ P:NILAFC BAC minQ CsúcsKulcs D 50 E ∞ G 90 H 60 C-nek F is szomszédja, de az már benne van a KÉSZ halmazban.

A (s)BCDEFGH d: ∞ P:NILAFC BAC minQ CsúcsKulcs D 50 E ∞ G 90 H 60 Az algoritmus működése: KÉSZ: H C F D A B G E A u B F v C minQ CsúcsKulcs E ∞ G 90 H 60 D A (s)BCDEFGH d: ∞ P:NILAFC BDC minQ CsúcsKulcs E ∞ G 70 H 60

A (s)BCDEFGH d: ∞ P:NILAFC BDC minQ CsúcsKulcs E ∞ G 70 H 60 Az algoritmus működése: KÉSZ: H C F D A B G E A u B F C D minQ CsúcsKulcs E ∞ G 70 H A H csúcsnak nincs egy szomszédja sem, így be sem lépünk a belső ciklusba.

A (s)BCDEFGH d: ∞ P:NILAFC BDC minQ CsúcsKulcs E ∞ G 70 Az algoritmus működése: KÉSZ: H C F D A B G E A u B F C D H minQ CsúcsKulcs E ∞ G

minQ CsúcsKulcs E ∞ A (s)BCDEFGH d: ∞ P:NILAFC BDC Az algoritmus működése: KÉSZ: H C F D A B G E A u B F C D H G minQ CsúcsKulcs E

A (s)BCDEFGH d: ∞ P:NILAFC BDC Az eredmény: H C F D A B G E  Az elkészült d és P tömbök segítségével minden csúcsról leolvasható az s-ből odavezető legrövidebb út és annak hossza  Pl.: a D csúcsba vezető leghatékonyabb út 50 költségű  D-be C-n keresztül jutottunk  C-be F-ből jöttünk  F-be B-ből  B-be pedig A-ból (kezdőcsúcs)  Vegyük észre, hogy az E-be vezető út költsége végtelen, vagyis ebbe a csúcsba nem lehet eljutni

A (s)BCDEFGH d: ∞ P:NILAFC BDC Az eredmény: H C F D A B G E  Ha berajzoljuk a kezdőcsúcsból az összes többi csúcsba vezető legjobb utat, megkapjuk a legrövidebb utak fáját.

A (s)BCDEFGH d: ∞ P:NILAFC BDC Az eredmény:  Ha berajzoljuk a kezdőcsúcsból az összes többi csúcsba vezető legjobb utat, megkapjuk a legrövidebb utak fáját. H C F D A B G E H C F D A B G

Megjegyzés:  További információk, példa: oldal