prostorové spojení se selekcí dle vzdálenosti

Post on 03-Feb-2016

34 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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– Podobnostní funkce

• Multimédia a obrázky– Podobnostní funkce

• …

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

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;

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

Naivní metody

• Nelze přímo použít, ale zajímavé myšlenky

• Ukazují problémy, na které lze narazit

• Horní mez

• MOK

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

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í

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)

Pokročilé metody

• Indexy z R-stromů– Dvousměrné expanze uzlů– Optimalizované zametání rovinou– Adaptivní vícefázové algoritmy

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)

Potřebné znalosti

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ů

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

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

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

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ů

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

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

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>

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)

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

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

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

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

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í)

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

Zametací osy - intuitivně

Pokud by se vybrala osa x, pak se musí reálná vzdálenost počítatpro všechny uzly

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

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)

Zametací osy – motivace

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

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í

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)

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í

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

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í

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ší)

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

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í

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

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)

Zdroje

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

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

top related