Paikkatiedon käsittely 6. Kyselyn käsittely

Samankaltaiset tiedostot
Paikkatiedon hallinta ja analyysi 5. Kyselyn käsittely

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö

Paikkatiedon käsittely 12. Yhteenveto

Algoritmit 1. Luento 7 Ti Timo Männikkö

Paikkatiedon käsittely 5. Paikkatiedon indeksointi

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

Paikkatiedon hallinta ja analyysi 4. Paikkatiedon indeksointi (jatkoa)

Paikkatiedon hallinta ja analyysi 4. Paikkatiedon indeksointi

v 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint.

Luku 8. Aluekyselyt. 8.1 Summataulukko

Datatähti 2019 loppu

Algoritmit 2. Luento 2 To Timo Männikkö

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö

Algoritmit 2. Luento 2 Ke Timo Männikkö

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Algoritmit 2. Luento 5 Ti Timo Männikkö

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

Algoritmit 2. Luento 4 Ke Timo Männikkö

D B. Tietokannan hallinta kertaus

Malliratkaisut Demot

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

Johdatus graafiteoriaan

Algoritmit 1. Luento 10 Ke Timo Männikkö

Miten käydä läpi puun alkiot (traversal)?

Algoritmit 1. Luento 8 Ke Timo Männikkö

Harjoitus 6 ( )

Algoritmit 2. Luento 7 Ti Timo Männikkö

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)

Algoritmit 1. Luento 6 Ke Timo Männikkö

Algoritmi III Vierekkäisten kuvioiden käsittely. Metsätehon tuloskalvosarja 7a/2018 LIITE 3 Timo Melkas Kirsi Riekki Metsäteho Oy

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Johdatus verkkoteoriaan 4. luento

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

Paikkatiedon käsittely 4. Diskreettiä geometriaa

lähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa

811312A Tietorakenteet ja algoritmit, , Harjoitus 7, ratkaisu

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

Harjoitus 6 ( )

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

Yhden muuttujan funktion minimointi

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 2. Luento 11 Ti Timo Männikkö

A TIETORAKENTEET JA ALGORITMIT

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Kombinatorinen optimointi

Ohjelmoinnin peruskurssi Y1

Parinmuodostuksesta tietojenkäsittelytieteen silmin. Petteri Kaski Tietojenkäsittelytieteen laitos Aalto-yliopisto

Luentorunko keskiviikolle Hierarkkinen ryvästäminen

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 9 Ti Timo Männikkö

10. Esitys ja kuvaus

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Algoritmit 2. Luento 3 Ti Timo Männikkö

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 9. marraskuuta 2009

Viimeistely Ajourien huomiointi puutiedoissa ja lopullinen kuviointi. Metsätehon tuloskalvosarja 5/2018 LIITE 4 Timo Melkas Kirsi Riekki Metsäteho Oy

Algoritmit 1. Luento 9 Ti Timo Männikkö

Relaatioalgebra. Kyselyt:

811312A Tietorakenteet ja algoritmit V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit

Algoritmit 1. Luento 13 Ti Timo Männikkö

Algoritmit 1. Luento 13 Ma Timo Männikkö

Ohjelmoinnin perusteet Y Python

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

7.4 Sormenjälkitekniikka

Algoritmit 1. Luento 5 Ti Timo Männikkö

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto

Lineaarinen optimointi. Harjoitus 6-7, Olkoon A R m n, x, c R ja b R m. Osoita, että LP-tehtävän. c T x = min!

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus

Datatähti 2000: alkukilpailun ohjelmointitehtävä

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

private TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla;

Algoritmi I kuvioiden ja niille johtavien ajourien erottelu. Metsätehon tuloskalvosarja 7a/2018 LIITE 1 Timo Melkas Kirsi Riekki Metsäteho Oy

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu.

Mitä murteita Suomessa onkaan?

Yhdiste, leikkaus, erotus ym.

Paikkatiedon käsittely 10. Aluekohteiden yhteisesiintymät

