Dynamic graph connectivity with improved worst case update time and sublinear space
本文考虑了具有更快的最坏情况更新时间和次线性空间的全动态图算法。全动态图连通性问题如下:给定一个固定的n个节点集上的图,处理一个在线的边插入、边删除序列,以及形式为“节点a和b之间是否有路径?“2013年,第一个数据结构提出了最坏情况下的每次操作时间,这是n的多对数。在本文中,我们从时间上削减了log n的因子,每次更新的时间复杂度为O(log^4 n)。对于多项式长度的序列,我们的算法回答查询在O(log n/ \log \log n)的时间正确的高概率和使用O(n \log^2 n)字(大小为log n)。这与空间效率最高的图连通性流算法所使用的空间量相匹配。我们还表明,2-边连接可以保持使用O(n log^2 n)的字与摊销的更新时间为O(log^6 n)。
2015-09-22 cs.DS
On the Hopcroft's minimization algorithm
我们表明,Hopcroft的最小化算法适用于一元语言的绝对最坏情况下的时间复杂度达到只有德Bruijn字。Berstel和Carton之前的一篇论文给出了de Bruijn单词作为一种语言的例子,通过仔细选择分裂集并以FIFO模式处理这些集,需要O(n log n)步。我们通过证明Berstel/Carton示例实际上是一元语言中绝对最差情况的时间复杂度来改进前面的结果。我们还表明,后进先出的实现将不会达到相同的最坏的时间复杂度的情况下,一元语言。最后,我们证明了同样的结果也是有效的覆盖自动机和修改的Hopcroft算法,修改用于最小化的覆盖自动机。
2007-05-14 cs.DS
Algorithms in the Ultra-Wide Word Model
在当前的多核并行架构中,有效地使用并行计算资源来加速算法仍然是一个困难的挑战,易于编程在各种并行架构的最终成功中起着关键作用。在本文中,我们考虑一个超宽字处理器的形式并行的另一种观点。我们介绍了超宽字的体系结构和模型,字RAM模型的扩展,允许恒定的时间操作上千位并行。字-RAM模型所利用的字并行性不受并行编程的更困难方面的影响,即同步和并发。对于标准的字RAM算法,所获得的加速比是适度的,因为它们受到字大小的限制。我们认为,一个大类的字RAM算法可以实现在超宽字模型,获得加速比多线程计算,同时保持编程的顺序RAM模型的简单性。我们表明,这是通过描述实现超宽字算法的动态规划和字符串搜索的情况。此外,我们表明,超宽字模型可以用来实现一个非标准的内存架构,这使得回避重要的数据结构问题,如优先级队列和动态前缀总和的下限。虽然在多媒体处理器[Thorup 2003]的上下文中已经提到了类似的想法,但直到最近,我们提出的架构才变得可行,并且可以制定细节。
2014-12-07 cs.DC cs.DS
Compressing Dynamic Fully Indexable Dictionaries in Word-RAM
Tel Aviv University(特拉维夫大学)
本文研究在Word-RAM模型中构建接近信息论下界的空间动态全索引字典(FID)问题,提出一种基于融合树数据结构的改进方法,实现高效的秩和选择操作,并在特定参数下达到最优空间和时间复杂度。
2026-03-24 cs.DS
Subset Sum in Time $2^{n/2} / poly(n)$
精确指数算法领域的一个主要目标是给出(最坏情况下)$n$ -输入子集和问题的算法,该算法对于某个常数$c>0$在时间上运行$2^{(1/2 - c)n}$。本文给出了在标准字RAM或电路RAM模型中,对于常数$γ> 0.5023$,具有最坏情况运行时间$O(2^{n/2} \cdot n^{-γ})$的子集和算法。据我们所知,这是对Horowitz和Sahni提出的最坏情况子集和的经典“中间相遇”算法的第一次改进,该算法可以在这些内存模型中及时实现$O(2^{n/2})$。我们的算法结合了许多不同的技术,包括Howgrave-Graham和Joux引入的“表示法”,以及Austrin、Kaski、Koivisto和Nederlof以及Nederlof和Wegrzycki对该方法的后续修改,以及Baran、Demaine和Patrascu在3SUM的次二次算法上使用的“位打包”技术。
2023-01-29 cs.DS
Counting and Verifying Abelian Border Arrays of Binary Words
本文考虑二进制字的阿贝尔边界数组的计数与验证问题。我们证明了长度为\(n\)的有效阿贝尔边界数组的个数是\(2^{n-1}\)。我们还表明,验证一个给定的数组是否是一些二进制字的阿贝尔边界数组减少到计算一个特定的二进制字的阿贝尔边界数组。因此,假设字RAM模型,我们提出了一个\(O\left(\frac{n^2}{\log^2n}\right)\)时间算法的阿贝尔边界阵列验证问题。
2021-10-30 cs.DS
Towards Tight Lower Bounds for Range Reporting on the RAM
在正交范围报告问题中,我们要对$U \times U$网格上的一组具有整数坐标的$n$点进行预处理。目标是支持报告轴对齐查询矩形内的所有$k$点。这是数据库和计算几何中最基本的数据结构问题之一。尽管问题的重要性,其复杂性仍然没有得到解决的字RAM。在上界侧,存在三个最佳权衡:(1.)查询时间$O(\lg \lg n + k)$与$O(nlg^{\varepsilon}n)$字的空间为任何常数$\varepsilon>0$。(2.)查询时间$O((1 + k) \lg \lg n)$与空间的$O(n \lg \lg n)$字。(3.)查询时间$O((1+k)\lg^{\varepsilon} n)$与最佳$O(n)$字的空间。然而,唯一已知的查询时间下限是$Ω(\log \log n +k)$,即使是线性空间数据结构。所有这三个目前最好的上限权衡减少范围报告球继承问题。球继承是一个问题,基本上封装了所有以前的尝试,解决范围报告的字RAM。在本文中,我们取得了进展,通过证明细胞探测球继承的下限范围报告的上限和下限之间的差距。我们的下限是严格的大范围的参数,不包括任何进一步的进展范围报告使用球继承减少。
2014-11-03 cs.CC cs.DS
Radix Sorting With No Extra Space
在RAM模型中,使用基数排序可以在O(n)时间内对范围[1,n ^c]中的n个整数进行排序。一般来说,任何范围[1,U]内的整数都可以在O(n sqrt{loglog n})时间内排序。但是,这些算法使用O(n)字的额外内存。有这个必要吗?我们提出了一个简单的,稳定的,整数排序算法的大小为O(log n)的字,它的工作时间为O(n),只使用O(1)字的额外内存的RAM模型。这是整数排序在实践中最有用的情况。我们将这个结果推广到了密钥是只读的情况,这是一个有理论意义的结果。另一个有趣的问题是任意c的情况。在这里,我们提出了一个黑盒转换从任何RAM排序算法的排序算法,只使用O(1)的额外空间,并具有相同的运行时间。这就解决了就地排序的复杂性。
2007-06-27 cs.DS
Approximate pattern matching with k-mismatches in packed text
给定长度为$m$的字符串$P$和长度为$n$的字符串$T$,在长度为$σ$的字母表上,字符串匹配与$k$ -不匹配问题是找到$T$中所有子串的位置,这些子串与$P$的汉明距离最多为$k$。如果$T$一次只能读取一个字符,则在字长为$w$的字RAM模型中,最知名的界限是$O(n\sqrt{k\log k})$和$O(n + n\sqrt{k/w}\log k)$。在RAM模型(包括$AC^0$和字RAM)中,如果使用$\ceil{\log σ}$位对$T$的字符进行编码,则可以在恒定时间内读取多达$\floor{w / \log σ}$的字符。唯一的解决方案$k$ -不匹配的包装文本工程在$O((n \logσ/\log n)\ceil{m \log (k + \log n / \logσ) / w} + n^{\varepsilon})$的时间,任何$\varepsilon > 0$。我们提出了一个算法,运行在时间$O(\frac{n}{\floor{w/(m\logσ)}} (1 + \log \min(k,σ) \log m / \logσ))$的$AC^0$模型,如果$m=O(w / \logσ)$和$T$是包装。我们还描述了一个更简单的变体,运行在时间$O(\frac{n}{\floor{w/(m\logσ)}}\log \min(m, \log w / \logσ))$的…
2013-07-31 cs.DS
On the Hardness Hierarchy for the $O(n \sqrt{\log n})$ Complexity in the Word RAM
该研究在字RAM模型下,通过新问题String Nesting建立字典匹配与多类$O(n\sqrt{\log n})$复杂度问题的归约关联,揭示该难度层级的统一难度根源,还证明字符串问题字母表可高效约简为二进制。
2025-03-26 cs.DS
Faster construction of asymptotically good unit-cost error correcting codes in the RAM model
假设我们是在一个字RAM模型与字大小$w$,我们表明,我们可以在$o(w)$时间构造一个纠错码与一个恒定的相对正距离,映射到$Θ(w)$位数的$w$位数,并使应用程序的纠错码对任何给定的数$x\in[0,2^w-1]$需要恒定的时间。我们的结果改善了以前提出的纠错码具有相同的属性,其建设时间是指数在$w$。
2014-09-14 cs.DS cs.IT math.IT
Theoretical Model of Computation and Algorithms for FPGA-based Hardware Accelerators
虽然FPGA已被广泛用作工业计算中的硬件加速器,但还没有为基于FPGA的加速器的研究设计出计算的理论模型。在本文中,我们提出了一个理论模型的计算系统与传统的CPU和FPGA,基于字RAM。我们在这个模型中的几个算法是渐近快于他们的字RAM同行。具体地说,我们展示了一个算法的排序,评估的关联操作和一般技术,加快一些递归算法和一些动态程序。我们还得到了下界的运行时间需要解决一些问题。
2018-11-16 cs.DS
Memory-Adjustable Navigation Piles with Applications to Sorting and Convex Hulls
我们认为空间有界的计算随机存取机(RAM)的输入是一个只读的随机存取介质,输出是要产生一个只写顺序存取介质,和可用的工作空间允许随机读取和写入,但容量有限。输入的长度是$N$元素,输出的长度受计算限制,并且工作空间的容量是用于某个预定参数$S$的$O(S)$位。我们提出了一个国家的最先进的优先级队列-所谓的可调导航桩-这个有限的RAM模型。在一些合理的假设下,我们的优先级队列支持$\mathit{minimum}$和$\mathit{insert}$在$O(1)$最坏情况下的时间和$\mathit{extract}$在$O(N/S + \lg{} S)$最坏情况下的时间为任何$S \geq \lg{} N$。我们展示了如何使用这种数据结构来排序$N$元素和计算凸包的$N$点在二维欧几里德空间中的$O(N^2/S + N \lg{} S)$最坏情况下的时间为任何$S \geq \lg{} N$。根据已知的下界的任何分支程序的时空积寻找独特的元素,我们的排序和凸壳算法是最优的。在设计其他空间高效的算法时,可调节的导航桩已经证明是有用的,我们希望它能找到其他应用的方法。
2015-10-24 cs.DS
Deterministic Time-Space Tradeoffs for k-SUM
给定一组数字,$k$ -SUM问题要求$k$数字的子集总和为零。当数为整数时,$k$ -SUM的时间和空间复杂度一般在字-RAM模型中研究;当数为实数时,在实数-RAM模型中研究,空间用任意点内存中所保存的实数的数量来度量。我们提出了一个时间和空间有效的确定性自我减少的$k$ -SUM问题,这两个模型,并有许多有趣的后果。为了说明:* $3$ -SUM是确定性时间$O(n^2 \lg\lg(n)/\lg(n))$和空间$O\left(\sqrt{\frac{n \lg(n)}{\lg\lg(n)}}\right)$。一般来说,$3$-SUM的二次时间上的任何多项式时间改进都可以转换为具有相同时间改进但空间复杂度也较低的算法。* $3$ -SUM是确定性时间$O(n^2)$和空间$O(\sqrt n)$的一种去随机化算法. * 一种流行的推测认为3-SUM需要字RAM上的$n^{2-o(1)}$时间。我们表明,3-SUM猜想实际上是等价的(似乎较弱)猜想,每个$3$ -SUM的$O(n^{.51})$ -空间算法需要至少$n^{2-o(1)}$时间的字RAM。* 对于$k \ge 4$,$k$在确定性$O(n^{k - 2 + 2/k})$时间和$O(\sqrt{n})$空间中。
2016-05-24 cs.DS
Representing the suffix tree with the CDAWG
给定一个字符串$T$,已知其后缀树可以使用具有$e_T$弧的紧凑有向无环字图(CDAWG)来表示,其采用空间的全部$O(e_T+e_{\overline{T}})$字,其中${\overline{T}}$是$T$的逆,并且在最坏情况下支持$O(1)$和$O(\log{\log{n}})$之间的时间上的一些关键操作。这种表示对于高度重复的字符串特别有吸引力,例如相似基因组的集合或版本控制的文档,其中$e_T$在实践中以$T$的长度亚线性增长。在本文中,我们增加了这样的表示,在RAM模型中的$O(1)$和$O(\log{n})$之间的最坏情况下的时间支持一些额外的查询,而不会增加空间的复杂性渐近。我们的技术,基于一个沉重的路径分解的后缀树,也使后缀数组的表示,逆后缀数组,和$T$本身,这需要$O(e_T)$字的空间,并支持随机存取$O(\log{n})$的时间。此外,我们建立了一个连接之间的反向CDAWG的$T$和上下文无关的语法,产生$T$和只有$T$,这可能有独立的利益。
2017-05-24 cs.DS
Efficient Ranking of Lyndon Words and Decoding Lexicographically Minimal de Bruijn Sequence
本文研究 Lyndon 词排序及最小 de Bruijn 序列解码,利用代数方法将排序复杂度降至 O(n^2 log σ),并给出逆选择与首个多项式时间解码算法。
2023-12-11 cs.DS cs.FL
Online validation of the pi and pi' failure functions
设pi_w表示词w的Morris-Pratt算法的失效函数。本文研究了如下问题:给定一个整数数组A[1. n],是否存在任意字母表上的一个词w,使得对于所有i,A[i]=pi_w[i]?此外,字母表的最小基数是多少?在单位成本RAM模型中,我们给出了一个线性的实时的算法。我们的算法在最小字母表上返回一个单词w,使得pi_w = A,并且只使用o(n)个单词的内存。然后我们考虑函数pi'而不是pi,并给出了这种情况下的O(nlog n)在线算法。这是这个问题的第一个多项式算法的在线版本。
2009-04-13 cs.DS
Fast and Compact Regular Expression Matching
我们研究了字符串匹配中的4个问题,即正则表达式匹配,近似正则表达式匹配,字符串编辑距离,和子序列索引,在一个标准的字RAM模型的计算,允许在恒定的时间内操作的字符串大小的字。我们展示了如何提高空间和/或删除依赖于字母表的大小,为每个问题使用现有算法的改进制表技术或通过结合已知的算法在一个新的方式。
2008-09-22 cs.DS
The Hidden Binary Search Tree:A Balanced Rotation-Free Search Tree in the AVL RAM Model
在本文中,我们推广了“搜索树”(ST)的定义,使其他的参考值比以前插入的节点的关键。该想法建立在$n$节点AVL(或红-黑)需要确保$O(\log_2n)$最坏情况搜索时间的假设上,即,两个键之间的单个比较花费恒定时间。这意味着一旦确定了$n$,每个密钥的位大小就固定为$B=c\log_2 n$($c\geq1$),否则$O(1)$ -时间比较假设不成立。基于此,我们从间隔$0..2^B$的中点计算\emph{ideal}参考值。这个想法遵循“递归”,以确保沿着搜索路径的每个节点都提供了一个参考值,保证总的对数时间。由于搜索树属性仅在关键字与参考值进行比较时才起作用,并且这些值仅在搜索期间计算,因此我们将该数据结构称为隐藏二叉搜索树(HBST)。我们展示了保持HSBT高度$O(B)=O(\log_2n)$的基本函数。这个结果不需要输入的特殊顺序(如BST),也不需要自平衡过程(如AVL和Red-Black)。
2018-04-03 cs.DS
Backyard Cuckoo Hashing: Constant Worst-Case Operations with a Succinct Representation
动态字典的性能主要由其更新时间、查找时间和空间消耗来衡量。在更新时间和查找时间方面,存在以高概率保证最坏情况下的恒定时间操作的已知构造,并且在空间消耗方面,存在使用基本上最优空间的已知构造。然而,尽管对动态字典的第一次分析可以追溯到45年前(当Knuth在1963年分析线性探测时),但这些性能方面之间的权衡仍然没有完全理解。在本文中,我们解决了两个基本的开放问题:-我们构建了第一个动态字典,享有最好的两个世界:它存储n个元素使用(1+ 1)n内存字,并保证在最坏的情况下,高概率的恒定时间操作。具体地,对于任何Ω = Ω((\log \log n / \log n)^{1/2})并且对于多项式多运算的任何序列,在初始化阶段的随机性上具有高概率,所有运算在与Ω无关的恒定时间内执行。该构造是布谷鸟散列的两级变体,增加了一个处理大部分元素的“后院”,以及一个用于消除对重复的依赖的去摊销的完美散列方案。- 我们提出了上述构造的一个变体,它只使用(1+o(1))B个比特,其中B是表示从大小为u的论域中取的大小为n的集合的信息论下限,并保证在最坏情况下具有高概率的恒定时间操作,如前所述。这个问题甚至在摊销设置中也是公开的。我们构建的主要成分之一是基于置换的cuckoo hashing变体,它在处理相当小的宇宙时显着改善了cuckoo hashing的空间消耗。
2010-08-16 cs.DS
Algorithms for Computing Abelian Periods of Words
Constantinescu和Ilie(Bulletin EATCS 89,167- 170,2006)介绍了单词的\emph{Abelian period}的概念。在大小为$σ$的字母表上长度为$n$的字可以具有$Θ(n^{2})$不同的阿贝尔周期。蛮力算法使用$O(n \times σ)$空间计算单词在时间$O(n^2 \times σ)$上的所有阿贝尔周期。我们提出了一个离线算法的基础上的$\sel$功能具有相同的最坏情况下的理论复杂性的暴力,但在实践中优于它。然后,我们提出了在线算法,也使计算所有的阿贝尔周期的所有前缀的$w$。
2013-06-10 cs.DM cs.DS math.CO
Fully-Online Suffix Tree and Directed Acyclic Word Graph Construction for Multiple Texts
我们认为建设的后缀树和有向无环字图(DAWG)索引数据结构的集合$\mathcal{T}$的文本,其中一个新的符号可以被附加到任何文本在$\mathcal{T} = \{T_1, \ldots, T_K\}$,在任何时候。在动态索引多传感器数据中出现的这种完全在线的场景是长期解决的半在线文本索引问题的自然概括,其中文本$T_1, \ldots, T_{k}$在为每个$1 \leq k < K$处理下一个文本$T_{k+1}$之前被永久固定。我们提出了在$O(N \log σ)$时间和$O(N)$空间中为$\mathcal{T}$构建后缀树和DAWG的全在线算法,其中$N$是$\mathcal{T}$中字符串的总长度,而$σ$是它们的字母大小。后缀树叶子边和一些DAWG边的标准显式表示在我们的完全在线场景中必须放松,因为在最坏的情况下需要对这些边进行太多的更新。相反,我们提供了对更新后的后缀树叶子边缘标签和DAWG边缘的访问,这些边缘将通过辅助数据结构以每个添加的字符的$O(\log σ)$时间重定向。
2018-07-12 cs.DS
Stochastic Caching via Subset Entropy
Google Research(谷歌研究院);Rutgers University(罗格斯大学);Technion – Israel Institute of Technology(以色列理工学院);Duke University(杜克大学)
研究随机缓存问题,定义子集熵刻画竞争比,对LRU算法进行新分析,提出用输入熵测度参数化算法性能的原则,有望推动此类问题的细粒度算法性能理论发展。
2026-07-07 cs.DS
Answering Spatial Multiple-Set Intersection Queries Using 2-3 Cuckoo Hash-Filters
我们展示了如何在O(n(log w)/w + kt)的预期时间内回答空间多集交集查询,其中n是查询中涉及的t集的总大小,w是内存字中的位数,k是输出大小,c是任何固定常数。这提高了以前的解决方案的渐近性能,是基于一个有趣的数据结构,被称为2-3布谷鸟哈希过滤器。我们的结果适用于字RAM模型(或实际RAM模型),它允许恒定时间的位并行操作,如按位AND,OR,NOT和MSB(最高有效位1位),存在于现代CPU和GPU。我们的解决方案适用于空间数据集中的任何多集相交查询,可以减少到一维范围查询,如空间连接查询一维点或沿空间填充曲线存储的点集,这是在GIS应用程序中使用。
2017-08-29 cs.DS
Linear pattern matching on sparse suffix trees
将多个字符打包到一个计算机字中是压缩字符串表示并加速其处理的一种简单而自然的方法。利用这个想法,我们提出了一个压缩字符串的索引,基于{ \em稀疏后缀树} \cite{KU-96}适当定义的后缀链接。假设,在标准的单位成本RAM模型下,一个字最多可以存储$\log_σn$字符($σ$是字母表大小),我们的索引占用$O(n/\log_σn)$空间,即与压缩字符串本身相同的空间。所得到的模式匹配算法在时间$O(m+r^2+r\cdot occ)$中运行,其中$m$是模式的长度,$r$是存储在字中的字符的实际数目,而$occ$是模式出现的数目。
2011-03-14 cs.DS
Encoding 3SUM
我们考虑以下问题:给定三组实数,输出一个字RAM数据结构,从中我们可以有效地恢复任何三个数之和的符号,每组一个。这是类似于以前的工作,一些作者编码的顺序类型的一组有限的点。虽然以前的工作表明,它是可以实现轻微的次二次空间和对数查询时间,我们在这里表明,对于更简单的3SUM问题,可以实现一个编码,需要$\tilde{O}(N^{\frac 32})$空间的大小$N$的输入集,并允许恒定的时间查询字RAM。
2019-03-06 cs.CG cs.DS
Faster Approximate String Matching for Short Patterns
研究了经典的近似字符串匹配问题,即给定字符串$P$和$Q$以及一个错误阈值$k$,找出$Q$中与$P$的编辑距离至多为$k$的子串的所有结束位置.令$P$和$Q$分别具有长度$m$和$n$。在一个标准的单位成本字RAM的字大小$w \geq \log n$,我们提出了一种算法,使用时间$$ O(nk \cdot \min(\frac{\log^2 m}{\log n},\frac{\log^2 m\log w}{w}) + n) $$当$P$是短的,即$m = 2^{o(\sqrt{\log n})}$或$m = 2^{o(\sqrt{w/\log w})}$,这提高了以前最好的已知的时间界限的问题。该结果是使用基于制表和字级并行的Landau-Vishkin算法的新型实现的。
2011-03-17 cs.DS
Optimal Time and Space Construction of Suffix Arrays and LCP Arrays for Integer Alphabets
后缀数组和LCP数组是广泛用于各种字符串处理的最基本的数据结构之一。考虑了整数字母表上长度为$N$的只读字符串的两个问题:对于$1 \leq σ\leq N$,字符串包含$σ$不同字符,后缀数组的构造,以及后缀数组和LCP数组的同时构造.对于字RAM模型,我们提出的算法来解决这两个问题,在$O(N)$的时间,通过使用$O(1)$额外的字,这是最佳的时间和空间。额外的字意味着除了输入字符串和输出后缀数组和LCP数组的空间之外所需的空间。我们的贡献改进了以前最有效的算法,[Nong,TOIS 2013]使用$σ+O(1)$额外单词的$O(N)$时间和[Franceschini和Muthukrishnan,ICALP 2007]使用$O(1)$额外单词的$O(N \log N)$时间,用于构建后缀数组,并且它改进了以前在$O(N)$时间中运行的最有效的解决方案,该解决方案使用$σ+ O(1)$额外的字来构造后缀数组和LCP数组,[Nong,TOIS 2013]和[Manzini,SWAT 2004]的组合。
2019-07-13 cs.DS
Packed Compact Tries: A Fast and Efficient Data Structure for Online String Processing
在本文中,我们提出了一种新的数据结构称为压缩trie(压缩c-trie)存储一组$S$的$k$字符串的总长度$n$在$n \logσ+ O(k \log n)$位的空间,并支持快速模式匹配查询和更新,其中$σ$是一个字母表的大小。假设$α= \log_σn$字母被打包在标准字RAM模型上的单个机器字中,并且让$f(k,n)$表示我们选择的动态前导/后继数据结构的查询和更新时间,该动态前导/后继数据结构将来自全域$[1,n]$的$k$整数存储在空间的$O(k \log n)$位中。然后,给定一个长度为$m$的字符串,我们的压缩c-tries支持模式匹配查询和插入/删除操作在$O(\frac{m}α f(k,n))$最坏情况下的时间和在$O(\frac{m}α + f(k,n))$预期的时间。我们的实验表明,我们的压缩c-tries比标准的紧凑tries(a.k.a. Patricia Trees)在真实数据集上。作为一个应用程序,我们的包装c-trie树,我们表明,稀疏后缀树的长度$n$前缀码与$k$采样位置,如均匀间隔和字定界的稀疏后缀树,可以在线构建在$O((\frac{n}α + k) f(k,n))$最坏情况下的时间和$O(\frac{n}α + k f(k,n))$预期的时间与$n \log σ+ O(k \log n)$位的空间。当$k = O(\frac{n}α)$时,…
2016-02-01 cs.DS
Direct Linear Time Construction of Parameterized Suffix and LCP Arrays for Constant Alphabets
我们提出了第一个最坏情况下的线性时间算法,直接计算参数化的后缀和LCP数组恒定大小的字母。以前的算法要么需要二次时间,要么首先建立参数化的后缀树。更正式地说,对于静态字母表$Σ$和参数化字母表$Π$上的字符串,我们的算法在$O(nπ)$时间和空间的$O(n)$字中运行,其中$π$是字符串中$Π$的不同符号的数量。
2019-06-03 cs.DS
Minimax Trees in Linear Time
极大极小树类似于霍夫曼树,除了它不是最小化叶子深度的加权平均值,而是最小化任何叶子的权重加上它的深度的最大值。Golumbic(1976)引入了极大极小树,并给出了一个类似Huffman的$\Oh{n \log n}$时间算法来构建它们。Drmota和Szpankowski(2002)给出了另一个$\Oh{n \log n}$-时间算法,该算法在二分搜索的每一步都检查Kraft不等式。在本文中,我们展示了如何Drmota和Szpankowski的算法可以运行在一个字RAM(Ω(\log n))位字的线性时间。我们也讨论我们的解决方案如何适用于数据压缩,组测试和电路设计中的问题。
2009-01-28 cs.DS
Ranking and unranking bordered and unbordered words
本文首次提出k字母表上长度为n的有边界词与无边界词的排序与反排序算法,在单位代价RAM模型下分别达到O(kn³)和O(n⁴k log k)的时间复杂度,空间复杂度均为O(n)。
2023-08-28 cs.DM cs.DS
Order-Preserving Squares in Strings
字符串中的保序正方形是$uv$形式的片段,其中$u\neq v$和$u$与$v$序同构。我们表明,一个字符串$w$的长度$n$在一个字母表的大小$σ$包含$\mathcal{O}(σn)$顺序保持广场是不同的话。这改进了Kociumaka、Radoszewski、Rytter和Walegaly的$\mathcal{O}(σ^{2}n)$上限[TCS 2016]。此外,对于每一个$σ$和$n$,我们展示了一个字符串与$Ω(σn)$保序平方是不同的字,从而建立我们的上限是渐近紧。最后,我们设计了一个$\mathcal{O}(σn)$时间算法,输出所有的顺序保持广场出现在一个给定的字符串,是不同的话。根据我们的下限,这在最坏的情况下是最优的。
2023-02-01 cs.DS cs.FL
One-variable word equations in linear time
在本文中,我们考虑一个变量的字方程(和它的任意多个外观)。最近的再压缩技术,这是适用于一般的字方程,在这种情况下也是合适的。在一般情况下,它是不确定的,但在只有一个变量的情况下,它是确定的,其运行时间为O(n + #_X log n),其中#_X是变量在方程中出现的次数。这与之前由Doblavski和Plandowski提出的最佳算法相匹配。然后,使用一些算法以及更详细的时间分析,在RAM模型中将运行时间降低到O(n)。不幸的是,没有新的性质的解决方案。
2014-01-22 cs.DS cs.FL cs.LO
Non-redundant random generation algorithms for weighted context-free languages
我们解决了在上下文无关语言中长度为$n$的$k$字的非冗余随机生成。此外,我们希望避免预定义的单词集。我们研究了一个拒绝为基础的方法,其最坏情况下的时间复杂度呈指数增长与$k$的一些规格和限制的情况下,优惠券收集器。我们提出了两种算法,分别基于递归的方法和一个unranking的方法。我们如何仔细实现这些算法允许在$\mathcal{O}(k\cdot n\cdot \log{n})$算术运算的长度$n$的$k$字的非冗余生成,经过预计算的$Θ(n)$号码。因此,总体复杂性由$k$字的生成支配,并且非冗余性的代价可以忽略不计。
2012-11-01 cs.DM cs.DS cs.FL
RAMBO: Repeated And Merged BloOm Filter for Ultra-fast Multiple Set Membership Testing (MSMT) on Large-Scale Data
多集成员测试(MSMT)是各种搜索和查询应用程序中的一个众所周知的问题。给定K个不同集合的数据集和查询q,它的目标是找到包含查询的所有集合。简单地说,MSMT实例可以减少到K个成员资格测试实例,每个实例具有相同的q,从而使用简单的布隆过滤器阵列导致O(K)查询时间。我们提出了一种数据结构,称为RAMBO(重复和合并的布隆过滤器),实现O(\sqrt{K} log K)查询时间的期望与额外的最坏情况下的内存成本因素O(log K)超出了阵列的布隆过滤器。因此,RAMBO是一种非常快速和准确的数据结构。除了非常并行,支持流输入的廉价更新,零假阴性率和低假阳性率之外,RAMBO击败了最先进的基因组索引方法:COBS(紧凑位切片签名索引),序列Bloom树(基于Bloofi的实现),HowDeSBT,SSBT和文档索引方法,如BitFunnel。所提出的数据结构只是一个成员资格测试实用程序(在我们的情况下是布隆过滤器)的count-min草图类型的安排。它索引k-gram并提供基于近似成员测试的搜索实用程序。算法的简单性和并行架构使我们能够在100个节点的集群上仅用14小时就索引170 TB的基因组数据集,而竞争方法需要数周。
2020-07-17 cs.DS cs.IR
Beating Trivial Time for Tricky Triangle Tasks
MIT(麻省理工学院)
针对文献中几个经典的三角形检测问题,通过随机算法、电路复杂性和通信复杂性技术,首次在Word RAM模型上改进了平凡枚举算法,并扩展到四环检测问题。
2026-06-29 cs.CC cs.DS
Fast evaluation of union-intersection expressions
我们展示了如何在线性空间数据结构中表示集合,使得涉及集合的并集和交集的表达式可以以最坏情况下有效的方式计算。这个问题在例如信息检索和数据库系统中有应用。我们主要考虑RAM模型的计算,和机器字集,但也陈述我们的结果在I/O模型。在一个字大小为$w$的RAM上,我们的结果的一个特殊情况是,$m$(预处理)集合的交集,包含$n$元素的总数,可以在预期的时间计算$O(n (\log w)^2 / w + km)$,其中$k$是在交集中的元素的数量。如果两项中的第一项占优势,则这比合并排序列表的标准解决方案快$w^{1-o(1)}$倍。我们显示了一个细胞探针的时间下限$Ω(n/(w m \log m)+ (1-\tfrac{\log k}{w}) k)$,这意味着我们的上限几乎是最佳的小$m$。我们的算法使用了一种新的组合的近似集表示和字级并行。
2007-08-23 cs.DB cs.DS cs.IR
Fast Packed String Matching for Short Patterns
在文本中搜索模式的所有出现是计算机科学中的一个基本问题,在许多其他领域,如自然语言处理,信息检索和计算生物学的应用。在过去的二十年里,一个总的趋势已经出现,试图利用字RAM模型的力量,以加快经典的字符串匹配算法的性能。在这个模型中,算法对长度为w的字进行运算,对字符块进行分组,对字进行算术和逻辑运算需要一个时间单位。在本文中,我们使用专门的字长压缩字符串匹配指令,基于英特尔流SIMD扩展(SSE)技术,设计非常快速的字符串匹配算法的情况下,短模式。从我们的实验结果证明,尽管他们的二次最坏情况下的时间复杂度,新提出的算法成为明显的赢家,平均短模式,在文献中已知的最有效的算法相比。
2012-09-28 cs.DS cs.IR cs.PF
Quantum Query Algorithms for the Constructive Diagonal Ramsey Theorem
California State University, Fresno(弗雷斯诺加州州立大学)
针对构造性对角拉姆齐问题,提出量子查询算法,以次线性查询复杂度找到并验证齐次集合,并给出量子下界及随机图上的多项式加速。
2026-09-09 cs.DS quant-ph
Parallel RAM from Cyclic Circuits
本文提出用允许环路的循环电路模拟PRAM,将电路规模膨胀从多项式降至多对数级别,证明强大并行机器在理论上可行且硬件可实现。
2023-10-27 cs.CC cs.DS
Online Ad Allocation with Predictions
Boston University(波士顿大学)
本文针对展示广告和广义分配问题,提出一种结合机器学习预测的在线分配算法,在利用良好预测提升性能的同时对差预测保持鲁棒,实验表明其始终优于无预测的最坏情况算法。
2023-05-24 cs.DS cs.LG