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

Koko: px
Aloita esitys sivulta:

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

Transkriptio

1 PN-puu Erno Härkönen Helsinki Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

2 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos Institution Department Matemaattis-luonnontieteellinen Tekijä Författare Author Erno Härkönen Työn nimi Arbetets titel Title Tietojenkäsittelytieteen laitos PN-puu Oppiaine Läroämne Subject Tietojenkäsittelytiede Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages Seminaari sivua Tiivistelmä Referat Abstract Moniulotteisia hakemistoja käytetään nopeuttamaan hakuja tietokannoista, joissa tietueet pitää indeksoida useamman attribuutin mukaan. PN-puu on yksi tällainen moniulotteinen hakemisto. PN-puu kasaa avaruudessa lähekkäin olevat olevat pisteet samalle levyn sivulle, jotta ne löytyvät tehokkaasti hakuja toteutettaessa. PN-puun käyttämät algoritmit voidaan helposti jakaa rinnakkain suoritettaviin osatehtäviin. ACM Computing Classification System (CCS): E.1 [Data structures] H.2.8 [Database applications] Avainsanat Nyckelord Keywords PN-puu, moniulotteiset hakemistot Säilytyspaikka Förvaringsställe Where deposited Muita tietoja övriga uppgifter Additional information

3 Sisältö ii 1 Johdanto 1 2 Moniulotteiset hakemistot 2 3 PN-puu Lisäysalgoritmi Hakualgoritmi Poistoalgoritmi PN-puun toteutus Projektioiden tallentaminen Lähimmän naapurin etsintä Yhteenveto 11 Lähteet 11

4 1 Johdanto 1 Hakemistoja käytetään mm. nopeuttamaan hakuja aineistosta ja vähentämään levylle kohdistuvia operaatioita. B+-puu on yksi tällainen yleisesti käytetty tietokantojen hakemistorakenne. Hakemisto muodostetaan tietyn attribuutin mukaan ja järjestyksessä peräkkäiset tietueet löytyvät levyltä lähekkäin. Maantieteellistä paikkatietoa sisältävät tietokannat ovat esimerkki tapauksista, joissa tietueet tulisi indeksoida usean attribuutin mukaan [GG98]. Paikkatietokannat ovat usein hyvin laajoja ja siksi ne joudutaan säilyttämään massamuistin puolella. Hakemistojen tulisi toimia tehokkaasti myös silloin, kun aineisto muuttuu lisäyksillä ja poistoilla usein. Perinteiset yksiulotteiset hakemistot eivät ole tehokkaita moniulotteisten hakujen suorittamiseen, joissa yksi tietue tarvitsee indeksoida usean attribuutin perusteella. Tämä johtuu siitä, että ei ole olemassa täydellistä kuvausta useampi ulotteisesta avaruudesta yksiulotteiseen avaruuteen, joka säilyttäisi lähekkäin avaruuden etäisyyden perusteella lähekkäin olevat oliot. Hakuoperaatiot tarvitsevat nopean yhteyden tietyn avaruuden tilan dataolioihin. Levyhakujen nopeus on usein merkittävässä roolissa tällaisten kyselyjen suorittamisessa [GG98]. Ideaalissa tilanteessa vain ne levyn sivut, jotka kuuluvat tietokantaan kohdistuvan kyselyn vastaukseen tulisi hakea. Avaruuden etäisyyden perusteella lähekkäin sijaitsevat oliot tulisi tallentaa samalle levyn sivulle, jotta ne voitaisiin tehokkaasti hakea [ASI05]. Luvussa 2 käsitellään moniulotteisia hakemistoja. Tämän jälkeen esitellään luvussa 3 moniulotteinen hakemisto PN-puu ja sen käsittelyyn tarvittavat algoritmit. Luvussa 4 käydään läpi PN-puun tarvitsemat tietorakenteet.

