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

Slides:



Advertisements
Podobné prezentace
Lineární klasifikátor
Advertisements

Stavový prostor. • Existují úlohy, pro které není k dispozici univerzální algoritmus řešení • různé hry • problém batohu, problém obchodního cestujícího.
10. Dynamické datové struktury
DB1 – 9. cvičení Optimalizace dotazu Konkurenční přístup a deadlock Indexace Transakce.
Red-Black Stromy Binární Vyhledávací Stromy, u kterých je časová složitost operací v nejhorším případě rovná O(log n)
Aplikace teorie grafů Základní pojmy teorie grafů
PA081 Programování numerických výpočtů Přednáška 2.
ALGO – Algoritmizace 1. cvičení
Třídění Seminář IVT. Definice uspořádání skupiny dat (záznamů) dle daného klíče vzestupně (od nejmenší do největší hodnoty klíče) sestupně (od největší.
Hodnocení způsobilosti měřících systémů
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Sample Solutions CTU Open Contest ANALOG CLOCK.
1 Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic Warren Hunt, William R. Mark, Gordon Stoll prezentace : Radek Richtr.
Temporální Databáze Jaroslav Dražan. Čím se budeme zabývat Proč je čas v DB důležitý Práce s časem pomocí klasického SQL Reprezentace časové domény Spojování.
ADT Strom.
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
Skip-List je datová struktura, která může být použita jako náhrada za vyvážené stromy. představují pravděpodobnostní alternativu k vyváženým stromům (struktura.
Úvod do Teorie množin.
LOGISTICKÉ SYSTÉMY 8/14.
Řešení dynamických problémů s podmínkami Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta.
SÍŤOVÁ ANALÝZA.
Jazyk vývojových diagramů
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
B-strom je dynamická indexová struktura.
doc. RNDr. Zdeněk Botek, CSc.
Shluková analýza.
Rozšíření dotazu a vývoj tématu v IR Jiří Dvorský Jan Martinovič Václav Snášel.
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
Algoritmy a programovací techniky
Algoritmy vyhledávání a řazení
Informatika pro ekonomy II přednáška 10
Databázové systémy Přednáška č. 6.
SQL – základní pojmy Ing. Roman Danel, Ph.D.
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
JavaScript Podmínky, cykly a pole.
Možnosti modelování požadavků na informační systém
IGrid index Roman Krejčík. Obsah Motivace Prokletí dimenze Míry podobnosti IGrid, IGrid+ Experimentální porovnání.
3. Přednáška posloupnosti
Shluková analýza.
CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ
Dokumentace informačního systému
Reaktivní stromy. Motivace Existují algoritmy, které jsou schopny generalizovat výskyt i tvar jednotlivých objektů obsažených na mapě s daným měřítkem.
DATABÁZOVÉ SYSTÉMY. 2 DATABÁZOVÝ SYSTÉM SYSTÉM ŘÍZENÍ BÁZE DAT (SŘBD) PROGRAM KTERÝ ORGANIZUJE A UDRŽUJE NASHROMÁŽDĚNÉ INFORMACE DATABÁZOVÁ APLIKACE PROGRAM.
Rozpoznávání v řetězcích
Množiny.
Databázové systémy SQL Výběr dat.
Distribuované algoritmy - přehled Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
Databázové systémy Přednáška č. 5 Datové typy a Fyzická organizace dat.
Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK 4. Mapování a redukce dimenze 1. část – úvod + mapování vektorových sad.
Směrování -RIP. 2 Základy směrování  Předpoklady:  Mějme směrovač X  Směrovač nemůže znát topologii celé sítě  X potřebuje určit směrovač pro přístup.
Anti – Aliasing Ondřej Burkert atrey.karlin.mff.cuni.cz/~ondra/stranka.
Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Podobnost trajektorií Jiří Jakl Úvod - využití Rozpoznáváni ručně psaných textů GPS navigace Analýza pohybu pracovníku v budovách Predikce.
Algoritmizace a programování Algoritmy 1 - Úvod. Základní pojmy Počítačový program Počítačový program zápis zdrojového kódu, kterému rozumí počítač zápis.
PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:
Algoritmizace a programování Pole – Příklady 3. Třídění polí V poli máme prvky a chceme je setřídit: V poli máme prvky a chceme je setřídit: od nejmenšího.
NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6.
Funkce Funkce je zobrazení z jedné číselné množiny do druhé, nejčastěji Buď A a B množiny, f zobrazení. Potom definiční obor a obor hodnot nazveme množiny:
Množina bodů dané vlastnosti
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Maximální propustnost rovinné dopravní sítě
Informatika pro ekonomy přednáška 8
Optimalizace SQL dotazů
ALG 07 Selection sort (Select sort) Insertion sort (Insert sort)
Toky v sítích.
Algoritmizace a datové struktury (14ASD)
Definiční obory. Množiny řešení. Intervaly.
AVL a B-stromy cvičení Radek Mařík.
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

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

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

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ů

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ů

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 dvojice neobjektových uzlů, pak do fronty přibudou dvojice nebo opačné Obousměrná expanze –Přibudou dvojice

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

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čítat pro 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 – – 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 Totéž, ale starší okopírovaná verze