Approximation of grammar-based compression via recompression
在本文中,我们提出了一个简单的线性时间算法构造一个上下文无关文法的大小为O(g log(N/g))的输入字符串,其中N是输入字符串的大小和g的最佳语法生成这个字符串的大小。该算法适用于任意大小的字母表,但运行时间是线性的,假设输入字符串的字母表可以用{1,.,N^c}对于某个常数c。否则,O(n log)的额外开销|Σ|)是必须的。这种近似保证和运行时间的算法是已知的,本文的新颖之处是一个特别简单的算法以及算法的分析,它使用了一个一般的技术,最近介绍了作者的再压缩。此外,与以前的结果相反,这项工作没有使用输入字符串的LZ表示的建设,也没有在分析。
2013-11-07 cs.DS cs.FL
A Grammar Compression Algorithm based on Induced Suffix Sorting
我们介绍GCIS,这是一种基于Nong等人在2009年提出的归纳后缀排序算法SAIS的语法压缩算法。我们的解决方案建立在SAIS在后缀排序期间执行的因子分解的基础上。我们构造了一个上下文无关文法的输入字符串,它可以进一步减少到一个较短的字符串,通过取代每个子串由其相应的因子。由此产生的语法编码通过探索一些冗余,如后缀规则之间的共同前缀,这是根据SAIS框架排序。当比较知名的压缩工具,如重新配对和7-zip,我们的算法是有竞争力的,非常有效地处理重复字符串的压缩比,压缩和解压缩运行时间。
2017-11-08 cs.DS
MR-RePair: Grammar Compression based on Maximal Repeats
分析了RePair压缩算法的文法生成算法,并给出了RePair生成的文法与最大重复数的关系。我们发现,RePair逐步取代相应的最频繁的最大重复内的最频繁的对。然后,我们设计了一种新的变体RePair,称为MR-RePair,它一次替换最频繁的最大重复序列,而不是连续替换最频繁的重复序列。我们实现了MR-RePair,并在几个文本语料库上比较了MR-RePair和RePair生成的语法大小。我们的实验表明,MR-RePair比RePair生成更紧凑的语法,特别是对于高度重复的文本。
2019-02-18 cs.DS
Entropy bounds for grammar compression
语法压缩将字符串表示为上下文无关文法。实现压缩需要将这种语法编码为二进制字符串;有几种常用的编码。本文对几种常用的压缩方法,包括\RePair和\Greedy算法的编码大小进行了限制:\RePair的标准编码结合了熵编码和文法的特殊编码,实现了$1.5|S|H_k(S)$,其中$H_k(S)$是$S$的$k$阶熵。我们还表明,通过停止一些迭代后,我们可以实现$|S|H_k(S)$。这是特别有趣的,因为它解释了在实践中观察到的一个现象:引入太多的非终结符会导致比特大小的增长。我们将我们的方法推广到其他压缩方法,如\Greedy和广泛的一类不可约文法,以及其他实际使用的位编码(包括天真,它使用固定长度的代码)。我们的方法不仅证明了边界,但也部分地解释了为什么\Greedy和\RePair是更好地在实践中比其他基于语法的方法。在某些情况下,我们认为我们的估计是最优的。在我们的分析中使用的工具是独立的利益:我们证明了新的,最佳的,边界上的零阶熵解析的字符串。
2020-05-20 cs.DS
Constructing small tree grammars and small circuits for formulas
它表明,每一个树的大小$n$在一个固定的一组$σ$不同的排名符号可以分解(在线性时间以及在对数空间)成$O\big(\frac{n}{\log_σn}\big) = O\big(\frac{n \log σ}{\log n}\big)$许多层次定义的片。形式上,这种分层分解具有大小为$O\big(\frac{n}{\log_σn}\big)$的直线线性上下文无关树文法的形式,其可以用作输入树的压缩表示。这推广了字符串的类似结果。以前的基于语法的树压缩器没有分析计算语法的最坏情况大小,除了Bille等人的顶部dag,其中,只有较弱的上界$O\big(\frac{n}{\log_σ^{0.19} n}\big)$(最近由Hübschle-Schneider和Raman改进为$O\big(\frac{n \cdot \log \log_σn}{\log_σn}\big)$)的未排名和未标记的树已经得到。本文的主要结果表明,每一个$n$大小的算术公式(其中只有$m \leq n$不同的变量出现)都可以变换成(在线性时间和对数空间中)一个大小为$O\big(\frac{n \cdot \log m}{\log n}\big)$和深度为$O(\log n)$的算术电路。这改进了Brent在1974年的一个经典结果,根据这个结果,一个长度为$n$的算术公式可以转化为一个长度为$O(n)$的对数深…
2015-09-21 cs.CC cs.DS cs.FL
Grammar-Based Compression in a Streaming Model
我们表明,给定一个字符串$s$的长度$n$,与恒定的内存和对数通过一个恒定数量的流,我们可以建立一个上下文无关文法,生成$s$,只有$s$和其大小是在一个$\Oh{\min (g \log g, \sqrt{n \log g})}$的最小$g$的因素。这与我们以前的结果形成鲜明对比,即使用多对数存储器和多对数通过单个流,我们不能构建这样的语法,其大小在$g$的任何多项式内。
2010-02-06 cs.DS
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
Online Grammar Compression for Frequent Pattern Discovery
在过去的十年中,已经提出了各种语法压缩算法。语法压缩是一种确定性地导出字符串的受限CFG。有效的语法压缩通过查找重复的模式并将其删除来开发更小的CFG。这一过程就是一个通过语法推理频繁发现模式的过程。虽然我们可以使用预处理的字符串在线性时间内获得任何频繁模式,但对于较长的模式需要巨大的工作空间,并且必须预先将整个字符串加载到内存中。我们提出了一个在线算法近似压缩空间内的这个问题。的主要贡献是以前最好的已知的近似比$Ω(\frac{1}{\lg^2m})$到$Ω(\frac{1}{\lg^*N\lg m})$,其中$m$是在一个字符串的长度$N$和$\lg^*$的最佳模式的长度是迭代的对数底$2$的改进。对于足够大的$N$,$\lg^*N$实际上是恒定的。实验结果表明,我们的算法提取接近最优的模式,并取得了显着改善的内存消耗相比,离线算法。
2016-08-31 cs.DS
Online Self-Indexed Grammar Compression
尽管到目前为止已经提出了几种基于语法的自索引,但它们的适用性仅限于离线设置,其中准备了整个输入文本,因此需要为给定的额外输入重建索引结构,这在大数据时代通常是这种情况。在本文中,我们提出了第一个在线自索引的语法压缩命名为OESP-index,可以逐步建立索引结构,通过读取输入字符一个接一个。这样的属性是另一个优点,它可以节省用于构造的工作空间,因为我们不需要在存储器中存储输入文本。实验测试了OESP-index在构建索引结构和搜索查询文本方面的能力,并展示了OESP-index的效率,特别是在构建索引结构方面的空间效率。
2015-07-06 cs.DS
On Two LZ78-style Grammars: Compression Bounds and Compressed-Space Computation
我们研究了两种密切相关的基于LZ 78的压缩方案:LZMW(Miller和Wegman的旧方案)和LZD(Goto等人的最新变体)。LZD和LZMW自然产生一个字符串的长度$n$的语法,我们表明,这种语法的大小可以大于最小的语法的大小的一个因素$Ω(n^{\frac{1}3})$,但总是在一个因素$O((\frac{n}{\log n})^{\frac{2}{3}})$。此外,我们表明,使用$Θ(z)$工作空间来构建LZD和LZMW解析的标准算法,其中$z$是解析的大小,在最坏的情况下工作在$Ω(n^{\frac{5}4})$时间。然后,我们描述了一个新的拉斯维加斯LZD/LZMW解析算法,使用$O (z \log n)$空间和$O(n + z \log^2 n)$时间WP。
2017-07-25 cs.DS
Tree structure compression with RePair
在这项工作中,我们引入了一个新的线性时间压缩算法,称为“重新对树”,压缩排序有序树使用线性直线上下文无关树文法。这样的文法推广了直线上下文无关的字符串文法,并允许基本的树操作,如沿边遍历,无需事先解压缩即可执行。我们的算法可以看作是N. Jesper Larsson和Alistair Moffat于2000年。后一种算法是一种基于字典的字符串压缩算法。我们还介绍了一个简洁的编码,这是专门在进一步压缩我们的算法产生的语法。这是在不损失直接对输入树的压缩表示执行查询的能力的情况下完成的。最后,我们比较的语法和输出文件所产生的原型的重新对树算法与类似的压缩算法。实验结果表明,该算法在压缩比、运行时间和内存使用方面均优于同类算法。
2010-07-30 cs.DS
Entropy Bounds for Grammar-Based Tree Compressors
将字符串的$k^{th}$阶经验熵的定义推广到结点标号二叉树.一个合适的二进制编码的树直线程序(已被用于基于语法的树压缩之前)所示出的产生二叉树编码的大小有界的$k^{th}$阶经验熵加上一些低阶项。这概括了最近的结果,基于语法的字符串压缩,基于语法的树压缩。
2020-05-20 cs.DS cs.IT math.IT
Towards Optimal Grammars for RNA Structures
针对RNA序列与结构联合压缩及结构预测需求,本研究开发自动系统性搜索随机文法的框架,经穷尽式搜索小型文法,找到性能超越人类专家设计文法的结果。
2024-01-29 cs.DS cs.IT math.IT
Efficient terabyte-scale text compression via stable local consistency and parallel grammar processing
提出基于稳定局部一致性的并行文法压缩算法,实现太字节级数据高效处理,在7.9TB细菌基因组上以16线程九小时内完成压缩,体积缩小85倍。
2025-02-24 cs.DS
Fully Online Grammar Compression in Constant Space
我们提出了新的变种完全在线LCA(FOLCA),一个完全在线的语法压缩,建立一个直线程序(SLP),并直接将其编码成一个简洁的表示在一个在线的方式。FOLCA使得能够将SLP直接编码为简洁表示,该简洁表示渐进地等价于用于表示SLP的信息理论下限(Maruyama等人,SPIRE'13)。FOLCA的压缩时间与输入文本的长度成线性比例,其工作空间仅取决于SLP的大小,这使得我们能够将FOLCA应用于大规模重复文本。然而,最近的重复文本包括一些噪音。例如,目前的测序技术具有显著的出错率,这将噪声嵌入到基因组序列中。对于这样的噪声重复文本,在SLP大小下工作的FOLCA消耗大量的内存。我们提出了两种变体的FOLCA工作在恒定的空间,利用流挖掘技术背后的想法。实验使用100个人类基因组对应于约300 GB的1000个人类基因组项目揭示了我们的方法的适用性,大规模的,嘈杂的重复文本。
2014-01-29 cs.DS
Practical and Effective Re-Pair Compression
Re-Pair是一个高效的语法压缩器,它通过递归地用新的语法符号替换高频字符对来运行。对于任何常数$ε>0$,计算Re-Pair的最节省空间的线性时间算法在可重写文本(长度为$n$并且存储在$n$字中)之上使用$(1+ε)n+\sqrt n$字;然而,在实践中,该解决方案使用复杂的子过程,从而使其不实用。在本文中,我们提出了一个实现上述结果利用更实际的解决方案,我们的工具进一步提高了工作空间,$(1.5+ε)n$字(包括文本),一些小常数$ε$。作为第二个贡献,我们专注于紧凑表示的输出语法。存储具有$d$规则的语法的下限是$\log(d!)+2d\approx d\log d+0.557 d$位,并且文献中最有效的编码算法最多使用$d\log d + 2d$位并且在$\mathcal O(d^{1.5})$时间内运行。我们描述了一个线性时间启发式最大限度地压缩输出重新配对语法。在真实的数据集上,我们的语法编码平均只使用比信息理论最小值多$2.8\%$的比特。在一半的测试案例中,我们的压缩器在打开最大压缩率的情况下提高了7-Zip的输出大小。
2017-04-27 cs.DS
A Succinct Grammar Compression
我们解决了一个公开的问题,有关的最佳编码的直线程序(SLP),规范形式的语法压缩推导出一个单一的字符串确定性。我们表明,一个信息理论的下界表示一个SLP与n个符号需要至少2n+logn!+ o(n)位。然后,我们提出了一个简洁的表示的SLP,这种表示是渐近等价的下界。对于rho leq 2sqrt{n},空间最多为2n log {rho}(1 + o(1))位,同时支持在O(log log n)时间内随机访问SLP的任何产生式规则。此外,我们提出了一种新的动态数据结构相关联的一个digram与一个唯一的符号。这种数据结构被称为命名函数,并且已经使用具有空间-时间折衷的哈希表来实现。因此,在产生式规则的开发过程中,内存空间主要由哈希表占用。或者,我们通过利用小波树背后的思想为命名函数构建一个动态数据结构。该空间严格限制为2nlogn(1 + o(1))位,同时支持O(logn)的查询和更新时间。
2013-06-15 cs.DS
Approximation of smallest linear tree grammar
给出了一个简单的线性时间算法来构造一个长度为O(rg + rg log(n/rg))的线性上下文无关树文法,其中g是T的最小线性上下文无关树文法的长度,r是T中符号的最大秩(在许多应用中它是一个常数).这是基于语法的树压缩算法的第一个例子,它具有良好的近似比,即输入树大小的对数近似比。该算法的分析使用了从字符串到树的再压缩技术的扩展。
2018-10-06 cs.DS cs.FL
Revisiting the Folklore Algorithm for Random Access to Grammar-Compressed Strings
针对语法压缩字符串随机访问实用研究不足的问题,本文修改了乔姆斯基范式下的民间传说随机访问算法使其适配通用语法,验证了其实际运行速度快、内存效率高的优势。
2024-07-11 cs.DS
Compressed Tree Canonization
直线(线性)上下文无关树(context-free tree,简写为CWT)文法已经被用来压缩表示有序树。众所周知,等价文法在多项式时间内是可判定的。本文推广了这一结果,并证明了以文法形式给出的无序树的同构在多项式时间内是可判定的。该证明构造了由输入文法表示的树的规范形式的压缩版本。通过在多项式时间内对压缩树进行“重根”,将结果推广到无根树。我们进一步证明了无根无序树的互模拟等价是可判定的多项式时间。对于具有双指数压缩比的非线性同构文法,我们证明了无序同构是PSPACE-困难的且在EXPTIME中。相同的复杂性界限示出互模拟等价。
2015-02-16 cs.DS cs.FL
On the sensitivity of CDAWG-grammars
Kyushu University(九州大学)
研究CDAWG文法对字符串编辑的敏感性,给出其最坏情况加性敏感性的下界3g-21和上界8g+4。
2026-05-28 cs.DS
Space-Efficient Re-Pair Compression
Re-Pair是一种有效的基于语法的压缩方案,在实践中获得了很高的压缩率。令$n$、$σ$和$d$分别为最终语法的文本长度、字母表大小和字典大小。在他们的原始论文中,作者展示了如何在预期的线性时间内计算Re-Pair文法,并在文本之上计算工作空间的$5n + 4σ^2 + 4d + \sqrt{n}$单词。在这项工作中,我们提出了两个算法改进的空间,他们原来的解决方案。我们的模型假设一个记忆字的$\lceil\log_2 n\rceil$位和一个可重写的输入文本组成的$n$这样的话。我们的第一个算法运行在预期的$\mathcal O(n/ε)$时间,并使用$(1+ε)n +\sqrt n$字的空间上的任何参数$0<ε\leq 1$提前选择的文本。我们的第二个算法在预期的$\mathcal O(n\log n)$时间内运行,并将空间改进为$n +\sqrt n$字。
2016-11-04 cs.DS
Linear-size CDAWG: new repetition-aware indexing and grammar compression
在本文中,我们提出了一种新的方法,结合\emph{compact directed acyclic word graphs}(CDAWGs)和基于语法的压缩。这使我们得到一种高效的自索引,称为线性大小CDAWG(L-CDAWG),它可以用$O(\tilde e_T \log n)$位空间表示,允许对边缘标签进行$O(\log n)$ -时间随机访问和$O(1)$ -时间顺序访问,以及$O(m \log σ+ occ)$ -时间模式匹配。这里,$\tilde e_T$是$T$中最大重复的所有延伸的数目,$n$和$m$分别是文本$T$和给定模式的长度,$σ$是字母大小,$occ$是$T$中模式的出现次数。对于高度重复的文本,已知重复性度量$\tilde e_T$远小于文本长度$n$。对于常数字母表,我们的L-CDAWG实现$O(m + occ)$模式匹配时间与$O(e_T^r \log n)$位的空间,这提高了模式匹配时间Belazzougui等人。的游程长度BWT-CDAWG的系数为$\log \log n$,具有相同的空间复杂度。这里,$e_T^r$是$T$中最大重复的右延伸的数目。作为一个副产品,我们的结果给出了一种方法来构建一个SLP的大小$O(\tilde e_T)$为一个给定的文本$T$在$O(n + \tilde e_T \log σ)$时间。
2017-07-27 cs.DS
Balancing Straight-Line Programs
它示出,上下文上下文无关文法的大小$m$,产生一个单一的字符串$w$(这样的语法也被称为一个字符串直线程序),可以在线性时间转换成上下文上下文无关文法的语法$w$的大小$\mathcal{O}(m)$,其独特的推导树有深度$\mathcal{O}(\log |w|)$。这解决了基于语法的压缩领域中的一个公开问题。类似的结果显示两种形式主义基于语法的树压缩:顶dags和森林直线程序。这些平衡结果都是从一个单一的Meta定理推导出来的,该元定理指出,具有一定有限基性质的代数上的代数电路的深度可以减少到$\mathcal{O}(\log n)$,而成本是常数乘法大小的增加。这里,$n$指的是电路展开(或解开)的大小。
2020-07-01 cs.DS
Restructuring Compressed Texts without Explicit Decompression
我们考虑的问题{ \em重组}压缩文本没有显式解压缩。我们提出的算法,允许从任何基于语法的压缩算法产生的字符串$T$的压缩表示转换,表示由几个特定的压缩算法,包括LZ 77,LZ 78,行程长度编码,和一些基于语法的压缩算法。这些是第一个算法,实现运行时间多项式的大小压缩的输入和输出表示的$T$。由于我们考虑的大多数表示都可以实现指数压缩,因此在最坏的情况下,我们的算法理论上比任何首先解压缩字符串进行转换的算法都要快。
2011-07-14 cs.DS
Anomaly Sequences Detection from Logs Based on Compression
Institute of Computing Technology, Chinese Academy of Sciences(中国科学院计算技术研究所)
从日志中挖掘信息是一个古老而活跃的研究课题。近年来,随着云计算的迅速兴起,日志挖掘对工业界的影响越来越大。针对日志挖掘的主要任务之一:异常检测,提出了一种新的从大日志中挖掘异常序列的方法。与以往基于统计、概率和马尔可夫假设的异常检测系统不同,本文提出的方法利用压缩来度量序列的奇异性。该算法首先利用基于文法的压缩训练出一个关于正常行为的文法,然后根据文法长度的增加来度量可疑序列的信息量和信息密度。我们已经将我们的方法应用于从细粒度的执行日志中挖掘一些真正的错误。我们还测试了它的入侵检测能力,使用一些公开的系统调用跟踪。实验结果表明,该方法能够成功地筛选出与漏洞或攻击相关的奇怪序列。
2011-09-08 cs.DS cs.LG
Simulation computation in grammar-compressed graphs
像[1]一样,我们提出了一个算法来计算标记节点和未标记边的图中的查询模式的模拟。然而,我们的算法是在压缩的图语法上工作的,而不是在原始图上。与[1]中的算法相比,我们的算法的速度随着图的大小和压缩强度而增长。
2020-01-14 cs.DB cs.DS
Pattern Matching on Grammar-Compressed Strings in Linear Time
文本处理算法中考虑的最基本问题是模式匹配:给定长度为$m$的模式$p$和长度为$n$的文本$t$,$p$是否出现在$t$中?这个基本问题的多个版本已经被考虑过了,现在我们知道在实践和理论上都很快的算法。然而,生成和存储的数据量的快速增长带来了设计直接对数据的压缩表示进行操作的算法的需求。在压缩模式匹配问题中,我们给出文本的压缩表示,其中$n$是压缩表示的长度,$N$是文本的长度,以及长度为$m$的未压缩模式。最具挑战性的(但在处理高度重复的数据时也是相关的,比如生物信息)场景是当所选择的压缩方法能够描述指数长度的字符串时(在其表示的大小上)。这种压缩方法的一种优雅的形式是直线程序,它只是描述一个字符串的上下文无关文法。虽然已经知道对于这种压缩方法,压缩的模式匹配问题可以在$O(m+n\log N)$时间内解决,但是设计线性时间算法仍然是开放的。我们解决这个悬而未决的问题,提出了一个$O(n+m)$时间算法,给定一个上下文无关文法大小$n$,产生一个单一的字符串$t$和模式$p$的长度$m$,决定是否$p$出现在$t$作为一个子串。为此,我们设计改进的解决方案的加权祖先问题和子串连接问题。
2021-11-09 cs.DS
Practical Random Access to SLP-Compressed Texts
基于语法的压缩是一种流行且强大的压缩重复文本的方法,但直到最近,它在现实生活中构建时相对较差的时空权衡使得它对于真正的大规模数据集(如基因组数据库)不切实际。在最近的一篇论文(SPIRE 2019)中,我们展示了简单的预处理如何显着改善这些权衡,在本文中,我们将注意力转向使基于语法的压缩如此有吸引力的功能之一:支持快速随机访问的可能性。这是许多算法中的一个基本要素,这些算法处理语法压缩的文本而不解压缩它们,并且已经发表了许多关于它的理论界限,但实验已经落后了。我们给出了一种新的语法编码,它与现有技术的实际状态一样小(Maruyama等人,SPIRE 2013),但查询速度明显更快。
2020-07-19 cs.DS
Random Access to Grammar Compressed Strings
基于语法的压缩是一种简单而强大的范例,它可以捕获许多流行的压缩方案,其中一个人用生成字符串的小型上下文无关语法替换长字符串。在本文中,我们提出了一种新的语法表示,允许有效的随机访问任何字符或子串,而不解压字符串。令$S$为长度为$N$的字符串,该字符串被压缩为大小为$n$的上下文无关语法$\mathcal{S}$。我们提出了两种表示的$\mathcal{S}$实现$O(\log N)$随机访问时间,或$O(n\cdot α_k(n))$建设时间和空间上的指针机器模型,或$O(n)$建设时间和空间上的RAM。这里,$α_k(n)$是阿克曼函数的$k^{th}$行的逆。我们的表示也有效地支持解压缩的任何子串在$S$:我们可以在相同的复杂性作为一个单一的随机访问查询和额外的$O(m)$时间的长度$m$的任何子串。结合这些结果与快速算法的未压缩近似字符串匹配导致几个有效的算法近似字符串匹配的语法压缩字符串不解压。例如,我们可以找到模式$P$在时间$O(n(\min\{|P|k, k^4 + |P|\} + \log N) + occ)$上的所有近似出现,其中$occ$是$P$在$S$中出现的次数。最后,我们将我们的结果推广到导航和语法压缩有序树的其他操作。所有上述界限显着改善目前最知名的结果。为了实现这些界限,我们引入了几个新的技术和数据结构的独立利益,包括前身的数据结构,两个“有偏见的”…
2013-10-29 cs.DS
RePair in Compressed Space and Time
给定一个长度为$N$的字符串$T$,语法压缩的目标是构造一个仅生成$T$的小型上下文无关语法。在现有的语法压缩方法中,RePair(递归配对)[Larsson和Moffat,1999]在实践中以实现良好的压缩比而闻名。虽然原论文已经实现了一个时间最优的算法来计算RePair文法RePair($T$)在预期的$O(N)$时间内,但减少其工作空间,使其适用于大规模数据的研究仍在进行中。在本文中,我们提出了第一个在压缩空间中工作的RePair算法,即,潜在的$o(N)$空间用于高度可压缩的文本。其核心思想是给出一种新的方法,在压缩的空间和时间内将任意文法$S$ for $T$重构为RePair($T$)。基于再压缩技术,提出了一种在$O(\min(N, nm \log N))$空间和期望的$O(\min(N, nm \log N) m)$时间或$O(\min(N, nm \log N) \log \log N)$时间上的RePair($T$)算法,其中$n$是$S$的大小,$m$是RePair($T$)中的变量数.我们实现了我们的算法运行在$O(\min(N, nm \log N) m)$时间,并表明它实际上可以运行在压缩空间。我们还提出了一种新的方法,以减少现有的RePair算法结合我们的算法的峰值内存使用,并表明新的方法优于,无论是在计算时间和空间,最有效的空间线性时间RePair实…
2018-11-05 cs.DS
Grammar Boosting: A New Technique for Proving Lower Bounds for Computation over Compressed Data
本文提出了一种不依赖近似比且完全通用的Grammar Boosting技术,用于证明文法压缩数据上算法与数据结构的下界,并成功推导出多种主流压缩算法的随机访问时间下界及压缩计算的条件下界。
2023-07-17 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
Grammar Compressed Sequences with Rank/Select Support
序列表示不仅支持对其符号的直接存取,而且支持秩/选择操作,是许多压缩数据结构中的基本构建块。最近的几个应用程序需要表示高度重复的序列,经典的统计压缩证明是无效的。相反,我们介绍了基于语法的表示重复序列,使用统计压缩表示所需的空间的6%,并支持直接存取和排名/选择操作在几十微秒内。我们展示了我们的结构在文本索引应用程序的影响。
2019-11-21 cs.DS
Improving Matrix-vector Multiplication via Lossless Grammar-Compressed Matrices
随着当今机器学习(ML)技术正在生成巨大的数据汇集,如何有效地设计其存储和操作的问题变得至关重要。在这篇文章中,我们提出了一个新的实值矩阵的无损压缩方案,实现有效的性能方面的压缩比和线性代数运算的时间。实验表明,作为一个压缩器,我们的工具是明显优于gzip,它通常是在20%的xz在压缩比方面。此外,我们的压缩格式支持与压缩表示的大小成比例的时间和空间中的矩阵向量乘法,不像gzip和xz需要完全解压缩压缩矩阵。据我们所知,我们的无损压缩器是第一个实现的时间和空间复杂度性相匹配的理论极限表示的$k$阶统计熵的输入。为了实现进一步的时间/空间减少,我们提出了一个新的列相似性得分上的列重排序算法。我们在ML矩阵的各种数据集上的实验表明,在适度的预处理时间下,我们的列重新排序可以在矩阵向量乘法期间进一步减少高达16%的峰值内存使用。最后,我们将我们的建议与最先进的压缩线性代数(CLA)方法进行比较,结果表明我们的运行速度总是至少快两倍(在多线程设置中),并且对于大多数测试数据集都实现了更好的压缩空间占用。这证实了实验证明有效的理论界限,我们展示了我们的压缩矩阵的方法。
2022-03-30 cs.DS
Rpair: Rescaling RePair with Rsync
数据压缩是管理大量但重复的数据集的强大工具,特别是基于语法的压缩方案,它支持对数据进行计算而不解压缩。在最好的情况下,这种方案需要一个数据集,它必须存储在磁盘上,并将其缩小到足以在内存中存储和处理。然而,即使这样,该方案本质上也是无用的,除非它可以在原始数据集上合理快速地构建,同时将数据集保留在磁盘上。在本文中,我们将展示如何使用上下文触发的分段散列来预处理这些数据集,以便之后我们可以更容易地应用RePair和其他基于语法的压缩器。我们首先给出我们的算法,然后展示如何使用它的变体来近似LZ77解析,然后利用它来证明压缩的理论界限,最后给出实验证据证明我们的方法在实践中具有竞争力。
2019-06-03 cs.DS
Scalable Partial Least Squares Regression on Grammar-Compressed Data Matrices
随着大量高维数据在研究和工业中的普遍存在,对用于数据分析和知识发现的更具可扩展性的计算技术的需求日益强烈。将这些数据转化为知识的关键是学习具有高度可解释性的统计模型的能力。当前用于学习统计模型的方法要么产生不可解释的模型,要么在应用于大量数据时具有令人望而却步的计算成本。在本文中,我们通过提出一种可扩展的偏最小二乘回归(PLS)算法来解决这一需求,我们称之为基于压缩的PLS(cPLS),以从大量高维数据中学习具有高度可解释性的预测线性模型。我们提出了一种新的语法压缩表示的数据矩阵,支持快速的行和列访问,而数据矩阵是在一个压缩的形式。对原始数据矩阵进行语法压缩,然后在压缩后的数据矩阵上学习PLS中的线性模型,从而大大减少了工作空间,极大地提高了可扩展性。实验测试了cPLS学习线性模型进行分类、回归和特征提取的能力,结果表明,cPLS在预测精度、计算效率和可解释性方面都具有较好的性能。
2016-06-16 cs.DS
A Grammar-based Compressed Representation of 3D Trajectories
已经发表了许多关于地面或海上轨迹管理的研究,但飞行轨迹的压缩或索引通常较少探索。然而,空中交通管理是一个挑战,因为空域变得越来越拥挤,并且必须保存大量飞行数据汇集并将其用于各种目的。本文提出了3DGraCT,一种新的方法来表示这些飞行轨迹。它扩展了GraCT紧凑数据结构,以处理第三维(海拔),同时保留其空间/时间复杂度。3DGraCT将传统时空数据结构的空间需求提高了两个数量级,在所考虑的查询类型中具有竞争力,甚至在特定查询的比较中领先。
2018-12-28 cs.DS
Compression by Contracting Straight-Line Programs
在基于语法的压缩中,字符串由上下文无关语法表示,也称为直线程序(SLP),它只生成该字符串。我们改进了最近的平衡结果,指出可以在线性时间内将大小为$g$的SLP转换为大小为$O(g)$的等效SLP,以便唯一派生树的高度为$O(\log N)$,其中$N$是表示字符串的长度(FOCS 2019)。我们引入了一类新的平衡SLP,称为收缩SLP,其中对于每个规则$A \to β_1 \dots β_k$,右侧的每个变量$β_i$的字符串长度比$A$的字符串长度小一个常数因子。特别地,收缩SLP的导出树具有每个子树在其叶大小中具有对数高度的性质。我们表明,一个给定的SLP的大小$g$可以在线性时间转化为一个等价的合同SLP的大小$O(g)$与规则的恒定长度。我们提出了一个应用程序的导航问题,在压缩的无秩树,森林直线程序(FSLPs)。我们通过移动到时间上的第$i$个孩子$O(\log d)$的操作来扩展Reh和Sieber(2020)的线性空间数据结构,其中$d$是当前节点的度。收缩SLP还被应用于在SLP压缩的字符串上的指搜索问题,其中人们想要访问接近预先指定的指位置的位置,理想地在$O(\log d)$时间内,其中$d$是访问的位置和指之间的距离。我们给出了一个线性空间的解决方案,其中一个可以访问符号或移动手指的时间$O(\log d + \log^{(t)} N)$为任何常数$t$其…
2021-07-01 cs.DS
Computing all-vs-all MEMs in grammar-compressed text
提出一种压缩感知方法,通过构建满足fix-free属性的完全平衡语法,在不解压的情况下增量计算重复集合中所有字符串间的最大精确匹配,并探讨了其在压缩空间近似模式匹配中的应用。
2023-06-29 cs.DS cs.IR
Data Structure Lower Bounds on Random Access to Grammar-Compressed Strings
在本文中,我们研究了构建静态数据结构的问题,该结构使用接近其压缩大小的空间来表示字符串s,并允许快速访问s的各个字符。Bille等人最近的论文研究了这种类型的结构。设n是一个上下文无关文法的大小,它导出一个长度为L的唯一字符串s。(Note L可能是n的指数)。Bille等人展示了一个数据结构,它使用空间O(n),并允许使用运行时间O(log L)查询s的第i个字符。它们的数据结构适用于字大小为logL位的字RAM。在这里,我们证明了对于这样的数据结构,如果空间是poly(n),那么查询时间必须至少是(log L)^{1-ε}/log S,其中S是所使用的空间,对于任何常数eps>0。作为n的函数,我们的下界是Ω(n^{1/2-ε})。我们的证明在细胞探针模型与日志L位的字大小,所以特别是它在字RAM模型。我们证明了在细胞探针模型中没有比n^{1/2-ε}更好的下界,因为在细胞探针模型中存在使用O(n)空间并实现O(\sqrt{n log n})查询时间的数据结构。当L=2^{ \sqrt{n} }时,参数的“坏”设置大致发生。我们还证明了不可压缩弦的一个下界,这里,假设L=n^{1+ε}。对于这种情况,我们证明了如果空间是n个polylog(n),那么查询时间必须至少是Ω(log n/loglog n)。证明工程减少到通信复杂性,即LSD问题,最近受雇于帕特拉斯库和其他人。我们也…
2012-05-03 cs.CC cs.DS
Compressed Range Minimum Queries
给定$[0,σ)$中$n$整数的字符串$S$,范围最小查询RMQ $(i, j)$要求$S[i \dots j]$中最小整数的索引。众所周知,这个问题可以用大小为$2n + o(n)$且查询时间恒定的简洁数据结构来解决。在本文中,我们将展示如何预处理$S$到一个压缩表示,允许快速范围最小查询。这允许具有对数查询时间的次线性大小数据结构。最自然的方法是使用字符串压缩并构造一个数据结构,用于直接在压缩字符串上回答范围最小查询。我们调查这种方法的语法压缩的上下文中。然后,我们考虑另一种方法。代替使用字符串压缩来压缩$S$,我们使用树压缩来压缩$S$的笛卡尔树。我们表明,这种方法可以比前者指数更好,是从来没有更差的$O(σ)$因子(即恒定字母表,它是从来没有渐近差),并可以在事实上是更差的$Ω(σ)$因子。
2019-05-29 cs.DS
Fine-Grained Complexity of Analyzing Compressed Data: Quantifying Improvements over Decompress-And-Solve
我们可以分析数据而不解压吗?随着我们的数据不断增长,理解压缩输入问题的时间复杂性,而不是方便的未压缩形式,变得越来越重要。假设我们得到了一个大小为$n$的数据压缩,该数据最初的大小为$N$,我们想要解决一个时间复杂度为$T(\cdot)$的问题。“解压缩并求解”的简单策略给出了时间$T(N)$,而“黄金标准”是时间$T(n)$:有效地分析压缩,就像原始数据很小一样。我们将注意力限制在字符串形式的数据上(文本、文件、基因组等)。并研究最普遍的任务。虽然这个挑战看起来很大程度上取决于具体的压缩方案,但大多数实际相关的方法(Lempel-Ziv-family,字典方法等)都可以统一在语法兼容性的优雅概念下。大量的文献,跨越许多学科,将其确立为算法设计的一个有影响力的概念。我们介绍了一个框架,证明(条件)在这一领域的下限,使我们能够评估是否解压缩和解决可以改善,以及多少。我们的主要结果是:- 在强指数时间假设下,LCS的$O(nN\sqrt{\log{N/n}})$界限和具有通配符的模式匹配的$O(\min\{N \log N, nM\})$界限最优,直到$N^{o(1)}$因子。(Here,$M$表示压缩模式的未压缩长度。)- 在$k$ -Clique猜想下,解压缩-求解算法对于上下文无关语法分析和RNA折叠是最优的。- 我们给出了一个算法,表明解压缩和解决不相交不是最佳的。
2018-03-02 cs.CC cs.DS
Hardness of Frequency-Related Queries on Compressed Strings
Stony Brook University(石溪大学)
研究压缩字符串上频率相关查询,如秩查询和符号出现查询。通过建立条件下界,证明若用特定空间结构在多对数时间内回答此类查询,将意味着布尔矩阵乘法有更快算法,还扩展了下界范围并考虑了其他相关问题。
2026-07-09 cs.DS
Top Tree Compression of Tries
我们提出了一种基于顶树压缩的压缩表示[ICALP 2013],它适用于标准的、基于比较的指针机计算模型,并支持高效的前缀搜索查询。也就是说,我们展示了如何预处理一组字符串的总长度$n$在一个字母表的大小$σ$到一个压缩的数据结构的最坏情况下的最佳大小$O(n/\log_σn)$,给定一个模式字符串$P$的长度$m$确定如果$P$是一个前缀的字符串之一的时间$O(\min(m\log σ,m + \log n))$。我们表明,这个查询时间实际上是最优的,无论大小的数据结构。现有的解决方案要么使用$Ω(n)$空间,要么依赖于字RAM技术,例如制表、散列、地址算术或字级并行,因此不能在指针机器上工作。我们的结果是第一个解决方案的指针机器,实现最坏情况下的$o(n)$空间。一路上,我们开发了几个有趣的数据结构,工作在一个指针机器和独立的利益。这些包括一个最佳的数据结构随机访问的语法压缩字符串和一个最佳的数据结构的一个变种的水平祖先的问题。
2019-09-20 cs.DS
Linear Compressed Pattern Matching for Polynomial Rewriting (Extended Abstract)
本文是一个扩展的抽象分析的长期重写的重写规则中的条款,以及长期重写压缩的单例树文法(STG)。这种形式的压缩比节点共享或将项表示为dag更一般,因为部分树(上下文)也可以在压缩中共享。在第一部分中,高效,但复杂的算法检测适用性的重写规则下STG压缩构造和分析。第二部分将这些结果应用于项重写序列。子匹配的主要结果是,找到一个左线性规则的redex可以在多项式时间STG压缩下执行。重写和(单位置或并行)重写步骤的主要含义是:(i)在STG压缩下,n个重写步骤可以在非确定性多项式时间内执行。(ii)在STG压缩下,对于左线性重写规则,可以在多项式时间内执行n个重写步骤的序列,以及(iii)对于压缩重写规则,其中左手侧或者是DAG压缩的,或者是地面和STG压缩的,以及STG压缩的目标项,可以在多项式时间内执行n个重写步骤。
2013-02-26 cs.DS cs.LO
How Compression and Approximation Affect Efficiency in String Distance Measures
真实世界的数据通常以压缩形式出现。直接分析压缩数据(而不解压缩)可以节省大量的空间和时间。在这项工作中,我们专注于基本的序列比较问题,并试图量化的增益时,底层数据是高度可压缩的时间复杂度。我们考虑语法压缩,它统一了许多实际相关的压缩方案。对于总长度$N$和总压缩大小$n$的两个串,已知编辑距离和最长公共子序列(LCS)可以在时间上精确地计算$\tilde{O}(nN)$,这与未压缩设置的$O(N^2)$相反。许多应用需要同时比对多个序列,并且用于$k$字符串的中值编辑距离和LCS的已知最快精确算法在$O(N^k)$时间内运行。这自然提出了一个问题:压缩是否有助于显著减少$k \geq 3$的运行时间,可能是减少到$O(N^{k/2}n^{k/2})$或$O(Nn^{k-1})$。不幸的是,我们显示的下界,排除了任何改善超过$Ω(N^{k-1}n)$时间的任何这些问题假设强指数时间假设。同时,我们表明,近似和压缩在一起可以是令人惊讶的有效。我们开发了一个$\tilde{O}(N^{k/2}n^{k/2})$时间FPTAS的$k$序列的中值编辑距离。相比之下,没有$O(N^{k-Ω(1)})$时间PTAS已知的中值编辑距离的问题,在未压缩的设置。对于两个字符串,我们得到编辑距离和LCS的$\tilde{O}(N^{2/3}n^{4/3})$时间FPTAS。相比之下,对于未压缩的字符串,…
2021-12-10 cs.DS
Optimal Random Access and Conditional Lower Bounds for 2D Compressed Strings
该研究针对二维数据压缩索引的次优问题,提出首个二维文法压缩字符串的最优随机访问数据结构,证明模式匹配条件下界及基本二维查询的硬度假设,建立二维与一维压缩索引复杂度的关联。
2025-10-22 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