5 2 Moniulotteiset hakemistot 2 Moniulotteiset hakemistot ovat tarkoitettu tietueille, joilla on useita attribuutteja, joiden mukaan tietueet halutaan indeksoida [ASI05]. Tällaisesta hakemistosta täytyisi pystyä hakemaan tietueita yhden tai useamman attribuutin perusteella. Hakemistojen ei myöskään tulisi suosia tiettyjä attribuutteja ellei tätä erikseen haluta. Moniulotteisella hakemistolla on yhtä monta ulottuvuutta kuin tietueella on attribuutteja. Tietyn pisteen koordinaattien arvot ovat suhteessa attribuuttien arvoihin. Moniulotteiset hakemistot voidaan jakaa kahteen luokkaan [GG98, ASI05]. Ensimmäisen luokan muodostavat hakemistot, jotka tallentavat vain yksittäisiä avaruuden pisteitä, joilla ei ole tilavuutta. Toisen luokan muodostavat hakemistot, joihin voidaan tallentaa tietyn avaruuden tilan käsittäviä olioita. Näitä olioita voivat olla viivat, monikulmiot tai muut tietyn avaruuden tilan rajaavat oliot. Tyypillisesti moniulotteiseen tietokantaan kohdistuvat haut muodostuvat pisteistä tai alueista. Haussa annettu piste voi olla kohta avaruudessa, jonka ympäristöstä etsitään olioita. Haussa annettu alue voi esim. rajata avaruuden osan, jonka sisältämät oliot halutaan löytää [GG98]. 3 PN-puu PN-puu (Projected Node tree) [ASI05] on tarkoitettu moniulotteisten pisteiden indeksointiin. Hakemisto pyrkii minimoimaan levylle kohdistuvia hakuja. PN-puu keskittyy hakuihin, joissa halutaan löytää ne tietueet, joiden attribuutit ovat halutulla etäisyydellä annetusta pisteestä. PN-puu tukee lisäyksiä ja poistoja, joita voidaan suorittaa hakujen välissä. PN-puu kasaa lähekkäiset pisteet yhdeksi solmuksi (node), joka tallennetaan yhdelle levyn sivulle. Solmun projektiot jokaiselle ulottuvuudelle tallennetaan omiksi

6 3 Kuva 1: Solmujen projektiot hakemistoiksi. PN-puu sisältää siis useita yksiulotteisia hakemistoja, joihin solmujen projektiot tallennetaan. Näiden lisäksi tarvitaan yksi moniulotteinen hakemisto, jonne tallennetaan jokaisen solmun keskipiste. Kuvassa 1 on esitetty kolme solmua ja näiden projektiot kahdelle ulottuvuudelle. Solmujen harmaa alue sisältää joukon solmuun kuuluvia pisteitä. Projektiot useammalle ulottuvuudelle suoritetaan vastaavalla tavalla. Koska jokainen ulottuvuus on tallennettu omaan yksiulotteiseen hakemistoon, voidaan haun suoritus jakaa rinnakkain suoritettaviin osiin helposti. Tällöin yksittäinen prosessori voi käsitellä yhden ulottuvuuden. Myös tuloksen hakeminen voidaan suorittaa rinnakkain, jos lähekkäin sijaitsevat solmut on tallennettu eri levyille. Solmujen keskipisteiden käsittelyyn käytetään neljää funktiota. Keskipisteet tallennetaan R-puuhun, ja haku R-puusta tapahtuu luvussa 4.2 kuvatulla tavalla. LisääKeskipiste(Solmu N, Piste C) lisää moniulotteiseen hakemistorakenteeseen uuden keskipisteen.

7 4 PoistaKeskipiste(Solmu N, Piste C) poistaa annetun pisteen hakemistosta. PäivitäKeskipiste(Solmu N, Piste vanhac, Piste uusic) korvaa vanhan keskipisteen uudella arvolla. HaeLähinNaapurisolmu(Piste P ) palauttaa solmun, jonka keskipiste on lähinnä annettua pistettä. Solmujen projektioiden käsittelyyn käytetään neljää funktiota. Jokainen projektio tallennetaan omaan B+-puuhun. Projektiota käsitellään luvussa 4.1. LisääProjektio(integer D, NodeId N, real alku, real loppu) lisää yhden projektion ulottuvuudelle D yksiulotteiseen hakemistoon. PoistaProjektio(integer D, NodeId N, real alku, real loppu) poistaa yhden projektion. PäivitäProjektio(integer D, NodeId N, real vanhaalku, real vanhaloppu, real uusialku, real uusiloppu) korvaa vanhat projektion alku- ja loppupisteet annetuilla uusilla arvoilla. HaeSolmutProjektioista(integer D, real alku, real loppu) palauttaa kaikki solmut, joiden projektiot ulottuvuudelle D ovat annetulla hakualueella. PN-puun tehokkuutta on verrattu hybridipuuhun [CM99], joka on tehokas moniulotteinen hakemistorakenne. PN-puun on osoitettu toimivan nopeammin suurilla aineistoilla ja suurilla etäisyyksillä hakupisteestä. 3.1 Lisäysalgoritmi Lisäysalgoritmi huolehtii, että lähekkäin sijaitsevat pisteet tallennetaan samaan solmuun. Tämä tapahtuu sijoittamalla lähekkäiset pisteet samaan solmuun ja jakamalla solmu ylivuodon tapahtuessa sopivalla tavalla.

