A practical index for approximate dictionary matching with few mismatches
近似字典匹配是一个经典的字符串匹配问题(检查查询字符串是否出现在字符串集合中),例如,拼写检查、在线目录、地理定位和网络搜索。我们提出了一个令人惊讶的简单的解决方案,称为分裂索引,这是基于狄利克雷原理,匹配的关键字与几个不匹配,并通过实验表明,它提供了有竞争力的时空权衡。我们在C++语言中的实现主要集中在数据压缩上,这有利于搜索速度(例如,通过缓存友好)。我们比较我们的解决方案与其他算法,我们表明,它执行更好的汉明距离。对于中端PC上几兆字节的字典大小,报告了一次不匹配的查询时间为1微秒。我们还表明,一个基本的压缩技术组成的$q$ -克取代可以显着减少索引大小(高达50%的输入文本大小的DNA),同时仍然保持查询时间相对较低。
2016-02-12 cs.DS
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
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
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
Pattern Masking for Dictionary Matching
本文研究字典匹配模式掩码(PMDM)问题,证明其NP完全性,提出多种精确算法与数据结构,建立其与最小并集问题的双向归约,得到紧近似比的近似算法,可用于敏感数据记录链接与查询词丢弃场景。
2024-03-08 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
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
Internal Closedness and von Neumann-Morgenstern Stability in Matching Theory: Structures and Complexity
设$G$是一个图,并假设我们对每个$v \in V(G)$给出了$v$的邻居的严格排序。如果不存在匹配$M,M' \in {\cal M}$使得$M$的边缘阻塞$M'$,则$G$的匹配${\cal M}$的集合被称为内部稳定的。稳定匹配集和冯·诺伊曼-摩根斯坦稳定匹配集是内部稳定匹配集的例子。在本文中,我们研究,在婚姻和室友的情况下,包括明智的最大内部稳定匹配集。我们称之为内部封闭的集合。通过建立在已知的和新开发的代数结构相关联的匹配集,我们调查的复杂性,决定一组匹配是内部封闭的或冯诺依曼-摩根斯坦稳定,并找到这些属性集。
2023-01-05 cs.CC cs.DM cs.DS
Internal Pattern Matching in Small Space and Applications
本文研究只读小空间设置下的内部模式匹配(IPM)问题,提出近最优的时空权衡数据结构,支持片段内查询,并应用于近似匹配、最长公共子串等场景。
2024-04-26 cs.DS
Internal Pattern Matching Queries in a Text and Applications
本研究提出用于文本内部模式匹配查询的最优数据结构,其查询时间与片段长度商成正比、空间与构造时间均为$O(n/ \log_σn)$,可应用于周期计算等经典字符串内部问题,并给出了字符串同步集的新构造方法。
2023-05-02 cs.DS
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