Compact q-gram Profiling of Compressed Strings
我们考虑计算大小为$N$的字符串\str的q-gram配置文件的问题,该字符串由具有$n$产生式规则的上下文无关文法语法压缩。我们提出了一个算法,运行在$O(N-α)$预期的时间,并使用$O(n+q+\kq)$空间,其中$N-α\leq qn$是由算法解压缩的字符的确切数量和$\kq\leq N-α$是不同的q-gram在$\str$的数量。这同时匹配当前最佳已知时间界限并改进最佳已知空间界限。我们的空间界是渐近最优的,在这个意义上,任何算法存储的语法和q-gram配置文件必须使用$Ω(n+q+\kq)$空间。为了实现这一点,我们引入了q-gram图,它可以有效地捕获字符串的q-gram结构,并展示了如何从语法中构建它。
2014-06-06 cs.DS
Fingerprints in Compressed Strings
字符串的Karp-Rabin指纹是一种哈希值,由于其强大的属性,已被用于许多字符串算法。在本文中,我们将展示如何构建一个数据结构的字符串$S$的大小$N$压缩的上下文无关的语法大小$n$,回答指纹查询。也就是说,给定索引$i$和$j$,查询的答案是子字符串$S[i,j]$的指纹。我们提出了第一个O(n)空间的数据结构,回答指纹查询,而不解压缩任何字符。对于直线程序(SLP),我们得到$O(\log N)$查询时间,对于线性SLP(捕获LZ 78压缩及其变体的SLP衍生物),我们得到$O(\log \log N)$查询时间。因此,我们的数据结构具有相同的时间和空间的复杂性,在SLP中的随机访问。我们利用指纹数据结构,以解决最长的共同扩展问题在查询时间$O(\log N \log \lce)$和$O(\log \lce \log\log \lce + \log\log N)$的SLP和线性SLP,分别。这里,$\lce$表示LCE的长度。
2013-05-16 cs.DS
String Indexing with Compressed Patterns
针对客户端-服务器场景中以压缩形式提交的模式查询,提出一种线性空间数据结构,能直接高效处理Lempel-Ziv压缩模式,实现接近最优的查询时间,并开发了编码LZ77压缩后缀和分解trie等通用数据结构技术。
2024-02-14 cs.DS
On Extensions of Maximal Repeats in Compressed Strings
本文给出了压缩字符串中最大重复和最大对的几个子集的上界,并给出了最大对与游程Burrows-Wheeler变换之间的一个未知关系。这个关系被用来获得Burrows-Wheeler猜想的一个不同的证明,该猜想最近被Kempa和Kociumaka在“Resolution of the Burrows-Wheeler Transform Conjecture”中证明。本文证明了一个具有$z$ LZ ~(77)-因子而不具有$q$次幂的串$S$在游程长度Burrows-Wheeler变换中至多有$73(\log_2 |S|)(z+2)^2$游程,并且$S$的紧致有向无环字图中的弧数由$18q(1+\log_q |S|)(z+2)^2$自上而下有界.
2020-02-14 cs.DS
The CDAWG Index and Pattern Matching on Grammar-Compressed Strings
本研究提出将CDAWG用作语法压缩字符串的索引,实现了高效模式匹配,实验验证其运行时性能达当前最优,且空间复杂度符合已知最优渐近界。
2024-07-11 cs.DS
Compressed Representation of Dynamic Binary Relations with Applications
我们介绍了一个动态的数据结构的二进制关系的紧凑表示$\mathcal{R} \subseteq A \times B$。数据结构是k $^2$树的动态变体,k树是一种静态紧凑表示,它利用二元关系中的聚类来实现压缩。我们的结构可以有效地检查两个对象$(a,b) \in A \times B$是否相关,并列出与某些$a \in A$相关的$B$对象,反之亦然。此外,我们的结构允许在关系中插入和删除对$(a,b)$,以及修改基集$A$和$B$。我们测试我们的动态数据结构在不同的上下文中,包括Web图形和RDF数据库的表示。我们的实验表明,我们的动态数据结构实现了良好的压缩比和快速的查询时间,接近那些静态表示,同时也提供了有效的支持,在所表示的二进制关系的更新。
2017-07-10 cs.DS
Faster Dynamic Compressed d-ary Relations
$k^2$树是一种成功的二元关系的紧凑表示,表现出稀疏性和/或聚类属性。它可以扩展到$d$维,在这里它被称为$k^d$树。表示归结为一个长位向量。我们表明,解释的$k^d$树作为一个动态特里的莫顿代码的点,而不是作为一个动态表示的位向量在以前的工作中所做的,产生的操作时间是低于动态位向量的下限,并在实践中提供了改进的时间性能。
2019-11-20 cs.DS
Practical Parallel Block Tree Construction: First Results
Zuse Institute Berlin(柏林祖斯研究所);University of Münster(明斯特大学);TU Dortmund University(多特蒙德工业大学)
本文提出快速轻量的并行算法,实现块树的高效构建,同时显著降低内存需求,并引入数据并行的Karp-Rabin指纹计算算法。
2025-12-29 cs.DS
Compressed String Dictionaries
在许多情况下,以紧凑的形式存储一组字符串(字符串字典)的问题自然会出现。虽然传统上它代表了要处理的整个数据的一小部分(例如,用于自然语言处理或用于索引文本集合),在Web引擎、Web挖掘、RDF图、因特网路由、生物信息学和许多其它领域中的更近期的应用利用非常大的字符串字典,其大小是整个数据的重要部分。因此,新的方法来有效地压缩它们是必要的。在本文中,我们实验比较的时间和空间性能的一些现有的替代品,以及我们提出的新的。我们表明,空间减少高达20%的字符串的原始大小是可能的,同时支持快速字典搜索。
2011-01-28 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
Hierarchical Bitmap Indexing for Range and Membership Queries on Multidimensional Arrays
数据库系统中常用的传统索引技术在多维数组科学数据上的性能很差。位图索引广泛应用于商业数据库中,用于处理复杂的查询,因为它们有效地使用了按位操作和空间效率。然而,位图索引原生地应用于关系数据集或线性化数据集,这在装箱或压缩索引中尤其值得注意。我们提出了一种新的多维数组索引的方法,克服了维数引起的效率低下。分层索引方法是基于$n$ -维稀疏树进行维度划分,使用单个的有限数量的自适应分组索引进行属性划分。这种索引在涉及维度和属性的范围上执行得很好,因为它提前修剪了搜索空间,避免了读取整个索引数据,并且最多执行一次索引遍历。此外,索引很容易扩展到成员查询。该索引方法是在最先进的位图索引库Fastbit之上实现的。我们表明,层次化位图索引优于传统的位图索引建立在辅助属性的每个维度。此外,自适应装仓显著减少了仓的数量,因此减少了存储器需求。
2021-08-31 cs.DB cs.DS
Faster Compact Top-k Document Retrieval
解决top-k文档检索的最优索引[Navarro and Nekrich,SODA 12]对于长度为m的模式需要O(m + k)时间,但对于n个符号的集合,其空间至少为80 n字节。我们减少到1.5n到3 n字节,O(m+(k+log log n)log log n)的时间,在典型的文本。该索引比以前最好的压缩解决方案快25倍,实际上最多需要5%的空间(在某些情况下只需一半)。除了用压缩的数据结构代替传统的数据结构外,我们的主要思想是用频率阈值代替后缀树采样来实现压缩。
2012-11-22 cs.DS cs.IR
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
A Grammar-based Compressed Representation of 3D Trajectories
已经发表了许多关于地面或海上轨迹管理的研究,但飞行轨迹的压缩或索引通常较少探索。然而,空中交通管理是一个挑战,因为空域变得越来越拥挤,并且必须保存大量飞行数据汇集并将其用于各种目的。本文提出了3DGraCT,一种新的方法来表示这些飞行轨迹。它扩展了GraCT紧凑数据结构,以处理第三维(海拔),同时保留其空间/时间复杂度。3DGraCT将传统时空数据结构的空间需求提高了两个数量级,在所考虑的查询类型中具有竞争力,甚至在特定查询的比较中领先。
2018-12-28 cs.DS
Compressed Tree Canonization
直线(线性)上下文无关树(context-free tree,简写为CWT)文法已经被用来压缩表示有序树。众所周知,等价文法在多项式时间内是可判定的。本文推广了这一结果,并证明了以文法形式给出的无序树的同构在多项式时间内是可判定的。该证明构造了由输入文法表示的树的规范形式的压缩版本。通过在多项式时间内对压缩树进行“重根”,将结果推广到无根树。我们进一步证明了无根无序树的互模拟等价是可判定的多项式时间。对于具有双指数压缩比的非线性同构文法,我们证明了无序同构是PSPACE-困难的且在EXPTIME中。相同的复杂性界限示出互模拟等价。
2015-02-16 cs.DS cs.FL
Compressing and Indexing Aligned Readsets
在本文中,我们将展示如何使用一个或多个组装或部分组装的基因组作为其读集的压缩全文索引的基础。具体来说,我们通过将组装的基因组作为主干并在其比对的起始位置处将与其比对的读段嫁接到其上来构建标记树。接下来,我们计算得到的标签树的扩展Burrows-Wheeler变换(XBWT),并在其上构建压缩的全文索引。虽然这个索引偶尔会返回假阳性,但它通常比其他方法更紧凑。遵循对具有许多重复的数据集的既定实践,我们通过查看转换后的字符串中的运行次数来比较不同的全文索引。对于人类Chr 19读集,我们的初步实验表明,从EBWT中消除分隔符字符将运行次数减少了19%,从2.2亿减少到1.78亿,并且使用XBWT将其进一步减少了15%,减少到1.5亿。
2021-06-01 cs.DS q-bio.GN
HyperMinHash: MinHash in LogLog space
在这个扩展的摘要中,我们描述和分析了一个有损压缩MinHash从大小为$O(\log n)$的桶大小为$O(\log\log n)$的桶编码使用浮点符号。这个新的压缩草图,我们称之为HyperMinHash,因为我们构建了HyperLogLog支架,可以用作MinHash的直接替代品。与亚对数空间中的Jaccard索引指纹算法(如b位MinHash)不同,HyperMinHash保留了MinHash的流式更新,联合和基数估计的功能。对于Jaccard索引$ t $上的乘法近似误差$1+ ε$,给定随机预言,HyperMinHash需要$O\left(ε^{-2} \left( \log\log n + \log \frac{1}{ t ε} \right)\right)$空间。HyperMinHash允许使用64 KiB的内存估计$10^{19}$数量级的集合基数的Jaccard索引为0.01,相对误差约为10%; MinHash只能估计$10^{10}$的基数的Jaccard索引,具有相同的内存消耗。
2019-07-13 cs.DB cs.DS
Optimally Computing Compressed Indexing Arrays Based on the Compact Directed Acyclic Word Graph
本文首次研究了从 CDAWG 转换为适用于高度重复文本的多种压缩索引结构的计算复杂度,并证明能在 $O(e)$ 最坏时间与工作空间内最优计算这些结构。
2023-08-04 cs.DS cs.FL cs.IR
PaC-trees: Supporting Parallel and Compressed Purely-Functional Collections
许多现代程序设计语言正在向集合接口(如集合、映射和序列)的函数式风格转变。函数式接口提供了许多优点,包括安全的并行性和提供简单而轻量级的快照。然而,现有的高性能的功能接口,如PAM,这是基于平衡的纯功能树,招致大规模的数据分析,由于存储在一个单独的节点在一个树的每个元素的空间开销。本文介绍了PAC树,一个纯功能的数据结构支持集,地图和序列,提供了一个显着减少空间的功能接口,在现有的方法。PaC树是一种平衡的二叉搜索树,它使用数组来分块并压缩块。我们提供了新的技术,压缩和解压缩的块,产生实际的并行功能的算法,广泛的一组操作,如联合,交集,过滤器,减少,范围查询,这是理论上和实际上有效的PAC树。使用PaC-tree,我们设计了CPAM,这是一个C++库,实现了PAM的全部功能,同时为压缩提供了重要的额外功能。CPAM在集合、映射和序列的一组微基准测试中始终与PAM相匹配或优于PAM,同时使用大约四分之一的空间。在包括倒排索引、2D范围查询和1D区间查询的应用程序中,CPAM与PAM竞争或更快,同时使用的空间少2.1- 7.8倍。对于静态和流式图形处理,CPAM提供了1.6倍的批量更新速度,同时使用的空间比最先进的图形处理系统Aspen少1.3- 2.6倍。
2022-04-12 cs.DC cs.DS
Building Efficient and Compact Data Structures for Simplicial Complexes
单纯形树(ST)是最近引入的一种数据结构,它可以表示任意维的抽象单纯复形,并允许在单纯复形上有效地实现大范围的基本运算。在本文中,我们展示了如何最佳地压缩单纯形树,同时保留其功能。此外,我们提出了两个新的数据结构称为最大单纯形树(MxST)和单纯形数组列表(SAL)。我们分析了压缩单纯形树、最大单纯形树和各种设置下的单纯形数组表。
2016-11-05 cs.CG cs.DS