8 5 Aluksi lisäysalgoritmissa etsitään solmu, jonka keskipiste on lähinnä lisättävää pistettä. Lähimmän keskipisteen hakuun käytetään moniulotteista hakemistoa, joka on esitelty luvussa 4.2. Haussa löydettyyn solmuun lisätään uusi piste. Jos löydettyyn solmuun ei enää mahdu uutta pistettä, tapahtuu solmun ylivuoto, ja solmu täytyy jakaa kahteen osaan. Muodostuneiden solmujen keskipisteet tulee tällöin laskea niiden sisältämistä pisteistä. Solmu jaetaan aina laajuudeltaan suurimman ulottuvuuden mukaan kahtia. Lisäksi katkaisukohtana käytettään solmun puoliväliä. Näin toimittaessa jako minimoi levyhakujen odotettua kestoa. Joissakin tilanteissa solmua ei voida jakaa tasan, jolloin toinen muodostuneista solmuista voi jäädä vajaaksi. Tällaiset tilanteet ovat kuitenkin harvinaisia ja ne eivät muodosta ongelmaa, jos sallitaan joidenkin solmujen täyttöasteen olla alle vaaditun. Lisätty solmu voi muuttaa solmun keskipistettä ja tämä täytyy laskea uudestaan. Jos solmu muodostaa uuden reunan projektioalueelle, täytyy solmun projektion rajoja päivittää. Algoritmi 1 kuvaa lisäysalgoritmin toimintaa. Algoritmi saa syötteenä lisättävän pisteen P. 3.2 Hakualgoritmi Hakualgoritmille annetaan parametrina yksi avaruuden piste ja etäisyys. Tällöin tulee löytää kaikki ne pisteet, jotka sijaitsevat annetun etäisyyden päässä halutusta pisteestä. Hakualgoritmi projisoi annetun haun jokaiselle ulottuvuudelle. Näin saatuja projektioita verrataan solmujen projektioihin ja ne solmut, jotka leikkaavat hakuprojektiota tallennetaan listoiksi. Jokaiselle ulottuvuudelle suoritetaan oma haku. Lopputulos muodostetaan näiden osatulosten leikkauksena. Leikkaus tapahtuu jakamalla listat

9 6 Algoritmi 1 LisääPiste(Piste P) N = HaeLähinNaapurisolmu(P) lisää P solmuun N if solmussa N tapahtuu ylivuoto then jaa N solmuiksi N1 ja N2 PoistaKeskipiste(N, N.Keskipiste) LisääKeskipiste(N1, Keskipiste(N1)) LisääKeskipiste(N2, Keskipiste(N2)) stop PäivitäKeskipiste(N, N.Keskipiste, Keskipiste(N)) for i = 1 to UlottuvuuksienMäärä do if P i < N.min i then PäivitäProjektio(i, N, N.min i, N.max i, P i, N.max i ) if P i > N.max i then PäivitäProjektio(i, N, N.min i, N.max i, N.min i, P i )

10 7 Algoritmi 2 HaeSolmut(Piste QP, integer R) for i = 1 to UlottuvuuksienMäärä Lista i = HaeSolmutProjektioista(i, QP i - R, QP i + R) d = UlottuvuuksienMäärä while d>1 do for i = 1 to (d div 2) Lista i = Leikkaus(Lista i, Lista i+(d+1)div2 ) d = (d + 1) div 2 Hae listassa List 1 olevat solmut levyltä pareiksi ja muodostamalla näiden parien leikkaukset. Tätä toistetaan kunnes jäljelle jää enää vain yksi lista. Jäljelle jäänyt lista kertoo ne solmut, jotka tulee hakea levyltä muistiin. Yksittäinen solmu kuuluu hakualueelle, jos sen kaikki projektiot leikkaavat haun projektiota jokaisessa ulottuvuudessa. Haussa voi muodostua myös vääriä positiivisia solmuja, joiden pisteet eivät kuulu hakualueelle, vaikka solmun projektiot kuuluvat. Väärät positiiviset lisäävät levyhakujen määrää ja vähentävät haun tehokkuutta. Jokainen ulottuvuus lisää tarvittavia levyhakuja yksiulotteisista hakemistoista. Väärien positiivisten levyhakujen määrä taas pienenee useammalla ulottuvuudella. Algoritmi 2 kuvaa hakualgoritmin toimintaa. Algoritmi saa syötteenä pisteen QP ja hakualueen säteen R.

