Improved Approximate String Matching and Regular Expression Matching on Ziv-Lempel Compressed Texts
我们研究了近似字符串匹配和正则表达式匹配问题的情况下,待搜索的文本被压缩的Ziv-Lempel自适应字典压缩方案。我们提出了一个时间-空间的权衡,导致算法提高了以前已知的复杂性这两个问题。特别是,我们显着改善的空间界限,这在实际应用中很可能是一个瓶颈。
2007-05-03 cs.DS
Lempel-Ziv Computation In Compressed Space (LZ-CICS)
我们表明,无论是Lempel Ziv 77-和78-因式分解的文本长度$n$上的整数字母表的大小$σ$可以计算在$O(n \lg \lg σ)$时间(线性时间,如果我们允许随机化)使用$O(n \lg σ)$位的工作空间。假设后缀树的压缩表示被加载到RAM中,我们可以使用空间的$z \lg n + O(n)$位在$O(n)$时间内计算两个因子分解,其中$z$是因子的数量。
2016-05-28 cs.DS
Space Efficient Linear Time Lempel-Ziv Factorization on Constant~Size~Alphabets
我们提出了一种新的算法,用于计算线性时间内给定长度$N$的字符串的Lempel-Ziv分解(LZ 77),该算法仅利用工作空间的$N\log N + O(1)$位,即,单个整数数组,用于常量大小的整数字母表。这极大地改善了线性时间LZ 77分解(Kärkkäinen et al. CPM 2013)的最佳空间要求,它需要两个长度为$N$的整数数组。计算实验表明,尽管算法的复杂度增加,但算法的速度仅为以前最快的线性时间算法的两倍左右。
2013-10-05 cs.DS
Pattern matching in Lempel-Ziv compressed strings: fast, simple, and deterministic
Lempel-Ziv压缩的无数变体广泛用于许多实际应用中。这篇论文关注的是经典的模式匹配问题的一个自然的修改,这是受到这种压缩方法的流行的启发:给定一个未压缩的模式s [1]。m]和字符串t [1.. n],s在t中发生吗?Farach和Thorup给出了这个问题的随机化O(nlog^2(N/n)+m)时间解,其中n是t的压缩表示的大小。我们改进了他们的结果,开发了一个更快的和完全确定的O(nlog(N/n)+m)时间算法具有相同的空间复杂度。请注意,对于高度可压缩的文本,log(N/n)可能是n阶,因此对于此类输入,改进非常显著。我们的方法的一个(微小的)片段可以用来给出Farach和Muthukrishnan考虑的子串哈希问题的渐近最优解。
2011-04-21 cs.DS
Lightweight Lempel-Ziv Parsing
我们介绍了一种新的方法,LZ 77分解,使用O(n/d)的工作空间和O(dn)的时间为任何d >= 1(多对数字母表大小)的字。我们还描述了轻量级LZ 77因子分解的替代方法的精心设计的实现。大量的实验表明,新算法在大多数情况下是优越的,特别是在最低的内存水平和高度重复的数据。作为算法的一部分,我们描述了新的方法来计算匹配统计,这可能是独立的利益。
2013-02-06 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
Range Predecessor and Lempel-Ziv Parsing
字符串的Lempel-Ziv分析(简称LZ 77)是数据压缩和字符串处理中最重要和最广泛使用的算法工具之一。我们表明,Lempel-Ziv分析的长度$n$字符串的大小$σ$的字母表可以计算在$O(n\log\logσ)$时间($O(n)$时间,如果我们允许随机化)使用$O(n\logσ)$位的工作空间,也就是说,使用的空间成比例的输入字符串的位。以前使用$O(n\logσ)$空间的最快算法需要$O(n(\logσ+\log\log n))$时间。我们还考虑了问题的最右边的重要变体,其目标是将解析的每个短语与输入字符串中最近出现的短语相关联。我们在$O(n(1 + (\logσ/\sqrt{\log n}))$时间内解决这个问题,使用与上面相同的工作空间。以前最右边解析的最佳解决方案使用$O(n(1+\logσ/\log\log n))$时间和$O(n\log n)$空间。作为奖励,在我们的解决方案中,最右边的解析,我们提供了一个更快的建设方法,有效的二维正交范围报告,这是独立的利益。
2015-07-25 cs.DS
Lempel-Ziv Parsing in External Memory
几十年来,计算字符串的LZ因子分解(或LZ 77解析)在许多不同的应用程序中都是必要的和计算密集的步骤,包括文本索引和数据压缩。多年来已经发现了许多LZ 77解析算法;然而,尽管越来越需要将LZ 77应用于海量数据集,但迄今为止还没有算法可以扩展到超过内部内存大小的输入。在本文中,我们描述的第一个算法计算LZ 77分析在外部存储器。我们的算法在实践中是快速的,并将允许下一代的文本索引,以实现大规模的字符串和字符串集合。
2013-07-04 cs.DS
RLZAP: Relative Lempel-Ziv with Adaptive Pointers
相对Lempel-Ziv(RLZ)是一种流行的算法,用于在需要快速随机访问时压缩来自同一物种个体的基因组数据库。Kuruppu et al.的(SPIRE 2010)原始实现中,选择参考基因组,然后将其他基因组Greatlessly解析成与参考的子串精确匹配的短语。Deorowicz和Grabowski(Bioinformatics,2011)指出,让每个短语以不匹配字符结尾通常会提供更好的压缩,因为个体基因组之间的许多差异是单核苷酸取代。Ferrada等人(SPIRE 2014)然后指出,使用相对指针和行程长度压缩它们通常会提供更好的压缩。在本文中,我们推广Ferrada等。的想法也很好地处理短插入,删除和多字符替换。我们的实验表明,我们的泛化实现更好的压缩比Ferrada等人。的实现具有可比的随机访问时间。
2016-05-14 cs.DS
Faster Compact On-Line Lempel-Ziv Factorization
我们提出了一个新的在线算法计算Lempel-Ziv分解的字符串,运行在$O(N\log N)$时间,只使用$O(N\logσ)$位的工作空间,其中$N$是字符串的长度和$σ$是字母表的大小。这是一个显着的改进相比,以前的在线算法使用相同的工作空间顺序,但运行在$O(N\log^3N)$时间(Okanohara & Sadakane 2009)或$O(N\log^2N)$时间(Starikovskaya 2012)。我们的新算法的关键是利用一个优雅的,但不太流行的索引结构称为有向非循环字图,或DAWG(Blumer等1985)。我们还提出了一个机会的变体,我们的算法,给定的行程长度编码的长度$N$的字符串的大小$m$,计算Lempel-Ziv因式分解在线,在$O\left(m \cdot \min \left\{\frac{(\log\log m)(\log \log N)}{\log\log\log N}, \sqrt{\frac{\log m}{\log \log m}} \right\}\right)$时间和$O(m\log N)$位的空间,这是更快,更节省空间的字符串时,运行长度可压缩。
2013-05-27 cs.DS
Time and Space Efficient Lempel-Ziv Factorization based on Run Length Encoding
提出了一种基于行程长度编码(RLE)的计算字符串Lempel-Ziv分解的新方法。我们提出了一个概念上简单的基于后缀数组变体的离线算法,以及一个基于有向非循环词图(DAWG)变体的在线算法。这两个算法都是在$O(N+n\log n)$时间和O(n)额外空间中运行的,其中N是字符串的大小,$n\leq N$是RLE因子的数量。对N的时间依赖性仅在于字符串到RLE的转换,这可以在O(N)时间和O(1)额外空间(不包括输出)中非常有效地计算。当字符串可通过RLE压缩时,即,$n = o(N)$,我们的算法是,据我们所知,第一个算法,只需要O(N)额外的空间,而运行在$o(N\log N)$时间。
2013-05-27 cs.DS
On the Size of Lempel-Ziv and Lyndon Factorizations
Lyndon分解和Lempel-Ziv(LZ)分解都是分析字符串结构和复杂性的重要工具,但它们的组合结构有很大的不同。在本文中,我们建立了两者之间的第一个直接联系,表明虽然林登分解可以大于非重叠的LZ分解(我们通过描述一个新的,非平凡的弦族来证明),但它永远不会超过两倍的大小。
2016-11-27 cs.DM cs.DS
Faster and simpler online/sliding rightmost Lempel-Ziv factorizations
本文针对在线和滑动模型中的最右 Lempel-Ziv 分解问题,提出基于 BP-linked trees 和改进动态 RmQ/RMQ 数据结构的 O(n log n/log log n) 时间算法,优于此前 O(n log n) 时间的最优结果。
2024-08-06 cs.DS
Decompressing Lempel-Ziv Compressed Text
我们考虑使用尽可能接近输入的大小$z$的工作空间来解压缩长度为$n$的字符串$S$的Lempel-Ziv 77表示的问题。该问题的民间传说解决方案在$O(n)$时间内运行,但需要随机访问整个解压缩文本。另一种民间传说的解决方案是将LZ 77转换为大小为$O(z\log(n/z))$的语法,然后在线性时间内流式传输$S$。在本文中,我们表明,$O(n)$时间和$O(z)$工作空间可以实现恒定大小的字母表。在大小为$σ$的一般字母表上,我们描述了(i)对于任何$0\leq δ\leq 1$实现$O(n\log^δσ)$时间和$O(z\log^{1-δ}σ)$空间的折衷,以及(ii)实现$O(n)$时间和$O(z\log\log (n/z))$空间的解决方案。后一种解决方案,特别是,占主导地位的民俗算法的问题。更一般地说,我们的解决方案可以提取$S$的任何指定的子序列,而在线性运行时间和工作空间之上的开销很小。作为一个直接的推论,我们表明,我们的技术产生LZ 77压缩文本的模式匹配问题的改进结果。
2019-11-04 cs.DS
Traveling Front Solutions to Directed Diffusion Limited Aggregation, Digital Search Trees and the Lempel-Ziv Data Compression Algorithm
利用行波前沿方法得到了Cayley树上一类定向扩散有限凝聚模型中粒子数统计量的精确渐近结果。我们指出,这些模型的某些方面是密切相关的两个不同的问题,在计算机科学中,即数字搜索树问题的数据结构和Lempel-Ziv算法的数据压缩。这里研究的粒子数的统计与数字搜索树的高度统计有关,而数字搜索树的高度统计又与由Lempel-Ziv算法形成的最长字的长度统计有关。我们的结果的影响,这些计算机科学问题指出。
2003-05-06 cond-mat.stat-mech cs.DS
Substring Compression Variations and LZ78-Derivates
本文提出了在整数字母表上线性时间内计算LZ78、LZD和LZMW分解的算法,并构建了可线性时间解决子串压缩问题的数据结构,同时给出了lexparse和closed分解的相关结果。
2024-09-23 cs.DS
A simple online competitive adaptation of Lempel-Ziv compression with efficient random access support
我们提出了一个简单的适应Lempel Ziv 78'(LZ 78)压缩方案({ \em IEEE Transactions on信息论,1978}),支持有效的随机访问输入字符串。即,给定对压缩串的查询访问,可以有效地恢复输入串的任何符号。压缩算法被给定为参数$\eps >0$的输入,并且以非常高的概率将压缩串的长度增加至多因子$(1+\eps)$。访问时间为预期的$O(\log n + 1/\eps^2)$,以及具有高概率的$O(\log n/\eps^2)$。该方案依赖于稀疏传递闭包空间。输入字符串的任何(连续的)子字符串都可以在子字符串长度的运行时间内以额外的附加成本进行检索。我们还正式建立修改LZ 78的必要性,以便允许有效的随机接入。具体来说,我们构建了一个家庭的字符串,$Ω(n/\log n)$查询的LZ 78压缩字符串是必需的,以恢复输入字符串中的单个符号。所提出的方案的主要优点是,它保留了LZ 78的在线性质和简单性,并且对于{ \em every}输入字符串,压缩字符串的长度仅比通过运行LZ 78获得的长度大一个小因子。
2013-01-11 cs.DS
On the Use of Suffix Arrays for Memory-Efficient Lempel-Ziv Data Compression
许多研究致力于优化Lempel-Ziv(LZ)77系列的算法,无论是在速度和内存需求方面。二叉搜索树和后缀树(ST)是经常用于此目的的数据结构,因为它们允许以内存使用为代价进行快速搜索。近年来,由于后缀数组(SA)的简单性和低存储器要求,人们对它们产生了兴趣。一个关键的问题是,SA可以解决子串问题几乎一样有效的ST,使用更少的内存。本文提出了两种新的SA为基础的LZ编码算法,这需要在解码器端的修改。标准基准测试的实验结果表明,我们的算法,虽然不是更快,使用的内存比ST同行少3至5倍。我们基于SA的算法的另一个重要特征是,内存量与要搜索的文本无关,因此可以先验地定义要分配的内存。这些低且可预测的内存需求特性在几种情况下至关重要,例如嵌入式系统,其中内存非常宝贵,速度并不重要。最后,我们指出,新的算法是一般的,在这个意义上说,他们是足够的应用程序以外的LZ压缩,如文本检索和向前/向后子串搜索。
2009-03-25 cs.DS
Lempel-Ziv-like Parsing in Small Space
Lempel-Ziv(LZ 77或简称LZ)是最有效和广泛使用的重复文本压缩器之一。然而,现有的高效的方法计算精确的LZ分析必须使用线性或接近线性的空间来索引的输入文本在构造的分析,这是禁止长的输入。另一种方法是相对Lempel-Ziv(RLZ),它只索引一个固定的参考序列,其大小可以控制。通过对文本进行采样来导出参考序列,为RLZ产生了合理的压缩比,但性能并不总是与LZ竞争,并且在很大程度上取决于参考与文本的相似性。在本文中,我们介绍了ReLZ,一种技术,使用RLZ作为预处理器近似LZ解析使用很少的内存。RLZ首先用于产生一系列短语,这些短语被认为是输入到LZ的元对称,用于对(最常见的)短得多的序列进行二级解析。这种解析最终被转换成原始序列上的解析。我们分析了新方案,并证明它与LZ一样,利用$k = o(\log_σn)$实现了$k$阶经验熵压缩$n H_k + o(n\logσ)$,其中$n$是输入长度,$σ$是字母表大小。事实上,我们证明这个熵界不仅为ReLZ,但广泛的LZ类编码。然后,我们建立了一个下界的ReLZ近似比表明,在它的短语的数量可以是$Ω(\log n)$倍以上的短语在LZ。我们的实验表明,ReLZ比现有的替代品更快地计算(精确或近似)LZ解析,在所有测试场景中,近似因子低于$2.0$,有时低于$1.05$,LZ的大小。
2020-05-10 cs.DS
Lempel-Ziv: a "one-bit catastrophe" but not a tragedy
所谓的压缩算法LZ'78的“一位灾难”是问当在一个无限字前面增加一个位时,它的压缩比是否会改变。我们肯定地回答了Lutz和其他人提出的这个开放性问题:我们证明了存在一个无限字$w$使得$ρ_{sup}(w)=0$但是$ρ_{inf}(0w)>0$,其中,$ρ_{sup}$和$ρ_{inf}$分别是前缀的压缩比$ρ$的$\limsup$和$\liminf$。为了这个目的,我们探讨的行为LZ'78有限字,并显示以下结果:-有一个常数$C>0$,这样,对于任何有限字$w$和任何字母$a$,$ρ(aw)\leq C\sqrt{ρ(w)\log|w|}$。因此,充分可压缩的单词($ρ(w)=o(1/\log|w|)$)在前面有一个字母的情况下仍然是可压缩的; -对于任何压缩比$ρ(w)=O(1/\log|w|)$,前面的结果紧到乘法常数。特别地,存在无限多个词$w$满足$ρ(w)=O(1/\log|w|)$但满足$ρ(0w)=Ω(1)$。
2017-07-31 cs.DS
Lempel-Ziv Decoding in External Memory
简单快速的解码是LZ 77类型文本编码的主要优点之一,它被用于许多流行的文件压缩器,如gzip和7zip。随着最近引入用于Lempel-Ziv因式分解的外部存储器算法,需要外部存储器LZ 77解码,但是标准算法对文本进行随机访问,并且不能针对外部存储器计算进行简单修改。我们描述了LZ 77解码的第一个外部存储器算法,证明了它们的I/O复杂度是最优的,并证明了它们在实践中非常快,只有大约三倍慢于内存解码(当读取输入和写入输出的时间包括在内)。
2016-01-31 cs.DS cs.IT math.IT
A Normal Sequence Compressed by PPM$^*$ but not by Lempel-Ziv 78
在本文中,我们比较了两个预测部分匹配(PPM)系列的压缩器(PPM $^*$和原始的有界PPM算法)和Lempel-Ziv 78(LZ)算法的性能差异。我们构造了一个无限二进制序列,它对PPM $^*$的最坏情况压缩比为$0$,而对有界PPM和LZ的最好情况压缩比分别至少为$1/2$和$1$.这个序列是按长度顺序枚举所有二进制字符串,即长度为$1$的所有字符串后跟长度为$2$的所有字符串,依此类推。因此它是正常的,并且是使用递增顺序的de Bruijn字符串的重复来构建的
2020-09-10 cs.DS cs.IT math.IT
Hierarchical Relative Lempel-Ziv Compression
相对Lempel-Ziv(RLZ)解析是一种字典压缩方法,其中通过将$S$解析为出现在$R$中的子串序列,相对于第二字符串$R$(称为引用)压缩字符串$S$。RLZ在压缩与参考字符串具有高度相似性的字符串集合时特别有效,例如来自相同物种的个体的基因组集合。随着DNA测序成本的降低,这样的数据集变得非常丰富,并且正在迅速增长。在本文中,而不是使用一个单一的引用字符串的整个集合,我们研究了使用不同的引用字符串的集合的子集,以提高压缩的目的。特别是,我们在字符串上形成一个有根树(或层次结构),然后使用RLZ压缩每个字符串,并将父字符串作为引用,仅以纯文本形式存储树的根。为了进行解压缩,我们从根开始以BFS顺序遍历树,相对于其父解压缩子树。我们表明,这种方法导致细菌基因组数据集的压缩的双重改进,与标准的单一参考方法相比,对解压缩时间的影响可以忽略不计。我们表明,一个有效的层次结构,为一组给定的字符串可以通过计算的最佳树形的字符串的一个完整的加权有向图,与重量的RLZ解析的源和目的地顶点的短语的数量。我们进一步表明,而不是计算完整的图,稀疏图使用局部敏感哈希可以显着降低计算一个良好的层次结构的成本,而不会对压缩性能产生不利影响。
2022-08-24 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
Sensitivity and Size Relationships of the Lempel-Ziv Factorization
Joint Graduate School of Mathematics for Innovation, Kyushu University(九州大学数学创新联合研究生院)
本文解决了LZ分解对四类结构改变型操作的乘法敏感性问题,构造了敏感性为Ω(log n)的字符串族,还确定了LZ分解与拼贴系统、词法解析的规模关系,给出了渐近紧的下界与上界。
2026-10-09 cs.DS
On the complexity and approximability of Bounded access Lempel Ziv coding
本文研究有界访问Lempel Ziv编码(c-BLZ)的复杂性,证明计算最优c-BLZ解析是NP-hard和APX-hard的,并分析了其与最优LZ76解析的大小比率。
2024-03-23 cs.CC cs.DS
Bit-Optimal Lempel-Ziv compression
Lempel和Ziv在40年前提出的无损数据压缩方案是最著名和研究最多的方案之一。这种压缩方案被称为“基于字典的压缩”,包括通过用(较短的)码字替换输入字符串的一些子串来压缩输入字符串,码字实际上是指向在处理字符串时构建的短语字典的指针。令人惊讶的是,尽管现在已知关于该压缩过程的速度和有效性的上限的许多基本结果以及其中的参考文献,但是“我们不知道当在对码字的任何约束下使用LZ 77字典时实现最优性的任何解析方案,而不是长度相等”[N]。Rajpoot和C.萨希纳尔普无损数据压缩手册,基于字典的数据压缩一章。中国科学出版社,2002年.页。159]。在这里,最优性意味着在压缩每个单独的输入字符串时实现最少的比特数,而不对其生成源做任何假设。在本文中,我们提供了第一个基于LZ的压缩机,计算任何输入字符串的位最优解析在有效的时间和最佳空间,一般类的可变长度码字编码,其中包括大多数通常用于数据压缩和搜索引擎和压缩索引的设计。
2008-02-06 cs.DS cs.IT math.IT
Height-bounded Lempel-Ziv encodings
本文提出高度受限的LZ编码(LZHB),通过限制隐式引用森林高度保证$O(h)$访问时间,给出常量字母表下贪心LZHB的线性时间算法,并证明其大小在重复性度量中具有理论优势。
2024-04-25 cs.DS
Relative Lempel-Ziv Factorization for Efficient Storage and Retrieval of Web Collections
支持快速随机访问的压缩技术是任何信息系统的核心组成部分。当前最先进的方法将文档分组为固定大小的块,并使用通用自适应算法(如GZIP)压缩每个块。随机访问一个特定的文件,然后需要解压缩一个块。块大小的选择至关重要:它在压缩效率和文档检索时间之间进行权衡。在本文中,我们提出了一个可扩展的压缩方法,大型文档集合,允许快速随机访问。我们构建一个集合的代表性样本,并将其用作集合其余部分的LZ 77编码中的字典(相对于字典)。我们证明了大型集合,使用小到0.1%的集合大小的字典,我们的算法是显着快于以前的方法,并在一般情况下提供更好的压缩。
2011-12-09 cs.DB cs.DS cs.IR
$O(n \log n)$-time text compression by LZ-style longest first substitution
Mauer等人[A Lempel-Ziv-style Compression Method for Repetitive Texts,PSC 2017]提出了一种混合文本压缩方法,称为LZ-LFS,它具有Lempel-Ziv 77因子分解和最长第一替换的特性。他们表明,与一些最先进的压缩算法相比,LZ-LFS可以对重复文本实现更好的压缩率。Mauer et al.的方法是,他们的LZ-LFS压缩算法在长度为$n$的输入字符串上花费$O(n^2)$时间。在本文中,我们展示了一个更快的LZ-LFS压缩算法,工作在$O(n \log n)$时间。我们还提出了一个更简单的版本的LZ-LFS,可以计算在$O(n)$时间。
2018-06-13 cs.DS
A Self-Index on Block Trees
块树是最近提出的一种数据结构,其压缩接近Lempel-Ziv,同时支持对文本子串的高效直接存取。在本文中,我们将展示如何在块树的顶部建立自索引,以便在使用与原始数据结构成比例的空间的同时提供有效的模式搜索。更准确地说,如果Lempel-Ziv解析将长度为$n$的文本切割成$z$非重叠短语,那么我们的索引使用$O(z\log(n/z))$词,并为任何常数$ε>0$在时间$O(m\log n+occ\log^εn)$中找到长度为$m$的模式的$occ$出现。
2017-10-10 cs.DS
Approximating Optimal Bidirectional Macro Schemes
Lempel-Ziv是一个易于计算的所谓宏方案家族的成员;它限制指针只能指向一个方向。最佳双向宏方案是NP完全的,但它们可以提供更好的压缩高度重复的序列。我们考虑最优双向宏格式的逼近问题。我们描述了一个模拟退火算法,通常收敛很快。此外,在某些情况下,我们得到的双向宏计划,可证明是一个2-近似的最佳。我们测试我们的算法在一些人工重复的文本,并验证它是有效的,在实践中,优于Lempel-Ziv,有时由一个很大的利润率。
2020-03-04 cs.DS
Lempel-Ziv (LZ77) Factorization in Sublinear Time
本研究提出首个亚线性时间LZ77因子分解算法,打破近50年线性时间壁垒,同时构建高效索引解决其在线变体,在字符串处理领域具有重要理论意义。
2024-09-18 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
A Separation Between Run-Length SLPs and LZ77
在本文中,我们给出了一个无限的字符串的Lempel-Ziv'77分析的长度是一个因子$Ω(\log n/\log\log n)$小于最小游程长度文法。
2017-11-20 cs.DS
LZ-Compressed String Dictionaries
我们展示了如何使用Lempel-Ziv(LZ 78)数据压缩算法来压缩字符串字典。我们的方法进行了实验验证高达1.5 GB的未压缩文本的字典。我们实现的压缩比往往优于现有的替代品,特别是在字典包含许多重复的子串。我们的查询时间仍然具有竞争力。
2013-05-03 cs.DS
Compression with the tudocomp Framework
我们提出了一个框架,促进文本压缩算法的实现和比较。我们评估其功能的两个新的压缩算法的Lempel-Ziv压缩方案的基础上,执行高度重复的文本的案例研究。
2021-04-22 cs.DS
Near-Optimal Quantum Algorithms for Bounded Edit Distance and Lempel-Ziv Factorization
本文提出有界编辑距离的量子算法,达到 \tilde{O}(\sqrt{nk}+k^2) 时间与最优查询复杂度,并给出时间最优的 \tilde{O}(\sqrt{nz}) LZ 分解算法。
2023-11-03 cs.DS quant-ph
High-performance BWT-based Encoders
1994年,Burrows和Wheeler开发了一种数据压缩算法,该算法的性能明显优于基于Lempel-Ziv的算法。从那时起,人们做了大量的工作来改进他们的算法,该算法基于输入字符串的可逆变换,称为BWT(Burrows-Wheeler变换)。在本文中,我们提出了一种基于BWT,MTF(移动到前端编码)的压缩方案,以及[Dragos Trinca,ITCC-2004]中提出的算法的一个版本。
2005-08-21 cs.DS
Online String Attractors
本文提出字符串吸引子问题的在线变体,证明Lempel-Ziv分解为最优在线算法(竞争比上界O(log n)),并给出Fibonacci词上的匹配下界Ω(log n)及在线k-吸引子的紧k-竞争性。
2024-07-22 cs.DS
Computing Absolutely Normal Numbers in Nearly Linear Time
一个实数$x$是绝对正规的,如果对于每个基$b\ge 2$,每两个等长的数字串在$x$的基- $b$展开式中以相等的渐近频率出现。本文给出了一个生成绝对正规数$x$的二进制展开式的显式算法,$x$的$n$第位出现在$n$ polylog $(n)$计算步骤之后.这种速度是通过同时计算和对角化对一个鞅,结合Lempel-Ziv解析算法在所有基地。
2020-07-16 cs.DS
Towards More Realistic Probabilistic Models for Data Structures: The External Path Length in Tries under the Markov Model
Tries是单词上最通用和最广泛使用的数据结构之一。它们与(存储的)单词的(内部)结构和在不同上下文中使用的几个拆分过程有关,从文档分类到IP地址查找,从数据压缩(即,Lempel-Ziv'77方案)到动态散列,从部分匹配查询到语音识别,从领导者选举算法到分布式散列表和图形压缩。虽然在一个现实的概率模型下尝试的性能是非常重要的,它的分析,即使是最简单的无记忆信源,已被证明是困难的。在更现实的弦生成模型下,关于固有复杂参数的严格发现很少被分析(只有少数明显的例外)。在本文中,我们遇到了这些挑战:通过一个新的使用的收缩方法结合分析技术,我们证明了一个中心极限定理的外部路径长度的trie下一般马尔可夫信源。特别是,我们的结果适用于Lempel-Ziv'77代码。我们设想,这里描述的方法将有进一步的应用到其他trie参数和数据结构。
2012-09-18 cs.DS math.PR
Most Recent Match Queries in On-Line Suffix Trees (with appendix)
后缀树能够有效地定位索引字符串中的模式,但通常不能定位在线流中的模式的最新副本,这在某些应用中是期望的。我们研究的最一般的版本的问题定位最近的匹配:支持查询任意模式,在处理在线流的每一步。我们提出了增强Ukkonen的后缀树构造算法的最佳时间查询,保持索引时间内的索引字符串的大小的对数因子。我们表明,该算法是适用于滑动窗口索引,并勾勒出一个可能的优化Lempel-Ziv压缩的特殊情况下使用。
2014-07-14 cs.DS
Local Editing in LZ-End Compressed Data
本文提出了一种对LZ-End压缩后的数据进行修改的算法。算法的性能和压缩比上的修改的影响进行评估。最后,我们讨论了这项工作的重要性,作为第一步对本地编辑Lempel-Ziv压缩数据。
2020-07-13 cs.DS cs.IT math.IT
BAT-LZ Out of Hell
本文提出 BAT-LZ 变体,通过设计贪心算法和结合增强后缀树的算法,在几乎不损失压缩率的情况下,将访问任意符号的开销限制在接近 $\log_2 n$。
2024-04-23 cs.DS
Dynamic index and LZ factorization in compressed space
本文针对动态文本$T$,提出了一种新的$O(w)$空间的\emph{dynamic compressed index},其中$w = O(\min(z \log N \log^*M, N))$是$T$的签名编码的大小,$z$是$T$的Lempel-Ziv 77(LZ 77)分解的大小,$N$是$T$的长度,$M \geq 3N$是字RAM模型下可以在常数时间内处理的整数.我们的索引支持在$O(|P| f_{\mathcal{A}} + \log w \log |P| \log^* M (\log N + \log |P| \log^* M) + \mathit{occ} \log N)$时间内在$T$中搜索模式$P$,并在$O((y+ \log N\log^* M)\log w \log N \log^* M)$时间内插入/删除长度为$y$的子串,其中$f_{\mathcal{A}} = O(\min \{ \frac{\log\log M \log\log w}{\log\log\log M}, \sqrt{\frac{\log w}{\log\log w}} \})$。此外,我们提出了一个新的空间有效的LZ 77分解算法的长度$N$,它运行在$O(N f_{\mathcal{A}} + z \log w \log^3 N (\log^* N)^2)$时间与$O(w)$工作空间的…
2016-07-19 cs.DS
Conversion from RLBWT to LZ77
在不显式解压缩的情况下将字符串的压缩格式转换为另一种压缩格式是字符串处理的中心研究课题之一。本文讨论了将字符串的游程Burrows-Wheeler变换(RLBWT)转换为反向字符串的Lempel-Ziv 77(LZ 77)短语的问题。使用Policriti和Prezza的转换算法[Micromica 2018]的第一个结果是字符串长度$n$的$O(n \log r)$时间和$O(r)$工作空间、RLBWT中运行次数$r$和LZ 77短语$z$的数量。Kempa转换算法[SODA 2019]的最新结果是RLBWT的字母大小$σ$的$O(n / \log n + r \log^{9} n + z \log^{9} n)$时间和$O(n / \log_σ n + r \log^{8} n)$工作空间。本文对Policriti和Prezza的转换算法进行了改进,提出了一种新的转换算法,该算法采用了通用的动态数据结构。我们认为,这些动态的数据结构可以被替换,并提出新的数据结构,更快的转换。我们的转换算法与新的数据结构的时间和工作空间分别为$O(n \min \{ \log \log n, \sqrt{\frac{\log r}{\log\log r}} \})$和$O(r)$。
2019-02-14 cs.DS
Dynamic index, LZ factorization, and LCE queries in compressed space
在本文中,我们提出了以下结果:(1)提出了一种新的$O(w)$空间的\emph{dynamic compressed index},它支持在$O(|P| f(M,w) + \log w \log |P| \log^* M (\log N + \log |P| \log^* M) + \mathit{occ} \log N)$时间内搜索当前文本中的模式$P$,在$O((y+ \log N\log^* M)\log w \log N \log^* M)$时间内插入/删除长度为$y$的子串,其中$N$是当前文本的长度,$M$是动态文本的最大长度,$z$是当前文本、$f(a,b) = O(\min \{ \frac{\log\log a \log\log b}{\log\log\log a}, \sqrt{\frac{\log b}{\log\log b}} \})$和$w = O(z \log N \log^*M)$的Lempel-Ziv 77(LZ 77)因子分解的大小。(2)针对给定长度的文本$N$,提出了一种新的空间有效的LZ 77分解算法,该算法在$O(w')$工作空间和$O(N f(N,w') + z \log w' \log^3 N (\log^* N)^2)$时间内运行,其中$w' =O(z \log N \log^* N)$ . (3)我们提出了一种$O(w)$空间的数据…
2016-04-06 cs.DS
Computing the LZ-End parsing: Easy to implement and practically efficient
本研究聚焦LZ-End解析的次优$\text{O}(n\text{lg}\text{lg}n)$算法,通过简化描述、加入未公开技巧、引入惰性求值和减少间接寻址优化,实现了易于实现、内存占用低且速度超现有最优水平的效果。
2024-09-17 cs.DS