Algoritmit 2. Demot Timo Männikkö

Ei-yhteydettömät kielet [Sipser luku 2.3]

13 Lyhimmät painotetut polut

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra Harri Laine 1. Relaatioalgebra

Sinulle on annettu bittijono, ja tehtäväsi on muuttaa jonoa niin, että jokainen bitti on 0.

P (A)P (B A). P (B) P (A B) = P (A = 0)P (B = 1 A = 0) P (B = 1) P (A = 1)P (B = 1 A = 1) P (B = 1)

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

Algoritmit 1. Luento 12 Ti Timo Männikkö

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus

Algoritmit 1. Luento 1 Ti Timo Männikkö

811312A Tietorakenteet ja algoritmit III Lajittelualgoritmeista

IV. TASAINEN SUPPENEMINEN. f(x) = lim. jokaista ε > 0 ja x A kohti n ε,x N s.e. n n

Transkriptio:

HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon käsittely 6. Kyselyn käsittely Antti Leino antti.leino@cs.helsinki.fi 1.2.2007 Tietojenkäsittelytieteen laitos

Kysely indeksin avulla Sijaintitieto indeksissä approksimoituna Haku tyypillisesti kaksiosainen 1. Etsitään indeksistä minimisuorakulmion perusteella 2. Tarkistetaan osumista, täyttävätkö hakuehdon Vrt. GiST-puun Consistent : osumat epävarmoja, hylkäykset varmoja Joissakin tapauksissa lopullinen tieto jo indeksistä Esim.»sisältyykö kohde suorakulmioon?»

Topologiset kyselyt R-puun yhteydessä oli algoritmi aluekyselylle»mitkä kohteet leikkaavat suorakulmion x 1 x x 2,y 1 y y 2?» Sama algoritmi käytettävissä muihinkin topologisiin suhteisiin R-puussa suorakulmioapproksimaatio Tarkat suhteet selvitettävä erikseen Puusta haettaessa mahdollisesti käytössä puskuri»mitkä kohteet leikkaavat suorakulmion (x 1 ε) x (x 2 + ε),(y 1 ε) y (y 2 + ε)?» Näin saadaan varmasti mukaan vierekkäiset kohteet

Suuntakyselyt Myös suuntasuhteisiin perustuvat kyselyt mahdollisia R-puussa Suuntasuhteet neljään pää- ja neljään väli-ilmansuuntaan suorakulmion nurkkapisteiden perusteella Kaksiosainen haku 1. Haetaan R-puun solmut, joissa osumia voi olla 2. Käydään läpi niiden sisältämät alkiot Näissä askelissa ei välttämättä käytetä samaa ehtoa

Suuntakysely Esimerkki:»heikosti pohjoiseen» Kohde osittain toisen pohjoispuolella, muttei kokonaan Haetaan puusta ne solmut, joilla N f < q s ja N s > q s Haetaan löytyneistä solmuista ne kohteet, joilla q f < p f < q s ja p s > q s

Naapuruuskyselyt Tehtävä: etsitään kohteen k lähintä naapuria Hyödyllisiä mittoja: Piste P, kohde O ja sen minimisuorakulmio R mindist (P, R): lyhin etäisyys P:stä R:ään minmaxdist (P, R): etäisyys P:stä lähimpään sellaiseen R:n nurkkapisteeseen, joka on samalla sivulla kuin kauimmainen R:n nurkkapiste P:n ja O:n kauimmaisen pisteen etäisyys vähintään minmaxdist (P, R)

Minimietäisyyksien käyttöä Lähimmän naapurin etsintä Kyselypiste P, kohteet O,O ja niiden minimisuorakulmiot R,R Jos mindist (P,R) > minmaxdist (P,R ), R voidaan hylätä Jos distance (P,O) > minmaxdist (P,R ), O voidaan hylätä Jos mindist (P,R) > distance (P,O), R voidaan hylätä

