String Indexing for Patterns with Wildcards
我们考虑索引长度为$n$的字符串$t$以报告包含$m$字符和$j$通配符的查询模式$p$的出现的问题。令$occ$为$p$在$t$中出现的次数,$σ$为字母表的大小。我们得到以下结果。- 带查询时间的线性空间索引$O(m+σ^j \log \log n + occ)$。这显著改进了Lam等人[ISAAC 2007]以前最著名的线性空间索引,在最坏的情况下,它需要查询时间$Θ(jn)$。- 使用空格$O(σ^{k^2} n \log^k \log n)$的查询时间为$O(m+j+occ)$的索引,其中$k$是模式中允许的最大通配符数。这是这个查询时间的第一个非平凡界限。- 时空权衡,Cole et al. [STOC 2004]概括了该指数。我们还表明,这些指数可以推广到允许可变长度的差距的模式。我们的研究结果是使用一种新的组合,众所周知的和新的技术,这可能是独立的利益。
2012-09-06 cs.DS
Probabilistic Threshold Indexing for Uncertain Strings
字符串形成计算机系统中的基本数据类型。自从计算机科学诞生以来,字符串搜索一直被广泛研究。越来越多的应用程序必须处理不精确的字符串或字符串中的模糊信息。当字符串包含不确定性时,字符串匹配就变成了概率事件,即字符串的每个位置都可能有不同的可能字符,每个字符的出现概率都相关。这种不确定字符串在诸如生物序列数据、事件监测和自动ECG注释的各种应用中是普遍的。我们探讨的问题,索引不确定字符串,以支持高效的字符串搜索。在本文中,我们考虑两个基本问题的字符串搜索,即子串搜索和字符串列表。在子串搜索中,任务是在一个不确定的字符串中找到一个确定的字符串。我们制定的字符串列表问题的不确定字符串,其目标是输出所有的字符串从字符串的集合,包含可能发生的确定性查询字符串。这两个问题的索引解决方案是显着更具挑战性的不确定字符串比确定性字符串。给定构造时间概率值$τ$,我们的索引可以在线性空间中构造,并且对于概率阈值参数大于$τ$的任意值,支持在接近最佳时间的查询。据我们所知,这是第一个在不确定字符串中搜索的索引解决方案,它实现了强大的理论界,并支持概率阈值参数的任意值。我们还提出了一个近似的子串搜索索引,可以回答子串搜索查询的最佳时间与附加错误。我们进行实验来评估我们的指标的性能。
2015-09-29 cs.DB cs.DS
String Indexing with Compressed Patterns
针对客户端-服务器场景中以压缩形式提交的模式查询,提出一种线性空间数据结构,能直接高效处理Lempel-Ziv压缩模式,实现接近最优的查询时间,并开发了编码LZ77压缩后缀和分解trie等通用数据结构技术。
2024-02-14 cs.DS
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})查询时间。为了获得我们的结果,我们开发了新的技术和想法的独立利益,包括一个新的后缀树分解和硬度的一个变种的集合相交问题。
2021-02-04 cs.DS
String Indexing for Top-$k$ Close Consecutive Occurrences
本文研究了 top-$k$ 近邻连续出现的字符串索引问题,旨在紧凑表示字符串的同时支持高效查询距离最小的连续出现,并提出了三种时空权衡方案及线段相交转化和树递归聚类等新技术。
2024-02-14 cs.DS
A New Class of String Transformations for Compressed Text Indexing
本文提出一类基于局部排序的新型字符串变换,证明其属于包含BWT、ABWT的上下文自适应字母表排序变换族,可用于构建r-index,还给出了线性时间寻找最小游程数BWT变体的算法。
2023-05-08 cs.DS
Near-Linear Time Insertion-Deletion Codes and (1+$\varepsilon$)-Approximating Edit Distance via Indexing
我们介绍了快速解码的索引方案的编辑距离,可以用来加快编辑距离计算到近线性时间,如果一个字符串是索引字符串$I$。具体地,对于每个长度$n$和每个$\varepsilon >0$,可以在接近线性时间中用$|Σ'| = O_{\varepsilon}(1)$构造串$I \in Σ'^n$,使得用$I$逐个符号地索引任何串$S \in Σ^n$导致串$S' \in Σ''^n$,其中对于$Σ'' = Σ\times Σ'$,编辑距离计算是容易的,即,可以计算在$O(n \text{poly}(\log n))$时间上$S'$和任何其它串之间的编辑距离的$(1+\varepsilon)$近似。我们的索引方案可以用来提高国家的最先进的纠错码的插入和删除的解码复杂度。特别是,它们为[Haeupler,Shahrasbi; STOC '17]的插入-删除码带来了近线性时间解码算法,并为[Haeupler,Shahrasbi,苏丹; ICALP' 18]的列表可解码插入-删除码带来了更快的解码算法。有趣的是,后一种代码是构建快速解码索引方案的关键因素。
2019-04-09 cs.DS cs.IT math.IT
Lower bounds for text indexing with mismatches and differences
在本文中,我们研究的基本问题,文本索引的不匹配和差异的下限。在这个问题中,我们给出了一个长度为$n$的长字符串,即“文本”,任务是将其预处理成一个数据结构,以便在给定查询字符串$Q$的情况下,可以快速识别出在汉明或编辑距离内的子字符串,这些子字符串最多与$Q$相距$k$。这个问题是生物学和文本处理中出现的各种问题的核心。虽然精确的文本索引允许线性查询时间的线性大小的数据结构,但具有$k$不匹配(或$k$差异)的文本索引似乎要困难得多:所有已知的数据结构都在空间或时间范围内对$k$具有指数依赖性。我们提供了条件和指针机器的下限,使一个步骤来解释这种现象。我们从证明$k = Θ(\log n)$的下限开始。我们表明,假设强指数时间假设,任何数据结构的文本索引,可以在多项式时间内构建不能有$\mathcal{O}(n^{1-δ})$查询时间,任何$δ>0$。这个界限也扩展到我们只要求文本索引的$(1+\varepsilon)$近似解决方案的设置。然而,在许多应用中,$k$的值相当小,人们可能希望对于小的~ $k$,我们可以开发更有效的解决方案。我们表明,这将需要一个全新的方法,因为使用目前的方法不能避免指数依赖于$k$无论是在空间中,或在时间范围内的所有甚至$\frac{8}{\sqrt{3}} \sqrt{\log n} \le k = o(\log n)$。我们的下限也适用于字典查找…
2018-12-21 cs.DS
Towards a complete perspective on labeled tree indexing: new size bounds, efficient constructions, and beyond
标记树(或trie)是字符串的自然推广,也可以被视为一组字符串的紧凑表示。本文考虑了标记树索引问题,并在空间边界分析、有效构造算法和模式匹配查询等方面提供了一些新的结果。Kakhaju [FOCS 1989]是第一个考虑标记树索引问题的人,他提出了向后trie的后缀树,其中trie中的字符串在叶到根的方向上读取。与向后trie相比,我们称普通trie为向前trie。尽管在Komaju的论文之后有一些后续工作,但索引向前/向后尝试还没有得到很好的理解。在本文中,我们展示了一个完整的角度对索引结构的大小,如后缀树,DAWG,CDAWGs,后缀数组,词缀树,词缀数组的向前和向后尝试。它们中的一些以输入trie的大小$n$占用$O(n)$空间,而另一些在最坏的情况下可以占用$O(n^2)$空间。特别是,我们表明,与$n$节点的正向trie的DAWG的大小是$Ω(σn)$,其中$σ$是在trie中的不同字符的数量。对于大小为$σ= Θ(n)$的字母表,这将成为$Ω(n^2)$。尽管如此,我们表明,有一个紧凑的$O(n)$空间隐式表示的DAWG的前向特里,其空间要求是独立的字母表的大小。该紧凑表示允许在$O(\log σ)$时间上模拟每个DAWG边遍历,并且可以在$O(n)$大小的任何整数字母表上在$O(n)$时间和空间上构造。此外,这容易扩展到第一索引结构,其允许在输入trie树大小的线性空…
2022-01-03 cs.DS
Full-fledged Real-Time Indexing for Constant Size Alphabets
在本文中,我们描述了一个数据结构,支持模式匹配查询的动态到达的文本在一个字母表的恒定大小。每个新的符号都可以在O(1)的最坏情况下前置到$T$。在任何时候,我们都可以在$O(|P|+k)$时间内报告模式$P$在当前文本中的所有出现,其中$|P|$是$P$的长度,$k$是出现的次数。这解决了在字母表大小恒定的假设下,存在用于字符串匹配的实时的【形】索引方法的一个长期存在的公开问题(参见\cite{AmirN08})。
2013-07-06 cs.DS
Algorithms and Indexing Lower Bounds for Variable String Matching
University of Wrocław(弗罗茨瓦夫大学)
研究可变字符串匹配中广义退化字符串(GD)匹配问题,给出\(\tilde{\mathcal O}(N\sqrt m)\)时间算法。适配索引使GD字符串查询时间达\(\mathcal O(nm)\),并在多种猜想下给出索引下界,指出改进索引ED查询需新方法避免活跃前缀查询瓶颈。
2026-07-10 cs.DS
Compressed Indexing with Signature Grammars
压缩索引问题是将长度为$n$的字符串$S$预处理为支持模式匹配查询的压缩表示。也就是说,给定长度为$m$的字符串$P$,报告$S$中所有出现的$P$。我们提出了一种数据结构,支持模式匹配查询在$O(m + occ (\lg\lg n + \lg^εz))$时间使用$O(z \lg(n / z))$空间,其中$z$是$S$和$ε> 0$的LZ77解析的大小是一个任意小的常数,当字母表是小或$z = O(n^{1 - δ})$的任何常数$δ> 0$。我们还提出了两种数据结构的一般情况下,一个空间增加了$O(z\lg\lg z)$,和一个查询时间的变化从最坏的情况下预期。这些结果改进了以前最好的已知的解决方案。值得注意的是,这是第一个决定$P$是否在$O(m)$时间中使用$O(z\lg(n/z))$空间出现在$S$中的数据结构。我们的研究结果主要是通过一种新的随机语法构建算法与众所周知的技术相结合,模式匹配的2D范围报告。
2018-04-11 cs.DS
Substring Range Reporting
我们重新审视各种字符串索引问题的范围报告功能,即位置限制的子串搜索,索引子串的差距,索引子串的间隔。我们得到以下主要结果。{itemize}我们将上述每个问题有效地归约到一个新的问题,我们称之为\emph{substring range reporting}。因此,我们统一了以前的工作,表明我们可以限制我们的注意力,而不是单独研究上述每个问题。我们展示了如何解决子串范围报告的最佳查询时间和小空间。结合我们的减少,这导致显着改善上述问题的时空权衡。特别是,对于每个问题,我们获得了最佳的时间查询和$O(n\log^{O(1)} n)$空间,其中$n$是索引字符串的长度的第一个解决方案。我们表明,我们的子串范围报告的技术推广到\emph{substring range counting}和\emph{substring range emptiness}的变种。我们还获得了这些问题的非平凡的时空权衡。{itemize}我们的子字符串范围报告的界限是基于后缀树和范围报告数据结构的新组合。这些减少是简单和通用的,并且可以应用于字符串索引与范围报告的其他组合。
2011-08-18 cs.DS
Optimal Random Access and Conditional Lower Bounds for 2D Compressed Strings
该研究针对二维数据压缩索引的次优问题,提出首个二维文法压缩字符串的最优随机访问数据结构,证明模式匹配条件下界及基本二维查询的硬度假设,建立二维与一维压缩索引复杂度的关联。
2025-10-22 cs.DS
siEDM: an efficient string index and search algorithm for edit distance with moves
虽然存在用于高度重复的文本集合的几个自索引,但是开发具有编辑操作的索引和搜索算法仍然是一个挑战。移动编辑距离(EDM)是一种字符串到字符串的距离度量,除了将一个字符串转换为另一个字符串的顺序编辑操作之外,还包括子字符串移动。虽然EDM的计算问题是棘手的,它有广泛的潜在应用,特别是在近似字符串检索。尽管计算EDM的重要性,一直没有有效的方法来索引和搜索大型文本集合的基础上的EDM措施。我们提出了第一个算法,命名为字符串索引的编辑距离与移动(siEDM),索引和搜索字符串与EDM。siEDM算法通过利用编辑敏感解析(ESP)背后的思想来构建索引结构,ESP是一种有效的算法,能够近似计算EDM,并保证精确EDM的上界和下界。siEDM有效地修剪的空间搜索查询字符串的方法,这使得快速查询搜索与ESP相同的保证。我们实验测试的能力,siEDM索引和搜索字符串的基准数据集,我们展示了siEDM的效率。
2016-04-08 cs.DS
INSTRUCT: Space-Efficient Structure for Indexing and Complete Query Management of String Databases
搜索引擎、词典和同义词词典存储以及其他文本挖掘应用的巨大扩展,与容易获得的扫描设备和光学字符识别工具的普及相结合,使得对于各种现代应用的大量文本数据库的有效存储、检索和管理成为必要。对于这样的应用程序,我们提出了一种新的数据结构,INFECT,有效地存储和管理的序列数据库。我们的结构使用位向量重用的存储空间,共同的三元组,因此,有一个非常低的内存需求。除了精确的字符串搜索操作之外,INCLUCT还通过迭代地检查三元组的存在来有效地处理前缀和后缀搜索查询。我们还提出了一个扩展的结构,以有效地处理子串搜索,虽然增加了空间的要求。这个扩展是很重要的,在上下文的trie为基础的解决方案,无法有效地处理这样的查询。我们进行了几个实验,描绘INDROCT优于现有的结构,近两个因素的空间需求方面,而查询时间更好。除了支持所有类型的查询(包括精确搜索、前缀/后缀搜索和子串搜索)之外,还能够处理字符串的插入和删除,这使得INCLECT成为一个完整的数据结构。
2012-07-03 cs.DB cs.DS
Optimal Substring-Equality Queries with Applications to Sparse Text Indexing
我们考虑的问题编码的字符串长度$n$从一个整数字母表的大小$σ$,以便访问和子串的平等查询(即,确定任何两个子串的平等)可以有效地回答。任何支持访问的可解码编码都必须采用$n\logσ+ Θ(\log (n\logσ))$位。我们描述了一个新的数据结构匹配这个下限时,$σ\leq n^{O(1)}$,同时支持查询的最佳$O(1)$的时间。此外,我们表明,该字符串可以被覆盖在这个结构的地方。$Θ(\log n)$位的冗余和恒定的查询时间以指数方式打破了已知在只读模型中保持的下限。使用我们的新字符串表示,我们获得了第一个到位次二次(事实上,在某些情况下,甚至次线性)算法的几个字符串处理问题的恢复模型:输入字符串是重复的,必须在计算终止前恢复。特别是,我们描述了第一次到位次二次蒙特卡罗解决方案的稀疏后缀排序,稀疏LCP阵列建设,后缀选择问题。唯一例外的后缀选择,我们的算法也是第一次运行在次线性时间足够小的输入后缀集。结合这些解决方案,我们得到了第一个次线性时间的Monte Carlo算法在紧空间中建立稀疏后缀树。我们还展示了如何使用小空间去随机化我们的算法。这导致了第一个Las Vegas就地算法在$O(n\log n)$时间内计算完整的LCP阵列,并导致了第一个Las Vegas就地算法在$O(n^{1.5}\sqrt{\log σ})$时间内解决稀疏后缀排序和稀疏LCP阵列构造问题。…
2020-05-11 cs.DS
Optimal-Time Queries on BWT-runs Compressed Indexes
索引高度重复的字符串(即,具有许多重复的字符串)进行快速查询已经成为字符串处理中的中心研究课题,因为它在生物信息学和自然语言处理中具有广泛的应用。虽然到目前为止已经提出了大量的高度重复字符串的索引,但开发支持各种查询的压缩索引仍然是一个挑战。游程Burrows-Wheeler变换(RLBWT)是一种通过对输入字符串进行可逆置换和行程长度编码的无损数据压缩方法,它在高重复性字符串的索引方面受到广泛关注。LF和$ϕ^{-1}$是用于在RLBWT上构建索引的两个关键函数,并且最佳先前结果在$O(\log \log n)$时间内计算LF和$ϕ^{-1}$,其中$O(r)$字的空间用于RLBWT中的串长度$n$和运行次数$r$。本文对LF和$ϕ^{-1}$进行了改进,使它们可以用空间的$O(r)$字在常数时间内计算。随后,我们提出了OptBWTR(最佳时间查询BWT运行压缩索引),第一个字符串索引,支持各种查询,包括定位,计数,提取查询在最佳时间和$O(r)$字的空间。
2021-04-16 cs.DS
Compressed Indexing for Consecutive Occurrences
针对间隙连续出现查询难以构建高效索引的问题,本文基于直线程序(SLP)文本设计了一个空间为文法大小多项式级别、查询时间至多对数因子最优的索引结构。
2023-04-03 cs.DS
Time-Space Trade-Offs for Lempel-Ziv Compressed Indexing
给定字符串$S$,\emph{compressed indexing problem}用于将$S$预处理为支持快速\emph{substring queries}的压缩表示。其目标是在支持快速查询的同时,使用相对于$S$压缩大小的很少空间。我们提出了一个压缩索引的Lempel-Ziv 1977压缩方案的基础上。我们得到以下时间-空间权衡:对于恒定大小的字母表;(i)使用$O(z\lg(n/z)\lg\lg z)$空间的$O(m + occ \lg\lg n)$时间,或(ii)使用$O(z\lg(n/z))$空间的$O(m(1 + \frac{\lg^εz}{\lg(n/z)}) + occ(\lg\lg n + \lg^εz))$时间。对于由$n$多项式约束的整数字母表;(iii)使用$O(z(\lg(n/z) + \lg\lg z))$空间的$O(m(1 + \frac{\lg^εz}{\lg(n/z)}) + occ(\lg\lg n + \lg^εz))$时间,或(iv)使用$O(z(\lg(n/z) + \lg^ε z))$空间的$O(m + occ(\lg\lg n + \lg^ε z))$时间,其中$n$和$m$分别是输入串和查询串的长度,$z$是输入串的LZ 77解析中的短语的数目,$occ$是查询在输入中出现的次数,$ε> 0$是一个任意小的常数。具体地,(i)以将…
2018-01-09 cs.DS
Nucleotide String Indexing using Range Matching
本文提出 Ranger,一种基于整数范围和神经网络范围匹配的核苷酸序列索引技术,在保持 Minimap2 相近性能的同时显著降低内存占用,并在有限内存下实现数倍加速,为硬件加速提供了新可能。
2023-08-06 cs.DS q-bio.GN
Indexing Strings with Utilities
本文提出实用字符串索引(USI)问题,通过基于 top-K 频繁子串的高效数据结构支持带效用值字符串的模式查询,并在十亿字母数据集上验证其准确性和比基线快最多 15 倍的查询性能。
2025-04-08 cs.DB cs.DS
Indexing Weighted Sequences: Neat and Efficient
在\emph{weighted sequence}中,对于序列的每个位置和字母表的每个字母,指定该字母在该位置出现的概率。加权序列通常用于表示不精确或不确定的数据,例如,在分子生物学中,它们以位置权重矩阵的名称而闻名。给定概率阈值$\frac1z$,如果$X$中位置$i,\ldots,i+m-1$处的$P$的字母的概率乘积至少为$\frac1z$,则我们说长度为$m$的字符串$P$出现在加权序列$X$中的位置$i$处。在这篇文章中,我们考虑一个\emph{indexing}变种的问题,在其中,我们要预处理一个加权序列,以回答多个模式匹配查询。我们提出了一个$O(nz)$ -时间结构的$O(nz)$ -大小的索引的加权序列的长度$n$在一个恒定大小的字母表,回答模式匹配查询的最佳,$O(m+Occ)$的时间,其中$Occ$是报告的发生次数。我们的数据结构的基石是一个新的构造家庭的$\lfloor z \rfloor$特殊字符串,携带的信息,发生在加权序列中的所有字符串具有足够的概率。我们获得了一个加权指数,其复杂性与Barton et al.(CPM 2016)之前已知的最有效指数相同,但我们的构造要简单得多。在我们的索引的基本形式所需的最复杂的算法工具是后缀树,我们使用它来开发一个新的,更简单的所谓的属性匹配问题的索引。我们提供了数据结构的实现。我们的构造还使我们能够显著改善Bis…
2017-08-25 cs.DS
Text Indexing and Pattern Matching with Ephemeral Edits
CWI, Amsterdam, The Netherlands(荷兰阿姆斯特丹CWI);Vrije Universiteit, Amsterdam, The Netherlands(荷兰阿姆斯特丹自由大学)
本文提出了一种基于瞬时编辑的文本索引与模式匹配方法,能够在动态编辑序列中高效支持模式匹配查询。
2026-01-07 cs.DS
Indexing Tries within Entropy-Bounded Space
本文研究基于 BWT 的 Trie 索引压缩方法,提出 Trie 的 k 阶经验熵度量,证明 XBWT 可在熵有界空间内编码,并在某些情况下渐近优于 r-index。
2025-07-03 cs.DS
Most Recent Match Queries in On-Line Suffix Trees (with appendix)
后缀树能够有效地定位索引字符串中的模式,但通常不能定位在线流中的模式的最新副本,这在某些应用中是期望的。我们研究的最一般的版本的问题定位最近的匹配:支持查询任意模式,在处理在线流的每一步。我们提出了增强Ukkonen的后缀树构造算法的最佳时间查询,保持索引时间内的索引字符串的大小的对数因子。我们表明,该算法是适用于滑动窗口索引,并勾勒出一个可能的优化Lempel-Ziv压缩的特殊情况下使用。
2014-07-14 cs.DS
Text Indexing: From Reporting to Counting
CWI(荷兰数学与计算机科学研究学会);Vrije Universiteit(阿姆斯特丹自由大学);King’s College London(伦敦国王学院);Birkbeck, University of London(伦敦大学伯贝克学院);The Cyprus Institute(塞浦路斯研究所)
研究通过证明组合引理,将其应用于字符串后缀树,提出算法框架,存储频繁子串计数,利用报告查询计算不频繁子串,实现高效索引,支持多种字符串计数应用,提升查询时间。
2026-08-13 cs.DS
Cartesian Tree Matching and Indexing
我们引入了一个新的匹配度量,称为笛卡尔树匹配,这意味着如果两个字符串具有相同的笛卡尔树,则它们匹配。在笛卡尔树匹配的基础上,我们定义了一个长度为n的文本和一个长度为m的模式的单模式匹配,以及一个长度为n的文本和k个总长度为m的模式的多模式匹配。对于单模式匹配,我们给出了一个O(n+m)时间的算法;对于多个模式匹配,我们给出了一个O((n+m)log k)确定时间或O(n+m)随机时间的算法。我们还定义了一种称为笛卡尔后缀树的索引数据结构,并给出了一个O(n)的随机时间算法来建立笛卡尔后缀树。我们的笛卡尔树匹配的高效算法使用笛卡尔树的表示,称为父距离表示。
2019-05-22 cs.DS
Partial Data Compression and Text Indexing via Optimal Suffix Multi-Selection
考虑从无界字母表中提取的输入文本串T[1,N]。本文研究了基于后缀的数据压缩和文本索引问题中的部分计算,如(I)从T的Burrows-Wheeler变换中检索K<=N个连续符号的任何片段,以及(II)检索后缀数组或后缀树中K<=N个连续条目的任何块。以前的文献需要O(N log N)的比较(和时间)来解决这些问题,通过解决构建整个Burrows-Wheeler变换或T的文本索引的总问题,并执行后处理来挑选出想要的部分。我们引入了一种新的自适应方法来解决上述部分计算问题,并解决了O(K log K + N)比较和时间的部分问题,提高了K=O(N)的最佳运行时间O(N log N)。这些部分计算问题是密切相关的,因为它们共享一个共同的瓶颈:后缀多选择问题,即输出秩为r_1,r_2,.的后缀,r_1<r_2<... <r_K,r_i在[1,N]中。这个问题的特殊情况是众所周知的:K=N是后缀排序问题,它是弦乐学中的主力,有数百个应用程序,K=1是最近研究的后缀选择。我们证明了后缀多重选择可以在Theta(N log N - sum_{j=0} ^K Delta_j log Delta_j+N)时间和比较中解决,其中r_0=0,r_{K+1} =N+1,并且对于0<=j<=K,Delta_j= r_{j+1} -r_j。这是渐近最优的,并且也与[Dobkin,Munro,JACM 28(3…
2011-10-15 cs.DS
Tunneling on Wheeler Graphs
Burrows-Wheeler变换(BWT)是数据压缩和紧凑索引数据结构设计中的一项重要技术。它已经从单个字符串推广到字符串的集合和一些类别的标记有向图,如tries和de Bruijn图。重复数据集的BWT通常可以使用游程压缩进行压缩,但最近Baier(CPM 2018)描述了如何使用他称为隧道的想法进一步压缩它们。在本文中,我们表明,隧道BWT仍然可以用于索引和扩展隧道的惠勒图的BWT,一个框架,其中包括所有上述概括。
2019-05-29 cs.DS
Compressed String Dictionaries
在许多情况下,以紧凑的形式存储一组字符串(字符串字典)的问题自然会出现。虽然传统上它代表了要处理的整个数据的一小部分(例如,用于自然语言处理或用于索引文本集合),在Web引擎、Web挖掘、RDF图、因特网路由、生物信息学和许多其它领域中的更近期的应用利用非常大的字符串字典,其大小是整个数据的重要部分。因此,新的方法来有效地压缩它们是必要的。在本文中,我们实验比较的时间和空间性能的一些现有的替代品,以及我们提出的新的。我们表明,空间减少高达20%的字符串的原始大小是可能的,同时支持快速字典搜索。
2011-01-28 cs.DS
Better Indexing for Rectangular Pattern Matching
针对矩形模式匹配索引构建问题,打破“无法达到类似正方形模式界”的普遍认知,提出一种简单结构:大小为O(nlogn)、查询时间O(m+klog^εn)(任意ε>0),且可在O~(n)时间内构建。
2025-08-24 cs.DS
Improved space-time tradeoffs for approximate full-text indexing with one edit error
在本文中,我们有兴趣在索引文本的子串匹配查询与一个编辑错误。也就是说,给定一个由$n$字符组成的文本$T$,在一个大小为$σ$的字母表上,我们被要求构建一个回答以下查询的数据结构:找到文本的所有$occ$子串,这些子串与给定的长度为$m$的字符串$q$的编辑距离最多为$1$。在本文中,我们显示了两个新的结果,这个问题。第一个结果,适用于无界字母表,使用$O(n\log^εn)$(其中$ε$是任何常数,使得$0<ε<1$)空间字和时间查询的答案$O(m+occ)$。这提高了同时在空间和时间的结果科尔等人。第二个结果,只适合于一个恒定的字母表,依赖于压缩的文本索引,并在两个变种:第一个变种使用$O(n\log^ε n)$位的空间和答案查询的时间$O(m+occ)$,而第二个变种使用$O(n\log\log n)$位的空间和答案查询的时间$O((m+occ)\log\log n)$。这第二个结果改进了Lam等人(Mumica 2008)和Chan等人(Mumica 2010)之前获得的恒定字母表的最佳结果。
2014-08-21 cs.DS
Linear-time Computation of DAWGs, Symmetric Indexing Structures, and MAWs for Integer Alphabets
本文提出在整数字母表上利用后缀树以线性时间构造 DAWG 的算法,并据此首次实现词缀树、对称 CDAWG 等结构的线性时间构建,同时给出 MAW 的最优输入输出敏感计算。
2023-07-04 cs.DS cs.FL
On Indexing and Compressing Finite Automata
有限自动机的索引是一种强大的数据结构,它支持定位用查询模式标记的路径,从而解决底层正则语言上的模式匹配。在本文中,我们解决了长期存在的问题,索引任意有限自动机。我们的解决方案包括在寻找一个部分co-lexicographic秩序的状态和证明,在总顺序的情况下,达到一个给定的字符串形式的一个区间的偏序,从而使索引。我们提供了一个下限,说明这样的间隔需要$O(p)$字来表示,$p$是订单的宽度(即其最大反链的大小)。事实上,我们表明,$p$确定有限自动机上的几个基本问题的复杂性:(i)让$σ$是字母表的大小,我们提供了一个编码NFA使用$\lceil\log σ\rceil + 2\lceil\log p\rceil + 2$位每过渡和一个较小的编码DFA使用$\lceil\log σ\rceil + \lceil\log p\rceil + 2$位每过渡。这是通过将Burrows-Wheeler变换推广到任意自动机来实现的。(ii)我们表明,索引模式匹配可以解决在$\tilde O(m\cdot p^2)$查询时间NFA。(iii)我们提供了一个多项式时间算法来索引DFA,同时匹配$ p $的最佳值。另一方面,我们证明了该问题是NP-困难的NFA。(iv)我们表明,在最坏的情况下,经典的幂集构造算法的NFA确定产生一个等效的DFA的大小$2^p(n-p+1)-1$,其中$n$是NFA…
2020-07-15 cs.DS
An Extension of Linear-size Suffix Tries for Parameterized Strings
在本文中,我们提出了一个新的索引结构参数化字符串,我们称之为PLST,通过推广线性大小后缀尝试普通字符串。如果在符号集上存在使两个参数化字符串重合的双射,则称这两个参数化字符串匹配。PLST适用于参数化模式匹配问题,即判断输入的参数化文本是否具有与输入的参数化模式匹配的子串。PLST的大小与文本大小成线性关系,利用这一特性,我们的算法在线性时间内解决了模式大小的参数化模式匹配问题。PLST可以被看作是参数化后缀尝试的压缩版本以及线性大小后缀尝试和参数化后缀树的组合。我们的实验表明,PLST是更有效的空间比参数化的后缀树高度重复的字符串。
2019-09-04 cs.DS
Text Indexing for Long Patterns using Locally Consistent Anchors
本文提出基于局部一致锚点的文本索引,在已知模式长度下界时,同时优化索引空间、查询时间、构建空间与构建时间,实验优于经典索引。
2024-07-16 cs.DB cs.DS
The Parameterized Suffix Tray
设$Σ$和$Π$是不相交的字母表,分别称为静态字母表和参数化字母表。如果在$Σ$上存在重命名双射$f$,并且在$Σ$上存在恒等的$Π$,并且将$x$的字符映射到$y$的字符,使得两个字符串变得相同,则称$Σ\cup Π$上的两个等长字符串$x$和$y$参数化匹配(p匹配)。在文本中找到给定模式的p-匹配出现的问题的索引版本是字符串匹配中的一个很好的研究课题。在本文中,我们提出了一种用于p匹配的最新索引结构,称为输入文本$T$的参数化后缀托盘,用$\mathsf{PSTray}(T)$表示。我们发现,$\mathsf{PSTray}(T)$占用$O(n)$空间,并支持模式匹配查询在$O(m + \log (σ+π) + \mathit{occ})$时间,其中$n$是$T$的长度,$m$是查询模式$P$的长度,$π$是$T$中$|Π|$的不同符号的数量,$σ$是$T$中$|Σ|$的不同符号的数量,$\mathit{occ}$是$P$在$T$中p匹配出现的数量。本文还介绍了如何利用参数化的$T$后缀树在$O(n)$时间内构造$\mathsf{PSTray}(T)$。
2021-02-04 cs.DS
Managing Unbounded-Length Keys in Comparison-Driven Data Structures with Applications to On-Line Indexing
本文提出了一种通用的技术,用于优化转换任何动态的数据结构,原子和不可分割的关键字的常数时间比较,到一个数据结构,处理无限长的关键字的比较成本不是一个常数。这些键的示例包括字符串、多维点、多精度数字、多键数据(例如~记录)、XML路径、URL地址等。该技术比以前的工作更通用,因为不需要特别利用的底层结构。唯一的要求是,插入的键必须标识它的前导键或后继键。使用所提出的技术,在线后缀树可以在最坏情况下的时间$O(\log n)$每输入符号(相对于摊销的$O(\log n)$时间每符号,通过先前已知的算法实现)。据我们所知,我们的算法是第一个实现$O(\log n)$最坏情况下的时间每输入符号。在结果后缀树中搜索长度为$m$的模式需要花费$O(\min(m\log |Σ|, m + \log n) + tocc)$时间,其中$tocc$是模式出现的次数。本文还描述了更多的应用,并展示了如何获得替代方法来处理后缀排序,动态最低共同祖先和顺序维护。
2013-06-03 cs.DS
Algorithms to compute the Burrows-Wheeler Similarity Distribution
Burrows-Wheeler变换(BWT)是一种广泛应用于数据压缩和文本索引的文本变换。两个字符串的BWT也可以提供它们之间的相似性度量,基于观察到它们的符号在变换中混合得越多,字符串就越相似。在这篇文章中,我们提出了两个新的算法来计算基于BWT的字符串集合的相似性度量。特别是,我们提出了实际和理论上的改进的Burrows-Wheeler相似性分布的计算中的所有对字符串的集合。我们的算法利用BWT计算的所有字符串的串联,并使用压缩的数据结构,允许减少运行时间与小内存占用,如一组实验所示的真实和人工数据集。
2019-03-25 cs.DS
Clustered Integer 3SUM via Additive Combinatorics
我们提出了一个新的结果收集有关问题的3SUM,包括:1。$\ \ \ \ \ $ 1a的第一个真正的次二次算法。计算具有由$O(n)$,$\ \ \ \ \ $ 1b限定的整数值的单调递增序列的(min,+)卷积。求解2D中具有由$O(n)$和$\ \ \ \ \ $ 1c限定的整数坐标的单调集合的3SUM。预处理二进制字符串用于直方图索引(也称为混杂索引)。运行时间为:随机化的$O(n^{(9+\sqrt{177})/12}\,\textrm{polylog}\,n)=O(n^{1.859})$,或确定性的$O(n^{1.864})$。这大大改善了以前的$n^2/2^{Ω(\sqrt{\log n})}$的时间范围从威廉姆斯最近的结果对所有对最短路径[STOC'14],并回答了一个开放的问题提出了几个研究人员研究直方图索引问题。2.第一个算法的直方图索引的任何恒定的字母大小,实现真正的次二次预处理时间和真正的次线性查询时间。3.对于任意常数$δ>0$,当给定集合可以被划分为$n^{1-δ}$簇,每个簇被一个长度为$n$的区间覆盖时,整数3 SUM的一个真正的次二次算法。4.一种预处理任何$n$整数集的算法,以便随后在$O(n^{13/7}\,\textrm{polylog}\,n)$时间内求解任何给定子集上的3和。所有这些结果都是通过一种令人惊讶的新技术获得的,该技术基于加法组合…
2015-02-18 cs.DS
Linear Time Lempel-Ziv Factorization: Simple, Fast, Small
计算字符串的LZ分解(或LZ 77解析)是许多不同应用程序中的计算瓶颈,包括数据压缩、文本索引和模式发现。我们描述了新的线性时间LZ分解算法,其中一些算法只需要2n log n + O(log n)位的工作空间分解长度为n的字符串。这些是迄今为止空间效率最高的线性时间算法,使用比任何以前的线性时间算法少n log n位的空间。该算法也是实用的,简单的实现,并在实践中非常快。
2012-12-12 cs.DS
On-line Indexing for General Alphabets via Predecessor Queries on Subsets of an Ordered List
文本索引问题是一个基本的算法问题,其中人们希望预处理文本,以便快速定位文本中的模式查询。在动态和在线数据的不断发展的世界中,还需要开发解决方案来索引在线到达的文本,即一次一个字符,并且仍然能够快速定位所述模式。本文提出了一种新的在线索引解决方案,通过在$O(\log \log n + \log\log |Σ|)$最坏情况下每个字符的期望时间,其中$n$是字符串的大小,和$Σ$是字母表中提供一个在线后缀树的结构。这改进了所有先前已知的用于一般字母表的在线后缀树构造,代价是具有预期的运行时间。其主要思想是减少问题的后缀树在线构建一个有趣的变体的顺序维护问题,这可能是独立的利益。在著名的顺序维护问题中,人们希望在插入、删除和顺序查询下维护大小为$n$的动态列表$L$。在顺序查询中,一个查询从$L$获得两个节点,并且必须确定在$L$中哪个节点在另一个节点之前。在有序动态列表问题(POLP)的动态子集上的前驱搜索中,还需要维护$L$的动态子集,使得给定某些$u\in L$,可以在任何子集中快速定位$u$的前驱。本文提供了一种有效的数据结构,能够解决POLP与最坏情况下的预期边界相匹配的RAM模型中的前趋搜索的当前最佳已知的边界,改善了解决方案,可以隐式地从Dietz [Die89]。此外,本文还改进或简化了一些其他应用程序的边界,包括完全持久化数组和订单维护问题。
2012-08-19 cs.DS
Algorithms and Complexity on Indexing Founder Graphs
研究了标号图中字符串的匹配问题。以前的研究表明,除非正交向量假设(OVH)是假的,否则无法在强次二次时间内解决这个问题,也无法在多项式时间内索引图以有效地回答查询(Equi et al. ICALP 2019,SOFSEM 2021)。这些条件下界甚至覆盖具有二进制字母表的确定性图,但是自然也存在易于索引的图类:例如Wheeler图(Gagie et al. Theor.比较科学2017)覆盖图承认基于Burrows-Wheeler变换的索引方案。然而,识别一个图是否是Wheeler图是NP完全的(Gibney,Escherachan,ESA 2019)。我们提出了一种方法来缓解惠勒图的建设瓶颈。而不是从一个任意的图开始,我们研究从多序列比对(MSA)引起的图形。弹性退化弦(Bernadini et al. SPIRE 2017,ICALP 2019)可以被看作是这样的图,我们在这里介绍它们的推广:弹性创始人图。我们首先证明,即使是这样的诱导图是很难索引下OVH。然后,我们介绍了两个子类,重复自由和半重复自由图,这是很容易索引。我们给出了一个线性时间算法来构造一个无重复的非弹性创始人图从一个无间隙的MSA,和(参数化)近线性时间算法来构造半无重复(无重复,分别)弹性创始人图从一般MSA。最后,我们证明了无重复弹性创始人图承认减少惠勒图在多项式时间。
2022-06-10 cs.CC cs.DS
Compressing and Indexing Aligned Readsets
在本文中,我们将展示如何使用一个或多个组装或部分组装的基因组作为其读集的压缩全文索引的基础。具体来说,我们通过将组装的基因组作为主干并在其比对的起始位置处将与其比对的读段嫁接到其上来构建标记树。接下来,我们计算得到的标签树的扩展Burrows-Wheeler变换(XBWT),并在其上构建压缩的全文索引。虽然这个索引偶尔会返回假阳性,但它通常比其他方法更紧凑。遵循对具有许多重复的数据集的既定实践,我们通过查看转换后的字符串中的运行次数来比较不同的全文索引。对于人类Chr 19读集,我们的初步实验表明,从EBWT中消除分隔符字符将运行次数减少了19%,从2.2亿减少到1.78亿,并且使用XBWT将其进一步减少了15%,减少到1.5亿。
2021-06-01 cs.DS q-bio.GN
Locally Consistent Parsing for Text Indexing in Small Space
我们考虑两个密切相关的问题,在一个次线性工作空间的文本索引。第一个问题是稀疏后缀树(SST)的一组后缀$B$只使用$O(|B|)$空间字的建设。第二个问题是最长公共扩展(LCE)问题,其中对于某个参数$1\leτ\le n$,目标是构造使用空间的$O(\frac {n}τ)$字并且可以计算任何后缀对的最长公共前缀长度的数据结构。我们展示了如何使用基于局部一致性解析技术的思想,该技术是由Sahinalp和Vishkin [STOC '94]引入的,以一些非平凡的方式来改善上述问题的已知结果。我们引入新的拉斯维加斯和确定性算法这两个问题。我们介绍了第一个Las-Vegas SST构造算法,该算法需要$O(n)$时间。这是对Gawrychowski和Kociumaka [SODA '17]的最后结果的改进,他们获得了Monte-Carlo算法的$O(n)$时间和Las-Vegas算法的$O(n\sqrt{\log |B|})$时间。此外,我们引入了一个随机的拉斯维加斯建设LCE数据结构,可以在线性时间和$O(τ)$时间回答查询。对于确定性算法,我们引入了一个SST构造算法,它需要$O(n\log \frac{n}{|B|})$时间(对于$|B|=Ω(\log n)$)。这是第一个几乎线性时间的$O(n\cdot poly\log{n})$确定性SST构造算法,其中所有先前的算法至少花费$…
2020-01-01 cs.DS
Computing the BWT and LCP array of a Set of Strings in External Memory
索引非常大的字符串集合,如广泛的下一代测序技术产生的,在很大程度上依赖于多串概括的Burrows-Wheeler变换(BWT):大量的要求在内存中的方法刺激了最近的发展外部存储器算法。计算字符串的最长公共前缀(LCP)数组是计算字符串之间的后缀前缀重叠的一个重要步骤,是许多基因组组装算法的基础。在以前的论文中,我们提出了一种内存中的分治方法来构建BWT和LCP,其中我们合并部分BWT和前向方法来排序后缀。在本文中,我们提出了一种替代的向后策略,开发一种外部存储器的方法,同时建立BWT和LCP阵列上的m个字符串的不同长度的集合。在一组字符串具有恒定长度k的算法具有O(mkl)的时间和I/O量,使用O(k + m)的主存,其中l是LCP数组中的最大值。
2020-12-04 cs.DS
Update Query Time Trade-off for dynamic Suffix Arrays
字符串S[1.]的后缀数组SA(S)n]是一个数组,包含S的所有后缀,按字典顺序排序。后缀数组是最著名的索引数据结构之一,它在许多字符串算法中起着关键工具的作用。本文提出了一种维护动态字符串后缀数组的数据结构。对于每个$0 \leq \varepsilon \leq 1$,我们的数据结构在$\tilde{O}(n^{\varepsilon})$时间内报告SA[i],并在$\tilde{O}(n^{1-\varepsilon})$时间内处理文本修改。此外,我们的数据结构使得能够在相同的查询时间内报告iSA[i],其中iSA是S[1. n]。我们的数据结构可用于构造静态字符串算法的次线性动态变体或基于后缀数组和逆后缀数组的数据结构。
2020-07-13 cs.DS
Binary Jumbled Indexing: Suffix tree histogram
本文研究二进制乱序索引问题,证明游程数平均为 n/4 导致现有算法平均复杂度为二次方,并提出基于后缀树去重和向量化优化的 SFTree 算法,在保持相同理论复杂度下显著提升实际性能。
2024-12-30 cs.DS
Linear-Space Substring Range Counting over Polylogarithmic Alphabets
Bille和Gørtz(2011)最近介绍了子串范围计数的问题,为此我们被要求将具有整数标签的$n$字符的字符串$S$存储在([0,u])中,以便稍后,给定间隔([a,b])和长度为$m$的模式$P$,我们可以快速计数其第一个字符的标签在([a,u])中的$P$的出现次数。b])。他们展示了如何在$\Oh{n \log n / \log \log n}$空间中存储$S$,并在$\Oh{m + \log \log u}$时间中回答查询。我们证明,如果$S$是在一个字母表的大小(\polylog(n)),那么我们可以实现最佳的线性空间。此外,如果(u = n \polylog(n)),则我们还可以将时间减少到$\Oh{m}$。我们的结果给出了位置受限子串计数的线性空间和时间界,以及区间索引子串、间隔索引子串和对齐模式匹配的计数形式.
2012-02-15 cs.DS
Fully-Online Suffix Tree and Directed Acyclic Word Graph Construction for Multiple Texts
我们认为建设的后缀树和有向无环字图(DAWG)索引数据结构的集合$\mathcal{T}$的文本,其中一个新的符号可以被附加到任何文本在$\mathcal{T} = \{T_1, \ldots, T_K\}$,在任何时候。在动态索引多传感器数据中出现的这种完全在线的场景是长期解决的半在线文本索引问题的自然概括,其中文本$T_1, \ldots, T_{k}$在为每个$1 \leq k < K$处理下一个文本$T_{k+1}$之前被永久固定。我们提出了在$O(N \log σ)$时间和$O(N)$空间中为$\mathcal{T}$构建后缀树和DAWG的全在线算法,其中$N$是$\mathcal{T}$中字符串的总长度,而$σ$是它们的字母大小。后缀树叶子边和一些DAWG边的标准显式表示在我们的完全在线场景中必须放松,因为在最坏的情况下需要对这些边进行太多的更新。相反,我们提供了对更新后的后缀树叶子边缘标签和DAWG边缘的访问,这些边缘将通过辅助数据结构以每个添加的字符的$O(\log σ)$时间重定向。
2018-07-12 cs.DS
A New Lightweight Algorithm to compute the BWT and the LCP array of a Set of Strings
索引非常大的字符串集合,如那些广泛的测序技术,严重依赖于多串概括的Burrows-Wheeler变换(BWT),并为这个问题提出了各种内存算法。常规处理的数据的快速增长,例如在生物信息学中,需要大量的主存储器,并且这一事实促使算法的开发,以计算BWT,其几乎完全在外部存储器中工作。另一方面,计算最长公共前缀(LCP)数组的相关问题通常在关于字符串集合的若干算法中是有用的,例如计算字符串之间的后缀-前缀重叠的那些算法,这是许多基因组组装算法的必要步骤。目前最好的轻量级方法是在一组$m$字符串上计算BWT和LCP数组,每个$k$字符长,其I/O复杂度为$O(mk^2 \log |Σ|)$(其中$|Σ|$是字母表的大小),因此它不是最佳的。在本文中,我们提出了一种新的方法来建立BWT和LCP阵列(同时)与$O(kmL(\log k +\log σ))$的I/O复杂度,其中$L$是最长的子串,至少出现在输入字符串中的两次的长度。
2016-07-28 cs.DS
Strong link between BWT and XBW via Aho-Corasick automaton and applications to Run-Length Encoding
基因组测序的繁荣使得序列集的压缩不可避免。这就需要多字符串索引数据结构来帮助压缩数据。这种数据结构最突出的例子是Burrows-Wheeler变换(BWT),它是文本的可逆置换,可以提高其压缩性。一个类似的数据结构,扩展Burrows-Wheeler变换(XBW),能够索引一个用字母符号标记的树。多字符串BWT和Aho-Corasick自动机之间的联系已经被发现,并导致了从多字符串BWT构建XBW的方法。我们展示了一个更强的多字符串BWT和XBW之间的联系,通过使用多字符串中的串联顺序。这种双射链接有几个应用:首先,它允许从另一个构建一个数据结构;其次,它使人们能够计算优化游程长度测量的输入字符串的排序(即,可压缩性)。
2018-05-25 cs.DS
Space-Efficient Text Indexing with Mismatches using Function Inversion
University of Massachusetts, Amherst(马萨诸塞大学阿默斯特分校);Northwestern University(西北大学);Williams College(威廉姆斯学院)
本文提出一种空间复杂度为O(n)的文本索引结构,实现查询时间显著优于现有方法,同时首次实现子线性空间的数据结构。
2026-04-01 cs.DS