Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

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

Podobné prezentace


Prezentace na téma: "Prostorové spojení se selekcí dle vzdálenosti Jaroslav Dražan."— Transkript prezentace:

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

2 Úvod Prostorové spojení (spatial distance) Prostorové spojení se selekcí dle vzdálenosti (distance spatial join) –Dále jen DSJ Metody zpracování DSJ

3 Vzdálenost Prostorové objekty –Reálná vzdálenost Dokumenty –Podobnostní funkce Multimédia a obrázky –Podobnostní funkce …

4 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

5 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;

6 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

7 Naivní metody Nelze přímo použít, ale zajímavé myšlenky Ukazují problémy, na které lze narazit Horní mez MOK

8 Horní mez (cuttoff distance ) Nechť dopředu víme, že k nejbližších hotelů a restaurací jsou od sebe vzdáleny nejvýše D max(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

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

10 MOK (MBR) Minimální ohraničující kostky Nelze přímo použít Neplatí: –Vzdál(MOK(h1),MOK(r1)) Vzdál(h1,r1)

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

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

13 Potřebné znalosti

14 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ů

15 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

16 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

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

18 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ů

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

20 Implementace –Hlavní fronta – minimová halda –Vzdálenostní fronta – maximová halda Poměrně účinná metoda, obzvláště pro malá k

21 Jednosměrná X obousměrná expanze Jednosměrná expanze –Pokud dvojice neobjektových uzlů, pak do fronty přibudou dvojice nebo opačné Obousměrná expanze –Přibudou dvojice

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

23 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

24 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

25 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

26

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

28 Obousměrné spojování Pro malé qD max 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í)

29 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

30 Zametací osy - intuitivně Pokud by se vybrala osa x, pak se musí reálná vzdálenost počítat pro všechny uzly

31 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

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

33 Zametací osy – motivace

34

35 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

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

37 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 – – 90% času programu stráveno na nalezení 1% výsledků (1000)

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

39 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

40

41

42

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

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

45 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

46

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

48

49 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

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

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


Stáhnout ppt "Prostorové spojení se selekcí dle vzdálenosti Jaroslav Dražan."

Podobné prezentace


Reklamy Google