Uopšteno sufiksno stablo

S Vikipedije, slobodne enciklopedije
Sufiks stablo za niske ABAB i BABA. Sufiksne veze nisu prikazane.

U informatici, uopšteno sufiksno stablo je sufiksno stablo za skup niski. Za dati skup niski ukupne dužine , to je radiks stablo koje sadrži svih sufiksa niski. Uglavnom se koristi u bioinformatici.[1]

Funkcionisanje[uredi | uredi izvor]

Stablo se može konstruisati u vremenskoj i prostornoj složenosti i može se iskoristiti da se pronađe svih pojavljivanja niske dužine u vremenu, što je asimptotski optimalno (pod uslovom da je veličina azbuke konstantna, videti [2], pp. 119).

Prilikom pravljenja ovakvog drveta, svaka niska mora biti ograničena jedinstvenim označavajućim simbolom (ili niskom) koji je van azbuke, kako bi se osiguralo da nijedan sufiks nije podniska neke druge, garantujući da je svaki sufiks predstavljen jedinstvenim lisnim čvorom.

Algoritmi za pravljenje UST uključuju Ukonenov algoritam (1993) i MekKrejtov algoritam (1976).

Primer[uredi | uredi izvor]

Sufiksno stablo za niske ABAB i BABA je prikazano na gornjoj slici. Ograničene su jedinstvenim završnim niskama $0 i $1. Brojevi u lisnim čvorovim su broj niske i početnu poziciju. Uočite kako prolaz kroz lisne čvorove sleva udesno odgovara sortiranom poretku sufiksa. Krajevi se mogu označiti niskama ili jedinstvenim simbolima. Grane ka $ od korena nisu prikazane u ovom primeru.

Alternative[uredi | uredi izvor]

Alternativa za pravljenje uopštenog sufiksnog stabla je da se niske spoje u jednu, a potom da se napravi obično sufiksno drvo ili sufiksni niz za rezultujuću nisku. Kada se pronalasci ocenjuju nakon pretrage, globalne pozicije se mapiraju unutar dokumenata, a lokalne pozicije uz pomoć nekog algoritma i/ili strukture podataka, kao što je binarna pretraga od početka ili kraja dokumenta.

Reference[uredi | uredi izvor]