Group insertion in AVL trees

No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
Helsinki University of Technology | Diplomityö
Checking the digitized thesis and permission for publishing
Instructions for the author
Date
2004
Major/Subject
Ohjelmistotekniikka
Mcode
T-106
Degree programme
Language
en
Pages
85
Series
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ä.
Description
Supervisor
Soisalon-Soininen, Eljas
Thesis advisor
Soisalon-Soininen, Eljas
Keywords
data structures, tietorakenteet, algorithms, algoritmit, experimental algorithmics, kokeellinen algoritmitutkimus, search trees, hakupuut, AVL tree, AVL-puu, group update, ryhmäpäivitys, bulk update, ryhmälisäys, group insertion, bulk insertion
Other note
Citation