Group insertion in AVL trees
dc.contributor | Aalto-yliopisto | fi |
dc.contributor | Aalto University | en |
dc.contributor.advisor | Soisalon-Soininen, Eljas | |
dc.contributor.author | Saikkonen, Riku | |
dc.contributor.department | Tietotekniikan osasto | fi |
dc.contributor.school | Teknillinen korkeakoulu | fi |
dc.contributor.school | Helsinki University of Technology | en |
dc.contributor.supervisor | Soisalon-Soininen, Eljas | |
dc.date.accessioned | 2020-12-04T18:24:49Z | |
dc.date.available | 2020-12-04T18:24:49Z | |
dc.date.issued | 2004 | |
dc.description.abstract | Työssä tutkitaan useita algoritmeja AVL-puun ryhmälisäysoperaatiolle. Tutkitut algoritmit kuvataan yksityiskohtaisesti, mutta työn pääasiallinen sisältö on ryhmälisäyksen tehokkuuden kokeellinen tutkiminen. Tasapainotusoperaatioiden määrän lisäksi mitattiin välimuistin käytön tehokkuutta simuloidun välimuistin avulla. Työssä kuvataan myös kokeissa käytetyn ohjelmiston arkkitehtuuri. Ryhmälisäysalgoritmi lisää joukon avaimia tietorakenteeseen yhdellä operaatiolla. Ryhmälisäyksessä tarvitaan vähemmän tasapainotusoperaatioita kuin jos avaimet lisättäisiin yksi kerrallaan yksittäislisäyksellä, koska tasapainotus voidaan tehdä sen jälkeen, kun kaikki avaimet on lisätty. AVL-puut ovat tasapainoisia binäärisiä hakupuita, joiden sovelluksia ovat esimerkiksi keskusmuistitietokannat ja kokotekstihaku. AVL-puilla on pienet solmut ja tasapainotusoperaatiot ovat paikallisia, mikä tekee niistä tehokkaita rinnakkaisessa käytössä. Työn kokeissa ryhmälisäysalgoritmeja verrattiin toisiinsa ja tavalliseen yksittäislisäysalgoritmiin eri tilanteissa. Välimuistikäyttäytymistä mitattiin laskemalla työjoukon koko sekä eri kokoisilla simuloiduilla välimuisteilla. Kokeissa käytettiin kolmea ryhmälisäysalgoritmia: niin sanottua yksinkertaista ryhmälisäystä (avaimet lisätään yksi aliryhmä kerrallaan) käyttäviä O(log m)- ja O(log<sup>2</sup> m)-algoritmeja sekä monen aliryhmän lisäystä käyttävää O(log<sup>2</sup> m)-algoritmia (m on aliryhmän koko). Aliryhmä muodostuu saman lehtisolmun alle päätyvistä avaimista. Kokeissa mitatut rotaatioiden määrät sopivat hyvin analyyttisiin kompleksisuustuloksiin: O(log m)-algoritmi teki paljon vähemmän rotaatioita kuin kaksi O(log<sup>2</sup> m)-algoritmia, myös pienillä m:n arvoilla. Ryhmälisäysalgoritmit toimivat myös selvästi yksittäislisäystä paremmin yli kahden kokoisilla aliryhmillä. O(log m)-algoritmin välimuistin käyttö oli kuitenkin tehottomampaa kuin O(log<sup>2</sup> m)-algoritmilla. Nähtävästi O(log m)-algoritmilla on suurempi työjoukko, koska se tarvitsee enemmän tietoa valitessaan suoritettavia rotaatioita. Tämä ja muut päätulokset näkyivät sekä satunnaisesti muodostetulla syötteellä että simuloidusta kokotekstihakusovelluksesta tuotetusta syötteestä. | fi |
dc.format.extent | 85 | |
dc.identifier.uri | https://aaltodoc.aalto.fi/handle/123456789/91498 | |
dc.identifier.urn | URN:NBN:fi:aalto-2020120450333 | |
dc.language.iso | en | en |
dc.programme.major | Ohjelmistotekniikka | fi |
dc.programme.mcode | T-106 | fi |
dc.rights.accesslevel | closedAccess | |
dc.subject.keyword | data structures | en |
dc.subject.keyword | tietorakenteet | fi |
dc.subject.keyword | algorithms | en |
dc.subject.keyword | algoritmit | fi |
dc.subject.keyword | experimental algorithmics | en |
dc.subject.keyword | kokeellinen algoritmitutkimus | fi |
dc.subject.keyword | search trees | en |
dc.subject.keyword | hakupuut | fi |
dc.subject.keyword | AVL tree | en |
dc.subject.keyword | AVL-puu | fi |
dc.subject.keyword | group update | en |
dc.subject.keyword | ryhmäpäivitys | fi |
dc.subject.keyword | bulk update | en |
dc.subject.keyword | ryhmälisäys | fi |
dc.subject.keyword | group insertion | en |
dc.subject.keyword | bulk insertion | en |
dc.title | Group insertion in AVL trees | en |
dc.title | Ryhmälisäykset AVL-puissa (Group insertion in AVL trees) | fi |
dc.type.okm | G2 Pro gradu, diplomityö | |
dc.type.ontasot | Master's thesis | en |
dc.type.ontasot | Pro gradu -tutkielma | fi |
dc.type.publication | masterThesis | |
local.aalto.digiauth | ask | |
local.aalto.digifolder | Aalto_90515 | |
local.aalto.idinssi | 25059 | |
local.aalto.openaccess | no |