A framework for dynamic parameterized dictionary matching
Two equal-length strings S and S′ are a parameterized-match (p-match) iff there exists a one-to-one function that renames the characters in S to those in S′. Let P be a collection of d patterns of total length n characters that are chosen from an alphabet Σ of cardinality σ. The task is to index P such that we can support the following operations: ▪ search(T): given a text T, report all occurrences (j, Pi) such that there exists a pattern Pi ∈ P that is a p-match with the substring T[j, j + |Pi| - 1]. ▪ insert(Pi)/delete(Pi): modify the index when a pattern Pi is inserted/deleted. We present a linear-space index that occupies O(n log n) bits and supports (i) search(T) in worst-case O(|T| log2 n + occ) time, where occ is the number of occurrences reported, and (ii) insert(Pi) and delete(Pi) in amortized O(|Pi| polylog(n)) time. Then, we present a succinct index that occupies (1+o(1))n log σ+O(d log n) bits and supports (i) search(T) in worst-case O(|T| log2 n+occ) time, and (ii) insert(Pi) and delete(Pi) in amortized O(|Pi| polylog(n)) time. We also present results related to the semi-dynamic variant of the problem, where deletion is not allowed.
Publication Source (Journal or Book title)
Leibniz International Proceedings in Informatics, LIPIcs
Ganguly, A., Hon, W., & Shah, R. (2016). A framework for dynamic parameterized dictionary matching. Leibniz International Proceedings in Informatics, LIPIcs, 53, 10.1-10.14. https://doi.org/10.4230/LIPIcs.SWAT.2016.10