Lähimmän naapurin etsintä Lehtisolmussa käy läpi kaikki lapset: Jos etäisyys tähän kohteeseen pienempi kuin tähänastiseen lähimpään naapuriin, tämä on uusi lähinaapuri Haarautumasolmussa: Järjestä solmun lapset etäisyyden mukaan Poista joukosta ne, jotka eivät ainakaan tule kyseeseen (vrt. edellinen kalvo) Etsi lähintä naapuria jäljellä olevista

Kohteiden järjestäminen etäisyyden mukaan Lähimmän naapurin etsintä on helpohko muuttaa etsimään k lähintä naapuria Pidetään kirjaa k naapurista Hylätään joka kierroksella kaukaisin Joskus tarpeen kohteiden järjestäminen etäisyysjärjestykseen Oliot jonona, joka on järjestetty etäisyyden mukaan Haarautumasolmun lapset sijoitetaan jonoon mindist :n mukaan

Järjestäminen R-puun avulla Pane puun juuri jonoon etäisyydelle 0 Pura jonoa, kunnes se on tyhjä: Jos jonon kärjessä on kohde, tulosta se kohteen minimisuorakulmio, Jos todellinen etäisyys < etäisyys jonossa seuraavaan, tulosta kohde Muuten pane kohde jonoon todellisen etäisyyden mukaiseen kohtaan lehti- tai haarautumasolmu, pane solmun lapset jonoon minimisuorakulmioidensa mukaiseen kohtaan

Käänteiset naapuruussuhteet Sama toisin päin:»etsi ne kohteet, joiden lähin naapuri tämä on» Tason pisteellä näitä on korkeintaan kuusi Jaetaan siis tutkittava alue kuuteen sektoriin Haettavat kohteet löytyvät kunkin sektorin lähimpien kohteiden joukosta

Käänteisten naapuruussuhteiden etsintä Etsi pisteen lähin naapuri kussakin sektorissa Käy läpi näin saadut ehdokkaat: Etsi ehdokkaan lähin naapuri Jos etäisyys tähän = etäisyys kyselypisteeseen, lisää ehdokas hakutulokseen

Paikkaliitokset Relaatioalgebran liitosoperaatio, jossa ehto liittyy sijaintitietoon Tyypillisesti leikkausehto R Rsijainti S sijainti S Muut suhteet toki myös mahdollisia Tavanomaisiin liitoksiin käytetyt algoritmit huonoja paikkaliitoksille Pohjimmainen ongelma: geometrisen leikkauksen epätyhjyys on vaikeampi testata kuin atomisten arvojen yhtäsuuruus

Paikkaliitoksen toteutus Kaksiosainen operaatio Suodatus minimisuorakulmioiden perusteella Lopullinen valinta todellisen sijaintitiedon perusteella Tässä R-puuhun perustuva ratkaisu Yhtä lailla mahdollista käyttää myös muunlaista indeksirakennetta

Paikkaliitoksen suodatusaskel Lähtökohta: puut (ts. solmut) R ja S Käy läpi kaikki solmun S alkiot E S Jos R on lehtisolmu, lisää tulokseen toisensa leikkaavien kohteiden parit (E R,E S ) Jos R on haarautumasolmu, jatka hakua kaikista solmupareista (E R,E S ) Tässä oletetaan, että puut R ja S yhtä korkeita Jos puut erikorkuisia, viimeisillä rekursiotasoilla verrataan toisen alipuuta toisen lehtisolmun alkioon

Suodatusalgoritmin tehokkuus Levynkäsittely suhteellisen tehokasta Sen sijaan prosessoriaikaa kuluu Mitä suurempi sivukoko sitä vallitsevammaksi prosessoriajan kulutus käy Algoritmi tehostuu, jos silmukoihin otetaan vain ne solmun alkiot, joissa osumia voi olla: S = {e S e MBR R } R = {e R e MBR S }