11 8 3.3 Poistoalgoritmi Poistoalgoritmi etsii aluksi solmun, jonne poistettava piste kuuluu. Kun pisteen solmu löytyy, se poistetaan tästä solmusta. Pisteen poiston jälkeen täytyy solmun keskipistettä ja mahdollisesti projektioita päivittää. Jos solmun täyttöaste laskee alle halutun rajan, täytyy koko solmu poistaa ja sen sisältämät pisteet lisätä tietorakenteeseen uudestaan. Tällöin solmujen täyttöaste ei laske alle halutun rajan. Kokeellisesti on hyväksi täyttöasteen minimirajaksi todettu 40% solmun tallennustilavuudesta. Yleensä PN-puun täyttöaste todellisilla aineistoilla on noin 75%. Algoritmi 3 kuvaa pisteen poistoalgoritmia ja saa syötteenä poistettavan pisteen P. Solmun poistaminen on kuvattu algoritmissa 4. Tällöin syötteenä on poistettava solmu N. Solmun poistaminen tapahtuu poistamalla solmun keskipiste ja kaikki sen projektiot. 4 PN-puun toteutus PN-puu käyttää useampaa eri tietorakennetta. Luvussa 4.1 käsitellään projektioiden tallennukseen tarvittavia yksiulotteisia rakenteita ja luvussa 4.2 lähimmän naapurin löytämiseen tarkoitettua rakennetta. 4.1 Projektioiden tallentaminen PN-puu käyttää yksiulotteisia hakemistoja tallentamaan solmujen projektioita [ASI05]. Mitä hyvänsä yksiulotteista hakemistorakennetta voidaan käyttää näiden hakemistojen toteutukseen. PN-puun yksiulotteiseksi hakemistorakenteeksi on valittu B+puu. B+-puun valintaan on päädytty, koska se on tehokas ja se löytyy useasta tie-

12 9 Algoritmi 3 PoistaPiste(Piste P) N = HaeSolmu(P) poista piste P solmusta N if N.PisteidenMäärä < minimi then PoistaSolmu(N) and stop PäivitäKeskipiste(N, N.Keskipiste, Keskipiste(N)) for i = 1 to UlottuvuuksienMäärä if P i = N.min i then hae jäljelle jääneistä pisteistä pienin alaraja LB PäivitäProjektio(i, N, N.min i, N.max i, LB, N.max i ) else P i = N.max i then hae jäljelle jääneistä pisteistä suurin yläraja UB PäivitäProjektio(i, N, N.min i, N.max i, N.min i, UB) Algoritmi 4 PoistaSolmu(Solmu N) PoistaKeskipiste(N, N.Centroid) for i = 1 to UlottuvuuksienMäärä PoistaProjektio(i, N, N.min i, N.max i ) for i = 1 to N.PisteidenMäärä LisääPiste(N[i])

