Gráfalgoritmusok és hatékony adatszerkezetek szemléltetése

Hasonló dokumentumok
GRÁFALGORITMUSOK ÉS HATÉKONY

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Algoritmuselmélet 11. előadás

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

Gráfalgoritmusok ismétlés ősz

A gráffogalom fejlődése

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

Diszkrét matematika 2. estis képzés

Diszkrét matematika II. gyakorlat

Euler tétel következménye 1:ha G összefüggő síkgráf és legalább 3 pontja van, akkor: e 3

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

Elmaradó óra. Az F = (V,T) gráf minimális feszitőfája G-nek, ha. F feszitőfája G-nek, és. C(T) minimális

24. MINIMÁLIS KÖLTSÉGŰ UTAK I.

A számítástudomány alapjai

Diszkrét matematika 2. estis képzés

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Diszkrét matematika 2.C szakirány

Podoski Péter és Zabb László

Adatszerkezetek II. 2. előadás

Ionogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása

GráfRajz fejlesztői dokumentáció

Gráfelméleti alapfogalmak

Diszkrét matematika 2.C szakirány

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

Diszkrét matematika 1. estis képzés

22. GRÁFOK ÁBRÁZOLÁSA

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

Gráfok bejárása. Szlávi Péter, Zsakó László: Gráfok II :17

DISZKRÉT MATEMATIKA 2 KIDOLGOZOTT TÉTELSOR 1. RÉSZ

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

Algoritmusok bonyolultsága

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Diszkrét matematika 2.C szakirány

Algoritmuselmélet zárthelyi (BSc képzés) április 24.

Adatszerkezetek 2. Dr. Iványi Péter

Diszkrét matematika 2. estis képzés

angolul: greedy algorithms, románul: algoritmi greedy

Gráfok 1. Tárolási módok, bejárások. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Algoritmusok és adatszerkezetek II.

Diszkrét matematika 2.C szakirány

SZENZOROKRA ÉPÜLŐ ADAPTÍV RENDSZERMODELL

ELTE IK Esti képzés tavaszi félév. Tartalom

SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Adott: VPN topológia tervezés. Költségmodell: fix szakaszköltség VPN végpontok

Tuesday, March 6, 12. Hasító táblázatok

Hálózatszámítási modellek

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa:

Diszkrét matematika 2. estis képzés

Gráfalgoritmusok: összefüggőség, párosítás páros gráfban

Diszkrét matematika 2.

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Adatszerkezetek 7a. Dr. IványiPéter

Diszkrét matematika 2 (C) vizsgaanyag, 2012 tavasz

Algoritmusok és adatszerkezetek gyakorlat 07

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Egyesíthető prioritási sor

Matematika. Számonkérés. Írásbeli vizsga januárban. 1. konzultáció. Irodalom

Diszkrét matematika 2.C szakirány

Algoritmuselmélet 7. előadás

23. SZÉLESSÉGI BEJÁRÁS

Algoritmuselmélet 18. előadás

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Gráfalgoritmusok 3 Néhány probléma modellezése gráfokkal 3 Alapfogalmak, jelölések 7 Gráfok ábrázolása 9 Bejárási stratégiák, szélességi bejárás 15

Adatszerkezetek II. 1. előadás

Gráfok. Programozás II. előadás. Szénási Sándor.

A TANTÁRGY ADATLAPJA

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 1/363

GRÁFOK, GRÁF ALGORITMUSOK. Jegyzet

Programozás alapjai II. (7. ea) C++

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

2: Minimális feszítőfák, legrövidebb utak. HálózatokII, 2007

10. Gráf absztrakt adattípus, gráfok ábrázolása

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Funkcionális Nyelvek 2 (MSc)

Adatszerkezetek és algoritmusok

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

Gráfelmélet jegyzet 2. előadás

Generikus osztályok, gyűjtemények és algoritmusok

Algoritmusok és adatszerkezetek II.

Gráfalgoritmusok Legrövidebb utak egy forrásból Dijkstra algoritmus Bellman-Ford algoritmus 31

2. Visszalépéses keresés

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Adatszerkezetek II. 3. előadás

Elemi adatszerkezetek

Interaktív, grafikus környezet. Magasszintû alkalmazási nyelv (KAL) Integrált grafikus interface könyvtár. Intelligens kapcsolat más szoftverekkel

Javító és majdnem javító utak

Átírás:

Gráfalgoritmusok és hatékony adatszerkezetek szemléltetése Készítette: Bognár Gergő Témavezető: Veszprémi Anna Eötvös Loránd Tudományegyetem Informatikai Kar Algoritmusok és Alkalmazásaik Tanszék Budapest, 2012.

A dolgozat témája Gráfalgoritmusok Páros gráfok és maximális párosítás Minimális költségű feszítőfa illetve feszítő erdő keresés Grafikus felület Gráf megjelenítés, szerkesztés Algoritmus szemléltetés Adatszerkezetek bemutatása Célkitűzés Szemléltetés, bemutatás Tanulási segédeszköz

A dolgozat témája Gráfalgoritmusok Páros gráfok és maximális párosítás Minimális költségű feszítőfa illetve feszítő erdő keresés Grafikus felület Gráf megjelenítés, szerkesztés Algoritmus szemléltetés Adatszerkezetek bemutatása Célkitűzés Szemléltetés, bemutatás Tanulási segédeszköz

