Komprimovani sufiks niza

U računarstvu, komprimovani sufiks niza (engl. Compressed suffix array)[1][2] je komprimovana struktura podataka za pronalaženje modela. Imajući u vidu tekst T od n karaktera iz Σ azbuke, komprimovani sufiks niza podržava traženje proizvoljnih obrazaca u T. Za ulaz obrasca P od m karaktera, vreme za traženje je jednako do n puta višeg reda entropije teksta T , plus neki dodatni delovi bita za skladištenje empirijskog statističkog modela i O(n).

Originalni primer komprimovanog sufiksa niza[1] rešavao je dugogodišnji otvoreni problem pokazujući da je brzo pronalaženje modela bilo moguće korišćenjem samo linearno-prostorne strukture podataka, naime, proporcionalno sa veličinom teksta T, koje zauzima bita. Konvencionalni sufiks niza i sufiks drvo koriste bita, što je znatno veće. Osnova za strukturu podataka je rekurzivno raspadanje koristeći "komšijsku funkciju", koja omogućava da se sufiks niza predstavlja jednom polovinom njegove dužine. Konstrukcija se ponavlja više puta dok rezultujući sufiks niza ne koristi linearni broj bitova. Sledeći rad je pokazao da je stvarni prostor za skladištenje bio vezan za nulti red entropije i da indeks podržava samo-indeksiranje.[3]. Zauzimanje memorije je dodatno poboljšano što je dovelo do postizanja krajnjeg cilja - višeg reda entropije. Kompresija se postiže podelom komšijske funkcije kontekstima višeg reda, i zbijanje svake particije sa talasastim stablom[2]. Korišćenje prostora je izuzetno konkurentno u praksi sa drugim kompresorima[4], a takođe podržava brzo pronalaženje modela.

Pristupi memoriji, stvoreni od strane komprimovanog sufiksa nizova i drugih komprimovanih struktura podataka za pronalaženje modela, uglavnom nisu lokalizovani, pa prema tome ove strukture podataka su bile izuzetno teško efikasno dizajnirane za upotrebu u eksternoj memoriji. Nedavni napredak pomoću geometrijskog dualiteta koristi prednosti blokiranja pristupa koji obezbeđuju diskovi da značajno ubrza I/O vreme.[5]

Reference uredi

  1. ^ a b R. Grossi and J. S. Vitter, Compressed Suffix Arrays and Suffix Trees, with Applications to Text Indexing and String Matching, SIAM Journal on Computing, 35(2), 2005, 378-407. An earlier version appeared in Proceedings of the 32nd ACM Symposium on Theory of Computing, May 2000, 397-406.
  2. ^ a b R. Grossi, A. Gupta, and J. S. Vitter, High-Order Entropy-Compressed Text Indexes, Proceedings of the 14th Annual SIAM/ACM Symposium on Discrete Algorithms, January 2003, 841-850.
  3. ^ K. Sadakane, Compressed Text Databases with Efficient Query Algorithms Based on the Compressed Suffix Arrays, Proceedings of the International Symposium on Algorithms and Computation, Lecture Notes in Computer Science, vol. 1969, Springer, December 2000, 410-421.
  4. ^ L. Foschini, R. Grossi, A. Gupta, and J. S. Vitter, Indexing Equals Compression: Experiments on Suffix Arrays and Trees, ACM Transactions on Algorithms, 2(4), 2006, 611-639.
  5. ^ W.-K. Hon, R. Shah, S. V. Thankachan, and J. S. Vitter, On Entropy-Compressed Text Indexing in External Memory, Proceedings of the Conference on String Processing and Information Retrieval, August 2009.