13 10 tokannan hallintajärjestelmästä. Yksittäisen ulottuvuuden projektioiden alkupisteet ja loppupisteet on suositeltu tallennettavaksi erillisiin B+-puihin. Projektioiden alkupisteet on järjestetty kasvavaan järjestykseen. Aluksi haetaan ensimmäinen arvo, joka on suurempi kuin hakualueen loppu. Tämän jälkeen voidaan projektioista karsia tämä arvo ja kaikki tätä arvoa seuraavat arvot. Vastaavasti karsinta suoritetaan projektioiden loppupisteille. Loppupisteet on järjestetty laskevaan järjestykseen. Jäljelle jäävät projektiot ovat ne, jotka muodostavat hakualueen projektiot. 4.2 Lähimmän naapurin etsintä PN-puu käyttää lähimmän solmun keskipisteen löytämiseen moniulotteista hakemistoa. PN-puu tallettaa hakurakenteeseen vain yksittäisiä pisteitä, jotka kuvaavat solmujen keskipisteitä. Käytetty hakemisto on R-puun läpikäyntiin perustuva lähimmän naapurin etsintäalgoritmi [ASI05]. R-puu on muunnos B-puusta useammalle ulottuvuudelle [RKV95]. R-puu on samalla tavalla tasapainotettu puu kuin B-puu ja rakentuu pitkälle samalla tavalla. Tallennettavat avaimet kuvaavat nyt kuitenkin avaruuden osia. Jokainen yksittäinen tietorakenteeseen tallennettu olio rajataan pienimmän sitä rajaavan moniulotteisen suorakaiteen sisälle. Tämä kuvaa sitä avaruuden osaa, jonka sisälle olio jää kokonaisuudessaan. R-puun lehtiin tallennetaan tämä suorakaide ja viittaus olion tunnisteeseen. Tilan rajaava suorakaide vastaa B-puun avainta. Puun sisäsolmut sisältävät vastaavia suorakaiteita, jotka rajaavat suorakaiteen sisälle kuuluvat lapset. Jokaisesta suorakaiteesta on myös yhteys sen lapsiin. Lähimmän naapurin löytäminen R-puusta tapahtuu syvyyssuuntaisella järjestetyllä puun läpikäynnillä [RKV95]. Haku aloitetaan puun juuresta. Haun edetessä karsitaan turhia puun haaroja käyttäen kahta etäisyysarviota hyväksi. Toinen etäisyyk-

14 11 sistä kuvaa optimistista etäisyyttä lähimpään naapuriin ja toinen pessimististä etäisyyttä. Näitä arvoja päivitetään haun edetessä. Molemmat etäisyydet perustuvat avaruutta rajaavien suorakaiteiden ominaisuuksiin ja näistä tehtäviin päätelmiin. Näillä arvioilla voidaan turhien etsintähaarojen määrää karsia huomattavasti, ja haku on tehokas. 5 Yhteenveto PN-puu on tarkoitettu moniulotteisten hakemistojen toteuttamiseen. Hakemistorakenne pystyy hyödyntämään useita prosessoreja, koska jokainen ulottuvuus voidaan käsitellä omana kokonaisuutena. PN-puun lisäysalgoritmi huolehtii siitä, että avaruudessa lähekkäin olevat pisteet päätyvät samaan solmuun. PN-puusta voidaan hakea pisteen ympäristössä olevat pisteet, jotka ovat halutulla etäisyydellä annetusta pisteestä. Uusien pisteiden lisäämistä ja vanhojen poistamista voi tehdä hakujen välillä tietorakenteen tehokkuuden siitä kärsimättä. Lähteet ASI05 Ali, M. H., Saad, A. A. ja Ismail, M. A., The pn-tree: A parallel and distributed multidimensional index. Distributed and Parallel Databases, 17,2(2005), sivut CM99 Chakrabarti, K. ja Mehrotra, S., The hybrid tree: An index structure for high dimensional feature spaces. Proc. 15th International Conference on Data Engineering, Washington, DC, USA, 1999, IEEE Computer Society, sivut

15 GG98 Gaede, V. ja Günther, O., Multidimensional access methods. ACM Computing Surveys, 30,2(1998), sivut RKV95 Roussopoulos, N., Kelley, S. ja Vincent, F., Nearest neighbor queries. Proc ACM SIGMOD international conference on Management of data, New York, NY, USA, 1995, ACM Press, sivut

arvostelija OSDA ja UDDI palveluhakemistoina.

arvostelija OSDA ja UDDI palveluhakemistoina. Hyväksymispäivä Arvosana arvostelija OSDA ja UDDI palveluhakemistoina. HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty/Section Laitos Institution

Lisätiedot

Selainpelien pelimoottorit

Selainpelien pelimoottorit Selainpelien pelimoottorit Teemu Salminen Helsinki 28.10.2017 Seminaaritutkielma Helsingin yliopisto Tietojenkäsittelytiede ! 1 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta

Lisätiedot

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos Institution Department Tekijä Författare Author Työn nimi Arbetets titel Title Oppiaine Läroämne Subject Työn laji Arbetets art Level Aika Datum Month

Lisätiedot

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA Karoliina Ljungberg 16.04.2009 Ohjaajat: Ari Venäläinen, Jouni Räisänen

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

Aika/Datum Month and year Kesäkuu 2012