Tasonpyyhkäisy Leikkauksen E R E S epätyhjyyden testausta voi vielä optimoida tasonpyyhkäisymenetelmällä Lähdetään liikkeelle R S:n vasemmasta reunasta Edetään, kunnes löytyy suorakulmio Käydään läpi kaikki ne toisenväriset suorakulmiot, joiden vasen reuna on tarkasteltavan suorakulmion oikean reunan vasemmalla puolella Jos suorakulmiot leikkaavat myös pystysuunnassa, ne leikkaavat Merkitään suorakulmio käsitellyksi Siirretään tarkastelukohtaa, kunnes tulee vastaan seuraava suorakulmio ja käydään läpi sen alueella olevat vielä käsittelemättömät suorakulmiot

Lisää optimointia Tasonpyyhkäisykin riittää vasta paikalliseen optimointiin: läpikäytävien solmujen määrän globaaliin minimointiin se ei riitä. Ratkaisu: käydään puut läpi koko taso kerrallaan Kullakin tasolla kerätään keskenään leikkaavien solmujen parit tilapäisindeksiksi IJI i = {(E Ri,E Si ) R S E RiMBR E SiMBR } Kun taso on käyty läpi, siirrytään seuraavalle Nyt kunkin tason kaikki tarvittavat solmut tiedetään jo ennalta

Tasottainen paikkaliitosalgoritmi Käydään läpi juuret: IJI 0 = {(a,e),(b,e),(d,f)} Käydään läpi IJI 0 :n parit: IJI 1 = {(16,7),(12,13)} Puissa ei ole enempää tasoja, joten IJI 1 = liitosehdon täyttävät parit

Usean taulun paikkaliitokset Edellä käsitelty kahden tietokantataulun / R-puun liitoksia Useamman taulun liitokset näiden avulla Erilaisia toimintastrategioita 1. Ensin kahden taulun liitos, jonka tulos (indeksoimatta) liitetään kolmanteen 2. Ensin kahden taulun liitos, jonka tulos laaditaan jo valmiiksi sopimaan yhteen kolmannen R-puun kanssa 3. Suoraan kolmen taulun liitos

Liitos etäisyyden perusteella Liitosehtona eri tauluissa olevien kohteiden välinen etäisyys: R d1 distance (R,S) d 2 S Ratkaisu perustuu aiemmin nähtyyn järjestysalgoritmiin Parit (E R,E S ) järjestetään etäisyyden mukaan Näistä käsitellään ne, joissa etäisyys osuu liitosehdon määräämälle välille

Etäisyysliitosalgoritmi Pane puiden R ja S juuret jonoon etäisyydellä 0 Pura jonoa, kunnes se on tyhjä: Jos jonon kärjessä on kohdepari, tulosta kohteet minimisuorakulmiopari, laske kohteiden todellinen etäisyys Jos etäisyys < jonon ensimmäisen alkion etäisyys tai jono on tyhjä, tulosta kohteet Muuten lisää jonoon kohdepari todellisen etäisyyden mukaiseen paikkaan pari, jossa ensimmäisenä haarautumasolmu, pura parin 1. haarautumasolmu Muuten pura parin 2. haarautumasolmu

Haarautumasolmujen purkaminen Syöte: solmupari käy läpi kaikki parin ensimmäisenä olevan solmun alkiot Lisää jonoon etäisyyden mukaiseen paikkaan pari, joka koostuu tästä alkiosta ja alkuperäisen parin toisesta alkiosta Parin toisen solmun purkaminen vastaavasti

Yksi vai kaksi haaraa kerrallaan? Esitetyssä algoritmissa puretaan kerrallaan vain yksi haarautumasolmu Ei ole selvää, että olisi tehokkaampaa purkaa molemmat haarautumat samalla kertaa Esitetyssä muodossa algoritmi kulkee ensin puuta R lehtiin saakka ja vasta sitten puuta S Parempi ratkaisu olisi kulkea puita alas tasaisesti, esimerkiksi valitsemalla purettavaksi se puu, jossa on jäljellä enemmän tasoja Etäisyysliitosta tehostaa, jos haarautumasolmuja purettaessa tarkistetaan, että solmujen välinen minimi- / maksimietäisyys sopii liitosehdon rajoihin