Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Compressed suffix array

From Wikipedia, the free encyclopedia
Compressed data structure for pattern matching

Incomputer science, acompressed suffix array[1][2][3] is acompressed data structure forpattern matching. Compressed suffix arrays are a general class ofdata structure that improve on thesuffix array.[1][2] These data structures enable quick search for an arbitrarystring with a comparatively small index.

Given a textT ofn characters from an alphabet Σ, a compressed suffix array supports searching for arbitrary patterns inT. For an input patternP ofm characters, the search time is typically O(m) or O(m + log(n)). The space used is typicallyO(nHk(T))+o(n){\displaystyle O(nH_{k}(T))+o(n)}, whereHk(T){\displaystyle H_{k}(T)} is thek-th order empirical entropy of the textT. The time and space to construct a compressed suffix array are normallyO(n){\displaystyle O(n)}.

The original presentation of a compressed suffix array[1] solved a long-standing open problem by showing that fast pattern matching was possible using only a linear-space data structure, namely, one proportional to the size of the textT, which takesO(nlog|Σ|){\displaystyle O(n\,{\log |\Sigma |})} bits. The conventional suffix array and suffix tree useΩ(nlogn){\displaystyle \Omega (n\,{\log n})} bits, which is substantially larger. The basis for the data structure is a recursive decomposition using the "neighbor function," which allows a suffix array to be represented by one of half its length. The construction is repeated multiple times until the resulting suffix array uses a linear number of bits. Following work showed that the actual storage space was related to the0th{\displaystyle 0^{th}}-order entropy and that the index supports self-indexing.[4] The space bound was further improved achieving the ultimate goal of higher-order entropy; the compression is obtained by partitioning the neighbor function by high-order contexts, and compressing each partition with awavelet tree.[3] The space usage is extremely competitive in practice with other state-of-the-art compressors,[5] and it also supports fastin-situ pattern matching.

The memory accesses made by compressed suffix arrays and other compressed data structures for pattern matching are typically not localized, and thus these data structures have been notoriously hard to design efficiently for use inexternal memory. Recent progress using geometric duality takes advantage of the block access provided by disks to speed up the I/O time significantly[6] In addition, potentially practical search performance for a compressed suffix array in external-memory has been demonstrated.[7]

Open source implementations

[edit]

There are several open source implementations of compressed suffix arrays available (seeExternal Links below). Bowtie and Bowtie2 are open-source compressed suffix array implementations ofread alignment for use inbioinformatics. The Succinct Data Structure Library (SDSL) is a library containing a variety of compressed data structures including compressed suffix arrays. FEMTO is an implementation of compressed suffix arrays for external memory. In addition, a variety of implementations, including the originalFM-index implementations, are available from the Pizza & Chili Website (see external links).

See also

[edit]

References

[edit]
  1. ^abcR. 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 inProceedings of the 32nd ACM Symposium on Theory of Computing, May 2000, 397–406.
  2. ^abPaolo Ferragina and Giovanni Manzini (2000)."Opportunistic Data Structures with Applications". Proceedings of the 41st Annual Symposium on Foundations of Computer Science. p.390.
  3. ^abR. 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.
  4. ^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.
  5. ^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.
  6. ^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.
  7. ^M. P. Ferguson,FEMTO: fast search of large sequence collections,Proceedings of the 23rd Annual Conference on Combinatorial Pattern Matching, July 2012

External links

[edit]

Implementations:

Lossless
type
Entropy
Dictionary
Other
Hybrid
Lossy
type
Transform
Predictive
Audio
Concepts
Codec
parts
Image
Concepts
Methods
Video
Concepts
Codec
parts
Theory
Community
People
Retrieved from "https://en.wikipedia.org/w/index.php?title=Compressed_suffix_array&oldid=1261412582"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp