Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "A legrövidebb útkeresés relációs megközelítése nagyméretű gráfokban"— Előadás másolata:

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!


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

Hasonló előadás


Google Hirdetések