Prostorové spojení se selekcí dle vzdálenosti

51
Prostorové spojení se selekcí dle vzdálenosti Jaroslav Dražan

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 Presentation

Transcript of Prostorové spojení se selekcí dle vzdálenosti

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