A legrövidebb útkeresés relációs megközelítése nagyméretű gráfokban

Slides:



Advertisements
Hasonló előadás
Készítette: Kosztyán Zsolt Tibor
Advertisements

GRIN: Gráf alapú RDF index
A Floyd-Warshall algoritmus
A Dijkstra algoritmus.
Készítette: Kosztyán Zsolt Tibor
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
Készítette: Major Máté
Készítette: Mester Tamás METRABI.ELTE.  Egy bemeneten kapott szöveg(karakter sorozat) méretét csökkenteni, minél kisebb méretűre minél hatékonyabb algoritmussal.
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.
Streaming Algorithms for k-core Decomposition. K-mag dekompozíció Maximális részgráf, amiben minden csúcshoz legalább k részgráfbeli csúcs csatlakozik.
Erősen összefüggő komponensek meghatározása
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
Készítette Schlezák Márton
MI 2003/ Alakfelismerés - még egy megközelítés: még kevesebbet tudunk. Csak a mintánk adott, de címkék nélkül. Csoportosítás (klaszterezés, clustering).
Adatbázis rendszerek II.
Készítette: Pető László
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ő:
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.
Trajectori Adatok feldolgozása DirectionPreserving Trajectory Simplification (Cheng Long, Raymond ChiWing Wong, H. V. Jagadish) Forrás: Készítette: Béleczki.
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.
Az SQL nyelv alapjai.
Gráf szélességi bejárása
Dijkstra-algoritmus ismertetése
Problémás függvények : lokális optimalizáció nem használható Globális optimalizáció.
Optimalizáció modell kalibrációja Adott az M modell, és p a paraméter vektora. Hogyan állítsuk be p -t hogy a modell kimenete az x bemenő adatokon a legjobban.
Felhasználók és jogosultságok
Készítette: Tóth Ervin
Gráf Szélességi bejárás/keresés algoritmusa
A Dijkstra algoritmus.
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.
Előadó: Nagy Sára Mesterséges intelligencia Kereső rendszerek.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
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
Adatbázisok tervezése, megvalósítása és menedzselése
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,
Az algoritmuskészítés alapjai
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.
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
Kruskal-algoritmus.
Business Mathematics A legrövidebb út.
Algoritmus és adatszerkezet Tavaszi félév Tóth Norbert1 Floyd-Warshall-algoritmus Legrövidebb utak keresése.
Bellmann-Ford Algoritmus
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Gráfok ábrázolása teljesen láncoltan
Útkeresések.
Computing n-Gram Statistics in MapReduce Klaus Berberich, Srikanta Bedathur EDBT/ICDT 2013 Joint Conference.
Diszjunkt halmazok adatszerkezete A diszjunkt halmaz adatszerkezet diszjunkt dinamikus halmazok S={S 1,…,S n } halmaza. Egy halmazt egy képviselője azonosít.
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.
Automatikus fizikai tervezési javaslatok XML adatbázisokhoz Balogh Bernadett Kresz Marcell Cseh Tamás.
Fájlszervezés Adatbázisok tervezése, megvalósítása és menedzselése.
Prim algoritmus Algoritmusok és adatszerkezetek 2. Újvári Zsuzsanna.
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.
Adatbázisszintű adatmodellek
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.
A Dijkstra algoritmus.
Gráfok szélességi bejárása Dijkstra algoritmus
Dijkstra algoritmusa: legrövidebb utak
Dijkstra algoritmusa: legrövidebb utak
Dijkstra algoritmusa: legrövidebb utak
2-3-fák A 2-3-fa egy gyökeres fa az alábbi tulajdonságokkal:
Előadás másolata:

A legrövidebb útkeresés relációs megközelítése nagyméretű gráfokban Készítette: Morvai Mihály, Szücs Ádám, Verő Anita Cikk szerzője: Jun Gao, Ruoming Jin, Jiashuai Zhou, Jeffrey Xu Yu, Xiao Jiang, Tengjiao Wang Cikk eredeti címe: Relational Approach for Shortest Path Discovery over Large Graphs

Tartalomjegyzék Áttekintés röviden FEM Framework Kétirányú Dijkstra algoritmus SegTable index bevezetése optimalizációhoz

Áttekintés Gráfok hirtelen növekedése → elkerülhetetlen a gráfok lemezen tárolása Relációs FEM framework RDB környezetben Kétirányú Dijkstra algoritmus SegTable index bevezetése optimalizációhoz

Áttekintés Miért van erre szükség? Jelenlegi lemez-alapú technológiák: Drága az eredeti gráf dinamikus módosítása Nem lehet elérni a gráfokat egyszerűen (hiányzó sémák és index mechanizmusok) Hadoop és MapReduce – elosztott fájlrendszereken

