Paikkatiedon käsittely 5. Paikkatiedon indeksointi

Koko: px
Aloita esitys sivulta:

Download "Paikkatiedon käsittely 5. Paikkatiedon indeksointi"

Transkriptio

1 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon käsittely 5. Paikkatiedon indeksointi Antti Leino Tietojenkäsittelytieteen laitos

2 Mistä on kyse? Indeksoinnin tarkoituksena on nopeuttaa tietokantahakuja Perinteisessä tietokannassa indeksointi perustuu hakuavaimeen Avainkentässä oltava arvo Eri tietueilla eri avaimet Muillekin kentille voi tehdä indeksejä Arvo voi olla tyhjä Indeksi antaa viitteen osumatietueiden hakuavaimiin Hakuehtona tyypillisesti yhtäsuuruus tai arvoväli

3 Järjestys Tavanomaisten relaatiotietokannan tietotyyppien arvoalue on täysin järjestetty On olemassa relaatio a,b : (a b) (b a) a,b,c : (a b) (b c) a c a,b : (a b) (b a) a = b Indeksin rakentaminen täysin järjestetyille tietotyypeille on ollut tunnettua jo pitkään Tavanomainen ratkaisu B-puu

4 B-puu Kohteen löytämiseen riittää tasan yhden polun kulkeminen Kaikki polut juuresta lehtiin yhtä pitkiä Jokainen sivu (paitsi juuri) aina vähintään puolillaan Puun koko O(n) Haku, lisäys ja poisto vievät O( log n) ajan

5 Mutta kun ei B-puu sopii mainiosti täysin järjestetyn datan indeksointiin Paikkatieto ei olekaan Mikä neuvoksi? Laaditaan 2-ulotteiselle tiedolle 1-ulotteinen järjestys Yleistetään B-puu sellaisen aineiston indeksointiin, joka ei ole tällä tapaa järjestetty Käytännössä jälkimmäinen vaihtoehto yleensä parempi

6 Ratkaisu 1: tilan täyttävät käyrät Käyrä, jonka fraktaalidimensio = 2 Jatkuva käyrä, joka täyttää koko avaruuden Ensimmäisenä esitteli Giuseppe Peano (1890) Yleisesti käytössä David Hilbertin (1891) esittämä Verraten yleinen myös Z-käyrä (useita riippumattomia esittäjiä 1980-luvulla)

7 Miksi tilan täyttävä käyrä? Linearisoi moniulotteisen avaruuden Tämän jälkeen indeksointi helppoa Toivottavia ominaisuuksia: Lähekkäisyyden säilyminen: jos pisteet lähellä toisiaan 2-ulotteisessa avaruudessa, lähekkäin myös käyrällä Helppo muunnos 2- ja 1-ulotteisten koordinaattien välillä Nämä ominaisuudet ikävä kyllä ristiriitaisia Hilbertin käyrä säilyttää lähekkäisyyden melko hyvin Z-käyrällä pisteen sijainti on helposti laskettavissa koordinaateista

8 Z-järjestys Rasteripisteen järjestysnumero helposti laskettavissa Bittilimitys: otetaan bittejä vuorotellen (binäärimuotoisesta) x- ja y-koordinaatista Esimerkiksi (2 10,1 10 ) = (10 2,01 2 ) = 9 10

9 Indeksointi z-järjestyksen avulla Indeksointiavaimena näppärä käytää alkupään bittejä Tyhjä jono: koko avaruus Parillinen määrä bittejä = neliö Pariton määrä bittejä = kaksi päällekkäistä neliötä Kaikkia suorakulmioita ei voi esittää

10 Kohteen approksimointi Aluekohde approksimoidaan niiden Z-arvojen joukkona, jotka yhdessä kattavat kohteen Tässä siis {0011, 001, 0110, 100, } Approksimaation rakeisuus käy suoraan ilmi pisimmän z-arvon pituudesta

11 Z-approksimoinin ominaisuuksia Alue, jonka z-arvo on z a sisältyy alueeseen, jonka z-arvo on z b, täsmälleen silloin, kun z b on z a :n alkuosa Z-arvojen aakkosjärjestys = niiden osoittamien alueiden järjestys z-käyrällä Peräkkäisten Z-arvojen osoittamat alueet voivat olla kaukana toisistaan

12 Kysely z-approksimoidusta indeksistä Tehtävä: haetaan kohteet, jotka ovat hakuehtonelikulmion kattamalla alueella Haetaan indeksisolmut, jotka kattavat hakuehdon Aloita avaruuden alkupisteestä Etsi ensimmäinen hakunelikulmioon osuva z-arvo ja lisää indeksisivu hakutulokseen Jatka hakua ensimmäisestä tämän sivun jälkeisestä z-arvosta

13 Z-alueiden haku Hakuehto: (2 x 5) (1 y 5) Haetaan ensimmäinen piste, joka on hakualueella Haetaan vuorotellen ensimmäinen kulloisenkin indeksiruudun jälkeinen piste, joka on hakualueella Nämä määrittävät indeksiruudut, joita hakualue leikkaa: {0010, 0011, 0110, 10000, , 1001, 1100}

14 Seuraavan osuman etsintä Lähtötilanne: ollaan hakualueen ulkopuolella Etsi merkitsevin muutettava bitti Jos se muuttuu 1 0, ollaan tässä suunnassa alueen yläpuolella Valitse muista koordinaateista vähiten merkitsevä äskeistä merkitsevämpi bitti, jota voidaan kasvattaa joutumatta alueen ulkopuolelle Jos se muuttuu 0 1, ollaan alueen alapuolella Valitse tämä bitti Aseta valittu bitti 1:ksi Nollaa kaikki vähemmän merkitsevät bitit Kasvata kunkin koordinaatin tuottamia bittejä, kunnes piste on hakualueella

15 Seuraavan osuman etsintä: esimerkki (000,000) (010,000) (010,001) = (010,010) = hakualueella (000,100) (010,100) = (010,110) (100,000) (100,001) = (101,000) (101,001) = (100, 010) = hakualueella (110,000) (100,100) =

16 Hilbertin käyrä Vierekkäiset käyrän pisteet ovat vierekkäisiä myös lähtöavaruudessa Mahdollistaa hiukan monipuolisemman lohkojaon Toisaalta pisteen sijainnin laskeminen monimutkaista Perusalgoritmi puurakenteen avulla

