R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský

Hasonló dokumentumok
Térinformatikai adatszerkezetek

Térinformatikai adatszerkezetek

17. A 2-3 fák és B-fák. 2-3 fák

file:///d:/okt/ad/jegyzet/ad1/b+fa.html

Algoritmusok és adatszerkezetek gyakorlat 07

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

Adatszerkezetek 2. Dr. Iványi Péter

Fák Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

7 7, ,22 13,22 13, ,28

file:///d:/apa/okt/ad/jegyzet/ad1/b+fa.html

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

Elemi adatszerkezetek

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

Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia

Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén

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

V. Kétszemélyes játékok

Elengedhetetlen a játékokban, mozi produkciós eszközökben Nélküle kvantum hatás lép fel. Az objektumok áthaladnak a többi objektumon

Rendezések. Összehasonlító rendezések

Algoritmuselmélet 2. előadás

ELEMI PROGRAMOZÁSI TÉTELEK

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

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

DIGITÁLIS TEREPMODELL A TÁJRENDEZÉSBEN

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

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

Kereső algoritmusok a diszkrét optimalizálás problémájához

Adatszerkezetek 2. Dr. Iványi Péter

Adatszerkezetek 1. előadás

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Gyakori elemhalmazok

Egyirányban láncolt lista

6. Függvények. 1. Az alábbi függvények közül melyik szigorúan monoton növekvő a 0;1 intervallumban?

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

10. előadás Speciális többágú fák

Algoritmusok és adatszerkezetek 2.

Leggyakrabban használt adatbányászási technikák. Vezetői információs rendszerek

Adatszerkezetek Bevezetés Adatszerkezet Adatszerkezet típusok Műveletek Bonyolultság

Adatbáziskezelés. Indexek, normalizálás NZS 1

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR

Struktúra nélküli adatszerkezetek

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

Kereső algoritmusok a diszkrét optimalizálás problémájához

Haladó rendezések. PPT 2007/2008 tavasz.

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

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Gyakori elemhalmazok kinyerése

JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN

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

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Fa (Tree): csomópontok (nodes) halmaza, amelyeket élek (edges) kötnek össze, és teljesülnek az alábbi feltételek:

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

Web-programozó Web-programozó

Gépi tanulás a gyakorlatban. Kiértékelés és Klaszterezés

Adaptív dinamikus szegmentálás idősorok indexeléséhez

Adatbányászat: Klaszterezés Haladó fogalmak és algoritmusok

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

Gépi tanulás a gyakorlatban. Lineáris regresszió

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

Térinformatikai algoritmusok Elemi algoritmusok

Számítógép és programozás 2

TÉRINFORMATIKAI ALGORITMUSOK

E-tananyag Matematika 9. évfolyam Függvények

Hierarchikus adatszerkezetek

Bináris keresőfa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor

15. A VERSENYRENDEZÉS

Amortizációs költségelemzés

Általános algoritmustervezési módszerek

Programozási segédlet

GráfRajz fejlesztői dokumentáció

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Algoritmusok és adatszerkezetek I. 1. előadás

Érdekes informatika feladatok

10. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 28.

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

Algoritmusok és adatszerkezetek II.

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

Adatbányászati szemelvények MapReduce környezetben

TÉRINFORMATIKAI ALGORITMUSOK

Programozási technológia

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Térinformatikai algoritmusok Elemi algoritmusok

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

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

Adatmodellek. 2. rész

Hálózatok II 2005/ : Peer-To-Peer Hálózatok II

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

ADATBÁZIS-KEZELÉS ALAPOK I.

Földfelszín modellezés

10. Koordinátageometria

A Jövő Internete - általános tervezési ajánlások

Panorámakép készítése

A LEGKÖZELEBBI SZOMSZÉD ANALÍZISHEZ SZÜKSÉGES TERÜLETI ADATBÁZISOK KIALAKÍTÁSÁNAK MÓDSZERTANI KÉRDÉSEI

Matematikai modellezés

Termék modell. Definíció:

Átírás:

