Transcript
Page 1: Prostorové spojení se selekcí dle vzdálenosti

Prostorové spojení se selekcí dle vzdálenosti

Jaroslav Dražan

Page 2: Prostorové spojení se selekcí dle vzdálenosti

Ú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

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

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

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

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

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

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

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

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

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

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

Potřebné znalosti

Page 14: Prostorové spojení se selekcí dle vzdálenosti

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

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

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

Spojování na základě R-stromů

Page 18: Prostorové spojení se selekcí dle vzdálenosti

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

Spojování na základě R-stromů

Page 20: Prostorové spojení se selekcí dle vzdálenosti

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

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

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

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

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

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
Page 27: Prostorové spojení se selekcí dle vzdálenosti

r1 – kotva, x vybraná dimenze (sweeping direction), qDmax – maximální vybraná vzdálenost

Page 28: Prostorové spojení se selekcí dle vzdálenosti

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

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

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

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

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

Zametací osy – motivace

Page 34: Prostorové spojení se selekcí dle vzdálenosti
Page 35: Prostorové spojení se selekcí dle vzdálenosti

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

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

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

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

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
Page 41: Prostorové spojení se selekcí dle vzdálenosti
Page 42: Prostorové spojení se selekcí dle vzdálenosti
Page 43: Prostorové spojení se selekcí dle vzdálenosti

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

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

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
Page 47: Prostorové spojení se selekcí dle vzdálenosti

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
Page 49: Prostorové spojení se selekcí dle vzdálenosti

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

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

Zdroje

• http://db.snu.ac.kr/~hsshin/paper/tkde.pdf

• Totéž, ale starší okopírovaná verze


Recommended