17 Sijainti Hilbertin käyrällä Laskettavissa puun avulla: joka tasolla jaetaan jäljellä oleva alue neljään osaan Puurakenteen käyttö algoritmin osana hankalaa Tasojen määrän lisääminen kasvattaa puun kokoa

18 Sijaintipuu tilakoneena Sijaintia Hilbertin käyrällä osoittava puu esitettävissä myös tilakoneena Melko pian tilakoneen koko jää puun kokoa pienemmäksi

19 Esimerkki pisteen sijainnin laskennasta Koordinaattien 1. bitit (1, 0), so. oikea alaneljännes Juurisolmusta saadaan avaimen biteiksi 11 Siirrytään puussa 2. tasolle (1, 0):n osoittamaa haaraa Koordinattien 2. bitit (1, 1), so. oikea yläneljännes Tästä solmusta saadaan avaimen biteiksi 00 Ollaan lehtisolmussa, avain = 12 10

20 Kysely Hilbertin käyrään perustuvasta indeksistä Tehtävänä etsiä ne hakemistosivut, jotka hakualue leikkaa Hakemiston sivut eivät välttämättä nelikulmioita Perusalgoritmi kuten z-käyrän tapauksessa Seuraavan osuman etsintä erilainen

21 Seuraavan osuman etsintä Hiukan hankalahkoa, koska käyrä erisuuntainen eri puolilla Iteratiivisesti: joka kierroksella rajoitutaan pienempään alipuuhun Rajoitetaan etsintä niihin alipuihin, jotka leikkaavat hakualueen Jokaisen iteraatiokierroksen lopussa katsotaan, oliko löydetty osuma aiemmin käyrällä kuin edellisillä kierroksilla löydetty Jos osumia ei löytynyt, kiivetään puussa ylöspäin, kunnes löytyy Jos tämäkään ei auta, seuraavaa osumaa ei ole

22 Osuman etsintä: esimerkki Ensimmäinen osuma: Löydetään vasen alaneljännes: avaimeen 00 Sen oikea yläneljännes: avaimeen Tämä sisältyy kokonaan hakualueeseen: valitaan sen ensimmäinen piste = 8 10 Osuma sisältyy sivuun 1, joka käsittää Hilbertin käyrän pisteet 0 17

23 Ratkaisu 2: R-puut Peruslähtökohta: modifioidaan B-puuta Tavoitteena indeksirakenne, joka toimii n-ulotteisella datalla, missä n > 1 Kutakin kohdetta approksimoidaan sen minimisuorakulmiolla (minimum bounding rectangle, MBR) Koordinaattiakselien suuntainen Helppo muodostaa: kohteen nurkkapisteiden kustakin koordinaatista pienin ja suurin Minimisuorakulmioiden keskinäiset suhteet helppo laskea

24 R-puu»Suorakulmiopuu» (rectangle tree) Tasapainoinen puu Lehtisivuissa (MBR, oid), missä oid on kohteen tunniste ja MBR sen minimisuorakulmio Muissa solmuissa (DR, p), missä p on lapsisivu ja DR suorakulmio, joka peittää kaikki p:stä alkavan alipuun kohteet Suorakulmiot voivat mennä osittain päällekkäin

25 R-puu

26 R-puun ominaisuuksia Kaikki polut juurista lehtiin yhtä pitkiä Juurta lukuunottamatta kussakin solmussa enintään M ja vähintään m tietuetta, missä m M/2 Jos juuri ei ole samalla lehti, siinä on vähintään kaksi tietuetta Kaikki lehdet ovat samalla tasolla Puun korkeus enintään log m N +1

27 Haku R-puusta Haarautumasolmussa: käy läpi kaikki solmun tietueet Jos tietueen minimisuorakulmio leikkaa hakualuetta, hae edelleen tästä alipuusta Lehtisolmussa: käy läpi kaikki solmun tietueet Jos tietueen minimisuorakulmio leikkaa hakualuetta, lisää tietue hakutulokseen

28 Esimerkkihaku R-puusta Juuren lapsista a, b ja d leikkaavat hakualueen a:n lapsista kohteet 7, 11 ja 16 leikkaavat b:n lapsista kohde 2 leikkaa d:n lapsista kohde 10 leikkaa Kohteet 2, 7, 10, 11 ja 16 leikkaavat hakualueen

29 Kohteen lisäys R-puuhun Aloita juuresta Valitse kulloisenkin solmun lapsista sopiva alipuu, kunnes olet lehtisolmussa Jos solmu ei ole täysi, lisää solmu siihen Jos solmu on täysi, halkaise se Järjestä puu uudelleen tästä solmusta ylöspäin

30 Alipuun valinta Etsi ne solmun lapset, joiden suorakulmiota kohteen lisääminen kasvattaisi vähiten Jos tällaisia lapsia löytyi vain yksi, valitse se Jos tällaisia löytyi useita, valitse se, jonka oma suorakulmio on pienin

31 Puun uudelleenjärjestäminen Lähde liikkeelle vasta lisätystä solmusta Päivitä sen äitisolmussa näkyvä minimisuorakulmio kattamaan solmuun nyt kuuluvat kohteet Järjestä uudelleen puu äitisolmusta ylöspäin

32 Solmun halkaiseminen Jaa halkaistavan solmun alkiot ja lisättävä uusi alkio kahdeksi solmuksi Lisää näin syntynyt uusi solmu alkuperäisen äitisolmuun Jos äitisolmu oli täynnä, halkaise sekin Päivitä halkaistujen solmujen suorakulmiot

33 Solmun halkaisutavan valinta Perustavoite: minimiotava todennäköisyys, että pitäisi tutkia molemmat alipuut Tämä riippuu siitä, leikkaako solmun minimisuorakulmio hakualuetta Siispä minimoitava sekä suorakulmioiden yhteenlaskettu ala että niiden leikkauksen ala Nämä vaatimukset joskus ristiriitaiset