Aika/Datum Month and year Kesäkuu 2012 Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos/Institution Department Filosofian, historian, kulttuurin ja taiteiden tutkimuksen laitos Humanistinen tiedekunta Tekijä/Författare Author Veera Lahtinen

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

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

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

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

Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan

Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan Pro gradu -tutkielma 31.1.2012 Helsingin yliopisto Humanistinen tiedekunta Filosofian, historian,

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

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

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

Luonnontieteiden popularisointi ja sen ideologia

Luonnontieteiden popularisointi ja sen ideologia Luonnontieteiden popularisointi ja sen ideologia Tapauksina Reino Tuokko ja Helsingin Sanomat 1960-luvulla Ahto Apajalahti Helsingin yliopisto Humanistinen tiedekunta Suomen ja Pohjoismaiden historia Pro

Lisätiedot

Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin

Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin INSTITUUTIOTTALOUSKASVUNEDELLYTYKSENÄ KatsauskorruptionvaikutuksestaVenäjänalueelliseentalouskasvuunjasuoriin ulkomaisiininvestointeihin2000 2010 AshekMohamedTarikHossain HelsinginYliopisto Valtiotieteellinentiedekunta

Lisätiedot

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.

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. Tietorakenteet, laskuharjoitus 11, ratkaisuja 1. Leveyssuuntaisen läpikäynnin voi toteuttaa rekursiivisesti käsittelemällä jokaisella rekursiivisella kutsulla kaikki tietyllä tasolla olevat solmut. Rekursiivinen

Lisätiedot

Arkkitehtuurinen reflektio

Arkkitehtuurinen reflektio Arkkitehtuurinen reflektio Toni Ruokolainen Toni.Ruokolainen@cs.helsinki.fi Helsinki 6.10.2003 Tiivistelmä HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

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

811312A Tietorakenteet ja algoritmit II Perustietorakenteet

811312A Tietorakenteet ja algoritmit II Perustietorakenteet 811312A Tietorakenteet ja algoritmit 2017-2018 II Perustietorakenteet Sisältö 1. Johdanto 2. Pino 3. Jono 4. Lista 811312A TRA, Perustietorakenteet 2 II.1. Johdanto Tietorakenne on tapa, jolla algoritmi

Lisätiedot

Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa

Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa Kohtdialogia? Organisaationtoimintaympäristönteemojenhallinta dynaamisessajulkisuudessatarkastelussatoiminta sosiaalisessamediassa SatuMariaPusa Helsinginyliopisto Valtiotieteellinentiedekunta Sosiaalitieteidenlaitos

Lisätiedot

Oppimateriaalin kokoaminen ja paketointi

Oppimateriaalin kokoaminen ja paketointi Oppimateriaalin kokoaminen ja paketointi Pekka Simola Helsinki 14.4.2004 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

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

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

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

Kuva 1: J+-puun rakenne [HXS09].

Kuva 1: J+-puun rakenne [HXS09]. Johdanto Tietotekniikka on kehittynyt viime vuosikymmenten aikana nopeata vauhtia. Tämä on näkynyt niin tietokoneiden tehoissa kuin myös hinnoissa. Myös tietokoneiden keskusmuistit ovat kasvaneet ja ovat

Lisätiedot

! #! %! & #!!!!! ()) +

! #! %! & #!!!!! ()) + ! #! %! & #!!!!! ()) + Tiedekunta/Osasto Fakultet/Sektion Faculty Humanistinen tiedekunta Laitos Institution Department Taiteiden tutkimuksen laitos Tekijä Författare Author Matti Pesonen Työn nimi Arbetets

Lisätiedot

58131 Tietorakenteet Erilliskoe , ratkaisuja (Jyrki Kivinen)

58131 Tietorakenteet Erilliskoe , ratkaisuja (Jyrki Kivinen) 58131 Tietorakenteet Erilliskoe 11.11.2008, ratkaisuja (Jyrki Kivinen) 1. (a) Koska halutaan DELETEMAX mahdollisimman nopeaksi, käytetään järjestettyä linkitettyä listaa, jossa suurin alkio on listan kärjessä.

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

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

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

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

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

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

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

MEMS-muisti relaatiotietokannoissa

MEMS-muisti relaatiotietokannoissa MEMS-muisti relaatiotietokannoissa Antti Tikka Espoo 28.2.2009 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

Lisätiedot

811312A Tietorakenteet ja algoritmit V Hash-taulukot ja binääriset etsintäpuut

