Direct Linear Time Construction of Parameterized Suffix and LCP Arrays for Constant Alphabets
我们提出了第一个最坏情况下的线性时间算法,直接计算参数化的后缀和LCP数组恒定大小的字母。以前的算法要么需要二次时间,要么首先建立参数化的后缀树。更正式地说,对于静态字母表$Σ$和参数化字母表$Π$上的字符串,我们的算法在$O(nπ)$时间和空间的$O(n)$字中运行,其中$π$是字符串中$Π$的不同符号的数量。
2019-06-03 cs.DS
Pointer-Machine Algorithms for Fully-Online Construction of Suffix Trees and DAWGs on Multiple Strings
我们处理的问题,维护后缀树索引结构的一个完全在线的多个字符串的集合,其中一个新的字符可以在任何时候在集合中的任何字符串的前缀。最近由Takagi等人提出的用于该问题的唯一先前已知的算法[Micromica 82(5):1346-1377(2020)]在字RAM模型上在$O(N \log σ)$时间和$O(N)$空间中运行,其中$N$表示字符串的总长度,$σ$表示字母表大小。他们的算法大量使用了半动态树上的最近标记祖先(NMA)数据结构,该结构可以回答查询并支持在字RAM模型上的$O(1)$分摊时间中插入节点。在本文中,我们提出了一个更简单的全在线从右到左的算法,建立后缀树为一个给定的字符串集合在$O(N (\log σ+ \log d))$时间和$O(N)$空间,其中$d$是最大数量的传入韦纳链接到一个节点的后缀树。我们注意到,$d$由后缀树的高度限定,后缀树的高度又由集合中最长字符串的长度限定。这种新算法的优点是它工作在指针机器模型上,即它不使用涉及查表的复杂NMA数据结构。作为一个副产品,我们还获得了一个指针机算法,用于建立有向无环字图(DAWG)的多个字符串,它运行在$O(N (\log σ+ \log d))$时间和$O(N)$空间再次没有NMA数据结构的帮助下,一个完全在线的左到右收集。
2020-05-02 cs.DS
Inducing the Lyndon Array
在本文中,我们提出了Nong(TOIS,2013)的诱导后缀排序算法的变体,该算法使用工作空间的$σ+ O(1)$字在$O(n)$时间内同时计算文本的Lyndon数组和后缀数组,其中$n$是文本的长度,$σ$是字母表大小。我们的结果改善了以前的最佳空间要求的线性时间计算的林登阵列。事实上,所有已知的用于Lyndon阵列计算的线性算法使用后缀排序作为预处理步骤,并且除了Lyndon阵列和后缀阵列之外还使用工作空间的$O(n)$字。在真实数据集和人工数据集上的实验结果表明,该算法不仅具有空间效率,而且在实际应用中具有快速性。
2019-07-26 cs.DS
On Arithmetically Progressed Suffix Arrays and related Burrows-Wheeler Transforms
我们的特点是这些字符串的后缀数组是基于等差数列,特别是,算术进展的置换,其中所有对连续条目的置换具有相同的差异模各自的字符串长度。我们表明,算术进展置换$P$符合后缀数组的一元,二进制或三进制字符串。我们进一步分析了一个给定的$P$的条件下,我们可以找到一个唯一定义的字符串,无论是二进制或三进制字母表有$P$作为其后缀数组。对于二进制的情况下,我们将其连接到较低的克里斯托弗的话,平衡的话,斐波那契的话。除了解决算术进展后缀数组问题,我们给出了解决这个问题的字符串的Burrows-Wheeler变换的形状。这些结果为今后的研究指明了方向。
2021-07-06 cs.DS cs.FL math.CO
In-Place Sparse Suffix Sorting
后缀数组对文本中所有后缀的词典顺序进行编码,并且通常与最长公共前缀数组(LCP)结合使用,以在减少的空间中模拟后缀树上的导航查询。在诸如稀疏和压缩文本索引之类的空间关键型应用中,通常仅需要关于所有$n$文本后缀的大小$b$子集的词典顺序的信息。这样的信息可以空间有效地(以$b$字)存储在稀疏后缀阵列(SSA)中。SSA及其相关的稀疏LCP阵列(SLCP)可以作为稀疏后缀树的空间有效的替代品。最近,Gawrychowski和Kociumaka [SODA 2017]表明,稀疏后缀树(因此SSA和SLCP)可以在渐近最优的$O(b)$空间中构建,蒙特卡罗算法在$O(n)$时间内运行。然而,使用SSA和SLCP数组代替稀疏后缀树的主要原因是它们各自减少了$b$字的空间。这自然导致了对构建这些数组的就地算法的追求。Franceschini和Muthukrishnan [ICALP 2007]表明,可以在最佳运行时间内就地内置的完整的后缀数组。另一方面,几十年来,为后缀的\emph{general}子集找到用于构建SSA和SLCP的次二次原地算法一直是一项难以捉摸的任务。在本文中,我们给出了这个问题的第一个解决方案。我们提供了在$O(n\log n)$预期时间内构建完整LCP阵列的第一个就地算法和在$O(n + b\log^2 n)$预期时间内构建SSA和SLCP的第一个Monte Carl…
2017-11-01 cs.DS
Sparse Suffix Tree Construction with Small Space
我们考虑的问题,构建一个稀疏的后缀树(或后缀数组)的$b$后缀的一个给定的文本$T$的大小$n$,只使用$O(b)$字的空间在建设时间。打破这个问题的$Ω(nb)$时间的朴素界限已经占据了许多算法研究人员,因为一个不同的结构,(均匀间隔)稀疏后缀树,是由K{ä}rkk{ä}inen和Ukkonen在1996年提出的。虽然在均匀间隔稀疏后缀树中,所考虑的后缀必须在$T$中均匀间隔,但这里对后缀的位置没有约束。我们证明了稀疏后缀树可以在$O(n\log^2b)$时间内构造。为了实现这一点,我们开发了一种技术,这可能是独立的利益,允许有效地回答$b$最长的共同前缀查询的$T$的后缀,只使用$O(b)$空间。我们希望这种技术将被证明是有用的,在许多其他应用程序中,空间使用是一个问题。此外,额外的权衡之间的空间使用和建设时间。
2012-07-04 cs.DS
2D Lyndon Words and Applications
林登字是一个原始字符串,它是字典中最小的循环排列的字符。林登词用于构造自由李代数中的基,构造de Bruijn序列,查找字符串中按字典顺序排列的最小或最大子串,以及高度周期字符串的简洁后缀前缀匹配。在本文中,我们将林登词的概念扩展到两个维度。我们介绍了2D林登字,并使用它来捕获2D水平周期性的矩阵,其中每行是高度周期性的,并有效地解决了一组模式之间的2D水平后缀前缀匹配。这产生了一个简洁而有效的算法的二维字典匹配。我们提出了几种算法,计算2D林登字,表示一个矩阵。最后的算法实现线性时间复杂度,即使当行的周期的最小公倍数是矩阵宽度的指数。
2013-01-01 cs.DS
Online and Offline Algorithms for Counting Distinct Closed Factors via Sliding Suffix Trees
本文提出两种基于滑动后缀树的算法,分别以O(n log σ)在线和O(n)离线时间计数长度为n的字符串中不同闭合因子的数量,解决了闭合因子计数问题。
2024-09-29 cs.DS
Reduction ratio of the IS-algorithm: worst and random cases
我们研究的IS算法,一个著名的线性时间算法计算的后缀数组的一个字。该算法依赖于将输入单词$w$转换为另一个单词,称为$w$的简化单词,该简化单词至少短两倍;然后,该算法递归地计算简化单词的后缀数组。在本文中,我们研究了IS-算法的缩减比,即,输入字的长度与将输入字缩小$k$倍后的字的长度之比。我们调查最坏的情况下,我们找到精确的结果,和随机的情况下,我们证明了一些强收敛现象。最后,我们证明,如果输入的字是一个随机选择的字的长度$n$,我们不应该期望更多的$\log(\log(n))$递归函数调用。
2022-04-09 cs.DS
Algorithmical Aspects of Some Bio Inspired Operations
本文研究前后缀复制、有界前后缀复制和前后缀平方补全三类生物启发字操作,分析其语言与无限字生成性质,并扩展有间隙重复及回文检测问题。
2025-01-12 cs.DS cs.FL
The Inverse Lyndon Array: Definition, Properties, and Linear-Time Construction
University of Salerno(萨莱诺大学)
本文研究逆Lyndon数组,定义其为逆Lyndon词的结构,通过next greater suffix数组和border修正项进行刻画,并提出线性时间构造算法,适用于一般有序字母表。
2026-03-18 cs.DS cs.FL
Wavelet Trees Meet Suffix Trees
我们提出了一种改进的小波树构造算法,并讨论了它的应用程序的整数键和字符串的排名/选择问题。给定一个长度为n的字符串,在一个大小为$σ\leq n$的字母表上,我们的方法在$O(n \log σ/ \sqrt{\log{n}})$时间内构建小波树,通过$\sqrt{\log n}$的因子改进了最先进的算法。因此,给定n个整数的数组,我们可以在$O(n \sqrt{\log n})$时间内构造一个由$O(n)$机器字组成的数据结构,并且能够在$O(\log n / \log \log n)$时间内回答数组子范围的秩/选择查询。这是一个$\log \log n$ -因素的改善,在查询时间相比,陈和Ptragarcu和一个$\sqrt{\log n}$ -因素的改善,在建设时间相比,Brodal等人。接下来,我们切换到字符串上下文,并提出了一个新的概念,小波后缀树。对于长度为n的字符串w,该数据结构占用$O(n)$字,花费$O(n \sqrt{\log n})$时间来构造,并且同时捕获w的子字符串的组合结构,同时实现有效的自顶向下遍历和二分搜索。特别地,使用小波后缀树,我们能够在$O(\log |x|)$时间内回答以下两个自然类似的子串后缀的排名/选择查询:对于w的子串x和y,计算x的后缀在字典上小于y的数量,并且对于w的子串x和整数k,找到x的第k个字典上最小的后缀。我们进一步表明,小波…
2015-05-15 cs.DS
Minimal Suffix and Rotation of a Substring in Optimal Time
对于预先给定的文本,子字符串最小后缀查询要求确定由其在文本中出现的位置指定的子字符串的词典最小非空后缀。我们开发了一个数据结构回答这样的查询最佳:在恒定的时间后,线性时间预处理。这改进了Babenko等人(CPM 2014)的结果,其折衷解决方案的特征在于这些时间复杂度的$Θ(n\log n)$乘积。接下来,我们扩展我们的查询,以支持连接的$O(1)$子字符串,其中的建设和查询时间是保留的。我们应用这些广义查询计算字典最小和最大旋转后,线性时间预处理后,在恒定的时间给定的子串。我们的数据结构主要依赖于Lyndon字和Lyndon因子分解的性质。我们将它们与进一步的算法和组合工具相结合,如融合树和字符串的顺序同构的概念。
2016-01-29 cs.DS
Constant-Time Inverse Suffix Array Queries in Compact Space and Sublinear-Time Construction of Suffix Array Indexes
Stony Brook University(石溪大学);Max Planck Institute for Informatics(马克斯·普朗克 informatics 研究所)
该研究提出最优空间的常数时间逆后缀数组结构,在字RAM中确定性构造该结构及两类后缀数组,匹配二元文本的时间-空间下界,可提升字典匹配算法效率。
2026-08-20 cs.DS
The Inverse Lyndon Array
University of Salerno(萨莱诺大学)
本文引入逆Lyndon数组,通过下一个更大后缀数组与LCE修正项刻画,并基于最近后缀框架提出O(n)时间构建算法,同时用于线性时间重构规范逆Lyndon分解。
2026-09-22 cs.DS cs.FL
Sparse Suffix Tree Construction in Optimal Time and Space
后缀树(以及与之密切相关的后缀数组)是一种基本的结构,它通过按字典顺序存储所有后缀来捕获给定文本的所有子串。在某些应用中,我们使用$b$感兴趣的后缀的子集,这些后缀存储在所谓的稀疏后缀树中。由于该结构的大小为$Θ(b)$,因此自然会寻求一种仅使用空间的$O(b)$字的构造算法,假设对文本的只读随机访问。我们为这个问题设计了一个线性时间蒙特卡罗算法,从而解决了Bille等人明确提出的一个悬而未决的问题。[TALG 2016]。I等人[STACS 2014]之前已知的最佳算法在$O(n\log b)$时间内工作。我们的解决方案在$n/b$轮中进行;在第$r$轮中,我们考虑从$r$模$n/b$全等位置开始的所有后缀。通过保持滚动哈希,我们按字典顺序排序所有感兴趣的后缀,然后将它们与已经考虑过的后缀合并。为了有效地合并,我们还需要在小空间中回答LCE查询。通过插入Bille等人[CPM 2015]的结构,我们获得了$O(n+b\log b)$时间复杂度。我们改进了这种结构,这意味着一个线性时间稀疏后缀树的构造算法。我们补充我们的Monte Carlo算法与确定性验证程序。验证需要$O(n\sqrt{\log b})$时间,这改善了I等人[STACS 2014]获得的$O(n\log b)$的范围。这是通过首先观察到在先前的解决方案中完成的修剪使用具有小乘法拉伸的图空间的概念具有相当清晰的描…
2016-08-02 cs.DS
Internal Shortest Absent Word Queries in Constant Time and Linear Space
给定一个长度为$n$的字符串$T$,在一个大小为$σ$的字母表$Σ\subset \{1,2,\ldots,n^{O(1)}\}$上,我们要对$T$进行预处理,以便给定一个范围$[i,j]$,我们可以返回一个在$Σ$上的最短字符串的表示,该表示在$T$的片段$T[i]\cdots T[j]$中不存在。我们提出了一个$O(n)$空间的数据结构,回答这样的查询在恒定的时间,并可以在$O(n\log_σn)$的时间。
2021-06-03 cs.DS
Optimal Computation of Overabundant Words
在给定序列$x$中观察到的单词$w$的最长正确前缀、最长正确后缀和最长中缀的频率可用于将$w$分类为避免的或过度丰富的。Brendel等人(J Biomol Struct Dyn 1986)描述了该统计模型中用于$w$预期和偏差的定义,并进行了生物学论证。我们最近引入了一种时间最优算法,用于计算整数字母表上给定序列的所有避免单词(Algorithms Mol Biol 2017)。在这篇文章中,我们提出了一个$\mathcal{O}(n)$-时间和$\mathcal{O}(n)$-空间算法计算所有过剩的话在一个序列$x$的长度$n$在一个整数字母表。我们的主要结果是基于一个新的非平凡的组合性质的后缀树$\mathcal{T}$的$x$:$x$的最长中缀是标签的显式节点的$\mathcal{T}$的不同的因素的数目不超过$3n-4$。我们进一步表明,所提出的算法是时间最优的证明,$\mathcal{O}(n)$是一个紧上限的数量过剩的话。最后,我们提出的实验结果,使用合成和真实的数据,证明我们的方法在实践中的有效性和效率。
2017-05-09 cs.DS
Cell-Probe Lower Bounds and Complexity-Preserving Reductions for Suffix Array Queries
Stony Brook University(石溪大学);Max Planck Institute for Informatics(马克斯·普朗克信息学研究所)
本文证明了后缀数组查询的首个单元探测时空下界,解答了Grossi与Vitter的25年问题,还给出后缀数组查询与短串前缀查询间无附加项的复杂度保持等价归约。
2026-08-20 cs.DS
Sparse Suffix and LCP Array: Simple, Direct, Small, and Fast
本文提出两种构造稀疏后缀数组与LCP数组的新算法,兼具简单、直接、紧凑和快速特性,最坏时间O(n log b),空间仅8b+o(b)机器字,并通过实验验证其简单性与高效性。
2024-07-04 cs.DS
A Linear Time Algorithm for Seeds Computation
单词中的种子是周期的放松版本,其中重复子字的出现可以重叠。我们展示了一个线性时间算法计算一个词的所有种子的线性大小表示(种子的数量可能是二次的)。特别是,人们可以很容易地从我们的表示中获得最短的种子和种子的数量。因此,我们解决了Smyth(2000)调查中提出的一个开放问题,并改进了Iliopoulos,Moore和Park(1996)以前的O(n log n)算法。我们的方法是基于种子和子字复杂性之间的组合关系(这里使用的第一次在上下文中的种子)。在以前的论文中,种子的紧凑表示由两个独立的部分组成,分别对单词的后缀树和单词的逆后缀树进行操作。我们的第二个贡献是一个更简单的表示所有的种子,避免了处理颠倒的字。这项工作的一个初步版本,用一个更复杂的算法构建了早期的种子表示,在第23届年度ACM-SIAM离散算法研讨会(SODA 2012)上发表。
2019-03-13 cs.DS
Low Space External Memory Construction of the Succinct Permuted Longest Common Prefix Array
最长公共前缀(LCP)数组是索引字符串匹配中的一种通用辅助数据结构。它可以用来加速使用后缀数组(SA)的搜索,并提供底层后缀树拓扑的隐式表示。长度为$n$的字符串的LCP阵列可以表示为长度为$n$的字的阵列,或者在存在SA的情况下,表示为$2n$位加上渐近可忽略的支持数据结构的位向量。已经提出了用于LCP阵列的外部存储器构造算法,但是迄今为止提出的那些算法在外部存储器中具有$O(n)$字(即,$O(n \log n)$位)的空间要求。在某些实际情况下,这种空间要求过于昂贵。我们提出了一个外部存储器算法,用于构建的$2n$位版本的LCP阵列,使用$O(n \log σ)$位的额外空间在外部存储器中时,给定的(压缩)BWT与字母大小$σ$和采样率$O(\log n)$的采样逆后缀阵列。在$σ$通常比$n$小得多或者甚至是常数的情况下,这在实践中通常是显著的空间增益。我们还考虑了计算循环字符串的简洁LCP数组的情况。
2016-03-08 cs.DS
Online Computation of the Longest Repeating Suffix and Smallest Suffixient Sets via Incremental Run-Length BWT-based Indexes
University of Milano-Bicocca(米兰比可卡大学);University of Yamanashi(山梨大学);Gustave Eiffel University(古斯塔夫·埃菲尔大学)
研究在线构建最小后缀集及计算最长重复后缀,给出最小后缀集压缩空间在线构建法,针对两问题提出时空权衡,还证明计算LRS的确定性在线算法最坏情况需Ω(n)比特峰值工作空间。
2026-07-07 cs.DS
Minimal Unique Substrings and Minimal Absent Words in a Sliding Window
如果$u$在$T$中只出现一次,并且$u$的任何适当子串在$T$中至少出现两次,则字符串$T$的子串$u$被称为$T$的最小唯一子串(MUS)。如果$w$不出现在$T$中,并且$w$的任何适当子串出现在$T$中,则字符串$w$被称为$T$的最小缺失字(MAW)。本文研究了在给定字符串$T$上滑动窗口中MUSs和MAW的计算问题。我们首先展示了在$T$上的滑动窗口中MUSs的集合是如何变化的,并给出了一个$O(n\logσ)$ -时间和$O(d)$ -空间算法来计算在$T$上的宽度为$d$的滑动窗口中的MUSs,其中$σ$是每个窗口中不同字符的最大数量。然后,我们给紧的上限和下限上的最大数量的变化在一组MAW在滑动窗口超过$T$。我们的边界改进了[Crochemore et al.,2017年]。
2019-09-13 cs.DS
Minimal Absent Words in Rooted and Unrooted Trees
我们扩展的理论,最小的缺席的话(根和无根)树,有边缘标记的字母从字母表$Σ$的基数$σ$。我们证明了一个有根的(分别是)的最小缺席词的集合$\text{MAW}(T)$。无根的)树$n$具有基数$O(nσ)$(相应地,$O(n^{2}σ)$),我们表明,这些界限的实现。然后,我们展示算法来计算所有最小缺席的话在一个根(分别。无根)树中的输出敏感时间$O(n+|\text{MAW}(T)|)$(分别为$O(n^{2}+|\text{MAW}(T)|)$假设$n$中的大小多项式的整数字母表。
2019-10-30 cs.DS cs.FL
Parameterized DAWGs: efficient constructions and bidirectional pattern searches
$Σ\cup Π$上的两个等长的字符串$x$和$y$称为\emph{parameterized match}(\emph{p-match}),如果存在重命名双射$f:Σ\cup Π\rightarrow Σ\cup Π$,它是$Σ$上的恒等式,并将$x$转换为$y$(反之亦然)。\emph{p-matching}问题是在文本中寻找与给定模式p匹配的子串。本文提出了后缀自动机和DAWG的p-匹配版本\emph{parameterized suffix automata}(\emph{p-suffix automata})和\emph{parameterized directed acyclic word graphs}(\emph{PDAWGs})。虽然后缀自动机和DAWG是等价的标准字符串,我们表明,p后缀自动机可以有$Θ(n^2)$节点和边缘,但PDAWG只有$O(n)$节点和边缘,其中$n$是输入字符串的长度。我们也给出了一个$O(n |Π| \log (|Π| + |Σ|))$ -时间$O(n)$ -空间算法,建立了一个从左到右的在线方式的PDAWG。作为一个副产品,它示出的反向字符串的\emph{parameterized suffix tree}也可以建立在相同的时间和空间,在一个从右到左的在线方式。这种对偶性也使我们得到了两种更有效的p-匹配算法:给定输入字符串$T$的…
2022-09-16 cs.DS
Absent Subsequences in Words
Institute for Computer Science, Georg-August University Göttingen(哥廷根大学计算机科学研究所)
研究词中缺失子序列的性质与算法,包括最短和最小缺失子序列的识别与计算。
2023-10-11 cs.DS cs.FL
Alignment-free sequence comparison using absent words
序列比较是几乎所有比较基因组分析的先决条件。它通常通过计算昂贵的序列比对技术来实现。这导致了对无干扰技术的研究增加,这些技术基于参照序列组成模式的组成的措施。这些度量,例如$q$ -gram距离,通常相对于序列的长度在时间上线性地计算。在本文中,我们专注于互补的想法:如何两个序列可以有效地比较的基础上,不发生在序列中的信息。如果一个词没有出现在某个序列中,则它是该序列的{ \em缺失词}。一个缺词是{ \em minimal},如果它的所有适当因子都出现在序列中。在这里,我们提出了第一个线性时间和线性空间算法来比较两个序列,考虑{ \em所有}的最小缺席字。在这个过程中,我们提出的结果组合的兴趣,也扩展了所提出的技术比较循环序列。我们还提出了一个算法,给定一个字$x$的长度$n$,计算最大的整数,该长度的$x$的所有因素出现在一些最小的$x$在时间和空间$\cO(n)$的缺席字。最后,我们证明了一个词的最小缺词数的已知渐近上界是紧的。
2018-06-07 cs.DS cs.FL
Linear-Time Sequence Comparison Using Minimal Absent Words & Applications
序列比较是几乎所有比较基因组分析的先决条件。它通常是通过序列比对技术实现的,这是计算昂贵的。这导致了对无干扰技术的研究增加,这些技术基于参照序列组成模式的组成的措施。这些度量,例如$q$ -gram距离,通常相对于序列的长度在时间上线性地计算。在这篇文章中,我们专注于互补的想法:如何可以有效地比较两个序列中没有出现的信息的基础上。如果一个词没有出现在某个序列中,则它是该序列的{ \em缺失词}。一个缺词是{ \em minimal},如果它的所有适当因子都出现在序列中。在这里,我们提出了第一个线性时间和线性空间算法来比较两个序列,考虑{ \em所有}的最小缺席字。在这个过程中,我们提出的结果组合的兴趣,也扩展了所提出的技术比较循环序列。
2015-12-22 cs.DS cs.FL
Linear-size Suffix Tries and Linear-size CDAWGs Simplified and Improved
本文提出 simLSTries 与 simLCDAWGs,移除多数 type-2 节点,将 LCDAWG 空间降至 $O(er(T))$,并支持在更弱的指针机模型上运行。
2024-08-08 cs.DS cs.FL
Fully-Functional Suffix Trees and Optimal Text Searching in BWT-runs Bounded Space
自千年之交以来,索引高度重复的文本-如基因组数据库,软件库和版本化文本集合-已成为一个重要的问题。重复文本的相关可压缩性度量是r,其Burrows-Wheeler变换(BWT)中的运行次数。Run-Length FM索引是最早的重复集合索引之一,使用O(r)空间,能够有效地计算文本中长度为m的模式的出现次数(使用当前技术,以每个模式符号的对数时间为单位)。然而,它无法在以r为界的空间内有效地定位这些事件的位置。在本文中,我们关闭这个长期存在的问题,展示了如何扩展游程长度FM索引,使其能够在O(r)空间内有效地定位occ出现时间复杂度为O(m + occ),时间复杂度为O(m)。(r log log w(σ + n/r))空间,用于在RAM机器上具有w = Ω(log n)位的字的σ大小的字母表上的长度为n的文本。在这个空间内,我们的索引也可以在最佳时间内计数,O(m)。将空间乘以O(w/ log σ),我们支持O(dm log(σ)/we)和O(dm log(σ)/we + occ)时间的计数和定位,这在压缩设置中是最优的,以前在压缩空间中没有得到。我们还描述了一个使用O(rlog(n/r))空间的结构,该结构在几乎最优的时间O(log(n/r)+ ` log(σ)/w)内替换文本并提取长度为`的任何文本子串。在这个空间内,我们同样提供了直接存取后缀数组,反后缀数组,和最长的公共前…
2019-07-04 cs.DS
Minimal Absent Words on Run-Length Encoded Strings
一个字符串$w$被称为另一个字符串$T$的最小缺失字(MAW),如果$w$不出现在$T$中(作为一个子串),并且$w$的任何适当的子串出现在$T$中。用于从长度为$n$的给定串$T$报告MAW的集合$\mathsf{MAW}(T)$的现有技术的数据结构需要$O(n)$空间,可以在$O(n)$时间内构建,并且可以在查询时在$O(|\mathsf{MAW}(T)|)$时间内报告所有MAW。本文提出了一个压缩表示的字符串计算MAW的问题。特别是,我们专注于最基本的压缩表示的字符串,行程长度编码(RLE),它表示每个最大运行相同的字符$a$ $a^p$其中$p$是运行的长度。令$m$为字符串$T$的RLE大小。在使用RLE将MAW分类为五个不相交的集合$\mathcal{M}_1$,$\mathcal{M}_2$,$\mathcal{M}_3$,$\mathcal{M}_4$,$\mathcal{M}_5$之后,我们根据RLE大小$m$给出了$i = 1,2,4,5$的$\mathcal{M}_i$中MAW数量的匹配上界和下界,除了$\mathcal{M}_3$的大小不受$m$限制。然后,我们提出了一个紧凑的$O(m)$空间数据结构,可以报告所有MAW在最佳的$O(|\mathsf{MAW}(T)|)$时间。
2022-04-14 cs.DS
Linear-time computation of generalized minimal absent words for multiple strings
本文将最小缺失字(MAW)概念推广至多字符串集合,分别提出了针对两个字符串的最优线性时间算法,以及针对多个字符串在字RAM模型下的高效算法。
2023-07-29 cs.DS
Binary Jumbled Indexing: Suffix tree histogram
本文研究二进制乱序索引问题,证明游程数平均为 n/4 导致现有算法平均复杂度为二次方,并提出基于后缀树去重和向量化优化的 SFTree 算法,在保持相同理论复杂度下显著提升实际性能。
2024-12-30 cs.DS
Output-Sensitive Construction of CDAWGs from BWT-Runs
Graduate School of IST, Hokkaido University(北海道大学信息理工学院);Department of Informatics, Kyushu University(九州大学信息学系)
提出一种利用压缩后缀树在O(e_L log n log(n/r))时间内构造CDAWG的算法,工作空间为O(r log(n/r)+e_L),其中e_L为边数,r为BWT-runs数。
2026-07-03 cs.DS
A Minimal Periods Algorithm with Applications
在“字符串中的平方的计算”中,Kakhaju简要描述了一个线性时间算法,用于计算从单词中每个位置开始的最小平方。使用相同的后缀树的建设,我们推广他的结果,并详细说明如何计算O(k |w|)时间的最小k次幂,与周期的长度大于s,在每个位置开始在一个字w为任意指数$k\geq2$和整数$s\geq0$。我们提供了完整的证明的正确性的算法,这是某种程度上不完全清楚在Kaju的原始文件。该算法可以作为一个子程序来检测词中的某些类型的伪模式,这是我们研究泛化的初衷。
2009-11-17 cs.DS
Time and Memory Efficient Lempel-Ziv Compression Using Suffix Arrays
众所周知的基于字典的Lempel-Ziv(LZ)77系列算法是几种通用无损压缩技术的基础。这些算法在编码/解码时间和存储器要求方面是不对称的,前者要求更高。在过去的几年中,相当多的注意力已经致力于寻找有效的数据结构,以支持这些搜索的问题,旨在优化编码器的速度和内存。哈希表、二叉搜索树和后缀树已被广泛用于此目的,因为它们允许以牺牲存储器为代价的快速搜索。最近的一些研究集中在后缀数组(SA),由于其低内存需求和线性构造算法。先前的工作已经展示了如何使用单个SA或具有最长公共前缀信息的辅助阵列的SA来计算LZ 77分解。基于SA的算法比基于树的编码器使用更少的内存,分配严格必要的内存量,而不管要搜索/编码的文本的内容。在本文中,我们提出了更快的SA为基础的算法LZ 77编码和子串搜索,保持其低的内存需求,以前的工作进行改进。对于一些压缩设置,在一个大型基准测试文件集上,我们的低内存SA编码器也比基于树的编码器更快。这提供了时间和存储器高效的LZ 77编码,是对像LZMA这样的公知编码器上的树的可能替代。我们的算法也适用于文本分类,因为它提供了一种紧凑的方式来描述文本的词袋表示,以及一个快速的索引机制,允许快速找到所有的单词集,以一个给定的符号开始,在一个静态字典。
2009-12-30 cs.DS cs.IT math.IT
An Efficient Word Lookup System by using Improved Trie Algorithm
有效地存储和检索单词是计算机科学的一项重要任务。应用程序的空间复杂度、时间复杂度和总体性能都取决于此字符串数据。目前世界上已有许多词检索的数据结构和算法,但具有空间压缩能力的却很少。Trie是一种常用的数据结构,它具有线性搜索能力。它是信息检索、自然语言处理、数据库系统、编译器、计算机网络等各种计算机应用的基础和重要组成部分。但目前已有的Trie树版本由于其对内存的要求较高而不能得到广泛应用。本文提出了一种新的基于基数trie树的数据结构,它不仅可以共享前缀,而且可以共享中缀和后缀,从而减少了对内存的需求。我们提出了一个新的空属性的基数trie。提出的trie具有字符单元缩减能力,可以显著减少任何应用程序运行时的内存大小。使用它作为操作系统的数据存储器,可以在很大程度上减少设备的总体主存需求。
2019-11-05 cs.DS
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
Checking and producing word attractors
Univ. Gustave Eiffel(巴黎-塞纳大学);CNRS(法国国家科学研究中心);LIGM(图像与信号实验室);King’s College London(伦敦国王学院);Dipartimento di Matematica e Informatica, Univ. Palermo(巴勒莫大学数学与计算机科学系)
本文针对单词吸引子问题,提出基于后缀自动机或有向无环单词图的两种组合算法:线性时间判定给定位置集合是否为吸引子,以及贪心生成小规模吸引子,尽管问题NP难,算法仍高效且适用于多个单词族。
2026-10-12 cs.DS cs.FL
Constructing Antidictionaries in Output-Sensitive Space
如果一个词$x$的所有固有因子都出现在$y$中,则该词在一个词$y$中不存在,则该词被称为最小的。给定一个集合的$k$字$y_1,y_2,\ldots,y_k$在一个字母表$Σ$,我们被要求计算的集合$\mathrm{M}^{\ell}_{y_{1}\#\ldots\#y_{k}}$的最小缺席的字的长度最多$\ell$的字$y=y_1\#y_2\#\ldots\#y_k$,$\#\notinΣ$。在数据压缩中,这相当于计算$k$文档的反字典。在生物信息学中,它对应于计算$k$染色体基因组中不存在的单词。这种计算通常需要$Ω(n)$空间,用于使用任何大量可用的$\mathcal{O}(n)$时间算法的$n=|y|$。这是因为$Ω(n)$大小的文本索引是在$y$上构造的,这对于大型$n$来说是不切实际的。我们使用输出敏感空间增量地进行相同的计算。当$||\mathrm{M}^{\ell}_{y_{1}\#\ldots\#y_{N}}||=o(n)$用于所有$N\in[1,k]$时,该目标是合理的。例如,在人类基因组中,$n \approx 3\times 10^9$而不是$||\mathrm{M}^{12}_{y_{1}\#\ldots\#y_{k}}|| \approx 10^6$。我们考虑一个常数大小的字母表来说明我们的结果。我们表明,所有的$\mathrm{M}^{\ell}_{…
2019-02-13 cs.DS
Packed Compact Tries: A Fast and Efficient Data Structure for Online String Processing
在本文中,我们提出了一种新的数据结构称为压缩trie(压缩c-trie)存储一组$S$的$k$字符串的总长度$n$在$n \logσ+ O(k \log n)$位的空间,并支持快速模式匹配查询和更新,其中$σ$是一个字母表的大小。假设$α= \log_σn$字母被打包在标准字RAM模型上的单个机器字中,并且让$f(k,n)$表示我们选择的动态前导/后继数据结构的查询和更新时间,该动态前导/后继数据结构将来自全域$[1,n]$的$k$整数存储在空间的$O(k \log n)$位中。然后,给定一个长度为$m$的字符串,我们的压缩c-tries支持模式匹配查询和插入/删除操作在$O(\frac{m}α f(k,n))$最坏情况下的时间和在$O(\frac{m}α + f(k,n))$预期的时间。我们的实验表明,我们的压缩c-tries比标准的紧凑tries(a.k.a. Patricia Trees)在真实数据集上。作为一个应用程序,我们的包装c-trie树,我们表明,稀疏后缀树的长度$n$前缀码与$k$采样位置,如均匀间隔和字定界的稀疏后缀树,可以在线构建在$O((\frac{n}α + k) f(k,n))$最坏情况下的时间和$O(\frac{n}α + k f(k,n))$预期的时间与$n \log σ+ O(k \log n)$位的空间。当$k = O(\frac{n}α)$时,…
2016-02-01 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
Ranking and unranking bordered and unbordered words
本文首次提出k字母表上长度为n的有边界词与无边界词的排序与反排序算法,在单位代价RAM模型下分别达到O(kn³)和O(n⁴k log k)的时间复杂度,空间复杂度均为O(n)。
2023-08-28 cs.DM cs.DS
Space-efficient detection of unusual words
根据IID或马尔可夫模型检测文本中出现频率比预期更频繁或更不频繁的所有字符串是字符串挖掘中的基本问题,然而当前算法基于空间效率低或导致大减速的数据结构,并且当前实现在实践中不能扩展到基因组或宏基因组。在本文中,我们设计了一个基于字符串后缀树的算法,只使用一个基于Burrows-Wheeler变换的小型数据结构和一个$O(σ^2\log^2 n)$位堆栈,其中$n$是字符串的长度,$σ$是字母表的大小。堆栈的大小为$o(n)$,但$σ$值非常大的情况除外。我们进一步改进的算法,通过删除其时间依赖$σ$,通过报告的最大重复和最小的字符串的罕见字的子集,并通过检测和评分候选代表不足的字符串,$\textit{do not occur}$在字符串。我们的算法是实用的,直接在BWT上工作,因此它们可以立即应用于许多现有的数据集,这些数据集可以以这种形式提供,将这个字符串挖掘问题恢复到可管理的规模。
2015-08-12 cs.DS
Computing Minimal Absent Words and Extended Bispecial Factors with CDAWG Space
本文基于 CDAWG 提出更省空间的数据结构,在 $O(\mathsf{e}_\min)$ 空间和 $O(|\mathsf{MAW}(S)|)$ 时间内输出字符串的全部 MAW,并揭示其与扩展双特殊因子的关系。
2024-05-19 cs.DS cs.FL