34 Solmun halkaisutavan valinta Valitse uusien solmujen siemeniksi se alkiopari, jonka kattavassa suorakulmiossa on mahdollisimman paljon tyhjää tilaa Jaa muut alkiot solmuihin: Jos jäljellä on niin vähän alkioita, että ne on lisättävä jompaankumpaan uusista solmuista, lisää ne sinne Muutoin valitse alkio, joka kasvattaisi jommankumman solmun alaa vähiten ja lisää se sinne. Aikavaativuus O (N 2 ) Olemassa myös lineaarisessa ajassa toimiva algoritmi, mutta sen jako ei yhtä hyvä

35 Kohteen poistaminen R-puusta Kohdetta poistettaessa on pidettävä huoli siitä, että puu pysyy tasapainossa Jos kohteen sisältävä solmu kutistuisi liiaksi, puu on tiivistettävä Etsi lehti Poista kohde siitä Järjestä uudelleen puu tästä solmusta ylöspäin Tiivistä puu tarvittaessa

36 Lehden etsiminen Jos ollaan haarautumasolmussa, jatka hakua kaikista niistä lapsisolmuista, joiden suorakulmiot kattavat kohteen Jos ollaan lehtisolmussa, johon kohde kuuluu, totea lehden löytyneen

37 Puun tiivistys kohteen poiston jälkeen Poista vajaat solmut puusta: Jos ei olla juuressa ja solmun koko < m, Merkitse solmun kaikki lapset orvoiksi Poista solmu äidistään Järjestä uudelleen puu äidistä alkaen Tee sama vajaiden solmujen poisto-operaatio äidille Lisää orvot solmut puuhun

38 Kohteiden lisäysjärjestys R-puun avulla toteutetun hakemiston tehokkuus riippuu kohteiden lisäysjärjestyksestä Huonossa järjestyksessä lisätyt kohteet tuottavat huonon hakemiston Ratkaisu: R*-puu

39 R*-puu R-puun muunnelma, jossa hiukan erilainen algoritmi solmun halkaisuun Tavoitteena minimoida Solmujen päällekkäisyys Solmun peittämä pinta-ala Solmun kattaman suorakulmion reuna Myös tallennustilan käyttö Tietorakenteet ja hakualgoritmit samat kuin R-puussa

40 Solmun halkaisu R*-puussa R-puu lähtee rakentamaan uusia solmuja kahden toisistaan kauimpana olevan alkion ympärille R*-puu jakaa alkiojoukon koordinaattiakselin suuntaisesti Joukko jaetaan kunkin akselin suuntaisesti kahtia niin, että kummankin puoliskon koko m Näistä jaoista valitaan paras Jaettavat kohteet R-puu R*-puu

41 Kohteen lisäys R*-puuhun Halkaisualgoritmin lisäksi toinen parannus Ennen halkaisua sijoitetaan sen»huonoimmat» alkiot uudelleen Lasketaan kunkin alkion keskipiste Lasketaan sen etäisyys solmun minimisuorakulmion keskipisteestä Poistetaan puusta ne 30 % solmuista, joilla tämä etäisyys on pisin Lisätään ne uudelleen Jos sama solmu vuotaa yli toisen kerran saman kohteenlisäysoperaation aikana, se halkaistaan

42 Pakotettu uudelleenlisäys Uudelleenlisäys korjaa huonon lisäysjärjestyksen vaikutusta Lähtötilanne Ylivuoto R-puu R*-puu

43 R+-puu Saman tason solmujen suorakulmiot erillisiä Haarautumasolmun minimisuorakulmio kattaa sen lapsisolmujen minimisuorakulmiot Lehtisolmun suorakulmio joko sisältää kohteen minimisuorakulmion tai leikkaa sitä Kukin avaruuden piste yhden polun kautta Aluekyselyissä etu ei välttämättä aivan selvä Puun koko suurempi kuin R- ja R*-puissa Hakutuloksen jälkikäsittelyssä varmistettava, että kukin kohde mukana korkeintaan kerran

44 GiST: yleistetty hakupuu Tavoitteena yleiskäyttöinen hakupuu: sama toiminnallisuus kuin B- ja R-puilla ja vielä lisääkin B-puusta tuttuja ominaisuuksia Juurisolmussa on vähintään kaksi alkiota, ellei se ole myös lehti Juurta lukuun ottamatta solmussa m M alkiota, missä m on välillä 2 M 2 Kaikki lehdet ovat samalla tasolla Viimeistään R-puusta tuttua Lehtisolmun alkioon liittyy ehto p, joka pätee solmun osoittamaan tietokantamonikkoon

45 GiST-puun uutuus Haarautumasolmun alkioon liittyy ehto p, joka pätee koko alipuuhun mutta alipuun solmuissa olevalle ehdolle p ei välttämättä päde p p Väljempi muotoilu kuin aiemmissa puissa Riittää, että ehto erottaa samasta solmusta alkavat alipuut toisistaan Ylemmillä tasoilla käytetyt ehdot pätevät koko alipuuhun, joten niitä ei enää tarvitse toistaa

46 GiST-puun määrittely Puussa esitettävältä olioluokalta edellytetään kuutta metodia Consistent (E,q): epätosi, jos ehto q ja solmussa E oleva ehto eivät voi päteä yhtä aikaa Union (P): palauttaa predikaatin r, joka pätee kaikille joukkoon P kuuluvista solmuista alkaville alipuille Compress (E): palauttaa alkion E, jossa oleva ehto on jollakin tapaa pakattu alkion E ehdon esitys Decompress (E): palauttaa jonkin sellaisen alkion E, että Compress (E ) = E

47 GiST-puun määrittely, osa 2 Penalty (E 1,E 2 ): palauttaa kustannuksen E 1 :n lisäämisestä alipuuhun, jonka juuri on E 2 Käytetään alkion lisäyskohdan ja solmun halkaisusuunnan määrittämiseen Esim. R-puussa Penalty (E 1,E 2 ) = area ( mbr (E 1 E 2 )) area ( mbr (E 1 )) PickSplit (P): jakaa alkiojoukon kahteen vähintään m alkiota sisältävään osaan Jakokriteeri usein sukua Penalty :lle Ei kuitenkaan välttämättä