Áttekintés RDB – ígéretes infrastruktúra a gráf tárolása, módosítása szempontjából Ezért RDB táblákban tároljuk a gráf és a futási idejű adatokat Ezeken csak korlátozott műveleteket hajthatunk végre Projekció Szelekció Összekapcsolás ...

Áttekintés Két fontos SQL feature-t használunk Window function: Aggregált eredmény Viszont nem csak egy eredmény egy sorhalmazhoz Táblán partíciókat (window) képzünk és az aggregáló fv. eredménye csak ezektől függ Nem tudja helyettesíteni a Group By (teljes tábla) Merge Statement: Forrásból beszúrás, frissítés Lényegében insert, delete, update Végrehajtása gyorsabb, mint a hagyományos DML műveletek

FEM framework

FEM framework Gráfelméleti alapismeretek Sok gráfkereső algoritmus hasonló egymáshoz Pl.: legrövidebb útkeresés – egy csúcsból elérhető-e egy másik Mivel általában nagy a keresési tér, ezért mohó ötleteken alapulnak Ezek a mohó ötletek átültethetők egy általános iteratív feldolgozó struktúrára

FEM framework Legyen A a bejárt csúcsok halmaza, Ak a k. iterációs lépés utáni állapot. Legyen F a határcsúcsok halmaza Legyen E a kiterjesztett csúcsok halmaza

FEM framework

FEM framework – Dijkstra alg.-ra  csúcsot megjelölünk d2s és f értékekkel Kezdetben s.d2s = 0 és f = False Ezután elkezdjük az iteratív útkiterjesztést a célcsúcs felé Minden lépésben u csúcs: Minimális d2s és f = False u.f = True, u-t kiterjesztjük, a kapott csúcsokat az eddigi bejárt csúcsokkal egybevonjuk

FEM framework Nem csak select, expand, merge Feladatfüggő operátorok a FEM-ben Ezek műveletigénye viszont elhanyagolható

FEM framework

Kétirányú Dijkstra algoritmus

Kétirányú Diskstra Tipikus optimalizációs lépés a keresési tér csökkentés FEM-ben: a meglátogatott csúcsok számának minimalizálása Ehhez a kétirányú Dijkstra alg.-ot ültetjük FEM-be Csökkenti F-, E- és M-operátorok számolási költségeit

Kétirányú Diskstra Megpróbál sok adatot vizsgálni, a keresési teret redukálni Az utat megtalálhatjuk a startból (s) és célból (t) egyaránt Kiválasztásnál nem csak egy csúcs Ez „RDB-barát” több csúcs egy művelet elvégzése alatt így kisebb I/O költség az egyes csúcsokra

Kétirányú Diskstra Kezdetben azok a határcsúcsok kerülnek kiválasztásra, ahol d2s = mind2s és f = False Szükség van d2t és b adatokra is a csúcsokhoz Kiválasztunk t csúcs felől is Abba az irányba terjesztünk ki, amelyik irányba kevesebb határcsúcs van Hogyan terminál az algritmus?

Kétirányú Diskstra Vezessük be lf és lb változókat A minCost a legrövidebb távolság s és t között Legrövidebb: minCost  lf + lb Nálunk: MinCost a min. d2s és d2t összege lf a min. d2s lb a min. d2t Ezekkel eldönthető, hogy terminál vagy sem

SegTable index bevezetése optimalizációhoz

SegTable index bevezetése Az előbbi algoritmus csúcshalmazokon megy végig A műveletek száma még mindig nagy, bár csökkent Bevezetjük a SegTable indexet Megőrzi az előre kiszámított legrövidebb szakaszokat Ezeket felhasználjuk részcsúcsok kiválasztásához, jövőbeni kiterjesztésekhez Ezzel próbáljuk csökkenteni az iterációk számát a keresési tér minimális növekedésével

SegTable index bevezetése Legrövidebb szakaszok? Kisebb súlyú élek, nagyobb esély Egy adott küszöbnél nem hosszabb távolságú „legrövidebb” szakaszokat kiszámolhatjuk Ezeket tároljuk el a SegTable táblában Tehát a SegTable valójában a legrövidebb részút indexe Ezeknek a szakaszoknak nagyobb az esélye bent lenni a legrövidebb útban

SegTable index bevezetése Szelektív útvonal kiterjesztés: a SegTable szakaszai alapján válasszunk ki csúcsokat kiterjesztésre Beépítjük a kétirányú Dijkstra algoritmusba Műveletigénye legfeljebb olyan lesz, mint a korábbi algoritmusé Viszont a keresési tér növekszik, mérete függ a küszöbtől

Részletesebb leírást, eredményeket a cikkben olvashattok! Köszönöm a figyelmet! Részletesebb leírást, eredményeket a cikkben olvashattok!