R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský Recenzió: Németh Boldizsár Térbeli indexelés Az adatszerkezetek alapvetően fontos feladata, hogy a megadott feltételeknek megfelelő adatokat hatékonyan vissza lehessen nyerni. Egy nagyobb adathalmaz esetében nem használható az a triviális módszer, hogy az adatokat egyenként végignézzük. Adottak térbeli objektumok, amiket hatékonyan szeretnénk térbeli keresésekkel megtalálni. Például a következő keresések gyakoriak: A tartomány-keresés során egy adott (n-dimenziós) halmazon belül keresünk pontokat. Ez könnyebb feladat, ha az adott halmaz egy intervallum. A k-nn (k nearest neighbour) keresés során a kijelölt ponthoz legközelebbi k db objektumot keressük. 1. ábra Egy k-nn keresés. A sima vonal k=3 esetét, a szaggatott a k=5 esetét mutatja

top-k: Adott értékelési függvények alapján keressük a k legtöbbre értékelt pontot. Az értékelési függvények fuzzy függvények, vagyis 0 és 1 közötti értékre képeznek le lineáris módon. Ezeknek a súlyozott átlagát vesszük, és ez alapján szeretnénk megtalálni a k db legkedvezőbb objektumot. Példa: A felhasználó egy 50000 eurós ár alatti lakást szeretne, lehetőleg második, harmadik vagy negyedik emeleten. A lehetséges lakásokat most az ár és az emelet kétdimenziós terében tároljuk. 2. ábra Fuzzy függvények az ár és emelet értékének megállapítására

R-fák Cél: Egy n dimenziós térben pontok megtalálása bizonyos feltételek alapján. Gyorsan lehet válaszolni olyan kérdésekre, mint Keresd meg az összes múzeumot 2 km-es körzetben (tartomány keresés), vagy Hol van a legközelebbi benzinkút? (1-NN keresés). Az egymáshoz közeli objektumokat csoportokba szervezi és a minimális bennfoglaló intervallumával (2 dimenziós térben téglalapjával) reprezentálja. Ha a keresett tartomány nem metsz egy intervallumot, akkor az általa reprezentált csúcsok nem lehetnek benne a tartományban. A következő szinteken az egymáshoz közeli intervallumokat is csoportosítjuk, és így tovább. Ez a csoportosítási rendszer egy olyan fát alakít ki, amiben a szülő csúcsok szigorúan tartalmazzák a gyermek csúcsokat, de a gyermek csúcsoknak nem kell diszjunktaknak lennie. A keresés egyszerű, a gyökértől indulunk, és figyelmen kívül hagyjuk azokat a farészeket, amikben biztosan nem lehet az eredmény. A beszúrás során a gyökértől lefele haladva valamilyen heurisztika szerint minden szinten eldöntjük, hogy melyik részfába szúrjuk be az objektumot úgy, hogy a lehető legkevésbé kelljen megnagyobbítani az adott intervallumot. Az objektumokat csak levél csomópontokba szúrjuk be. Ha egy levél csúcs megtelik, ketté kell vágni. A kettévágások egészen a gyökérig felterjedhetnek. A törlés során az őscsomópontok intervallumait szűkítjük. Ha egy csomópontnak túl kevés gyermeke lesz, akkor töröljük és az elemeit újra beszúrjuk. A teljes R fát nem kell a memóriában tartani, emiatt különösen jó az adatbázisban történő tárolásra. Minden csomópontot egy lapon tart. A kihívás az R fákkal kapcsolatban az, hogy úgy egyensúlyozzuk ki őket, hogy a fa levelei nagyjából egyforma mélységben legyenek, és az intervallumok ne tartalmazzanak túl sok üres teret, továbbá ne lógjanak túlságosan össze. Mivel ezek az alap R-fában nincsenek specifikálva, ezért ez nem garantál jó teljesítményt.

R * fa Az R* fa egyszerre éri el a csomópontjai között az átfedés minimalizálását és a csomópontok területének csökkentését a gyors keresés érdekében. A keresésre nagyon hatékony, mert a csomópontok formája közel négyszögletes lesz, minimális területtel. Beszúráskor, amennyiben egy csomópont telítődik, az elemei újra beszúrásra kerülnek a fába. Ez tekinthető egyfajta fokozatos optimalizációnak is, ennek köszönheti az R*-fa a kiegyensúlyozottságát. Azonban, emiatt a csomópontok beszúrása aránylag hosszú ideig tarthat. A keresésé és törlés az R-fához hasonló. Beszúráskor többféle heurisztikát is figyelembe veszünk. 3. ábra Az ábrán jól látszik, hogy az R* fa csomópontjain jól követik az adatpontok sűrűségét.