48 Haku GiST-puusta Lehtisolmussa käy läpi kaikki sen alkiot Jos Consistent (alkio, hakuehto), lisää alkio hakutulokseen Haarautumasolmussa käy läpi kaikki sen alkiot Jos Consistent (alkio, hakuehto), hae edelleen siitä alkavasta alipuusta Lineaariselle datalle tehokkaampi B-puumainen haku Kohteen lisäys ja solmun halkaisu vastaavilla algoritmeilla kuin R-puussa

49 Entä meillä? PostgreSQL:ssä toteutettu B-, R- ja GiST-puu Periaatteessa B-/R-puu yhtä tehokas kuin vastaava GiST-puu Käytännössä otettava huomioon toteutuksen tehokkuus Perinteiset tietotyypit kannattaa indeksoida B-puun avulla Paikkatiedon indeksointiin GiST parempi kuin R-puu

Paikkatiedon hallinta ja analyysi 4. Paikkatiedon indeksointi

Paikkatiedon hallinta ja analyysi 4. Paikkatiedon indeksointi HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon hallinta ja analyysi 4. Paikkatiedon indeksointi Antti Leino 29. maaliskuuta 2005 Tietojenkäsittelytieteen

Lisätiedot

Paikkatiedon hallinta ja analyysi 4. Paikkatiedon indeksointi (jatkoa)

Paikkatiedon hallinta ja analyysi 4. Paikkatiedon indeksointi (jatkoa) HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon hallinta ja analyysi 4. Paikkatiedon indeksointi (jatkoa) Antti Leino 4. huhtikuuta 2005 Tietojenkäsittelytieteen

Lisätiedot

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu

Lisätiedot

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100

Lisätiedot

Paikkatiedon käsittely 6. Kyselyn käsittely

Paikkatiedon käsittely 6. Kyselyn käsittely 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

Lisätiedot

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö Algoritmit 2 Luento 5 Ti 28.3.2017 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot Algoritmit 2 Kevät 2017 Luento 5 Ti 28.3.2017 2/29 B-puu Algoritmit 2 Kevät 2017 Luento 5 Ti

Lisätiedot

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö Algoritmit 2 Luento 5 Ti 26.3.2019 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot B-puun muunnelmia Algoritmit 2 Kevät 2019 Luento 5 Ti 26.3.2019 2/34 B-puu B-puut ovat tasapainoisia

Lisätiedot

Algoritmit 2. Luento 2 To Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö Algoritmit 2 Luento 2 To 14.3.2019 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2019 Luento

Lisätiedot

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.

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. Yleiset hakupuut 4 Monitiehakupuu: Binäärihakupuu 0 1 3 5 6 7 8 v k 1 k k 3 v v 3 v 4 k 1 k 3 k 1 k k k 3 d lapsisolmua d 1 avainta Yleinen hakupuu? Tietorakenteet, syksy 007 1 Esimerkki monitiehakupuusta

Lisätiedot

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 2 Ke Timo Männikkö Algoritmit 2 Luento 2 Ke 15.3.2017 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2017 Luento

Lisätiedot

Algoritmit 1. Luento 7 Ti Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö Algoritmit 1 Luento 7 Ti 31.1.2017 Timo Männikkö Luento 7 Järjestetty binääripuu Binääripuiden termejä Binääripuiden operaatiot Solmun haku, lisäys, poisto Algoritmit 1 Kevät 2017 Luento 7 Ti 31.1.2017

Lisätiedot

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Tietorakenteet, laskuharjoitus 7, ratkaisuja Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9

Lisätiedot

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

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Kukin alkio (viite) talletettuna solmuun (node) vastaa paikan käsitettä

Lisätiedot

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

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 1. Avaimet 1, 2, 3 ja 4 mahtuvat samaan lehtisolmuun. Tässä tapauksessa puussa on vain yksi solmu, joka on samaan aikaan juurisolmu

Lisätiedot

Paikkatiedon käsittely 12. Yhteenveto

Paikkatiedon käsittely 12. Yhteenveto HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon käsittely 12. Yhteenveto Antti Leino antti.leino@cs.helsinki.fi 22.2.2007 Tietojenkäsittelytieteen laitos Kurssin sisältö

Lisätiedot

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina Hakupuut tässä luvussa tarkastelemme puita tiedon tallennusrakenteina hakupuun avulla voidaan toteuttaa kaikki joukko-tietotyypin operaatiot (myös succ ja pred) pahimman tapauksen aikavaativuus on tavallisella

Lisätiedot

Algoritmit 1. Luento 8 Ke Timo Männikkö

Algoritmit 1. Luento 8 Ke Timo Männikkö Algoritmit 1 Luento 8 Ke 1.2.2017 Timo Männikkö Luento 8 Järjestetty binääripuu Solmujen läpikäynti Binääripuun korkeus Binääripuun tasapainottaminen Graafit ja verkot Verkon lyhimmät polut Fordin ja Fulkersonin

Lisätiedot

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26

Lisätiedot

Binäärihaun vertailujärjestys

Binäärihaun vertailujärjestys Järjestetyn sanakirjan tehokas toteutus: binäärihaku Binäärihaku (esimerkkikuassa aain = nimi) op Eea 5 op 5 op op 8 op 5 6 7 8 op Eea 5 op 5 op op 8 op 5 6 7 8 op Eea 5 op 5 op op 8 op 5 6 7 8 op Eea

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

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

Miten käydä läpi puun alkiot (traversal)? inääripuut ieman lisää aidon binääripuun ominaisuuksia lehtisolmuja on yksi enemmän kuin sisäsolmuja inääripuut tasolla d on korkeintaan 2 d solmua pätee myös epäaidolle binääripuulle taso 0: 2 0 = 1 solmu

Lisätiedot

Algoritmit 1. Luento 5 Ti Timo Männikkö

Algoritmit 1. Luento 5 Ti Timo Männikkö Algoritmit 1 Luento 5 Ti 24.1.2017 Timo Männikkö Luento 5 Järjestetty lista Järjestetyn listan operaatiot Listan toteutus taulukolla Binäärihaku Binäärihaun vaativuus Algoritmit 1 Kevät 2017 Luento 5 Ti

Lisätiedot

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

private TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla; Tietorakenteet, laskuharjoitus 7, ratkaisuja 1. Opiskelijarekisteri-luokka saadaan toteutetuksi käyttämällä kahta tasapainotettua binäärihakupuuta. Toisen binäärihakupuun avaimina pidetään opiskelijoiden