811312A Tietorakenteet ja algoritmit V Hash-taulukot ja binääriset etsintäpuut 811312A Tietorakenteet ja algoritmit 2018-2019 V Hash-taulukot ja binääriset etsintäpuut Sisältö 1. Hash-taulukot 2. Binääriset etsintäpuut 811312A TRA, Hash-taulukot, binääripuut 2 V.1 Hash-taulukot Käytetään

Lisätiedot

Liitosesimerkki Tietokannan hallinta, kevät 2006, J.Li 1

Liitosesimerkki Tietokannan hallinta, kevät 2006, J.Li 1 Liitosesimerkki 16.02.06 Tietokannan hallinta, kevät 2006, J.Li 1 Esim R1 R2 yhteinen attribuutti C T(R1) = 10,000 riviä T(R2) = 5,000 riviä S(R1) = S(R2) = 1/10 lohkoa Puskuritilaa = 101 lohkoa 16.02.06

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

Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa

Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa Lauri Eloranta Helsingin yliopisto Valtiotieteellinen tiedekunta Viestintä Pro gradu -tutkielma, 2014 Hallintomallit)Suomen)valtionhallinnon)tietohallintostrategioissa

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

Paikkatiedon käsittely 5. Paikkatiedon indeksointi

Paikkatiedon käsittely 5. Paikkatiedon indeksointi HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon käsittely 5. Paikkatiedon indeksointi Antti Leino antti.leino@cs.helsinki.fi 29.1.2007 Tietojenkäsittelytieteen laitos Mistä

Lisätiedot

Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta

Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta Laitos Institution Department Politiikan ja talouden tutkimuksen laitos Tekijä Författare Author Virta, Mikko Antero Työn nimi Arbetets

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

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin

Lisätiedot

Puuhakemistoista flash-levyllä

Puuhakemistoista flash-levyllä Puuhakemistoista flash-levyllä Antti Tikka Espoo 23.10.2009 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

Lisätiedot

13 Lyhimmät painotetut polut

13 Lyhimmät painotetut polut TIE-20100 Tietorakenteet ja algoritmit 297 13 Lyhimmät painotetut polut BFS löytää lyhimmän polun lähtösolmusta graafin saavutettaviin solmuihin. Se ei kuitenkaan enää suoriudu tehtävästä, jos kaarien

Lisätiedot

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot Esim yhteinen attribuutti C Liitosesimerkki T() = 10,000 riviä T() = 5,000 riviä S() = S() = 1/10 lohkoa Puskuritilaa = 101 lohkoa 1 2 Vaihtoehdot Sisäkkäiset silmukat Liitosjärjestys:, Liitosalgoritmit:

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

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

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

Tiedostorakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1 Tiedostorakenteet R&G Chapter 9 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Tiedostorakenteet Tiedostojen tehokkuutta yhtä kyselyä kohti arvioidaan usein tarvittavien levyhakujen määrällä. kuten levykäsittelyn

Lisätiedot

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja Tietokantojen hakemistorakenteet Hakemistorakenteiden (indeksien) tarkoituksena on nopeuttaa tietojen hakua tietokannasta. Hakemisto voi olla ylimääräinen oheishakemisto (secondary index), esimerkiksi

Lisätiedot

D B. 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)

Lisätiedot

2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys

2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys .. Kohteiden konstruktiivinen avaruusgeometrinen esitys Avaruusgeometrinen esitys on käyttäjäriippuvainen ja vaati erikoismenetelmiä tai lopuksi konversion monikulmiomalliksi. Se on korkean tason esitys

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

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi

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

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

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

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

Dominointianalyysi. Teppo Niinimäki. Helsinki Approksimointialgoritmit HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Dominointianalyysi. Teppo Niinimäki. Helsinki Approksimointialgoritmit HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Dominointianalyysi Teppo Niinimäki Helsinki 10.5.2010 Approksimointialgoritmit HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta

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

D B. Tiedostojen käsittely

D B. Tiedostojen käsittely Tietokantojen tietoja säilytetään yleensä apumuistissa, lähinnä levymuisteissa Apumuistiin tallentamisen merkittäviä etuja keskusmuistiin nähden ovat tiedon säilyvyys (virtakatkon yli) säilytyskapasiteetin

Lisätiedot

Algoritmit 1. Luento 9 Ti Timo Männikkö