A dolgozat témája Gráfalgoritmusok Páros gráfok és maximális párosítás Minimális költségű feszítőfa illetve feszítő erdő keresés Grafikus felület Gráf megjelenítés, szerkesztés Algoritmus szemléltetés Adatszerkezetek bemutatása Célkitűzés Szemléltetés, bemutatás Tanulási segédeszköz

Páros gráfok témakör Párosság vizsgálata Csúcsok felosztása, pirosra és kékre színezése Alapja: szélességi bejárás Sor adatszerkezet Magyar módszer Maximális párosítás keresése páros gráfban Ötlet: párosítás növelése javító úttal Alternáló erdő építés Szélességi bejárás speciális alkalmazása Sor adatszerkezet

Páros gráfok témakör Párosság vizsgálata Csúcsok felosztása, pirosra és kékre színezése Alapja: szélességi bejárás Sor adatszerkezet Magyar módszer Maximális párosítás keresése páros gráfban Ötlet: párosítás növelése javító úttal Alternáló erdő építés Szélességi bejárás speciális alkalmazása Sor adatszerkezet

Minimális költségű feszítőfa témakör Piros-kék eljárás Piros és kék szabály Kruskal algoritmus Mohó színezési stratégia, legkisebb súlyú színtelen él színezése Kék fák, diszjunkt halmaz műveletek Unió-Holvan adatszerkezet Prim algoritmus Mohó stratégia, minden lépésben a kék szabály alkalmazása Csúcsok aktuális erdőtől vett távolsága Kupac adatszerkezet

Minimális költségű feszítőfa témakör Piros-kék eljárás Piros és kék szabály Kruskal algoritmus Mohó színezési stratégia, legkisebb súlyú színtelen él színezése Kék fák, diszjunkt halmaz műveletek Unió-Holvan adatszerkezet Prim algoritmus Mohó stratégia, minden lépésben a kék szabály alkalmazása Csúcsok aktuális erdőtől vett távolsága Kupac adatszerkezet

Minimális költségű feszítőfa témakör Piros-kék eljárás Piros és kék szabály Kruskal algoritmus Mohó színezési stratégia, legkisebb súlyú színtelen él színezése Kék fák, diszjunkt halmaz műveletek Unió-Holvan adatszerkezet Prim algoritmus Mohó stratégia, minden lépésben a kék szabály alkalmazása Csúcsok aktuális erdőtől vett távolsága Kupac adatszerkezet

Gráfok tulajdonságai Vizsgált gráfok Irányítatlan, egyszerű, élsúlyozott vagy élsúly nélküli gráfok Csúcsok címkézése egyedi sorszámmal Élek súlyozása egész számmal Algoritmusok speciális viselkedése Nem összefüggő gráfokra is működő algoritmusváltozatok Szélességi bejárás Prim algoritmus

Gráfok tulajdonságai Vizsgált gráfok Irányítatlan, egyszerű, élsúlyozott vagy élsúly nélküli gráfok Csúcsok címkézése egyedi sorszámmal Élek súlyozása egész számmal Algoritmusok speciális viselkedése Nem összefüggő gráfokra is működő algoritmusváltozatok Szélességi bejárás Prim algoritmus

Program és kód Környezet, futtatás Java virtuális gép JAR archívum (graf.jar) Indítás virtuális géppel, vagy appletként Fejlesztés Objektumorientált, eseményvezérelt Grafikus felület Logikailag egy végrehajtási szál Csomagok, osztályok, erőforrásfájlok

Program és kód Környezet, futtatás Java virtuális gép JAR archívum (graf.jar) Indítás virtuális géppel, vagy appletként Fejlesztés Objektumorientált, eseményvezérelt Grafikus felület Logikailag egy végrehajtási szál Csomagok, osztályok, erőforrásfájlok

Csomagok

Grafikus felület A grafikus felület osztályai

Belső ábrázolás Gráfok, algoritmusok és adatszerkezetek osztályai

Algoritmus osztály

Példa: Kruskal osztály /** Az algoritmus léptetése. */ @Override protected String internalstep(){ String resulttext; if(edge < edges.size()){ Edge e = edges.get(edge); Graph.Vertex u = e.edge.getvertexu(); Graph.Vertex v = e.edge.getvertexv(); resulttext = java.text.messageformat.format(stepmessage, u.tostring(), v.tostring()); if(set.find(u)!= set.find(v)){ e.edge.set(graph.color.blue, 0, Graph.Animation.NORMAL); set.union(u, v); }else{ e.edge.set(graph.color.red, 0, Graph.Animation.NORMAL); } ++edge; }else{ result = SUCCESS; resulttext = resultmessage; for(edge e: edges){ if(e.edge.getcolor() == Graph.Color.RED){ e.edge.set(graph.color.gray, 0); } } } return resulttext; }

Fejlesztési lehetőségek Bővíthetőség Mintagráf hozzáadása Algoritmus hozzáadása Adatszerkezet hozzáadása Dokumentáltság Javadoc

Köszönöm a figyelmet!