R + fa Nem tartalmaznak egymást átfedő intervallumokat. Ehelyett egy objektum több intervallumba is be lehet szúrva, ha szükséges. 4. ábra Az ábrán jól látszik, hogy az R + -fa csomópontjai között lehet átfedés. A G csomópont két másik csomópontnak is a gyermekévé válik. Az R + fa nem garantálja, hogy minden csomópont legalább félig teli lesz. Mivel nincsenek egymást átfedő csúcsok, a kereséshez garantáltan csak egy utat kell végigjárni a gyökértől a tartalmazó levélig. Az objektumok duplikációja miatt azonban megnövekedhet az adatszerkezet mérete. A fa karbantartása is bonyolultabb, mint az egyszerű R fa esetében.

R ++ fa Az R ++ fa, mint a nevéből sejteni lehet, az R + fán alapul. A kutatók fő célja a hatékony top-k keresés támogatása volt, melyet az R + fák csak rossz hatékonysággal biztosítják. Az R ++ fa csak pontszerű objektumokat tartalmazhat, szemben az R és R + fákkal. 5. ábra - R ++ fa Egy csomópont egyszerre tárolja a gyermekei teljes kitöltő intervallumát (br, folytonos vonal) és minimális intervallumát (mbr, szaggatott vonal). Ettől lesz két lapnyi méretű (a lap alatt itt virtuális lapot értünk, vagyis az adattároló rendszer által meghatározott egységnyi adatmennyiséget). Kereséskor csak az első lapot kell olvasni a minimális bennfoglaló intervallumokkal (és a gyermek csúcsok azonosítóival).

A keresés úgy történik, mint az R és R + fák esetén. Beszúráskor a kitöltő intervallumok alapján biztosan tudunk keresni egy olyan levelet, amibe az objektum beszúrható. Ezután megnöveljük a minimális bennfoglaló intervallumot úgy, hogy az új objektum benne legyen. (Mivel az objektum pontszerű, ez megtehető). Ha a levélben már nem fér el az új objektum, akkor a levél szét lesz osztva. Belső csúcsok is szétosztásra kerülhetnek, bár itt az algoritmus kissé komplikáltabb.

Az R ++ fa hatékonysága Az R ++ fa lényegesen jobb az R * fánál tartománykeresésekre, knn és top-k keresésekre, ha az adatok redundánsak és a dimenziók száma alacsony. Négy dimenzió fölött azonban ezt az előnyét elvesztette. Pszeudo-valós adatok esetén az R ++ fa jobb teljesítményt nyújtott top-k keresésekre és ez az előny nem csökkent akkor sem, ha növeltük a vizsgált dimenziók számát. A következő ábrák bemutatják az R, R* és R ++ fák teljesítményét egy olyan mesterséges adathalmazra, ami alacsony dimenziókban magas redundanciával rendelkezik, viszont magas dimenzióban már kevésbé redundáns. A következő ábrák bemutatják az R, R* és R ++ fák teljesítményét egy olyan mesterséges adathalmazra, ami alacsony és magas dimenziószám esetén egyaránt redundáns.

Ilyen esetekben az R ++ -fa egyértelműen jobb teljesítményt mutat még az R*-fánál is négy dimenzióig. Afölött a tartomány-keresésekben továbbra is hatékonyabb, míg a többi keresésben a hatékonysága összehasonlítható az R*-fával. Az alábbi ábrák pszeudo-valós adathalmazokon hasonlítják össze az R, R* és R ++ fák teljesítményét. Az adatok egy ingatlan adatbázisból származnak, és az adott 2-6 tulajdonság alapján súlyozva keressük a 25, illetve 50 legjobb találatot. Az ábrákon látszik, hogy az R ++ -fa minden esetben jobb volt az R*-fánál.

Források (a recenzióhoz): Az eredeti cikk: Martin Šumák, Peter Gurský - R++-tree: an efficient spatial access method for highly redundant point data Az R+ fákat bemutató eredeti cikk: Timos Sellis, Nick Roussopoulos, Christos Faloutsos - The R+-Tree: A Dynamic Index for Multi-Dimensional Objects R fák (wikipédia): http://en.wikipedia.org/wiki/r-tree R + fák (wikipédia): http://en.wikipedia.org/wiki/r%2b_tree R* fák (wikipédia): http://en.wikipedia.org/wiki/r*-tree K-legközelebbi szomszéd keresés (wikipédia): http://en.wikipedia.org/wiki/k-nearest_neighbors_algorithm