Efficient Dynamic Dictionary Matching with DAWGs and AC-automata
字典匹配是在文本$T$上的集合$D$(称为字典)中找到所有模式的任务。Aho-Corasick-automaton(AC-automaton)是一种数据结构,它使我们能够在$O(d\logσ)$预处理时间和$O(n\logσ+occ)$匹配时间内解决字典匹配问题,其中$d$是$D$中模式的总长度,$n$是文本的长度,$σ$是字母表大小,而$occ$是文本中所有模式出现的总次数。动态字典匹配是一种变体,其中模式可以动态地插入$D$中和从$D$中删除。如果只允许插入,这个问题被称为半动态字典匹配。在本文中,我们提出了两个有效的算法。对于长度为$m$的模式,我们的第一个算法在半动态设置下支持$O(m\logσ+\log d/\log\log d)$时间的插入和$O(n\logσ+occ)$时间的模式匹配,在动态设置下通过一些修改支持$O(σm+\log d/\log\log d)$时间的插入和删除以及$O(n(\log d/\log\log d+\logσ)+occ(\log d/\log\log d))$时间的模式匹配。该算法基于有向无环词图。我们的第二个算法,这是基于AC-自动机,支持插入在$O(m\log σ+u_f+u_o)$时间的半动态设置,并支持插入和删除在$O(σm+u_f+u_o)$时间的动态设置,其中$u_f$和$u_o$分别表示在故障功能和输出功能需要更新的状态的数量…
2019-02-21 cs.DS
Streaming dictionary matching with mismatches
在$k$ -mismatch问题中,我们给定一个长度为$n$的模式和一个文本,并且必须找到模式和文本之间的汉明距离最多为$k$的所有位置。最近的一系列突破为这个问题带来了一种超高效的流算法,每个字母只需要$O(k \log \frac{n}{k})$空间和$O(\log \frac{n}{k} (\sqrt{k \log k} + \log^3 n))$时间[Clifford,Kociumaka,Porat,SODA 2019]。在这项工作中,我们考虑一个严格困难的问题称为字典匹配与$k$不匹配。在这个问题中,我们给出了一个$d$模式的字典,其中每个模式的长度最多为$n$,并且必须找到距离其中一个模式在汉明距离$k$内的文本的所有子串。我们开发了一个流算法,这个问题与$O(k d \log^k d \mathrm{polylog}(n))$空间和$O(k \log^{k} d \mathrm{polylog}(n) + |\mathrm{occ}|)$时间的文本的位置。该算法是随机的,并以高概率输出正确答案。在下限侧,我们表明,任何流式算法的字典匹配与$k$不匹配需要$Ω(k d)$位的空间。
2021-06-20 cs.DS
Counting Distinct Patterns in Internal Dictionary Matching
我们认为,为了能够有效地回答查询$CountDistinct(i,j)$,也就是说,给定$i$和$j$从$\mathcal{D}$中返回的模式的数量发生在片段$T[i \mathinner{.\,.} j]$的文本$T$的长度$n$和字典$\mathcal{D}$预处理的问题。字典是内部的,因为$\mathcal{D}$中的每个模式都是作为$T$的一个片段给出的。这样,字典占用的空间与模式的数量成正比,而不是与模式的总长度成正比,模式的总长度可以是$Θ(n\cdot d)$,$d=|\mathcal{D}|$。最近在一项引入内部字典匹配的工作中提出了一种$\tilde{\mathcal{O}}(n+d)$大小的数据结构,该结构大约在$\tilde{\mathcal{O}}(1)$时间内回答$CountDistinct(i,j)$查询$\mathcal{O}(\log n)$ [ISAAC 2019]。在这里,我们提出了一个$\tilde{\mathcal{O}}(n+d)$大小的数据结构,回答$CountDistinct(i,j)$查询$2$ -大约在$\tilde{\mathcal{O}}(1)$的时间。使用范围查询,对于任何$m$,我们给出了一个$\tilde{\mathcal{O}}(\min(nd/m,n^2/m^2)+d)$大小的数据结构,在$\tilde{\mathca…
2020-05-12 cs.DS
Succinct Dictionary Matching With No Slowdown
字典匹配问题是字符串匹配中的一个经典问题:给定一个由d个字符串组成的集合S,其总长度为n个字符,在一个大小为sigma的字母表上(不一定是常数),建立一个数据结构,使得我们可以在任何文本T中匹配属于S的所有字符串。这个问题的经典解决方案是Aho-Corasick自动机,它使用占用O(mlog m)位空间的数据结构在O(|T| + occ)时间内找到文本T中所有occ出现,其中m <= n + 1是自动机中的状态数。在本文中,我们表明,Aho-Corasick自动机可以表示在短短的m(log sigma + O(1))+ O(d log(n/d))位的空间,同时仍然保持在O(|T| + occ)时间回答查询的能力。据我们所知,目前最快的简洁的数据结构的字典匹配问题使用的空间O(n log sigma),而在O(|T| log log n + occ)时间回答查询。在本文中,我们还展示了如何将空间占用减少到m(H 0 + O(1))+ O(d log(n/d)),其中H 0是出现在集合S的trie表示中的字符的经验熵,假设对于任何常数0 <n < 1,sigma < m^n。查询时间保持不变。
2010-02-14 cs.DS
Internal Dictionary Matching
我们介绍的数据结构回答查询的出现模式从一个给定的字典$\mathcal{D}$在片段的一个给定的字符串$T$的长度$n$。字典是内部的,因为$\mathcal{D}$中的每个模式都是作为$T$的一个片段给出的。这样,$\mathcal{D}$占用的空间与模式$d=|\mathcal{D}|$的数量成比例,而不是它们的总长度,后者可能是$Θ(n\cdot d)$。特别是,我们考虑以下类型的查询:报告和计数的所有出现的模式从$\mathcal{D}$在一个片段$T[i..j]$和报告不同的模式从$\mathcal{D}$发生在$T[i..j]$。我们将展示如何构建,在$\mathcal{O}((n+d) \log^{\mathcal{O}(1)} n)$的时间,回答这些查询的时间$\mathcal{O}(\log^{\mathcal{O}(1)} n+|output|)$的数据结构。计数模式的情况更加复杂,需要将局部一致性解析与正交范围搜索相结合。另一方面,报告不同的模式,使用字符串中最大重复的结构。最后,我们提供了紧-次多项式因子-上界和下界的情况下,一个动态字典。
2019-09-25 cs.DS
Optimal Rank and Select Queries on Dictionary-Compressed Text
我们研究的问题,支持查询的字符串$S$的长度$n$内的一个字符串吸引子$S$的大小$γ$有界的空间。最近的工作表明,在$O\left (γ \rm{polylog}\ n \right)$空间内,$S$上的随机访问可以在最佳$O(\log(n/γ)/\log\log n)$时间内得到支持。在本文中,我们将这一结果扩展到\emph{rank}和\emph{select}查询,并提供与我们的上界匹配的字母表的多对数大小的下限。我们的解决方案给出了一个空间-时间权衡的形式,这是更普遍的比以前已知的语法,并提高了现有的界限LZ 77压缩文本的$\log\log n$时间因子在\emph{select}查询。我们还提供了匹配的下限和上限为\emph{partial sum}和\emph{predecessor}查询吸引子有界空间内,并扩展我们的下限,包括导航字典压缩树表示。
2018-12-21 cs.DS
Compressed Dictionary Matching on Run-Length Encoded Strings
针对游程编码压缩字符串的字典匹配问题,提出基于压缩Aho-Corasick自动机与新型字符串索引的算法,实现接近最优的时间与线性压缩空间复杂度,为该问题首个非平凡解决方案。
2025-09-03 cs.DS
Improved Approximate String Matching and Regular Expression Matching on Ziv-Lempel Compressed Texts
我们研究了近似字符串匹配和正则表达式匹配问题的情况下,待搜索的文本被压缩的Ziv-Lempel自适应字典压缩方案。我们提出了一个时间-空间的权衡,导致算法提高了以前已知的复杂性这两个问题。特别是,我们显着改善的空间界限,这在实际应用中很可能是一个瓶颈。
2007-05-03 cs.DS
Pattern Masking for Dictionary Matching
本文研究字典匹配模式掩码(PMDM)问题,证明其NP完全性,提出多种精确算法与数据结构,建立其与最小并集问题的双向归约,得到紧近似比的近似算法,可用于敏感数据记录链接与查询词丢弃场景。
2024-03-08 cs.DS
Nearly Optimal Internal Dictionary Matching
The Chinese University of Hong Kong, Shenzhen(香港中文大学(深圳));Massachusetts Institute of Technology(麻省理工学院);Feicheng Hailiang Foreign Language School(费城海亮外国语学校);Tsinghua University(清华大学)
提出一种名为基本子串结构(BASS)的O(n)大小数据结构,用于内部字典匹配问题,在近乎最优的查询和预处理时间内处理所有查询类型,包括CountDistinct、Count和ReportDistinct查询的加速。
2026-07-02 cs.DS
Online matching games in bipartite expanders: applications to bitprobes and dictionaries with non-adaptive probing
National Research University Higher School of Economics, Faculty of Computer Science(高等经济大学计算机学院);Department of Computer and Information Sciences, Towson University(汤森大学计算机与信息科学系)
本文利用二分展开图上的在线匹配博弈策略,构造了非自适应探测的静态和动态字典及动态1比特探针方案,实现了更小的存储开销和多项式时间操作。
2026-09-15 cs.DS
Quantum Algorithm for the Multiple String Matching Problem
本文针对多字符串匹配问题提出一种量子算法,查询复杂度为 O(n+√(mL log n)+m log n),时间复杂度为 O^*(n+√(mL)),达到量子下界(仅差对数因子),可视为 Aho-Corasick 算法的量子类比,在长单词字典场景下优势显著。
2024-11-22 cs.DS quant-ph
The complexity of the Multiple Pattern Matching Problem for random strings
我们推广了一个多字符串模式匹配算法,最近提出的Fredriksson和Grabowski [J. Discr. Alg. 7,2009],以处理大小为$s$的字母表上的任意字典。如果$r_m$是字典中长度为$m$的单词的数量,而$ϕ(r) = \max_m \ln(s\, m\, r_m)/m$,对于某个常数$κ_{{}_\textrm{UB}}$,该算法读取的字符串字符的复杂度最多为$κ_{{}_\textrm{UB}}\, ϕ(r)$。另一方面,我们推广了姚[SIAM J. COMPUT. 8,1979],对于具有单一模式的问题,处理任意字典,并确定它至少为$κ_{{}_\textrm{LB}}\, ϕ(r)$。这证明了算法的最优性,改进和纠正了以前的主张。
2017-06-30 cs.DS
Engineering Hypergraph $b$-Matching Algorithms
针对超图加权$b$-匹配问题,提出精确数据约简、贪心初始解构造与迭代局部搜索算法,实验验证了方法的实用性与初始解的竞争力。
2024-08-13 cs.DS
Quantum Sparse Recovery and Quantum Orthogonal Matching Pursuit
Munich Center for Quantum Science and Technology (MCQST)(慕尼黑量子科学与技术中心)
针对非正交过完备字典中的量子稀疏恢复问题,提出量子正交匹配追踪算法,在多项式时间内恢复K-稀疏状态,并应用于稀疏量子层析成像,实现查询复杂度加速。
2025-10-08 cs.DS cs.LG quant-ph
Dynamic Dictionary with Subconstant Wasted Bits per Key
本文研究冗余比特为亚线性时的动态字典,提出两种数据结构,使所有操作时间达到 O(log^* n + log(n/R)),匹配已知下界。
2023-10-31 cs.DS
Parameterized Pattern Matching -- Succinctly
我们考虑$Parameterized$ $Pattern$ $Matching$问题,其中模式$P$匹配文本$\mathsf{T}$中的某个位置,当且仅当模式的字母符号与文本的字母符号之间存在一一对应关系。更具体地,假设文本$\mathsf{T}$包含来自静态字母表$Σ_s$和参数化字母表$Σ_p$的$n$字符,其中$Σ_s \cap Σ_p = \varnothing$和$|Σ_s \cup Σ_p|=σ$。模式$P$匹配$\mathsf{T}$的子串$S$,当静态字符完全匹配时,并且存在一个一对一函数,将$S$中的参数化字符重命名为$P$中的参数化字符。以前的索引解决方案[Baker,STOC 1993],称为$Parameterized$ $Suffix$ $Tree$,需要$Θ(n\log n)$位空间,并且可以在$\mathcal{O}(|P|\log σ+ occ)$时间内找到$P$的所有$occ$出现。在本文中,我们提出了第一个简洁的索引,占用$n \log σ+ \mathcal{O}(n)$位和回答查询在$\mathcal{O}((|P|+ occ\cdot \log n) \logσ\log \log σ)$时间。我们还提出了一个紧凑的索引,占用$\mathcal{O}(n\logσ)$位和回答查询在$\mathcal{O}(|P|\log σ+ occ\cdo…
2016-04-05 cs.DS