Opinto-ohjelma: Tietojenkäsittelytieteen kandiohjelma
Projektin kieli: Suomi
Ohjelmointikieli: Python
Tavoitteena on vertailla Huffmanin koodausta ja Lempel-Ziv-Welch pakkausmenetelmää. Huffmanin koodauksen toteuttamiseen käytetään minimikekoa ja binääripuuta. Sanakirja tallennetaan hajautustauluksi. LZW käyttää hajautustaulua ja taulukkoa.
Ongelmana on näiden kahden pakkausmenetelmän vertailu. Valittuna on kaksi suhteellisen yksinkertaista, mutta erittäin suosittua menetelmää. Modernit pakkausmenetelmät saattavat olla tehokkaampia, mutta esimerkiksi Huffmanin koodausta käytetään yhtenä vaiheena monessa eri menetelmässä.
Ohjelman tulisi voida sekä pakata tekstiä, että purkaa jo valmiiksi pakatut tekstit.
Huffmanin koodaus on mahdollista toteuttaa ajassa O(nlogn + m), missä n on eri merkkien määrä ja m syötteen määrä. Käytännössä rajoittava tekijä on syötteen merkkien laskeminen ja kääntäminen, mikä on yksinkertainen operaatio.