Show simple item record

dc.contributor.authorGrossi, Roberto
dc.contributor.authorVitter, Jeffrey Scott
dc.date.accessioned2011-03-16T17:27:53Z
dc.date.available2011-03-16T17:27:53Z
dc.date.issued2005
dc.identifier.citationR. 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 extended abstract appears in Proceedings of the 32nd Annual ACM Symposium on Theory of Computing (STOC ’00), Portland, OR, May 2000, 397–406. http://dx.doi.org/10.1137/S0097539702402354
dc.identifier.urihttp://hdl.handle.net/1808/7177
dc.descriptionAMS subject classifications. 68W05, 68Q25, 68P05, 68P10, 68P30 DOI. 10.1137/S0097539702402354
dc.description.abstractThe proliferation of online text, such as found on the World Wide Web and in online databases, motivates the need for space-efficient text indexing methods that support fast string searching. We model this scenario as follows: Consider a text T consisting of n symbols drawn from a fixed alphabet Σ. The text T can be represented in n lg |Σ| bits by encoding each symbol with lg |Σ| bits. The goal is to support fast online queries for searching any string pattern P of m symbols, with T being fully scanned only once, namely, when the index is created at preprocessing time. The text indexing schemes published in the literature are greedy in terms of space usage: they require Ω(n lg n) additional bits of space in the worst case. For example, in the standard unit cost RAM, suffix trees and suffix arrays need Ω(n) memory words, each of Ω(lg n) bits. These indexes are larger than the text itself by a multiplicative factor of Ω(lg|Σ| n), which is significant when Σ is of constant size, such as in ascii or unicode. On the other hand, these indexes support fast searching, either in O(mlg |Σ|) time or in O(m+lg n) time, plus an output-sensitive cost O(occ) for listing the occ pattern occurrences. We present a new text index that is based upon compressed representations of suffix arrays and suffix trees. It achieves a fast O(m/lg|Σ| n + lg | Σ| n) search time in the worst case, for any constant 0 < ≤ 1, using at most −1 + O(1) n lg |Σ| bits of storage. Our result thus presents for the first time an efficient index whose size is provably linear in the size of the text in the worst case, and for many scenarios, the space is actually sublinear in practice. As a concrete example, the compressed suffix array for a typical 100 MB ascii file can require 30–40 MB or less, while the raw suffix array requires 500 MB. Our theoretical bounds improve both time and space of previous indexing schemes. Listing the pattern occurrences introduces a sublogarithmic slowdown factor in the output-sensitive cost, giving O(occ lg | Σ| n) time as a result. When the patterns are sufficiently long, we can use auxiliary data structures in O(n lg |Σ|) bits to obtain a total search bound of O(m/lg|Σ| n + occ) time, which is optimal.
dc.language.isoen_US
dc.publisherSociety for Industrial and Applied Mathematics
dc.subjectCompression
dc.subjectText indexing
dc.subjectText retrieval
dc.subjectCompressed data structures
dc.subjectSuffix arrays
dc.subjectSuffix tree
dc.subjectString searching
dc.subjectPattern matching
dc.titleCompressed Suffix Arrays and Suffix Trees with Applications to Text Indexing and String Matching
dc.typeArticle
kusw.kuauthorVitter, Jeffrey Scott
kusw.oastatusfullparticipation
dc.identifier.doi10.1137/S0097539702402354
kusw.oaversionScholarly/refereed, publisher version
kusw.oapolicyThis item meets KU Open Access policy criteria.
dc.rights.accessrightsopenAccess


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record