prostorové spojení se selekcí dle vzdálenosti
DESCRIPTION
Prostorové spojení se selekcí dle vzdálenosti. Jaroslav Dražan. Úvod. Prostorové spojení (spatial distance) Prostorové spojení se selekcí dle vzdálenosti (distance spatial join) Dále jen DSJ Metody zpracování DSJ. Vzdálenost. Prostorové objekty Reálná vzdálenost Dokumenty - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/1.jpg)
Prostorové spojení se selekcí dle vzdálenosti
Jaroslav Dražan
![Page 2: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/2.jpg)
Úvod
• Prostorové spojení (spatial distance)
• Prostorové spojení se selekcí dle vzdálenosti (distance spatial join) – Dále jen DSJ
• Metody zpracování DSJ
![Page 3: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/3.jpg)
Vzdálenost
• Prostorové objekty– Reálná vzdálenost
• Dokumenty– Podobnostní funkce
• Multimédia a obrázky– Podobnostní funkce
• …
![Page 4: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/4.jpg)
Motivace
• Nalézt k nejbližších dokumentů danému dotazu a vrátit je na výstup seřazené dle podobnosti
• Nalézt k nejbližších hospod od daného hotelu
![Page 5: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/5.jpg)
Příklad
SELECT h.jméno, r.jméno
FROM Hotel h, Restaurace r
ORDER BY distance(h.umístění, r.umístění)
STOP AFTER k;
![Page 6: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/6.jpg)
Cíle
• Nalézt požadované výsledky
• Co nejkratší doba vyhodnocení
• Co nejmenší plýtvání systémovými prostředky
• => při spojení chceme nejprve selekcí odstranit nepotřebné údaje
![Page 7: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/7.jpg)
Naivní metody
• Nelze přímo použít, ale zajímavé myšlenky
• Ukazují problémy, na které lze narazit
• Horní mez
• MOK
![Page 8: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/8.jpg)
Horní mez (cuttoff distance )
• Nechť dopředu víme, že k nejbližších hotelů a restaurací jsou od sebe vzdáleny nejvýše Dmax(H,R), pak můžeme všechny vzdálenější objekty vynechat a nespojovat je.
• D záleží na k• Je téměř nemožné získat takovouto funkci • Lze dělat inkrementálně – odhadnu D, pokud
nedostanu k výsledku zvětším -> vede na plýtvání systémovými prostředky
![Page 9: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/9.jpg)
Provádění prostorového spojení
• Standardně 2 fáze– Filtrování (filtering)
• Vyberou se objekty, jejichž MOK se protínají (nebo, v našem případě, splňují, že oba protínají kostku Dmax x Dmax)
– Vylepšení (refinement)• Zjistí se skutečný průnik (platnost podmínky) - >
pokud je neprázdný ( podmínka platí), objekty se spojí
![Page 10: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/10.jpg)
MOK (MBR)
• Minimální ohraničující kostky
• Nelze přímo použít
• Neplatí:– Vzdál(MOK(h1),MOK(r1)) < Vzdál(MOK(h2),
MOK(r2)) -> Vzdál(h1,r1) <Vzdál(h2,r2)
![Page 11: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/11.jpg)
Pokročilé metody
• Indexy z R-stromů– Dvousměrné expanze uzlů– Optimalizované zametání rovinou– Adaptivní vícefázové algoritmy
![Page 12: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/12.jpg)
Potřebné znalosti
• R – stromy– Předek obsahuje syna
• Lemma 1: Pro dva R-stromové indexy R a S platí, Pokud ani r prvek R, ani s prvek S nejsou kořenem, pak:– Vzdál(r,s) >= Vzdál(rodič(r),rodič(s))– Vzdál(r,s) >= Vzdál(r,rodič(s))– Vzdál(r,s) >= Vzdál(rodič(r),s)
![Page 13: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/13.jpg)
Potřebné znalosti
![Page 14: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/14.jpg)
Potřebné znalosti
• Z Lemmatu 1 plyne:• Pokud při procházení od shora dolů R –
stromovými indexy R a S zjistíme, že nelistové uzly r a s jsou od sebe příliš vzdáleny, pak už větve pod r a s nemusíme procházet
• Klíčová vlastnost pro spojování na základě R- stromových indexů
![Page 15: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/15.jpg)
Spojování na základě R-stromů
• Procházíme indexy od shora dolů• Dvojice uzlů dáváme do hlavní fronty• Na začátku ve frontě dvojice kořenů indexů R a S• Pokud dvojice uzlů ve frontě nejsou oba objekty,
pak spárujeme potomky těchto uzlů a dáme je do hlavní fronty
• Pokud je jeden uzel objekt a druhý ne, pak ten objektový spárujeme s potomky toho neobjektového
![Page 16: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/16.jpg)
Spojování na základě R-stromů
• Iteruje se, dokud je fronta neprázdná, nebo dokud to interaktivní uživatel nezastaví
• Procesu párování se říká expanse uzlů (node expansion)
• Pokud narazíme na dvojici objektů, můžeme je spojit a poslat na výstup
![Page 17: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/17.jpg)
Spojování na základě R-stromů
![Page 18: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/18.jpg)
Spojování na základě R-stromů
• Na výstup pouze k objektů (DSJ with stopping cardinality k)
• Navíc vzdálenostní prioritní fronta – pamatuje si nejmenší vzdálenosti mezi k doposud nalezenými objekty Pokud vzdálenost uzlů v hlavní frontě je vetší než maximální vzdálenost ve vzdálenostní frontě -> tyto uzly se nemusí porovnávat a jejich potomci také ne
• Prvek je do vzdálenostní fronty přidán pří expanzi uzlu, pokud vzniká dvojice objektů
![Page 19: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/19.jpg)
Spojování na základě R-stromů
![Page 20: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/20.jpg)
Spojování na základě R-stromů
• Implementace– Hlavní fronta – minimová halda– Vzdálenostní fronta – maximová halda
• Poměrně účinná metoda, obzvláště pro malá k
![Page 21: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/21.jpg)
Jednosměrná X obousměrná expanze
• Jednosměrná expanze– Pokud <r,s> dvojice neobjektových uzlů, pak
do fronty přibudou dvojice <r,spotomek> nebo opačné
• Obousměrná expanze– Přibudou dvojice <rpotomek,spotomek>
![Page 22: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/22.jpg)
Jednosměrná X obousměrná expanze
• Jednosměrná– V každém kroku přibude málo dvojic (omezeno
max. počtem potomků v R- stromu)– Na jeden uzel na disku se šahá vícekrát než by
se muselo– Musí se vyrobit všechny možné páry uzlu r s
potomky uzlu s (nebo naopak)
![Page 23: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/23.jpg)
Spojování na základě R-stromů
• k velké -> ze začátku dlouho velké maximum ve vzdálenostní frontě- > malá účinnost prořezávání
• “Pomalý start algoritmu”• Neuvažovali jsme pomocné techniky
– Clustrování– Bufferování clustrů
• Nebude blíže rozebráno
![Page 24: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/24.jpg)
Obousměrné spojování
• Založeno na obousměrné expanzi• Snaha o minimalizaci přístupu k uzlům R-stromů• Hrozba – kartézský součin potomků uzlů r a s
může produkovat více redundantních dvojic než jednosměrné spojení– Redundantní - nebude se vyhodnocovat, bude oříznuto
později pomocí maxima ze vzdálenostní fronty
![Page 25: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/25.jpg)
Obousměrné spojování
• Funguje jako předchozí algoritmus s obousměrnou expanzí
• Při vyjímání dvojice z hlavní fronty: pokud dvojice objektů, tak se pošlou na výstup, jinak se použije zametací (planesweep) procedura
![Page 26: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/26.jpg)
![Page 27: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/27.jpg)
r1 – kotva, x vybraná dimenze (sweeping direction), qDmax – maximální vybraná vzdálenost
![Page 28: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/28.jpg)
Obousměrné spojování
• Pro malé qDmax složitost O(|r|+|s|).
• Pro velké O(|r|*|s|).
• Platí : osová vzdálenost (r,s) <= reálná vzdálenost(r,s)
• Používá se osová vzdálenost, neboť se snáze počítá než reálná (ta se počítá, až když není vyhnutí)
![Page 29: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/29.jpg)
Zametací osy - intuitivně
• Vybere se vždy ta osa, podél níž jsou ostatní uzly rozprostřeny nejvíce do šířky – Pak vznikne menší počet dvojic se vzdáleností
menší než qDmax
![Page 30: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/30.jpg)
Zametací osy - intuitivně
Pokud by se vybrala osa x, pak se musí reálná vzdálenost počítatpro všechny uzly
![Page 31: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/31.jpg)
Zametací osy - formálně
• Zametací index – metrika– argumenty Dvojice uzlů, qDmax– Vrací nezáporné reálné číslo– Ve vzorci – překlep – to tělo integrálu se má ještě vydělit |s|x resp. |r|
x
![Page 32: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/32.jpg)
Zametací osy - formálně
• Menší zametací index -> méně výpočtů reálných vzdáleností (menší překrytí -> menší integrály)
• Vybere se osa s nejmenším zametacím indexem
• Výpočet není tak složitý – pouze aritmetické operace (navíc se obvykle většina integrálů nuluje)
![Page 33: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/33.jpg)
Zametací osy – motivace
![Page 34: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/34.jpg)
![Page 35: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/35.jpg)
Směr zametání
• Rozlišujeme dopředné a zpětné zametání
• Dopředné– Vzestupně dle dané osy
• Zpětné– Sestupně dle dané osy
![Page 36: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/36.jpg)
Směr zametání
• Projekce uzlů r, s do dané osy– Neprázný průnik, ale projekce r není podmna projekce
s ani naopak (intersected)
– Prázdný průnik (separated)
– r obsahuje s nebo naopak (containment)
• Levý interval kratší než pravý -> dopřené zametání, jinak zpětné
• To by mělo dostat do hlavní fronty dřív bližší dvojice -> větší účinnost prořezávání
![Page 37: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/37.jpg)
Adaptivní Vícefázové Spojení
• Adaptive multi-stage distance join• Nevýhoda předešlého algoritmu:
– qDmax je na začátku nekonečno, může klesat hodně pomalu
– Způsobuje efekt zvaný pomalý start (slow start)• Zhoršuje se s rostoucím k
• k – 100.000 – 90% času programu stráveno na nalezení 1% výsledků (1000)
![Page 38: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/38.jpg)
Adaptivní Vícefázové Spojení
• Budeme navíc používat eDmax
• eDmax na začátku napevno pro dané k
• Postupně se bude upravovat
• eDmax – prořezávání dle osových vzdáleností
• qDmax – prořezávání dle reálných vzdáleností
![Page 39: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/39.jpg)
Adaptivní Vícefázové Spojení
• Navíc kompenzační fronta – obsahuje dvojice uzlů vybrané z hlavní fronty, jejichž vzdálenost je mezi eDmax a qDmax
• Pokud by agresivní prořezávání bylo moc agresivní, pak je možná oprava
![Page 40: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/40.jpg)
![Page 41: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/41.jpg)
![Page 42: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/42.jpg)
![Page 43: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/43.jpg)
Adaptivní Vícefázové Spojení
• Pokud další fáze:– Dětské uzly se netřídí znova (jsou již setříděny)– Párují se pouze dosud nespárované dvojice
• Řeší slow start problém
• Urychluje vyhledávání
![Page 44: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/44.jpg)
Adaptivní Inkrementální Vícefázové Spojení
• V dynamickém prostředí (např. web)– Dokumenty se mění i během zpracování– Nelze přímo použít stávající algoritmy
• Nemusíme také dopředu vědět, kolik objektů uživatel chce (může si dynamicky žádat další)
![Page 45: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/45.jpg)
Adaptivní Inkrementální Vícefázové Spojení
• Algoritmus jako u Adaptivního vícefázového spojení
• Nepoužívá qDmax a vzdálenostní frontu• Pokud potřeba další dokumenty, zvětší se
eDmax• Pokud na začátku potřeba k1 dokumentů,
pak se začne s eDmax pro k1, pokud třeba v další fázi k2, pak se vezme eDmax pro k2
![Page 46: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/46.jpg)
![Page 47: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/47.jpg)
Výkonnost algoritmů
• HS-KDJ –algoritmus s jednosměrnou expanzí
• Beta-KDJ - algoritmus s obousměrnou expanzí a zametáním
• AM-KDJ – adaptivní algoritmus (eDmax)
• SJ-SORT – prostorové spojení založené na R-stromech + setřídění
![Page 48: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/48.jpg)
![Page 49: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/49.jpg)
Výkonnost algoritmů
• SJ – SORT – není inkrementální– Pokud uživatel požaduje více a více dat, tak se
jeho provádění prodlužuje lineárně, u ostatních ne (neustálý restart programu).
– Dopředu známé reálné Dmax – ve skutečnosti by nešel použít
![Page 50: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/50.jpg)
Shrnutí
• Spojení a setřídění (Dmax)
• Základní algoritmus s jednosměrnou expanzí – počáteční qDmax = 00
• Algoritmus s obousměrnou expanzí a zametáním (qDmax)
• Adaptivní algoritmus s obousměrnou expanzí a zametáním (eDmax)
![Page 51: Prostorové spojení se selekcí dle vzdálenosti](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681599f550346895dc6ed1a/html5/thumbnails/51.jpg)
Zdroje
• http://db.snu.ac.kr/~hsshin/paper/tkde.pdf
• Totéž, ale starší okopírovaná verze