连续发生的间隔索引
Gapped Indexing for Consecutive Occurrences
摘要:
经典的字符串索引问题是将字符串S预处理为支持高效模式匹配查询的紧凑数据结构。典型的查询包括存在查询(决定模式是否出现在S中),报告查询(返回模式出现的所有位置)和计数查询(返回模式出现的次数)。在本文中,我们考虑字符串索引的一个变体,其中目标是压缩表示字符串,使得给定两个模式P1和P2以及间隙范围[α,β],我们可以快速找到P1和P2在[α,β]中的距离的连续出现,即,两个事件彼此紧接着出现,且距离在范围内。我们提出的数据结构,使用n(n)的空间和查询时间的存在和计数(|P1| + |P2| +n^(2/3)*occ^(1/3))的报告的查询(|P1| + |P2| +n^(2/3)*occ^(1/3))。我们补充这一点与条件下界的基础上,集合相交问题表明,任何解决方案,使用n(n)空间必须使用\tilde Ω}(|P1| + |P2| + \sqrt{n})查询时间。为了获得我们的结果,我们开发了新的技术和想法的独立利益,包括一个新的后缀树分解和硬度的一个变种的集合相交问题。
英文摘要:
The classic string indexing problem is to preprocess a string S into a compact data structure that supports efficient pattern matching queries. Typical queries include existential queries (decide if the pattern occurs in S), reporting queries (return all positions where the pattern occurs), and counting queries (return the number of occurrences of the pattern). In this paper we consider a variant of string indexing, where the goal is to compactly represent the string such that given two patterns P1 and P2 and a gap range [α,β] we can quickly find the consecutive occurrences of P1 and P2 with distance in [α,β], i.e., pairs of occurrences immediately following each other and with distance within the range. We present data structures that use Õ(n) space and query time Õ(|P1|+|P2|+n^(2/3)) for existence and counting and Õ(|P1|+|P2|+n^(2/3)*occ^(1/3)) for reporting. We complement this with a conditional lower bound based on the set intersection problem showing that any solution using Õ(n) space must use \tildeΩ}(|P1|+|P2|+\sqrt{n}) query time. To obtain our results we develop new techniques and ideas of independent interest including a new suffix tree decomposition and hardness of a variant of the set intersection problem.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。