Algoritmit 1. Luento 9 Ti Timo Männikkö Algoritmit 1 Luento 9 Ti 7.2.2017 Timo Männikkö Luento 9 Graafit ja verkot Kaaritaulukko, bittimatriisi, pituusmatriisi Verkon lyhimmät polut Floydin menetelmä Lähtevien ja tulevien kaarien listat Forward

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

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

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

(a) L on listan tunnussolmu, joten se ei voi olla null. Algoritmi lisäämiselle loppuun:

(a) L on listan tunnussolmu, joten se ei voi olla null. Algoritmi lisäämiselle loppuun: Tietorakenteet ja algoritmit, kevät 201 Kurssikoe 1, ratkaisuja 1. Tehtävästä sai yhden pisteen per kohta. (a) Invariantteja voidaan käyttää algoritmin oikeellisuustodistuksissa Jokin väittämä osoitetaan

Lisätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

Lisätiedot

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe malliratkaisut ja arvosteluperusteet

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe malliratkaisut ja arvosteluperusteet 58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe 15.6.2018 malliratkaisut ja arvosteluperusteet 1. [10 pistettä] Hakemistorakenteet. Vertaa linkitettyjen listojen, tasapainoisten hakupuiden ja

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

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

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

Useaa tietolähdettä käyttävä klusterointi

Useaa tietolähdettä käyttävä klusterointi Useaa tietolähdettä käyttävä klusterointi Mikko Heinonen Tiedon louhinnan seminaari, kevät 2008 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY

Lisätiedot

Helsingin yliopisto /TKTL Tietokannan hallinta Harri Laine 1 D B. Harvat hakemistot. Harvat hakemistot

Helsingin yliopisto /TKTL Tietokannan hallinta Harri Laine 1 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

Luento 2: Tiedostot ja tiedon varastointi

Luento 2: Tiedostot ja tiedon varastointi HELIA 1 (19) Luento 2: Tiedostot ja tiedon varastointi Muistit... 2 Päämuisti (Primary storage)... 2 Apumuisti (Secondary storage)... 2 Tiedon tallennuksen yksiköitä... 3 Looginen taso... 3 Fyysinen taso...

Lisätiedot

PIKAOHJE Web of Science tietokantojen käyttöön

PIKAOHJE Web of Science tietokantojen käyttöön PIKAOHJE Web of Science tietokantojen käyttöön SCIENCE CITATION INDEX Monitieteinen tietokanta, joka sisältää biologian, lääketieteen ja psykiatrian alalta n. 7100 lehteä SOCIAL SCIENCES CITATION INDEX

Lisätiedot

Luentorunko keskiviikolle Hierarkkinen ryvästäminen

Luentorunko keskiviikolle Hierarkkinen ryvästäminen Luentorunko keskiviikolle 3.12.2008 Hierarkkinen ryvästäminen Ryvästyshierarkia & dendrogrammi Hierarkkinen ryvästäminen tuottaa yhden ryvästyksen sijasta sarjan ryvästyksiä Tulos voidaan visualisoida

Lisätiedot

Algoritmit 2. Luento 14 Ke Timo Männikkö

Algoritmit 2. Luento 14 Ke Timo Männikkö Algoritmit 2 Luento 14 Ke 3.5.2017 Timo Männikkö Luento 14 Ositus ja rekursio Rekursion toteutus Kertaus ja tenttivinkit Algoritmit 2 Kevät 2017 Luento 14 Ke 3.5.2017 2/30 Ositus Tehtävän esiintymä ositetaan

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta

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

Algoritmit 2. Luento 11 Ti Timo Männikkö

Algoritmit 2. Luento 11 Ti Timo Männikkö Algoritmit 2 Luento 11 Ti 24.4.2018 Timo Männikkö Luento 11 Rajoitehaku Kapsäkkiongelma Kauppamatkustajan ongelma Paikallinen etsintä Lyhin virittävä puu Vaihtoalgoritmit Algoritmit 2 Kevät 2018 Luento

Lisätiedot

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

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

Algoritmit 1. Luento 4 Ke Timo Männikkö

Algoritmit 1. Luento 4 Ke Timo Männikkö Algoritmit 1 Luento 4 Ke 18.1.2017 Timo Männikkö Luento 4 Tietorakenteet Pino Pinon toteutus Jono Jonon toteutus Lista Listaoperaatiot Algoritmit 1 Kevät 2017 Luento 4 Ke 18.1.2017 2/29 Pino Pino, stack,

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

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

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