next up previous contents
Next: On-line algoritmi loppuosapuun muodostamiseen Up: Trie-puu Previous: Hahmontunnistus trie-puuta käyttäen   Sisältö

Triviaali algoritmi loppuosapuun muodostamiseen

Triviaali algoritmi loppuosapuun $Trie(S)$ muodostamiseen toimii siten, että jokainen tekstin loppuosa lisätään järjestyksessä trie-puuhun. Olkoon $S_i$ seuraava puuhun $trie_{i-1}(S)$ lisättävä loppuosa. Olkoon $alku(S_i,trie_{i-1}(S))$ pisimpään $S_i$:n $trie_{i-1}(S)$:ssä jo esiintyvään alkuosaan liittyvä solmu. Kun tämä solmu on paikannettu, vain $S_i$:n jäljellä oleva osa täytyy lisätä $trie_{i-1}$:een. Kun jäljellä oleva osa on lisätty, on muodostettu $trie_i(S)$, joka sisältää uuden loppuosan $S_i$. Algoritmin toimintaa jatkuu seuraavan loppuosan $S_{i+1}$ lisäämisellä.

Triviviaalialgoritmissa jokainen $S$:n loppuosa käydään läpi kerran. Sen aikavaatimus on siis loppuosien pituuksien summa $\Sigma_{i=1}^n \vert S_i\vert= { 1 \over 2 } n^2$ eli neliöllinen. Loppuosapuu voidaan kuitenkin muodostaa lineaarisessa ajassa puun kokoon nähden.



Jani Jaakkola 2004-11-19