Grammar Compression By Induced Suffix Sorting
在这项工作中,语法压缩算法,称为GCIS。GCIS基于Nong等人在2009年提出的诱导后缀排序算法SAIS。所提出的解决方案建立在由SAIS在后缀排序期间执行的因子分解的基础上。使用上下文无关文法将因子替换为非终结符。该算法,然后递归地应用于较短的序列的非终端。所得到的语法是通过利用一些冗余来编码的,例如根据SAIS排序的规则的右手之间的公共前缀。GCIS在获得有竞争力的压缩比的同时,压缩所需的空间和时间较低。我们对常规和重复的,中等和非常大的文本的实验表明,GCIS是一个非常方便的选择相比,众所周知的压缩器,如Gzip,7-Zip和RePair,在语法压缩的黄金标准。作为交换,GCIS的减压速度很慢。然而,语法压缩器比Lempel-Ziv压缩器更方便,因为可以直接以压缩形式访问文本子串,而无需解压缩文本。我们证明,GCIS是这种情况下的一个很好的候选人,因为它显示出其基于修复的替代品之间的竞争力。我们还显示,如何GCIS与SAIS的关系,使其成为一个很好的中间结构,以建立后缀数组和LCP数组在解压缩的文本。
2020-11-25 cs.DS
On the Optimisation of the GSACA Suffix Array Construction Algorithm
后缀数组可以说是序列分析中最重要的数据结构之一,因此存在大量的后缀排序算法。然而,到目前为止,2015年引入的GSACA算法是唯一已知的非递归线性时间后缀数组构造算法(SACA)。尽管其有趣的理论特性,一直很少努力提高算法的低于现实世界的性能。有一种超线性算法DSH,它依赖于相同的排序原理,比DivSufSort更快,DivSufSort是十多年来最快的SACA。本文分析了GSACA和DSH中的排序原理,并利用其性质给出了一个优化的线性时间算法。我们得到的算法不仅比GSACA快得多,而且优于DivSufSort和DSH。
2022-08-30 cs.DS
Compressing Hypergraphs using Suffix Sorting
Paderborn University(帕德博恩大学)
本文提出HyperCSA方法,通过后缀排序高效压缩超图,实现26%-79%的压缩率,优于现有方法,并在大规模数据集和邻接查询速度上表现更优。
2026-04-15 cs.DS
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
Prefix Sorting DFAs: a Recursive Algorithm
本文受Farach后缀树构建算法启发,提出一种$O(n^2)$时间复杂度的递归算法,改进了DFA后缀数组的构建时间界,并深化了对图的字典序与组合结构的理解,助力图后缀树构建这一长期开放问题的研究。
2023-10-06 cs.DS
On the combinatorics of suffix arrays
我们证明了后缀数组的几个组合性质,包括通过双射与一定的定义良好的一类置换后缀数组的表征。我们的方法是基于[1]中给出的Burrows-Wheeler阵列的特征,我们通过使用额外的哨兵符号将后缀排序减少到循环移位排序来应用。我们证明了[2]中给出的二进制字母表的一个特殊情况的后缀数组的特征很容易从我们的特征。基于我们的结果,我们还对文[3]中关于后缀数组的计数结果提供了简单的证明。我们的方法来表征后缀数组是第一个利用他们的关系与Burrows-Wheeler排列。
2012-06-18 cs.DS math.CO
Inducing the Lyndon Array
在本文中,我们提出了Nong(TOIS,2013)的诱导后缀排序算法的变体,该算法使用工作空间的$σ+ O(1)$字在$O(n)$时间内同时计算文本的Lyndon数组和后缀数组,其中$n$是文本的长度,$σ$是字母表大小。我们的结果改善了以前的最佳空间要求的线性时间计算的林登阵列。事实上,所有已知的用于Lyndon阵列计算的线性算法使用后缀排序作为预处理步骤,并且除了Lyndon阵列和后缀阵列之外还使用工作空间的$O(n)$字。在真实数据集和人工数据集上的实验结果表明,该算法不仅具有空间效率,而且在实际应用中具有快速性。
2019-07-26 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
Grammar Index By Induced Suffix Sorting
提出一种基于诱导后缀排序的语法压缩索引,利用局部敏感解析性质,通过核心子串高效定位模式串的所有出现,时间复杂度和空间复杂度均与语法大小相关。
2026-06-17 cs.DS
Designing a parallel suffix sort
后缀排序在包括基因组学在内的各种计算算法中以及在频繁使用的日常软件应用中起着关键作用。对于给定的基数,当字符串中有很多重复字符时,排序算法就变得棘手了。在该领域中有各种创新的实现方式,曼伯·迈尔斯。我们在这里提出了一个分析,使用广义多项式分解的概念来排序这些后缀。这些子串特定多项式的初始生成可以使用并行线程和共享存储器高效地完成。不同因子的集合和它们的顺序是事先已知的,这有助于我们相应地对多项式(相当于字符串)进行排序。
2022-10-04 cs.DS
On Compressing Permutations and Adaptive Sorting
先前的排列的紧凑表示集中于在纯数据$<π(1), π(2),...π(n)>$之上添加小索引,以便有效地支持逆排列或迭代排列的应用。在本文中,我们开始研究的技术,利用数据本身的可压缩性,同时保留有效的计算$π(i)$及其逆。特别是,我们专注于利用{ \em运行},这是子集(连续或不连续)的置换是单调的域。这些类型的运行在实际应用中出现了几种变体,如倒排索引和后缀数组。此外,我们的改进结果压缩数据结构的排列也产生更好的自适应排序算法。
2011-08-22 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
String Comparison in $V$-Order: New Lexicographic Properties & On-line Applications
$V$ -order是与唯一最大因子分解族(UMFF)相关的字符串的全局顺序,UMFF本身是林登词的推广。$V$ -序最近被提出作为字典序的替代,用于后缀数组的计算和Burrows-Wheeler变换引起的后缀排序。高效的$V$ -字符串排序因此成为一个相当感兴趣的问题。在本文中,我们提出了关于$V$ -字符串中的顺序的新的且令人惊讶的结果,然后继续探索算法的后果。
2015-07-24 cs.DS
Faster Prefix-Sorting Algorithms for Deterministic Finite Automata
本文研究DFA的最小宽度偏反词典序计算,利用新组合性质提出任意DFA的$O(mn)$、$O(n^2\log n)$排序算法及无环DFA的$O(m\log n)$算法,并验证其实用性。
2023-04-21 cs.DS
Inducing the LCP-Array
我们展示了如何修改基于诱导排序的后缀数组的线性时间构造算法(Nong等人,DCC'09),使得它也计算最长公共前缀的数组(LCP数组)。实际测试表明,这优于最近的LCP阵列构造算法(Gog和Ohlebusch,ALENEX'11)。
2011-01-18 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
Compressing Suffix Trees by Path Decompositions
Dalhousie University(达尔豪斯大学);ETH Zurich(苏黎世联邦理工学院);Karlsruhe Institute of Technology(卡尔斯鲁厄理工学院);University of Pisa(比萨大学)
通过路径分解技术,提出一种基于后缀数组采样的压缩索引方法,实现I/O模型中高效的模式匹配,空间复杂度优于现有方法。
2026-02-25 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
Acceleration of FM-index Queries Through Prefix-free Parsing
本文提出使用前缀无关解析替代诱导后缀排序构建基于词的FM-index,显著加速了DNA序列的计数查询,尤其对短模式(几百字符)效果显著,在GRCh38和SARS-CoV-2数据集上比现有方法快3-18倍。
2023-05-10 cs.DS
Deterministic sub-linear space LCE data structures with efficient construction
给定$n$符号的串$S$,最长公共扩展查询$\mathsf{LCE}(i,j)$询问$S$的第$i$和第$j$后缀的最长公共前缀的长度。LCE查询在字符串处理中有几个重要的应用,也许最值得注意的是后缀排序。最近,Bille等人(J. Discrete Algorithms 25:42-50,2014,Proc. CPM 2015:65-76)描述了用于回答LCE查询的若干数据结构,其提供了数据结构大小与查询时间之间的空间-时间权衡。特别地,对于参数$1 \leq τ\leq n$,它们的最佳确定性解决方案是大小为$O(n/τ)$的数据结构,其允许在$O(τ)$时间内回答LCE查询。然而,在$n$中,其数据结构的所有确定性版本的构造时间是二次的。在本文中,我们提出了一个确定性的解决方案,实现了类似的时空权衡$O(τ\min\{\logτ,\log\frac{n}τ\})$查询时间使用$O(n/τ)$空间,但显着提高建设时间$O(nτ)$。
2016-01-29 cs.DS
Regular Languages meet Prefix Sorting
通过前缀(或后缀)排序索引字符串可以说是过去几十年中开发的最成功的算法技术之一。索引可以扩展到语言吗?本文的主要贡献是对状态可前缀排序的自动机所接受的正则语言的子类进行了研究。从最近的Wheeler图的概念出发[Gagie等人,TCS 2017]-自然地将前缀排序的概念扩展到标记图-我们研究了Wheeler语言的属性,即正则语言允许接受Wheeler有限自动机。有趣的是,我们将这个家族描述为具有共字典序的正则语言的自然扩展:当排序时,属于Wheeler语言的字符串被划分为有限数量的共字典区间,每个区间由来自单个Myhill-Nerode等价类的元素形成。此外:(i)我们证明了每一个具有$n$态的Wheeler NFA(WDFA)都有一个等价的Wheeler DFA(WDFA),它至多具有$2n-1-|Σ|$态,并且能在$O(n^3)$时间内计算。这与一般的NFA形成鲜明对比。(ii)我们描述了一个二次算法的前缀排序一个适当的超集的WDFAs,一个$O(n\log n)$时间在线算法排序非循环WDFAs,和一个最佳的线性时间离线算法排序一般WDFAs。通过贡献(i),我们的算法也可以用于索引任何WNFA,其代价是自动机的大小加倍。(iii)我们提供了一个最小化定理,其特征在于最小的WDFA识别相同的语言的任何输入WDFA。相应的构造性算法在非循环情况下在最优线性时间内运行,而在一般情…
2019-07-09 cs.DS
Improved Compressed String Dictionaries
我们引入了一种新的压缩数据结构族,以有效地在主存中存储和查询大型字符串字典。我们的主要技术是一个层次化的前端编码与后缀数组中最长公共前缀计算的想法相结合。我们的数据结构在现实世界的字典中产生相关的时空权衡。我们专注于两个领域,字符串字典被广泛使用,需要有效的压缩:URL集合,在Web图形和应用程序,如Web挖掘的关键元素;和集合的URI和文字,RDF数据集的基本组成部分。我们的实验表明,我们的数据结构实现更好的压缩比国家的最先进的替代品,同时提供非常有竞争力的查询时间。
2019-11-19 cs.DS
Efficient Construction of the BWT for Repetitive Text Using String Compression
本文提出一种基于诱导后缀排序与游程/语法压缩的半外部算法,以期望线性时间构建BCR BWT,在重复性大规模基因组数据上显著降低内存并提升速度。
2023-08-14 cs.DS