Functional approach to data structures and its use in multidimensional searching
SIAM Journal on Computing
Suffix arrays: a new method for on-line string searches
SIAM Journal on Computing
Efficient suffix trees on secondary storage
Proceedings of the seventh annual ACM-SIAM symposium on Discrete algorithms
Succinct Dynamic Data Structures
WADS '01 Proceedings of the 7th International Workshop on Algorithms and Data Structures
Low Redundancy in Static Dictionaries with O(1) Worst Case Lookup Time
ICAL '99 Proceedings of the 26th International Colloquium on Automata, Languages and Programming
LATIN '00 Proceedings of the 4th Latin American Symposium on Theoretical Informatics
Breaking a Time-and-Space Barrier in Constructing Full-Text Indices
FOCS '03 Proceedings of the 44th Annual IEEE Symposium on Foundations of Computer Science
Journal of the ACM (JACM)
Compressed Suffix Arrays and Suffix Trees with Applications to Text Indexing and String Matching
SIAM Journal on Computing
ACM Computing Surveys (CSUR)
Linear work suffix array construction
Journal of the ACM (JACM)
Succinct indexable dictionaries with applications to encoding k-ary trees, prefix sums and multisets
ACM Transactions on Algorithms (TALG)
Compressed Suffix Trees with Full Functionality
Theory of Computing Systems
Faster index for property matching
Information Processing Letters
Dynamic entropy-compressed sequences and full-text indexes
ACM Transactions on Algorithms (TALG)
Property matching and weighted matching
Theoretical Computer Science
Linear pattern matching algorithms
SWAT '73 Proceedings of the 14th Annual Symposium on Switching and Automata Theory (swat 1973)
Errata for “Faster index for property matching”
Information Processing Letters
The property suffix tree with dynamic properties
CPM'10 Proceedings of the 21st annual conference on Combinatorial pattern matching
Compressed Index for Property Matching
DCC '11 Proceedings of the 2011 Data Compression Conference
Alphabet-independent compressed text indexing
ESA'11 Proceedings of the 19th European conference on Algorithms
Space-Efficient Preprocessing Schemes for Range Minimum Queries on Static Arrays
SIAM Journal on Computing
An algorithmic framework for motif discovery problems in weighted sequences
CIAC'10 Proceedings of the 7th international conference on Algorithms and Complexity
A framework for dynamizing succinct data structures
ICALP'07 Proceedings of the 34th international conference on Automata, Languages and Programming
Hi-index | 0.00 |
Property matching is a biologically motivated problem where the task is to find those occurrences of an online pattern P in a string text T (of size n), such that the matched text part satisfies some conceptual property. The property of a string is a set @p of (possibly overlapping) intervals {(s"1,f"1),(s"2,f"2),...} corresponding to the part of text and an occurrence of a pattern P=T[i,...,(i+|P|-1)] is a valid output only if T[i,...,(i+|P|-1)] is completely contained in at least one interval (s"j,f"j)@?@p. The indexing version of this problem was introduced by A. Amir (2008), where the text is preprocessed in O(nlog@s+nloglogn) time and an O(nlogn) bits index, named Property Suffix Tree (PST) is maintained. PST can perform property matching in O(|P|log@s+occ"@p) time, where occ"@p is the number of occurrences of P in T satisfying the property. T. Kopelowitz (2010) considered the dynamic version of this problem where intervals can be added or deleted. However, all these indexes take space linear to the size of text (O(nlogn) bits), which can be much more than the size of the text (nlog@s bits). In this paper, we propose the first index for property matching occupying space close to the entropy compressed space requirement of the text. Our compressed index takes |CSA|+n(2+@e+o(1)) bits space and performs query answering in O(t(|P|)+1@e(1+occ"@p)t"S"A) time, where |CSA| is the size of compressed suffix array of T, t(|P|) be the time for searching a pattern of length |P| in CSA, t"S"A is the time for computing the suffix array value and @e0 is a constant. We also introduce a dynamic index, which takes |CSA|+O(n+|@p|logn) bits space and performs query answering in O(t(|P|)+(1+occ"@p)logn(t"S"A+logn/loglogn)) time and can update (insert/delete) an interval (s,f) in O((f-s)(logn+t"S"A)) time.