Lisätiedot

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

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta AVL-puut eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta pohjana jo esitetyt binäärihakupuiden operaatiot tasapainotus vie pahimmillaan lisäajan lisäys- ja

Lisätiedot

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 20.3.2018 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2018 Luento 3 Ti 20.3.2018

Lisätiedot

Algoritmit 2. Luento 4 To Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö Algoritmit 2 Luento 4 To 21.3.2019 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2019 Luento 4

Lisätiedot

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 21.3.2017 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2017 Luento 3 Ti 21.3.2017

Lisätiedot

B + -puut. Kerttu Pollari-Malmi

B + -puut. Kerttu Pollari-Malmi B + -puut Kerttu Pollari-Malmi Tämä monista on alunperin kirjoitettu sksn 2005 kurssille osittain Luukkaisen ja Nkäsen vanhojen luentokalvojen pohjalta. Maaliskuussa 2010 pseudokoodiesits on muutettu vastaamaan

Lisätiedot

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012 ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012 1.1. (a) Jaettava m, jakaja n. Vähennetään luku n luvusta m niin kauan kuin m pysyy ei-negatiivisena. Jos jäljelle jää nolla, jaettava oli tasan jaollinen. int m,

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PUURAKENTEET, BINÄÄRIPUU, TASAPAINOTETUT PUUT MIKÄ ON PUUTIETORAKENNE? Esim. Viereinen kuva esittää erästä puuta. Tietojenkäsittelytieteessä puut kasvavat alaspäin.

Lisätiedot

! 7! = N! x 8. x x 4 x + 1 = 6.

! 7! = N! x 8. x x 4 x + 1 = 6. 9. 10. 2008 1. Pinnalta punaiseksi maalattu 3 3 3-kuutio jaetaan 27:ksi samankokoiseksi kuutioksi. Mikä osuus 27 pikkukuution kokonaispinta-alasta on punaiseksi maalattu? 2. Positiivisen kokonaisluvun

Lisätiedot

Algoritmit 2. Luento 4 Ke Timo Männikkö

Algoritmit 2. Luento 4 Ke Timo Männikkö Algoritmit 2 Luento 4 Ke 22.3.2017 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2017 Luento 4

Lisätiedot

Algoritmit 2. Luento 9 Ti Timo Männikkö

Algoritmit 2. Luento 9 Ti Timo Männikkö Algoritmit 2 Luento 9 Ti 17.4.2018 Timo Männikkö Luento 9 Merkkitiedon tiivistäminen Huffmanin koodi LZW-menetelmä Taulukointi Editointietäisyys Algoritmit 2 Kevät 2018 Luento 9 Ti 17.4.2018 2/29 Merkkitiedon

Lisätiedot

Paikkatiedon hallinta ja analyysi 5. Kyselyn käsittely

Paikkatiedon hallinta ja analyysi 5. Kyselyn käsittely HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon hallinta ja analyysi 5. Kyselyn käsittely Antti Leino 7. huhtikuuta 2005 Tietojenkäsittelytieteen

Lisätiedot

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

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen Luento omatoimisen luennan tueksi algoritmiikan tutkimusseminaarissa 23.9.2002. 1 Sisältö Esitellään ongelmat Steiner-puu Kauppamatkustajan

Lisätiedot

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

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut Tietorakenteet ja algoritmit (syksy 0) Toinen välikoe, malliratkaisut. (a) Alussa puu näyttää tältä: Lisätään 4: 4 Tasapaino rikkoutuu solmussa. Tehdään kaksoiskierto ensin oikealle solmusta ja sitten

Lisätiedot

Algoritmit 1. Luento 6 Ke Timo Männikkö

Algoritmit 1. Luento 6 Ke Timo Männikkö Algoritmit 1 Luento 6 Ke 25.1.2017 Timo Männikkö Luento 6 Järjestetty lista Listan toteutus dynaamisesti Linkitetyn listan operaatiot Vaihtoehtoisia listarakenteita Puurakenteet Binääripuu Järjestetty

Lisätiedot

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen) TKT0001 Tietorakenteet ja algoritmit Erilliskoe 5.1.01, malliratkaisut (Jyrki Kivinen) 1. [1 pistettä] (a) Esitä algoritmi, joka poistaa kahteen suuntaan linkitetystä järjestämättömästä tunnussolmullisesta

Lisätiedot

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

Lisätiedot

Hakemistorakenteet. R & G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Hakemistorakenteet. R & G Chapter Tietokannan hallinta, kevät 2006, Jan 1 Hakemistorakenteet R & G Chapter 10 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Hakemistotyypeistä Hakemistomerkintä sisältää hakemistoavaimen (indexing key) muodostusperustan määrittelemänä tietueesta

Lisätiedot

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu 1312A Tietorakenteet ja algoritmit, 2018-2019, Harjoitus 5, Ratkaisu Harjoituksen aihe ovat hash-taulukot ja binääriset etsintäpuut Tehtävä 5.1 Tallenna avaimet 10,22,31,4,15,28,17 ja 59 hash-taulukkoon,

Lisätiedot

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta Hakemistotyypeistä Hakemistorakenteet R & G Chapter 10 Hakemistomerkintä sisältää hakemistoavaimen (indexing key) muodostusperustan määrittelemänä tietueesta tai tietuejoukosta tuotettu tunnus yleensä

Lisätiedot

Algoritmit 1. Luento 12 Ke Timo Männikkö

Algoritmit 1. Luento 12 Ke Timo Männikkö Algoritmit 1 Luento 12 Ke 15.2.2017 Timo Männikkö Luento 12 Pikalajittelu Pikalajittelun vaativuus Osittamisen tasapainoisuus Lajittelumenetelmien vaativuus Laskentalajittelu Lokerolajittelu Kantalukulajittelu

Lisätiedot

Algoritmit 1. Luento 12 Ti Timo Männikkö

Algoritmit 1. Luento 12 Ti Timo Männikkö Algoritmit 1 Luento 12 Ti 19.2.2019 Timo Männikkö Luento 12 Osittamisen tasapainoisuus Pikalajittelun vaativuus Lajittelumenetelmien vaativuus Laskentalajittelu Lokerolajittelu Kantalukulajittelu Algoritmit

Lisätiedot

58131 Tietorakenteet (kevät 2008) 1. kurssikoe, ratkaisuja

58131 Tietorakenteet (kevät 2008) 1. kurssikoe, ratkaisuja 1 Tietorakenteet (kevät 08) 1. kurssikoe, ratkaisuja Tehtävän 1 korjasi Mikko Heimonen, tehtävän 2 Jaakko Sorri ja tehtävän Tomi Jylhä-Ollila. 1. (a) Tehdään linkitetty lista kaikista sukunimistä. Kuhunkin

Lisätiedot

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

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003 Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003 Matti Nykänen 5. joulukuuta 2003 1 Satelliitit Muunnetaan luennoilla luonnosteltua toteutusta seuraavaksi: Korvataan puusolmun p kentät p. key ja

Lisätiedot

Johdatus graafiteoriaan

Johdatus graafiteoriaan Johdatus graafiteoriaan Syksy 2017 Lauri Hella Tampereen yliopisto Luonnontieteiden tiedekunta 126 Luku 3 Puut 3.1 Puu 3.2 Virittävä puu 3.3 Virittävän puun konstruointi 3.4 Minimaalinen virittävä puu

Lisätiedot

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

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 1. Palautetaan vielä mieleen O-notaation määritelmä. Olkoon f ja g funktioita luonnollisilta luvuilta positiivisille

Lisätiedot

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

lähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa Kekolajittelu Prioriteettijonolla toteutettu keko InsertItem ja RemoveMinElem: O(log(n)) Lajittelu prioriteettijonolla: PriorityQueueSort(lajiteltava sekvenssi S) alusta prioriteettijono P while S.IsEmpty()

Lisätiedot

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu 1312A Tietorakenteet ja algoritmit, 2016-2017, Harjoitus 5, Ratkaisu Harjoituksen aihe ovat hash-taulukot ja binääriset etsintäpuut Tehtävä 5.1 Tallenna avaimet 10,22,31,4,15,28,17 ja 59 hash-taulukkoon,

Lisätiedot

Tietokannan indeksointi: B puun ja hajautusindeksin tehokkuus

Tietokannan indeksointi: B puun ja hajautusindeksin tehokkuus Tietokannan indeksointi: B puun ja hajautusindeksin tehokkuus Tuomas Kortelainen 28.4.2008 Joensuun yliopisto Tietojenkäsittelytiede Pro gradu tutkielma Tiivistelmä Tässä tutkielmassa esitellään tietokannan

Lisätiedot

A TIETORAKENTEET JA ALGORITMIT KORVAAVAT HARJOITUSTEHTÄVÄT 3, DEADLINE KLO 12:00

A TIETORAKENTEET JA ALGORITMIT KORVAAVAT HARJOITUSTEHTÄVÄT 3, DEADLINE KLO 12:00 A274101 TIETORAKENTEET JA ALGORITMIT KORVAAVAT HARJOITUSTEHTÄVÄT 3, DEADLINE 9.2.2005 KLO 12:00 PISTETILANNE: www.kyamk.fi/~atesa/tirak/harjoituspisteet-2005.pdf Kynätehtävät palautetaan kirjallisesti

Lisätiedot

PN-puu. Helsinki Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

PN-puu. Helsinki Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos PN-puu Erno Härkönen Helsinki 24.10.2006 Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

Lisätiedot

Hajautusrakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Hajautusrakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1 Hajautusrakenteet R&G Chapter 11 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Hajautukseen perustuvat tiedostorakenteet Hajautukseen perustuvissa tiedostorakenteissa on tavoitteena yksittäisen tietueen

Lisätiedot

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä Luku 7 Verkkoalgoritmit Verkot soveltuvat monenlaisten ohjelmointiongelmien mallintamiseen. Tyypillinen esimerkki verkosta on tieverkosto, jonka rakenne muistuttaa luonnostaan verkkoa. Joskus taas verkko

Lisätiedot

Pikalajittelu: valitaan ns. pivot-alkio esim. pivot = oikeanpuoleisin

Pikalajittelu: valitaan ns. pivot-alkio esim. pivot = oikeanpuoleisin Pikalajittelu: valitaan ns. pivot-alkio esim. pivot = oikeanpuoleisin jaetaan muut alkiot kahteen ryhmään: L: alkiot, jotka eivät suurempia kuin pivot G : alkiot, jotka suurempia kuin pivot 6 1 4 3 7 2

Lisätiedot

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

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko, Tehtävä 1 : 1 a) Olkoon G heikosti yhtenäinen suunnattu verkko, jossa on yhteensä n solmua. Määritelmän nojalla verkko G S on yhtenäinen, jolloin verkoksi T voidaan valita jokin verkon G S virittävä alipuu.

Lisätiedot

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

58131 Tietorakenteet (kevät 2009) Harjoitus 9, ratkaisuja (Antti Laaksonen) 58131 Tietorakenteet (kevät 2009) Harjoitus 9, ratkaisuja (Antti Laaksonen) 1. Lisäysjärjestämisessä järjestetään ensin taulukon kaksi ensimmäistä lukua, sitten kolme ensimmäistä lukua, sitten neljä ensimmäistä

Lisätiedot

7. Tasapainoitetut hakupuut

7. Tasapainoitetut hakupuut 7. Tasapainoitetut hakupuut Tässä luvussa jatketaan järjestetyn sanakirjan tarkastelua esittämällä kehittynyt puutietorakenne. Luvussa 7.1. esitetään monitiehakupuun käsite. Se on järjestetty puu, jonka

Lisätiedot

= = = 1 3.

= = = 1 3. 9. 10. 2008!"$#&%(')'*,#.-/* P1. lkuperäisen punaisen kuution pinta koostuu kuudesta 3 3-neliöstä, joten sen ala on 6 3 2 = 54. Koska 3 3 =, kuutio jakautuu leikatessa yksikkökuutioksi, joiden kokonaispinta-ala

Lisätiedot

Tekijä MAA2 Polynomifunktiot ja -yhtälöt = Vastaus a)

