Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaMarika Vassné Megváltozta több, mint 9 éve
1
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
2
Tartalomjegyzék Áttekintés röviden FEM Framework
Kétirányú Dijkstra algoritmus SegTable index bevezetése optimalizációhoz
3
Á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
4
Á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
5
Á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 ...
6
Á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
7
FEM framework
8
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
9
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
10
FEM framework
11
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
12
FEM framework Nem csak select, expand, merge
Feladatfüggő operátorok a FEM-ben Ezek műveletigénye viszont elhanyagolható
13
FEM framework
14
Kétirányú Dijkstra algoritmus
15
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
16
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
17
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?
18
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
19
SegTable index bevezetése optimalizációhoz
20
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
21
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
22
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
23
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!
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.