Gráfok ábrázolása teljesen láncoltan

Slides:



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

Sor láncolt ábrázolással
Nevezetes algoritmusok
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Tranzitív lezárt és Warshall algoritmus
Készítette: Major Máté
Adatszerkezetek Az adatokat két fő csoportra oszthatjuk: egyszerű és összetett adatok.  Az egyszerű adatot egy érték jellemez, tovább nem bontható. (szám,
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
AVL-fa építése.
Minimális költségű feszítőfák
Gráfok szélességi bejárása
A körlevél készítésének menete
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
AVL fák.
ELTE Szlávi-Zsakó: Programozási alapismeretek 8.1/ Kiválogatás Specifikáció:  Bemenet: N:Egész, X:Tömb[1..N:Valami]
„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.
Táblázat módosítása.
A táblázatok formázása Készítette: Gombkötő Alexandra Felkészítő tanár: Györe Mihály József Attila Gimnázium, 6900 Makó Csanád vezér tér 6.
Zsombori Balázs Neumann János Számítástechnikai SZKI
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.
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Készítette: Kosztyán Zsolt Tibor
Nevezetes algoritmusok Beszúrás Van egy n-1 elemű rendezett tömbünk. Be akarunk szúrni egy n-edik elemet. Egyik lehetőség, hogy végigszaladunk a tömbön,
Gráf szélességi bejárása
Egyszerű gráfok ábrázolása Pascalban:
Gráfelmélet: Fák.
Adatszerkezetek 1. előadás
Gráf Szélességi bejárás/keresés algoritmusa
Fák.
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:
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.
Gráfok 1. Szlávi Péter ELTE IK Média- és Oktatásinformatika Tanszék
A feladat : Építsünk AVL-fát a következő adatokból:100,170,74,81,136,185,150,122,52,190,144 (Az AVL-fa olyan bináris keresőfa, amelynek minden csúcsára.
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
BINÁRIS FA Definició: A fa olyanösszefüggő gráf, amelyben nincs kör
Példa kettő-három fa felépítésére - törlés művelet Készítette : Krizsai Petra
Háló- (gráf-) algoritmusok
Algoritmus és adatszerkezet Tavaszi félév Tóth Norbert1 Floyd-Warshall-algoritmus Legrövidebb utak keresése.
Fórum használata A fórum főoldala alapállapotban.
Útkeresések.
Bináris kereső fák Itterátorok.
Gazdasági informatikus - Szövegszerkesztés 1 Bekezdések formázása 2.
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ő.
Algoritmusok és adatszerkezetek
Gráfalgoritmusok Szélességi bejárás.
Fájlszervezés Adatbázisok tervezése, megvalósítása és menedzselése.
Készítette : Giligor Dávid Neptun : HSYGGS
(Bináris) Kupac (heap) adattípus
Gráf Szélességi bejárás Készítette: Giligor Dávid Neptun : HSYGGS.
KÉSZÍTETTE: KOVÁCSICS KRISZTIÁN
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.
NJSzT Nemes Tihamér Országos Középiskolai Sámítástechnikai Tanulmányi Verseny.
A Dijkstra algoritmus.
BFák Kiegyensúlyozott keresőfák
Algoritmusok és Adatszerkezetek I.
Dinamikus adatszerkezetek
Piros-fekete fák Beszúrás, ill. törléskor a fa elveszítheti az egyensúlyát. A piros-fekete fák: az egyensúly megtartását biztosítják. +1 bit információ.
Algoritmusok és Adatszerkezetek I.
Mesterséges intelligencia
Algoritmusok és Adatszerkezetek I.
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Gráfok - 1 Definíció: Irányított gráf (digráf) G=(V,E) rendezett pár.
Gráfalgoritmusok G=(V,E) gráf ábrázolása
2-3-fák A 2-3-fa egy gyökeres fa az alábbi tulajdonságokkal:
Előadás másolata:

Gráfok ábrázolása teljesen láncoltan Készítette: Mihály Balázs Attila (szakall@elte.hu)

Gráf ábrázolási módjai: - Mátrix (csúcsmátrix) - Gyors elérhetőség - Ritka gráf esetén sok fölösleges adat - Optimális sűrű, telített gráfok tárolására - Éllista - Élek lassabban érhetőek el - Kevés fölösleges adadt - Optimális ritka gráfok tárolására - Teljesen láncolt - Csúcsok és élek lassan érhetőek el - Nincs fölösleges adat - Optimális sűrűn módosított gráfok tárolására

Élbeszúrás műveletigénye (a továbbiakban egyszerű, irányított gráfra) Mátrixos ábrázolás esetén az aktuális mátrixelem módosítása. => Egy adattag módosítása O(1) műveletigénnyel Éllistás ábrázolás esetén az aktuális csúcshoz tartozó éllistába elem beszúrása. => Beszúrás rendezetlen listába O(1) műveletigénnyel Teljesen láncolt ábrázolás esetén meg kell keresni a csúcslistában az él kiindulópontját, és a hozzá tartozó éllistába beszúrni a végpontot. => Keresés listában és beszúrás listába O(n) műveletigénnyel

Éltörlés műveletigénye Mátrixos ábrázolás esetén ugyanaz, mint beszúrásnál: az aktuális mátrixelem módosítása. => Egy adattag módosítása O(1) műveletigénnyel Éllistás ábrázolás esetén az aktuális csúcshoz tartozó éllistából elem törlése. => Keresés és törlés listából O(n) műveletigénnyel Teljesen láncolt ábrázolás esetén meg kell keresni a csúcslistában az él kiindulópontját, és a hozzá tartozó éllistából törölni a végpontot. => Keresés listában és törlés listából O(n) műveletigénnyel

Csúcsbeszúrás műveletigénye Mátrixos ábrázolás esetén a beszúrandó csúcs mögül mindent alrébb kell tolni, azaz az egész mátrix megváltozik (esetleg a mátrix méretét is növelni kell). => egy üres sor és oszlop az új csúcsnak, a csúcs mögötti értékek alrébb csúsztatása, összesen O(n2) műveletigény (Meg lehet csinálni, hogy előre elég nagy mártixot veszünk föl, melyben az összes lehetséges csúcs helyét lefoglaljuk, de ez bizonyos esetekben fölöslegesen fogal helyet. Ekkor ez a művelet O(1) lépésből áll.) Éllistás ábrázolás esetén a csúcsok tömbjét kell bővíteni (esetleg a tömb méretét módosítani). => a csúcs mögötti elemek alrébb csúsztatása O(n) műveletigénnyel (Esetleg a csúcstömböt szintén fölvehetjük előre, ekkor ez is O(1) lépés) Teljesen láncolt ábrázolás esetén a csúcslistába kell szúrni egy elemet. => beszúrás listába O(1) műveletigénnyel

Csúcstörlés műveletigénye Fontos, hogy a törlendő csúcsba vezető éleket is törölnünk kell a gráfból. Mátrixos ábrázolás esetén a törlendő csúcs mögül előrébb kell hozni a többi sort, oszopot. Az csúcsba vezető élek keresése és törlése a többi csúcsnál. => csúcs mögötti értékek előrébb csúsztatása, összesen O(n2) műveletigény (Élek keresése a többi csúcsnál és törlés: O(n) lépés) (A kevésbé helytakarékos esetben inaktiváljuk a csúcsot: O(1)) Éllistás ábrázolás esetén a csúcsok tömbjéből elem törlése (mögötte lévő elemek mozgatása), valamint élek keresése és törlése. => a csúcs mögötti elemek előrébb csúsztatása O(n) műveletigénnyel, minden csúcsnál él keresése (és törlése) O(n2) (Esetleg a csúcs inaktiválása O(1) lépés) Teljesen láncolt ábrázolás esetén törlés listából és az élek törlése => törlés listából O(n), élek keresése és törlése O(n2) műveletigénnyel

A műveletigények összefoglalva Csúcsok, élek elérése A gráfon végzett algoritmusok alkalmazásánál fontos a gráf egy csúcsának, élének elérési műveletigénye.

A teljesen listás ábrázolásról részletesebben Egy jó implementálási mód, ha a gráfot fejelemes listák listájaként ábrázoljuk. A fejelem tartalmaz egy csúcsot, a lista többi tagja pedig a fejelemben lévő csúcsból kiinduló élek végpontjait.

Példa teljesen láncolt ábrázolásra Egy, a bal oldalon látható irányított gráfot a jobb oldali listaszerkezetben ábrázolhatjuk.

Csúcs beszúrása

Él beszúrása

Csúcs törlése

Él törlése

A gráfelemek elérésének műveletigénye A listákban szereplő műveletigényeket javíthatjuk, ha minden lista helyett bináris keresőfát - mondjuk AVL fát - használunk. Ekkor az AVL fa műveletei alapján az eléréséhez már csak O(log2n) lépésre van szükség, a beszúrás és a törlés mind a csúcsok és élek esetén ezek szerint módosul. (A műveleteket könnyen leírhatjuk, ha az imént bemutatott listaműveleteket lecseréljük az AVL fa műveleteire)

Példa AVL fával ábrázolt gráfra

A csúcsokhoz tartozó éleket tartalmazó fák

A szakall.web.elte.hu/graf címről letölthetőek: - a bemutató fóliái - forráskód (tesztprogrammal) listával ábrázolt gráfhoz (c++) - forráskód (tesztprogrammal) AVL fával ábrázolt gráfhoz (c++)