Tekijä MAA2 Polynomifunktiot ja -yhtälöt = Vastaus a) K1 a) Tekijä MAA Polynomifunktiot ja -yhtälöt 6.8.016 ( + + ) + ( ) = + + + = + + + = + 4 b) 4 4 ( 5 + ) ( 5 + 1) = 5 + + 5 + 1 4 = + + + 4 = + 5 5 1 1 Vastaus a) 4 + b) 4 + 1 K a) f ( ) = + 1 f () = +

Lisätiedot

D B. Harvat hakemistot. Harvat hakemistot

D B. Harvat hakemistot. Harvat hakemistot Harvassa hakemistossa on ei ole hakemistomerkintöjä jokaista tietuetta kohden vaan yksi merkintä jotain isompaa kokonaisuutta esimerkiksi sivua tai sivujoukkoa (esim. saman uran sivut) kohti Harvan hakemiston

Lisätiedot

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot

Lisätiedot

Kierros 4: Binäärihakupuut

Kierros 4: Binäärihakupuut Kierros 4: Binäärihakupuut Tommi Junttila Aalto University School of Science Department of Computer Science CS-A1140 Data Structures and Algorithms Autumn 2017 Tommi Junttila (Aalto University) Kierros

Lisätiedot

D B. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa. Poistot. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa

D B. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa. Poistot. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa Poistot Alkuperäisen B+ -puun idean mukaisesti tasapainotusta tehdään myös poistossa 50 Jos datasivun täyttösuhde laskee alle puoleen ja sivun ja sen velisivun (sibling, saman isäsivun alla oleva vierussivu)

Lisätiedot

Hilbertin aksioomat ja tarvittavat määritelmät Tiivistelmä Geometria-luentomonisteesta Heikki Pitkänen

Hilbertin aksioomat ja tarvittavat määritelmät Tiivistelmä Geometria-luentomonisteesta Heikki Pitkänen Hilbertin aksioomat ja tarvittavat määritelmät Tiivistelmä Geometria-luentomonisteesta Heikki Pitkänen 1. Hilbertin aksioomat 1-3 Oletetaan tunnetuiksi peruskäsitteet: piste, suora ja suora kulkee pisteen

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Hajautusrakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet

Hajautusrakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet Hajautusrakenteet R&G Chapter Hajautukseen perustuvissa tiedostorakenteissa on tavoitteena yksittäisen tietueen nopea haku. Tähän pyritään siten, että tietueen sijoituspaikan eli solun (cell, bucket) osoite

Lisätiedot

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

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto Indeksin luonti ja hävitys TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto Komentoa ei ole standardoitu ja niinpä sen muoto vaihtelee järjestelmäkohtaisesti Indeksi voidaan

Lisätiedot

Algoritmi on periaatteellisella tasolla seuraava:

Algoritmi on periaatteellisella tasolla seuraava: Algoritmi on periaatteellisella tasolla seuraava: Dijkstra(V, E, l, v 0 ): S := { v 0 } D[v 0 ] := 0 for v V S do D[v] := l(v 0, v) end for while S V do valitse v V S jolle D[v] on minimaalinen S := S

Lisätiedot

Mukautuvat järjestämisalgoritmit

Mukautuvat järjestämisalgoritmit 1 Mukautuvat järjestämisalgoritmit Riku Saikkonen TIK-päivä, 17. 1. 2013 2 Mukautuva järjestäminen minkä tahansa vertailuihin perustuvan järjestämisalgoritmin täytyy tehdä pahimmassa tapauksessa vähintään

Lisätiedot

Paikkatiedon käsittely 4. Diskreettiä geometriaa

Paikkatiedon käsittely 4. Diskreettiä geometriaa HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon käsittely 4. Diskreettiä geometriaa Antti Leino antti.leino@cs.helsinki.fi 25.1.2007 Tietojenkäsittelytieteen laitos Laskentatarkkuuden

Lisätiedot

Algoritmit 2. Luento 10 To Timo Männikkö

Algoritmit 2. Luento 10 To Timo Männikkö Algoritmit 2 Luento 10 To 19.4.2018 Timo Männikkö Luento 10 Peruutusmenetelmä Osajoukon summa Verkon 3-väritys Pelipuut Pelipuun läpikäynti Algoritmit 2 Kevät 2018 Luento 10 To 19.4.2018 2/34 Algoritmien

Lisätiedot

Lisätään avainarvo 6, joka mahtuu lehtitasolle:

Lisätään avainarvo 6, joka mahtuu lehtitasolle: Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 11.6.2004, J. Lindström Ratkaisuehdotuksia 1. Hakemistorakenteet, 15p. Tutkitaan tyhjää B+-puuta, jossa jokaiselle hakemistosivulle

Lisätiedot

Algoritmit 2. Luento 9 Ti Timo Männikkö

Algoritmit 2. Luento 9 Ti Timo Männikkö Algoritmit 2 Luento 9 Ti 19.4.2016 Timo Männikkö Luento 9 Merkkitiedon tiivistäminen LZW-menetelmä Taulukointi Editointietäisyys Peruutus Verkon 3-väritys Algoritmit 2 Kevät 2016 Luento 9 Ti 19.4.2016

Lisätiedot

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

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia 58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, 10..2014, vastauksia 1. [9 pistettä] (a) Todistetaan 2n 2 + n + 5 = O(n 2 ): Kun n 1 on 2n 2 + n + 5 2n 2 + n 2 +5n 2 = 8n 2. Eli

Lisätiedot

3. Hakupuut. B-puu on hakupuun laji, joka sopii mm. tietokantasovelluksiin, joissa rakenne on talletettu kiintolevylle eikä keskusmuistiin.

3. Hakupuut. B-puu on hakupuun laji, joka sopii mm. tietokantasovelluksiin, joissa rakenne on talletettu kiintolevylle eikä keskusmuistiin. 3. Hakupuut Hakupuu on listaa tehokkaampi dynaamisen joukon toteutus. Erityisesti suurilla tietomäärillä hakupuu kannattaa tasapainottaa, jolloin päivitysoperaatioista tulee hankalampia toteuttaa mutta

Lisätiedot

CS-A1140 Tietorakenteet ja algoritmit

CS-A1140 Tietorakenteet ja algoritmit CS-A1140 Tietorakenteet ja algoritmit Kierros 4: Binäärihakupuut Tommi Junttila Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Syksy 2016 Sisältö Binäärihakupuut Avainten lisääminen,

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä

Lisätiedot

