Útkeresések.

Slides:



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

A Dijkstra algoritmus.
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.
Minimális költségű feszítőfák
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
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.
„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
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:
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.
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.
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.
Algoritmizálás, adatmodellezés tanítása 8. előadás.
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
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.
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.
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.
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.
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.
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ó.
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.
Algoritmus DAG = irányított körmentes gráf. Először ezt a tulajdonságot ellenőrizzük (mélységi bejárással), aztán rendezzük: Q: Sor adatszerkezet, kezdetben.
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.
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.
INFOÉRA Gráfok, gráfalgoritmusok III. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
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:

Útkeresések

Gráfalgoritmusok Gráfbejárások Legrövidebb utak egy forrásból Minimális súlyú feszítőfa keresése Mesterséges intelligencia

Gráfbejárások: a mélységi stratégia Korosodó lámpagyújtogató egy középkori város utcáit járja: Főtérről indul Onnan nyíló sötét utcába megy és felgyújtja a lámpákat ha elágazáshoz ér, tovább megy egy másik sötét utcába és ott felgyújtja a lámpákat ha zsákutcába ér akkor visszamegy az előző kereszteződéshez és másik utcát választ

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Mélységi bejárás

Gráfbejárások: a szélességi stratégia Az alaphelyzet hasonló, de a lámpagyújtogató aznap este fáradt és elhívja a barátait (akik elég sokan vannak) segíteni. - a főtérről indulnak - a csapat annyi fele oszlik minden elágazásnál, ahány sötét utca kivezet belőle

Szélességi bejárás

Szélességi bejárás

Szélességi bejárás

Szélességi bejárás

Szélességi bejárás

Szélességi bejárás algoritmusa Elérjük a kezdőcsúcsot Elérjük a kezdőcsúcs szomszédait Majd az 1 távolságra lévő csúcsok szomszédait, és így tovább… Közben kiiratjuk a csúcsok távolságait, és a szülőket Minden csúcsot csak egyszer járunk be

Szélességi bejárás algoritmusa Algoritmikus megvalósítás: sor adatszerkezet segítségével Színezés: fehér: nem érintett csúcsok szürke: kiterjesztés alatt álló csúcsok fekete: kiterjesztett csúcsok

Szélességi bejárás algoritmusa Q=[1]

Szélességi bejárás algoritmusa Q=[2,3,4]

Szélességi bejárás algoritmusa Q=[3,4,5,6]

Szélességi bejárás algoritmusa Q=[4,5,6]

Szélességi bejárás algoritmusa Q=[5,6,10]

Szélességi bejárás algoritmusa Q=[6,10,7,8,9]

Szélességi bejárás algoritmusa Q=[10,7,8,9]

Szélességi bejárás algoritmusa Q=[7,8,9]

Szélességi bejárás algoritmusa Q=[8,9]

Szélességi bejárás algoritmusa Q=[9]

Szélességi bejárás algoritmusa Q=[ ]

Minimális költségű utak egy forrásból Élsúlyozott gráfok Pl.: Magyarország úthálózata: a gráf csúcsai városok élei a városokat összekötő utak, ahol az út megtételének költségét az élsúlyok jelzik

Dijkstra algoritmus (Nemnegatív) élsúlyozott irányított gráf Elsőbbségi (prioritásos) sorban tároljuk a kiterjesztendő csúcsokat Alapelv: mindig a legkisebb költségű utat folytatjuk (mohó algoritmus)

Dijkstra algoritmus

Dijkstra algoritmus

Dijkstra algoritmus

Dijkstra algoritmus

Dijkstra algoritmus

Dijkstra algoritmus „legrövidebb utak fája”

A Dijkstra-algoritmus műveletigénye

A Dijkstra-algoritmus műveletigénye A prioritásos sor megvalósítása rendezetlen tömbbel: a lineáris idejű a keresés miatt => T(n)=σ(n*n)= σ(n2) Kupaccal: a keresés log(n)-es, a fenntartás e*log(n)-es => T(n)= σ(n+e)*log(n)-es Sűrű gráf esetén: e~n2 => σ(n2*log(n))> σ(n2)

Bellmann-Ford algoritmus Negatív élsúlyozású gráfokra is működik Feltétel, hogy ne legyen a gráfban negatív összköltségű irányított kör Az algoritmus elve: n-szer járjuk be a gráfot, keresve az s-ből induló 1,2…n-1 hosszúságú legrövidebb utakat a gráf összes pontjába Műveletigény: T(n)=Θ((n-1)*e) (~n3 ) Példa: valutaátváltások

Bellmann-Ford algoritmus

Bellmann-Ford algoritmus

Bellmann-Ford algoritmus

Bellmann-Ford algoritmus

Bellmann-Ford algoritmus

Bellmann-Ford algoritmus

Bellmann-Ford algoritmus

Minimális költségű feszítőfák Pl.: városok elektromos ellátásának kiépítése

Minimális költségű feszítőfák Lényegében 3 főbb módszert ismerünk Prim Kruskal Borovka Ezek egy közös absztrakt ősből, a piros-kék eljárásból származtathatók.

A piros-kék eljárás Kék szabály: Piros szabály: válasszunk X csúcshalmazt, amiből nem vezet ki kék él az X-ből kivezető legkisebb súlyú élt színezzük kékre Piros szabály: válasszunk egy egyszerű kört amiben nincs piros él a legnagyobb súlyú színtelen élt színezzük pirosra

Példa kék szabályra

Példa kék szabályra

Példa piros szabályra

Példa piros szabályra

Kruskal algoritmus Kezdetben n db (egy pontból álló) kék fa van Két lehetőség a kiválasztott élre: - ha két különböző kék fában vannak a végpontjai kékre színezzük - ha ugyanabban akkor pirosra Nagyon mohó

A Prim algoritmus a kék szabály véges sok alkalmazásával ér célt egyetlen fát tartunk nyilván, ami folyamatosan növekszik a Dijkstra-algoritmushoz „hasonló”

Prim algoritmus X={ }

Prim algoritmus X={ }

Prim algoritmus X={1}

Prim algoritmus X={1,2}

Prim algoritmus X={1,2,5 }

Prim algoritmus X={1,2,5,4 }

Prim algoritmus X={1,2,5,4,3 }

Prim algoritmus X={1,2,5,4,3,6 }

A Prim algoritmus műveletigénye

A Prim algoritmus műveletigénye A prioritásos sor megvalósítása rendezetlen tömbbel: a lineáris idejű a keresés miatt => T(n)=σ(n*n)= σ(n2) Kupaccal: a keresés log(n)-es, a fenntartás e*log(n)-es => T(n)= σ(n+e)*log(n)-es Sűrű gráf esetén: e~n => σ(n2*log(n))> σ(n2)

Mesterséges intelligencia: az A* A mélységi és szélességi bejárás ötvözéséből jön létre Szükség van egy heurisztikus függvényre, amely előre „megbecsüli” a kiterjesztendő pont és cél várható távolságát Legjobbat először keresés

Legjobbat először keresés

Vége Köszönöm a figyelmet!