Compressed Text Indexes:From Theory to Practice!
压缩全文自索引以压缩形式表示文本,并且仍然有效地回答查询。这项技术代表了对前十年的文本索引技术的突破,其索引需要几倍于文本的大小。尽管这项技术相对较新,但它已经成熟到理论研究正在让位于实践发展的程度。尽管如此,这需要重要的编程技能,深入的工程努力和强大的算法背景来挖掘研究结果。到目前为止,只有孤立的实现和压缩索引的集中比较被报道,他们错过了一个共同的API,这阻止了他们在其他应用程序中的重用或部署。本文的目的就是填补这一空白。首先,我们从从业者的角度介绍了压缩索引的现有实现。其次,我们介绍了Pizza&Chili站点,它为最成功的压缩全文自索引提供了优化的实现和标准化API,以及用于自动验证和测试的有效测试床和脚本。第三,我们展示了我们对这些代码进行的广泛实验的结果,目的是展示这种新颖而令人兴奋的技术的实际相关性。
2007-12-20 cs.DS
Grammar-Compressed Indexes with Logarithmic Search Time
设文本$T[1..n]$是由上下文无关文法生成的唯一字符串,该文法具有$g$(终结符和非终结符)符号,大小为$G$(以规则右侧的长度之和衡量)。这种语法称为$T$的语法压缩表示,可以基本上使用$G\lg g$位进行编码。我们引入了第一个语法压缩索引,它使用$O(G\lg n)$位,可以在时间$O((m^2+occ)\lg G)$中找到模式$P[1..m]$的$occ$出现。我们实现的索引,并证明其实用性与最先进的比较,高度重复的文本集合。
2020-04-01 cs.DS
A Compressed Self-Index for Genomic Databases
DNA测序技术的进步将很快产生数千个基因组的数据库。在一个物种中,个体的基因组几乎是彼此的精确拷贝;例如,任何两个人的基因组都有99.9%是相同的相对Lempel-Ziv(RLZ)压缩利用了这一特性:它存储未压缩的第一个基因组或作为FM索引,然后用LZ 77的变体压缩其他基因组,该变体仅从第一个基因组复制短语。RLZ实现了良好的压缩,并支持快速随机访问,在本文中,我们将展示如何支持快速搜索,以及,从而获得一个有效的压缩自索引。
2011-11-05 cs.DS
Fast Compressed Self-Indexes with Deterministic Linear-Time Construction
我们介绍了一个压缩后缀数组表示,在一个文本$T$的长度$n$在一个字母表的大小$σ$,可以建立在$O(n)$确定性的时间,在$O(n\logσ)$位的工作空间,并计数的次数出现的任何模式$P$在$T$在时间$O(|P| + \log\log_w σ)$上的RAM机器的$w=Ω(\log n)$位字。这个新索引的性能优于所有其他可以在线性确定性时间内构建的压缩索引以及其他一些索引。唯一更快的索引只能在预期的线性时间内构建,或者需要$Θ(n\log n)$位。我们还表明,通过使用$O(n\logσ)$位,我们可以在线性时间内建立一个索引,在时间上计数$O(|P|/\log_σn + \log n(\log\log n)^2)$,这是RAM最佳的$w=Θ(\log n)$和足够长的模式。
2017-09-01 cs.DS
Universal Compressed Text Indexing
重复数据集的兴起最近引起了人们对基于字典压缩的压缩自索引的兴趣,这是一个丰富而异构的家族,以不同的方式利用文本重复。对于每种这样的压缩方案,在过去二十年中已经提出了几种不同的索引解决方案。迄今为止,重复文本的最快索引是基于行程压缩的Burrows-Wheeler变换和紧凑有向非循环词图。另一方面,最节省空间的索引是基于Lempel-Ziv解析和语法压缩的。还没有提出更普遍的方案,如拼贴系统和宏观方案的索引。最近,Kempa和Prezza [STOC 2018]表明,所有字典压缩器都可以被解释为最小字符串吸引子的近似算法,即捕获所有不同子串的一组文本位置。从这个观察开始,在本文中,我们开发了第一个通用的压缩自索引,也就是说,第一个基于字符串吸引子的索引数据结构,因此可以建立在任何字典压缩文本表示的顶部。令$γ$为长度为$n$的文本的字符串吸引子的大小。我们的索引采用$O(γ\log(n/γ))$空间字,并支持在$O(m\log n + occ\log^εn)$时间内,对于任何常数$ε>0$,定位任何长度为$m$的模式的$occ$出现。特别是,这是一般宏观计划和大学系统的第一个指数。我们的研究结果表明,索引和压缩之间的关系比以前认为的要深得多:所有字典压缩器的核心的简单属性足以支持快速索引查询。
2018-09-06 cs.DS
Space-Efficient Construction of Compressed Indexes in Deterministic Linear Time
我们表明,压缩后缀数组和压缩后缀树的字符串$T$可以内置的$O(n)$确定性时间使用$O(n\logσ)$位的空间,其中$n$是字符串长度和$σ$是字母表的大小。先前描述的确定性算法要么在取决于字母表大小的时间内运行,要么需要工作空间的$ω(n\log σ)$位。我们的结果有直接的应用到其他问题,如产生第一个线性时间LZ77和LZ78解析算法,使用$O(n \logσ)$位。
2016-11-14 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
Engineering Fast and Space-Efficient Recompression from SLP-Compressed Text
Stony Brook University(石溪大学)
本文首次实现压缩时间内运行的再压缩RLSLP构建,基于LZ77近似,相比非压缩方法实现46倍加速和17倍内存降低,为快速索引构建提供实用路径。
2025-10-23 cs.DS
Grammar-compressed Self-index with Lyndon Words
我们引入了一类新的直线程序(SLP),命名为林登SLP,灵感来自林登树(Lyndon Trees,1990)。基于此SLP,我们提出了一种$O(g)$空间字的自索引数据结构,该数据结构可以从$T$在$O(n \lg n)$期望时间内的字符串建立,检索长度为$m$的模式$P$在$O(m + \lg m \lg n + occ \lg g)$时间内的所有出现的开始位置,其中$n$是$T$的长度,$g$是$T$的Lyndon SLP的大小,$occ$是$P$在$T$中出现的次数。
2020-04-27 cs.DS
The CDAWG Index and Pattern Matching on Grammar-Compressed Strings
本研究提出将CDAWG用作语法压缩字符串的索引,实现了高效模式匹配,实验验证其运行时性能达当前最优,且空间复杂度符合已知最优渐近界。
2024-07-11 cs.DS
String Indexing with Compressed Patterns
针对客户端-服务器场景中以压缩形式提交的模式查询,提出一种线性空间数据结构,能直接高效处理Lempel-Ziv压缩模式,实现接近最优的查询时间,并开发了编码LZ77压缩后缀和分解trie等通用数据结构技术。
2024-02-14 cs.DS
Optimal Construction of Compressed Indexes for Highly Repetitive Texts
我们提出的算法,给定的输入字符串的长度$n$在整数字母表的大小$σ$,构造的Burrows-Wheeler变换(BWT),置换最长公共前缀(PLCP)阵列,和LZ 77解析在$O(n/\log_σn+r\,{\rm polylog}\,n)$时间和工作空间,其中$r$是运行在BWT的输入。这些是许多压缩索引的基本组成部分,如压缩后缀树,FM索引,语法和基于LZ 77的索引,而且在序列分析和数据压缩中也有许多应用。$r$的值是重复性的常用度量,如果字符串高度重复,则该值明显小于$n$。由于只访问字符串的每个符号需要$Ω(n/\log_σn)$时间,所提出的算法是时间和空间最优的输入满足假设$n/r\inΩ({\rm polylog}\,n)$的重复性。对于这些输入,我们的结果改进了Belazzougui(STOC 2014)和Munro等人(SODA 2017)目前最快的通用算法,这些算法在$O(n)$时间内运行,并使用$O(n/\log_σ n)$工作空间。我们还展示了如何使用我们的技术,以获得最佳的解决方案,对其他基本字符串处理问题的高度重复的数据,如:林登因子分解,运行长度压缩后缀数组的建设,和一些经典的“教科书”的问题,如计算最长的子串发生至少一些固定的次数。
2019-05-20 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
GraCT: A Grammar-based Compressed Index for Trajectory Data
我们引入了一种压缩的数据结构,用于存储移动对象(如船舶和飞机)的自由轨迹,有效地支持各种时空查询。我们的结构,被称为GraCT,存储的绝对位置的所有对象在定期的时间间隔(快照)使用$k^2$树,这是一个空间和时间效率的版本的区域四叉树。快照之间的位置表示为相对运动的日志,并使用基于语法的压缩器Re-Pair进行压缩。此语法的非终结符使用MBR信息进行了增强,以支持快速查询。数据集的GraCT结构比使用强大的传统压缩器(如p7 zip)压缩的原始数据占用更少。此外,GraCT支持直接存取对象轨迹或它们在特定时刻的位置,以及空间范围和关于时刻和/或时间间隔的最近邻查询,而不是像传统压缩器那样需要完全解压缩来访问数据。与传统的时空数据存储和索引方法相比,GraCT需要的空间少两个数量级,并且在查询时间上具有竞争力。特别地,由于其压缩表示,GraCT结构可以在任何经典的未压缩索引必须诉诸于磁盘的情况下驻留在主存中,从而快一个或两个数量级。
2019-11-11 cs.DS
Optimal-Time Dictionary-Compressed Indexes
我们描述了第一个自我索引能够计数和定位模式发生在最佳时间内的空间范围内的最流行的字典压缩机的大小。为了实现这一结果,我们结合了几个最近的研究结果,包括\emph{string attractors} -新的组合对象,包括最知名的压缩性措施高度重复的文本-,和语法的基础上\emph{locally-consistent parsing}。更详细地,令$γ$为长度为$n$的文本$T$的最小吸引子的大小。$γ$是一个(渐近)下界的大小字典压缩器的基础上Lempel-Ziv,上下文无关的语法,和许多其他的。已知最小的吸引子文本表示使用空间$O(γ\log(n/γ))$,而我们最轻的索引在相同的渐近空间内工作。令$ε>0$是在构造时固定的适当小的常数,$m$是模式长度,$occ$是其文本出现的次数。我们的索引在$O(m+\log^{2+ε}n)$时间中计数模式出现,并在$O(m+(occ+1)\log^εn)$时间中定位它们。这些时间已经超过了大多数字典压缩索引的时间,同时在$O((m+occ)\,\textrm{polylog}\,n)$时间内为任何索引搜索获得最小的渐近空间。此外,通过将空间增加到$O(γ\log(n/γ)\log^εn)$,我们将定位时间减少到最佳$O(m+occ)$,并且在$O(γ\log(n/γ)\log n)$空间内,我们还可以计入最佳$O(m)$时间。以前没有获…
2019-09-04 cs.DS
Subpath Queries on Compressed Graphs: a Survey
文本索引是一个经典的算法问题,已经被研究了四十多年:给定一个文本$T$,离线预处理它,这样,以后,我们可以快速计数和定位任何字符串(查询模式)在$T$中的出现时间与查询的长度成正比。这个问题最早的最优时间解决方案,后缀树,可以追溯到1973年,它需要比纯文本多两个数量级的空间来存储。在2000年,两个突破性的工作表明,高效的查询可以实现没有这种空间开销:一个快速的索引被存储在一个空间成比例的文本的熵。这些贡献对生物信息学产生了巨大的影响:如今,几乎所有的DNA比对都采用了压缩索引。最近的趋势考虑了更强大的压缩方案(字典压缩器)和将问题推广到标记图:毕竟,文本可以被视为标记的有向路径。反过来,由于有限状态自动机可以被认为是标记图的一种特殊情况,这些发现在压缩索引和正则语言理论之间建立了一座桥梁,最终允许索引正则语言,并有望为正则表达式匹配等问题提供新的解决方案。这个调查是一个温和的介绍的迷人的旅程,把我们从后缀树到今天的压缩索引标记图和正则语言的主要里程碑。
2020-12-13 cs.DS
Collapsing the Hierarchy of Compressed Data Structures: Suffix Arrays in Optimal Compressed Space
提出仅需最优压缩文本表示空间即可支持后缀数组查询的新索引,将压缩数据结构层级坍缩为单点,并大幅改进了构建时间及数十种算法的空间复杂度。
2023-08-07 cs.DS
Improved Grammar-Based Compressed Indexes
我们介绍了第一个语法压缩表示的序列,支持搜索的时间,只依赖于语法的大小。给定由$n$(终结符和非终结符)符号的(上下文无关)语法和大小$N$(以规则的右手长度之和测量)表示的文本$T[1..u]$,$T$的基于语法的基本表示占用$N\lg n$位空间。对于任何$0<ε\le 1$,我们的表示都需要$2N\lg n + N\lg u + ε\, n\lg n + o(N\lg n)$位空间。它可以在$O((m^2/ε)\lg (\frac{\lg u}{\lg n}) +occ\lg n)$时间中找到长度为$m$的模式在$T$中的$occ$出现的位置,并在时间$O(\ell+h\lg(N/h))$中提取$T$的任何长度为$\ell$的子串,其中$h$是语法树的高度。
2011-10-20 cs.DS
Compressed Index with Construction in Compressed Space
St. Petersburg State University(圣彼得堡国立大学)
本文提出一种压缩空间中压缩索引,空间复杂度为O(δlog(n/δ)),支持在O(m + (occ + 1)log^εn)时间内搜索任意长度为m的字符串,且可在O(nlogn)时间内构建,无需Karp-Rabin指纹。
2026-04-13 cs.DS
The Compressed Overlap Index
为了分析文本算法,为了计算超字符串,或者为了测试随机数生成器,需要计算给定集合中任何单词对之间的所有重叠。在计算随机文本中某个词的缺失概率或两个随机文本共有的公共词的个数时,需要知道一个词在其自身上的重叠位置或两个词的重叠位置。在所有这些上下文中,需要计算或查询给定集合中的词对之间的重叠。为此,我们设计了COvI,一个压缩的重叠索引,支持对重叠的多个查询:比如计算两个单词的相关性,或者列出所有可能的单词对中最长重叠最大的单词对。COvI以分层和非冗余的方式存储重叠。我们提出了一个实现,可以处理数百万字的数据集,仍然有效地回答查询。与依赖于Aho-Corasick自动机的基线解决方案(称为FullAC)的比较表明,COvI提供了显着的优势。对于类似的构建时间,COvI需要FullAC一半的内存,并且仍然可以更快地解决复杂的查询。
2017-07-18 cs.DS
Dynamic Grammar-Compressed Self-Index in $δ$-Optimal Space
RIKEN Center for Advanced Intelligence Project(理化学研究所先进智能项目中心)
本文提出动态RR索引,首次在δ-最优空间内实现动态语法压缩自索引,支持高效插入删除和定位查询,优于现有动态索引。
2026-07-09 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
Dynamic Data Structures for Document Collections and Graphs
在动态索引问题中,我们必须维护一个不断变化的文本文档集合,以便我们能够有效地支持插入、删除和模式匹配查询。我们特别感兴趣的是开发高效的数据结构,以压缩的形式存储和查询文档。所有以前的压缩解决方案,这个问题依赖于回答排名和选择查询的动态序列的符号。由于[Fredman和Saks,1989]中的下界,回答排名查询在压缩动态索引中呈现出瓶颈。在本文中,我们将展示如何使用我们的新框架可以绕过这个下限。我们证明了索引问题的静态和动态变量之间的差距几乎可以关闭。我们的方法是基于一个新的框架,增加动态静态压缩数据结构。我们的框架也更普遍地适用于其他问题的动态化。例如,我们展示了我们的框架如何应用于开发动态图和二元关系的压缩表示。
2015-03-20 cs.DS
Optimal Random Access and Conditional Lower Bounds for 2D Compressed Strings
Stony Brook University(石溪大学)
该研究针对二维数据压缩索引的次优问题,提出首个二维文法压缩字符串的最优随机访问数据结构,证明模式匹配条件下界及基本二维查询的硬度假设,建立二维与一维压缩索引复杂度的关联。
2025-10-22 cs.DS
LZBE: an LZ-style compressor supporting $O(\log n)$-time random access
Joint Graduate School of Mathematics for Innovation, Kyushu University(九州大学数学创新联合研究生院);Department of Informatics, Kyushu University(九州大学信息学系);Department of Information and Physical Sciences, Osaka University(大阪大学信息与物理科学系)
LZBE是一种支持O(log n)时间随机访问的LZ风格压缩方法,通过结构限制实现更高效的分解和查询。
2026-01-21 cs.DS
The Wavelet Trie: Maintaining an Indexed Sequence of Strings in Compressed Space
索引的字符串序列是用于存储字符串序列的数据结构,该字符串序列支持随机访问、搜索、范围计数和分析操作,用于精确匹配和前缀搜索。字符串序列是面向列的数据库、日志处理以及其他存储和查询任务的核心。在这些应用程序中,每个字符串可以出现多次,并且字符串在序列中的顺序是相关的。字符串的前缀结构也是相关的:在字符串中寻找共同的前缀以从序列中提取有趣的特征。此外,空间效率是非常可取的,因为它直接转化为更高的性能,因为更多的数据可以容纳在快速内存中。我们介绍和研究的问题,压缩索引序列的字符串,表示索引序列的字符串在接近最佳的压缩空间,无论是在静态和动态设置,同时保持可证明的良好性能的支持操作。我们提出了一种新的数据结构,小波Trie,它结合了经典的Patricia Trie与小波树,一个简洁的数据结构存储压缩序列。由此产生的小波Trie平滑地适应随时间变化的字符串序列。它通过支持动态字母表(即不同字符串的集合)和前缀查询(这两者在上述应用中都是至关重要的要求)来改进最先进的压缩数据结构,并且通过将空间占用减少到接近序列的熵来改进传统索引。
2012-04-16 cs.DB cs.DS
Computing LZ77 in Run-Compressed Space
本文证明了文本T { \in n ^n}的LZ 77分解可以在O(Rlog n)位的工作空间和O(nlog R)时间内计算,R是T的Burrows-Wheeler变换的游程数.对于极端重复的输入,工作空间可以低至O(log n)位:比文本本身小。作为我们的结果的直接后果,我们表明,一类重复意识的自我索引的基础上的游程编码的BWT和LZ 77的组合可以建立在内置的渐近最佳O(R + z)字的工作空间,z是LZ 77解析的大小。
2015-10-21 cs.DS
Fixed Block Compression Boosting in FM-Indexes
压缩的全文自索引占用的空间接近于压缩文本的空间,同时允许快速模式匹配和对基础文本的随机访问。在理论和实践中,最好的压缩自索引是FM索引家族的几个成员。在本文中,我们描述了新的FM索引变体,结合了良好的理论特性,简单的实现和改进的实际性能。我们的主要结果是一种称为固定块压缩增强的新技术,这是一种更简单,更快的替代最佳压缩增强和隐式压缩增强在以前的FM索引中使用。
2011-04-19 cs.DS cs.IR
Adaptive encodings for small and fast compressed suffix arrays
Department of Computer Science, University of Helsinki(赫尔辛基大学计算机系)
本文提出可变长度阻塞编码技术,用于优化压缩后缀数组的空间与查询速度,通过动态调整索引信息以提升性能。
2026-02-19 cs.DS
FM-Indexing Grammars Induced by Suffix Sorting for Long Patterns
与FM索引中引入的向后搜索结合使用的游程压缩Burrows-Wheeler变换(RLBWT)是大多数压缩索引的核心,用于高度重复的数据集,如生物序列。与语法索引相比,RLBWT的大小通常要大得多,但是像计算长模式出现次数这样的查询可以比迄今为止任何现有的语法索引快得多。在本文中,我们结合了一个文法与RLBWT的优点,建立RLBWT上的一个特殊的文法基于诱导后缀排序。我们的实验表明,我们的混合方法优于经典的RLBWT的索引大小,并在生物数据集上的查询时间足够长的模式。
2021-10-04 cs.DS
CSA++: Fast Pattern Search for Large Alphabets
文本中的索引模式搜索已经研究了几十年。对于小字母,FM索引提供了无与伦比的性能,在所需的空间和搜索速度方面。对于大字母表--例如,当标记是单词时--情况更加复杂,FM-Index表示是紧凑的,但可能很慢。在本文中,我们应用最近的创新领域的倒排索引和文档检索压缩模式搜索,包括字母到数百万。从实际的压缩后缀数组结构开发的贞根,我们表明,埃利亚斯-法诺代码为基础的方法,文档索引可以适应提供新的权衡选项,在索引模式搜索,并提供显着更快的模式处理相比,以前的实现,以及减少空间的要求。我们报告了一个详细的实验评估,证明了新方法的相对优势,使用标准的比萨饼和辣椒的方法和文件,以及应用用例来自大规模数据压缩,并从自然语言处理。对于大的字母表,新的结构产生的空间要求接近那些最高度压缩的FM-Index变体,以及无与伦比的搜索吞吐率。
2016-05-18 cs.DS
A Searchable Compressed Edit-Sensitive Parsing
提出了一种实用的编辑敏感句法分析(ESP)数据结构。给定一个字符串S,它的ESP树等价于只生成S的上下文无关文法G,它由DAG表示。利用树和置换的简洁数据结构,G被分解为两个LOUDS位串和一个数组(1+ε)n \log n+4n+o(n)位,其中0<ε<1,且G中的变量数n为任意.计算P在S中出现次数的时间为O(\frac{1} ε(m \log n+occ_c(\log m \log u)),其中m = |P|,u = |S|,occ_c是P和S的ESP中最大公共子树的出现次数。该指标的效率进行了评估的几个基准上进行的实验符合其他压缩指标。
2011-01-09 cs.DS
E2FM: an encrypted and compressed full-text index for collections of genomic sequences
下一代测序(NGS)平台以及更普遍的高通量技术正在引起核苷酸序列数据库的规模的指数增长。此外,核苷酸数据集的许多新兴应用-如与个性化医疗相关的应用-需要遵守有关敏感数据存储和处理的法规。我们设计并精心设计了E2 FM索引,这是一种新的全文索引,在分钟空间内进行了优化,用于压缩和加密FASTA格式的核苷酸序列集合,并用于执行快速模式搜索查询。E2 FM-index允许构建自索引,其占用的存储空间为输入FASTA文件所需的1/20,因此在索引高度相似的序列集合时可以节省约95%的存储空间;此外,它可以在几毫秒到几百毫秒的时间内精确地搜索构建的索引以查找模式,具体取决于模式长度。补充材料和支持数据集可通过Bioinformatics Online和https://figshare.com/s/6246ee9c1bd730a8bf6e获得。
2019-10-10 cs.DB cs.DS
A New Class of String Transformations for Compressed Text Indexing
本文提出一类基于局部排序的新型字符串变换,证明其属于包含BWT、ABWT的上下文自适应字母表排序变换族,可用于构建r-index,还给出了线性时间寻找最小游程数BWT变体的算法。
2023-05-08 cs.DS
Using Compressed Suffix-Arrays for a Compact Representation of Temporal-Graphs
时态图表示随时间变化的二元关系。它们可以模拟例如社交和通信网络的动态。时间图被定义为接触的集合,这些接触是当它们处于活动状态时用时间间隔标记的边。本文探讨了压缩后缀数组(CSA),一个众所周知的紧凑和自索引的数据结构在文本索引领域,来表示大的时间图的使用。新的结构,称为时间图CSA(TGCSA),实验比较最有竞争力的紧凑数据结构在国家的最先进的,即EDGSTUGG和CET。实验结果表明,TGCSA获得了良好的时空折衷。它使用了合理的空间,并有效地解决复杂的时态查询。此外,TGCSA具有更广泛的表达能力,比EDGSTUG和CET,因为它是能够表示时间图,其中接触的边缘可以暂时重叠。
2018-12-28 cs.DS
Efficient Fully-Compressed Sequence Representations
我们提出了一种数据结构,存储序列$s[1..n]$在字母表$[1..σ]$在$n\Ho(s) + o(n)(\Ho(s){+}1)$位,其中$\Ho(s)$是零阶熵的$s$。此结构支持查询\access、\rank \和\select,它们是许多其他压缩数据结构的基本构建块,在最坏情况下为时间$\Oh{\lg\lgσ}$和平均时间$\Oh{\lg \Ho(s)}$。最坏情况下的复杂度与以前的最佳结果相匹配,但这些结果是通过使用$n\Ho(s)+o(n\lgσ)$位的数据结构实现的。在高度可压缩的序列上,冗余的$o(n\lgσ)$位与编码数据的$n\Ho(s)$位相比可能是重要的。相反,我们的表示也压缩了冗余。此外,我们的平均情况复杂性是前所未有的。我们的技术是基于分区的字母相似的频率的字符。然后,对应于每个组的子序列可以使用快速未压缩表示进行编码,而不会损害整体压缩比,即使在冗余中。该结果还改进了其他几种数据结构的最佳当前压缩表示。例如,我们实现了$(i)$压缩冗余,保留最佳的时间复杂度,为最小的现有全文自索引; $(ii)$压缩排列$π$与时间为$π()$和$\pii()$改进为对数对数;和$(iii)$的第一个压缩表示的动态集合的不相交集。我们还指出了倒排索引,后缀数组,二进制关系和数据压缩器的各种应用。...
2012-04-02 cs.DS
Trie-Compressed Intersectable Sets
我们介绍了空间和时间有效的算法和数据结构的离线集相交问题。我们表明,一个有序的整数集$S \subseteq [0{..}u)$的$n$元素可以表示使用压缩空间,同时支持$k$ -路交叉自适应$O(kδ\lg{\!(u/δ)})$时间,$δ$是由Barbay和Kenyon介绍的交替措施。我们的实验结果表明,我们的方法在实践中具有竞争力,在几种情况下优于最有效的替代方案(分区Elias-Fano索引,咆哮位图和递归宇宙分区(RUP)),提供一般相关的时空权衡。
2022-12-02 cs.DS
A Fast and Small Subsampled R-index
$r$指数(Gagie等人,JACM 2020)代表了重复文本集合的压缩索引的突破,其性能超过其替代品的数量级。它的空间使用,$\mathcal{O}(r)$,其中$r$是在文本的Burrows-Wheeler变换中运行的次数,但是比Lempel-Ziv和基于语法的索引大,并且使得它在各种较温和重复的现实生活场景中不有趣。在本文中,我们介绍了$sr$指数,一个变种,限制空间$\mathcal{O}(\min(r,n/s))$的长度为$n$和一个给定的参数$s$的文本,在乘以$s$的时间,每次发生的报告。$sr$索引是通过仔细地对由$r$索引索引的文本位置进行二次采样而获得的,以我们证明仍然能够以保证性能的方式支持模式匹配。我们的实验表明,$sr$索引大幅优于几乎所有其他压缩索引的重复文本,在时间和空间,甚至匹配性能的$r$索引,而使用1.5- 3.0倍的空间。只有一些基于Lempel-Ziv的索引比$sr$索引实现更好的压缩,使用大约一半的空间,但它们慢一个数量级。
2021-03-29 cs.DS
Longest Common Extensions with Recompression
给定长度为$N$的字符串$T$中的两个位置$i$和$j$,最长公共扩展(LCE)查询询问以$i$和$j$开始的后缀之间的最长公共前缀的长度。压缩LCE数据结构是以压缩形式存储$T$同时支持快速LCE查询的数据结构。在这篇文章中,我们表明,再压缩技术是一个强大的工具,压缩LCE数据结构。我们提出了一个新的压缩LCE数据结构的大小$O(z \lg (N/z))$,支持LCE查询在$O(\lg N)$的时间,其中$z$是Lempel-Ziv 77因式分解的大小没有自引用的$T$。给定$T$作为未压缩的形式,我们将展示如何在$O(N)$时间和空间中构建我们的数据结构。给定$T$作为语法压缩形式,即,一个生成$T$的大小为n的直线程序,我们展示了如何在$O(n \lg (N/n))$时间和$O(n + z \lg (N/z))$空间中建立我们的数据结构。我们的算法是确定性的,总是返回正确的答案。
2016-11-21 cs.DS
A new method to index and store spatio-temporal data
我们提出了一个数据结构,存储,在一个压缩的方式,对象的轨迹,这在同一时间,允许有效地响应查询,而不需要重新存储的数据。我们使用一个数据结构,称为$k^{2}$树,存储所有对象的完整位置在定期的时间间隔。为了存储用$k^{2}$树表示的两个时刻之间的对象的位置,我们只对相对运动进行编码。为了节省空间,这些相对矩仅用一个整数编码,而不是两个(x,y)坐标。此外,所得到的整数被进一步压缩的技术,使我们能够操纵这些运动直接在压缩的形式。在本文中,我们展示了这种结构的实验评估,它显示了重要的节省空间和良好的响应时间。
2016-11-16 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
AutoCSF: Provably Space-Efficient Indexing of Skewed Key-Value Workloads via Filter-Augmented Compressed Static Functions
Distill;MIT CSAIL(麻省理工学院计算机科学与人工智能实验室);Amazon(亚马逊);Rice University(莱斯大学);Google DeepMind(谷歌DeepMind)
本文提出AutoCSF算法,通过过滤增强压缩静态函数,以高效处理偏斜分布的数据集,提供理论保证和空间优化。
2026-11-09 cs.DB cs.DS q-bio.GN
Self-Index based on LZ77 (thesis)
生物信息学、版本控制系统、协作编辑系统(wiki)等领域正在产生大量重复性很强的数据汇集。也就是说,集合的元素之间几乎没有什么区别。这一事实使得集合的可压缩性非常高。例如,包含所有不同版本的维基百科条目的集合可以使用Lempel-Ziv 1977(LZ 77)压缩方案压缩到其原始空间的0.1%。这些重复的集合中的许多都处理大量的文本数据。因此,我们需要一种方法来有效地存储它们,同时提供对它们进行操作的能力。最常见的操作是提取集合的随机部分,并在整个集合中搜索给定模式的所有出现。自索引是一种数据结构,它以压缩形式存储文本,并允许有效地找到模式的出现。另一方面,自索引可以提取集合的任何子字符串,因此它们能够替换原始文本。使用这些索引的主要目标之一是将它们存储在主存中。在这篇论文中,我们提出了一个方案,随机抽取文本压缩与Lempel-Ziv分析。此外,我们提出了一个LZ 77的变体,称为LZ-End,它可以使用接近LZ 77的空间有效地提取文本。本文的主要贡献是基于LZ 77/LZ-End的第一个面向重复文本的自索引,该自索引在许多方面都优于目前最新的自索引(RLCSA自索引)。最后,我们提出了一个语料库的重复文本,来自几个应用领域。我们的目标是为研究和实验提供一套标准的文本,因此这个语料库是公开的。
2011-12-20 cs.DS
An Efficient Data Structure and Algorithm for Long-Match Query in Run-Length Compressed BWT
本文提出局部极大精确匹配(LEMs)概念及长LEMs查询算法,依托改进的BWT游程压缩字符串索引,实现$O(m+occ)$期望时间的长匹配查询,可补充MEMs忽略的相似性信息,适用于泛基因组等场景。
2025-05-21 cs.DS
Faster run-length compressed suffix arrays
该研究针对游程长度压缩后缀数组(RLCSA),通过修改其结构并应用新结果,将查找aP的SA区间的时间复杂度从O(log r_a + log log n)降至O(log r_a),同时不增加空间复杂度,还探讨了其对两级索引及最大精确匹配启发式方法的优化作用。
2025-04-19 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
Efficient Compression and Indexing of Trajectories
我们提出了一个新的压缩表示的自由运动物体的轨迹。它结合了一个基于部分和的结构,在恒定的时间内检索对象在任何时刻的位置,与分层最小边界框表示,允许确定对象是否在某个时间段内在某个矩形区域中被看到。结合空间快照在定期的时间间隔,表示优于经典的数量级的空间,也优于以前的压缩表示的时间性能,当使用相同的空间量。
2017-10-05 cs.DS
RLZ-r and LZ-End-r: Enhancing Move-r
本文用 Relative Lempel-Ziv 和 LZ-End 压缩后缀数组增强 r-index 与 Move-r,以空间换取随机访问和定位查询加速,并揭示索引大小与查询性能的新权衡。
2025-07-28 cs.DS
jXBW: A Compressed Index Enabling Structure-Aware JSONL Retrieval for Structured RAG
RIKEN Center for Advanced Intelligence Project(理化学研究所先进智能研究中心)
提出jXBW压缩索引,通过合并树表示、基于扩展Burrows-Wheeler变换的简洁树索引和三阶段子结构搜索算法,实现查询依赖的复杂度,在百万级JSONL数据集上比最强基线快16倍至2800倍。
2026-08-24 cs.DB cs.DS cs.IR
The PGM-index: a multicriteria, compressed and learned approach to data indexing
University of Pisa(比萨大学)
最近引入的学习索引已经动摇了几十年的数据结构索引领域的基础。将B树节点等经典设计元素与机器学习模型相结合,甚至将其替换,已被证明可以显著改善数据系统的空间占用和时间效率。然而,这些新的方法是基于几何学,因此他们缺乏任何保证,在他们的时间和空间的要求。我们提出了分段几何模型索引(简称PGM-index),它在查询操作中实现了保证的I/O最优性,学习了最优数量的线性模型,其独特的递归结构使其成为一个纯学习的数据结构,而不是传统索引和学习索引(如RMI和FITing-tree)的混合体。我们发现,PGM索引提高了空间的FITING树的63.3%和B-树超过四个数量级,同时实现相同的甚至更好的查询时间效率。我们补充这一结果,提出了三个变种的PGM指数。首先,我们设计了一个压缩的PGM索引,通过利用其组成的学习线性模型的重复性,进一步减少其空间占用。其次,我们设计了一个PGM索引,使其适应查询的分布,从而产生了迄今为止第一个已知的分布感知学习索引。最后,鉴于其灵活性,在所提供的时空权衡,我们提出了多准则PGM索引,有效地自动调整自己在几秒钟内超过数亿键的可能不断变化的时空限制所施加的应用程序的使用。我们向读者指出,本文是我们以前的论文“通过编排学习和几何来取代传统索引”(arXiv:1903.00507)的扩展和改进版本。
2019-10-14 cs.DB cs.DS cs.IR
Fast and Small Subsampled R-indexes
提出 sr-index 及其变体 r-csa、sr-csa,通过子采样文本位置在时间和空间间取得平衡,在保持查询性能的同时显著减少索引空间占用。
2024-09-23 cs.DS
Rank and select: Another lesson learned
位图上的排名和选择查询是许多压缩数据结构的基本构建模块,包括文本索引、支持空间数据结构的成员和范围、压缩图等。在20世纪80年代,这些原始人在理论上得到了考虑,在过去的十年里,这些原始人也成为了关于他们实际化身的生动研究的主题。我们提出了一些新的排名/选择的变种,主要集中在速度,在压缩设置中获得有竞争力的时空结果。我们的研究结果可以总结如下:$(i)$没有单一的排名/选择解决方案在任何类型的数据上都是最好的(我们的是针对从真实文本数据集的小波树中获得的级联位数组进行了优化),$(ii)$有效地处理由全0或全1位组成的块是值得的,$(iii)$压缩选择不必在可比的内存使用上比压缩排名慢得多。
2016-05-12 cs.DS
Towards a compact representation of temporal rasters
大量的研究工作致力于有效地管理时空数据。然而,大多数作品都集中在矢量数据上,而很少关注栅格数据。本文提出了一种新的栅格数据表示方法--时态k^2栅格。在处理时空数据时,它面临两个主要问题:空间消耗和查询响应时间。它为光栅数据扩展了一个紧凑的数据结构,以便管理时间,因此可以直接以压缩形式查询它,而不是在任何操作之前需要完全解压缩的经典方法。另外,在同一压缩空间中,新的数据结构包括两个索引:空间索引和关于单元值的索引,从而成为栅格数据的自索引。
2018-10-18 cs.DS
Finger Search in Grammar-Compressed Strings
基于语法的压缩是一种简单而强大的范例,它可以捕获许多流行的压缩方案,其中使用生成字符串的小上下文无关文法替换长字符串。给定一个语法,随机访问问题是在压缩表示该语法的同时支持随机访问,也就是说,给定原始未压缩字符串中的一个位置,报告该位置的字符。本文研究了具有手指搜索性质的随机接入问题,即随机接入查询的时间依赖于指定索引$f$(称为\emph{finger})与查询索引$i$之间的距离.我们考虑静态变体,其中我们首先放置手指并随后有效地访问手指附近的索引,以及动态变体,其中还移动手指,使得时间取决于移动的距离。令$n$为语法的大小,令$N$为字符串的大小。对于静态变量,我们给出了一个线性空间表示,支持放置在$O(\log N)$时间的手指,并随后在$O(\log D)$时间访问,其中$D$是手指和访问的索引之间的距离。对于动态变量,我们给出了一个线性空间表示,支持放置在$O(\log N)$时间的手指和访问和移动的手指在$O(\log D + \log \log N)$的时间。与随机访问的最佳线性空间解决方案相比,我们改进了静态变量绑定到$O(\log D)$,动态变量绑定到$O(\log D + \log \log N)$的$O(\log N)$查询,同时保持线性空间。作为我们的结果的应用,我们得到了一个改进的解决方案的最长公共扩展问题的文法压缩字符串。为了获得我们的结果,我们引入…
2016-11-16 cs.DS