1 / 51

Prostorové spojení se selekcí dle vzdálenosti

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

nyoko
Download Presentation

Prostorové spojení se selekcí dle vzdálenosti

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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(MOK(h2), MOK(r2)) -> Vzdál(h1,r1) <Vzdál(h2,r2)

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

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

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

  20. 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

  21. 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>

  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. r1 – kotva, x vybraná dimenze (sweeping direction), qDmax – maximální vybraná vzdálenost

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

  28. 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

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

  30. 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

  31. 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)

  32. Zametací osy – motivace

  33. 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

  34. 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í

  35. 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)

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

  37. 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

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

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

  40. 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

  41. 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í

  42. 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

  43. 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)

More Related