4 Yleinen potenssifunktio ja polynomifunktio

4 Yleinen potenssifunktio ja polynomifunktio 4 Yleinen potenssifunktio ja polynomifunktio ENNAKKOTEHTÄVÄT 1. a) Tutkitaan yhtälöiden ratkaisuja piirtämällä funktioiden f(x) = x, f(x) = x 3, f(x) = x 4 ja f(x) = x 5 kuvaajat. Näin nähdään, monessako

Lisätiedot

useampi ns. avain (tai vertailuavain) esim. opiskelijaa kuvaavassa alkiossa vaikkapa opintopistemäärä tai opiskelijanumero

useampi ns. avain (tai vertailuavain) esim. opiskelijaa kuvaavassa alkiossa vaikkapa opintopistemäärä tai opiskelijanumero Alkioiden avaimet Usein tietoalkioille on mielekästä määrittää yksi tai useampi ns. avain (tai vertailuavain) esim. opiskelijaa kuvaavassa alkiossa vaikkapa opintopistemäärä tai opiskelijanumero 80 op

Lisätiedot

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:

Lisätiedot

Injektio. Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim.

Injektio. Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim. Injektio Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim. Funktio f on siis injektio mikäli ehdosta f (x 1 ) = f (x 2 ) seuraa, että x 1 = x 2.

Lisätiedot

4 Tehokkuus ja algoritmien suunnittelu

4 Tehokkuus ja algoritmien suunnittelu TIE-20100 Tietorakenteet ja algoritmit 52 4 Tehokkuus ja algoritmien suunnittelu Tässä luvussa pohditaan tehokkuuden käsitettä ja esitellään kurssilla käytetty kertaluokkanotaatio, jolla kuvataan algoritmin

Lisätiedot

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

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] == T [i + 1] 4 return True 5 return

Lisätiedot

v 8 v 9 v 5 C v 3 v 4

v 8 v 9 v 5 C v 3 v 4 Verkot Verkko on (äärellinen) matemaattinen malli, joka koostuu pisteistä ja pisteitä toisiinsa yhdistävistä viivoista. Jokainen viiva yhdistää kaksi pistettä, jotka ovat viivan päätepisteitä. Esimerkiksi

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019

Lisätiedot

D B. Tietokannan hallinta kertaus

D B. Tietokannan hallinta kertaus TKHJ:n pääkomponentit metadata TKHJ:ssä Tiedostojen käsittely puskurien rooli tiedostokäsittelyssä levymuistin rakenne ja käsittely mistä tekijöistä hakuaika muodostuu jonotus jos useita samanaikaisia

Lisätiedot

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu 832A Tietorakenteet ja algoritmit, 204-205, Harjoitus 7, ratkaisu Hajota ja hallitse-menetelmä: Tehtävä 7.. Muodosta hajota ja hallitse-menetelmää käyttäen algoritmi TULOSTA_PUU_LASKEVA, joka tulostaa

Lisätiedot

811312A Tietorakenteet ja algoritmit III Lajittelualgoritmeista

811312A Tietorakenteet ja algoritmit III Lajittelualgoritmeista 811312A Tietorakenteet ja algoritmit 2016-2017 III Lajittelualgoritmeista Sisältö 1. Johdanto 2. Pikalajittelu 3. Kekolajittelu 4. Lajittelualgoritmien suorituskyvyn rajoista 811312A TRA, Lajittelualgoritmeista

Lisätiedot

14 Tasapainotetut puurakenteet

14 Tasapainotetut puurakenteet TIE-20100 Tietorakenteet ja algoritmit 308 14 Tasapainotetut puurakenteet Binäärihakupuu toteuttaa kaikki dynaamisen joukon operaatiot O(h) ajassa Kääntöpuolena on, että puu voi joskus litistyä listaksi,

Lisätiedot

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

Ei-yhteydettömät kielet [Sipser luku 2.3] Ei-yhteydettömät kielet [Sipser luku 2.3] Yhteydettömille kielille pätee samantapainen pumppauslemma kuin säännöllisille kielille. Siinä kuitenkin pumpataan kahta osamerkkijonoa samaan tahtiin. Lause 2.25

Lisätiedot

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 2 To 8.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 1/33 p. 1/33 Lukujen tallennus Kiintoluvut (integer) tarkka esitys aritmeettiset operaatiot

Lisätiedot

Tekijä Pitkä matematiikka

Tekijä Pitkä matematiikka K1 Tekijä Pitkä matematiikka 5 7..017 a) 1 1 + 1 = 4 + 1 = 3 = 3 4 4 4 4 4 4 b) 1 1 1 = 4 6 3 = 5 = 5 3 4 1 1 1 1 1 K a) Koska 3 = 9 < 10, niin 3 10 < 0. 3 10 = (3 10 ) = 10 3 b) Koska π 3,14, niin π

Lisätiedot

Lisätään avainarvo 1, joka mahtuu lehtitasolle:

Lisätään avainarvo 1, joka mahtuu lehtitasolle: Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 14.5.2004, J. Lindström Ratkaisuehdotuksia 1. Hakemistorakenteet, 15p. Tutkitaan tyhjää B+-puuta, jossa jokaiselle hakemistosivulle

Lisätiedot

Algoritmit 2. Demot Timo Männikkö

Algoritmit 2. Demot Timo Männikkö Algoritmit 2 Demot 2 3.-4.4.2019 Timo Männikkö Tehtävä 1 Avoin osoitteenmuodostus: Hajautustaulukko t (koko m) Erikoisarvot VAPAA ja POISTETTU Hajautusfunktio h(k,i) Operaatiot: lisaa etsi poista Algoritmit

Lisätiedot

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

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Graafit ja verkot Suuntamaton graafi: eli haaroja Joukko solmuja ja joukko järjestämättömiä solmupareja Suunnattu graafi: Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Haaran päätesolmut:

Lisätiedot

1.1 Tavallinen binäärihakupuu

1.1 Tavallinen binäärihakupuu TIE-20100 Tietorakenteet ja algoritmit 1 1 Puurakenteet http://imgur.com/l77fy5x Tässä luvussa käsitellään erilaisia yleisiä puurakenteita. ensin käsitellään tavallinen binäärihakupuu sitten tutustutaan

Lisätiedot