A Fast String Matching Algorithm Based on Lowlight Characters in the Pattern
提出了一种新的字符串匹配算法,该算法不从模式的左端或右端进行匹配,而是从一个特定的位置进行匹配。与Knuth-Morris-Pratt算法和Boyer-Moore算法相比,新算法在选择比较起始位置时更加灵活。该选项确实节省了成本。
2014-01-28 cs.DS
Faster Deterministic Algorithms for Packing, Matching and $t$-Dominating Set Problems
本文设计了求解$m$ -集$k$ -填充、$m$ -维$k$ -匹配和$t$ -支配集问题的三个确定性算法,分别为$O^*(5.44^{mk})$、$O^*(5.44^{(m-1)k})$和$O^*(5.44^{t})$.虽然最近有显着的进展,这些问题的随机解决方案,我们的界限作出了很好的改进,最有名的界限确定性解决方案,这些问题。
2013-06-15 cs.DS
The Exact String Matching Problem: a Comprehensive Experimental Evaluation
本文讨论了在线精确字符串匹配问题,即在文本t中找到给定模式p的所有出现。它是计算机科学中广泛研究的问题,主要是由于其直接应用于文本、图像和信号处理、语音分析和识别、数据压缩、信息检索、计算生物学和化学等不同领域。自1970年以来,人们提出了80多种字符串匹配算法,其中50%以上是在最近十年内提出的。在本说明中,我们提出了一个全面的列表,所有字符串匹配算法,并提出实验结果,以比较它们从实用的角度来看。从我们的实验评估结果表明,算法的性能是相当不同的字母大小和模式长度。
2010-12-12 cs.DS
Modelling the Eulerian Path Problem using a String Matching Framework
著名的欧拉路径问题可以在多项式时间内求解(更确切地说,存在一个线性时间算法)。在本文中,我们使用字符串匹配的框架模型的问题,然后开始这个问题的一个变种,称为(2,1)-STRING-MATCH问题(这实际上是一个推广的欧拉路径问题)的算法研究。然后,我们给出了(2,1)-串匹配问题的一个多项式时间算法,这是本文最重要的结果。具体来说,我们得到了Omega(n)的下界和O(n^{2})的上界。
2005-08-21 cs.DS
Vectorized Character Counting for Faster Pattern Matching
许多现代序列比对工具使用称为FM索引的空间有效的数据结构来实现快速字符串匹配。这种数据结构的简洁性给算法设计者带来了独特的挑战。在本文中,我们探讨的机会,并行化的精确和不精确的匹配,并提出了一个有效的SIMD解决方案的OCC部分的算法。我们的实现在一个过程中计算不精确匹配算法步骤所需的所有八个Occ值。我们展示了算法的性能在多核基因组比对,并讨论了内存预取的影响。
2019-09-03 cs.DS
Approximate String Matching using a Bidirectional Index
我们研究了利用双向文本索引的近似模式匹配策略,扩展和概括了Lam等人的思想。我们引入了一种称为搜索策略的形式主义来指定这种类型的搜索策略,然后开发了搜索策略效率的概率度量,证明了高效搜索方案的几个组合结果,最后,提供实验计算支持我们的策略的优越性。
2015-09-06 cs.DS
Faster Exponential Algorithm for Permutation Pattern Matching
排列模式匹配问题询问,给定$n$元素和$π$上的两个排列$σ$,$σ$是否允许具有与$π$相同的相对顺序的子序列(或者,在计数版本中,有多少这样的顺序)。这个自然问题被Bose,Buss和Lubiw [IPL 1998]证明是NP完全的,因此我们应该寻求精确的指数时间解。Berendsohn、Kozma和Marx [IPEC 2019]提出的迄今为止渐进最快的此类解决方案在$\mathcal{O}(1.6181^n)$时间内有效。我们设计了一个简单而快速的$\mathcal{O}(1.415^{n})$时间算法的检测和计数版本。我们还证明,这是最佳的算法之间的一定的自然类。
2021-08-25 cs.DS
Indexes for Jumbled Pattern Matching in Strings, Trees and Graphs
我们考虑如何索引字符串,树和图的混乱模式匹配时,我们被要求返回一个匹配,如果存在。例如,我们展示了如何给定一棵包含两种颜色的树,我们可以构建一个二次空间索引,通过它我们可以在时间上找到与匹配大小成比例的匹配。我们还展示了如果我们满足于近似匹配,我们只需要线性空间。
2013-04-19 cs.DS
Fast Algorithms for Exact String Matching
给定长度为$n$的模式字符串$P$和长度为$m$的查询字符串$T$,其中$P$和$T$的字符是从大小为$Δ$的字母表中提取的,{ \em精确字符串匹配}问题包括在$T$中查找所有出现的$P$。对于这个问题,我们提出的算法,在$O(nΔ^2)$时间预处理$P$,基本上确定$sparse(P)$,一个很少出现的子串$P$,然后用它来找到$P$在$T$有效的出现。我们的算法需要$O(m)$的最坏情况下的搜索时间,和$O(m/min(|sparse(P)|, Δ))$的预期搜索时间,其中$|sparse(P)|$至少是$δ$(即$P$中不同字符的数量),并且对于大多数模式字符串,它被观察到是$Ω(n^{1/2})$。
2015-09-30 cs.DS
Improved Algorithms for Approximate String Matching (Extended Abstract)
近似字符串匹配问题在计算生物学、文本处理和模式识别等领域都有重要的应用。已经做出了很大的努力来设计有效的算法来解决问题的几个变体,包括两个字符串的比较,字符串中的近似模式识别或两个字符串共享的最长公共子序列的计算。我们设计了一个输出敏感的算法,在时间O((s-1))内解决长度分别为n和m的两个字符串之间的编辑距离问题。|N-m| min(m,n,s)+m+n)和线性空间,其中s是两个字符串之间的编辑距离。这个最坏情况下的时间界限设置算法的二次因子独立于最长字符串长度,并改善了这个问题的现有理论界限。我们的算法的实现也擅长在实践中,特别是在两个字符串比较的长度显着不同的情况。我们算法的源代码可在http://www.cs.miami.edu/dimitris/edit_distance上获得
2008-07-28 cs.DS
A Novel Algorithm for String Matching with Mismatches
本文提出了一种在线的字符串模式匹配算法。我们研究的问题通常被称为不匹配的字符串匹配,其目标是报告当模式与文本中的每个位置对齐时匹配的字符数。我们提出的新方法是基于模式和文本中单个字符的频率。该算法以简单数组的形式占用最少的空间,从而减少了维护后缀树或自动机等复杂数据结构的开销。
2016-03-10 cs.DS
On string matching with k mismatches
在本文中,我们考虑几个变种的模式匹配问题。特别地,我们研究了以下问题:1)具有k个失配的模式匹配; 2)失配的近似计数;以及3)具有失配的模式匹配。使用的距离度量是汉明距离。我们提出了一些新的算法和技术来解决这些问题。提供了确定性算法和随机算法。这些问题的变体,其中可能有通配符的文本或模式或两者都被认为是。这些算法的实验评估。源代码可在http://www.engr.uconn.edu/~man09004/kmis.zip上获得。
2013-07-04 cs.DS
A fast implementation of the good-suffix array for the Boyer-Moore string matching algorithm
本文针对Boyer-Moore算法中好后缀表计算存在冗余操作的问题,基于对模式的精细分析提出一种快速实现,实验证明其两个版本在几乎所有测试场景中均为最快。
2024-02-26 cs.DS
Efficient pattern matching in degenerate strings with the Burrows-Wheeler transform
字母表$Σ$上的退化或不确定字符串是$Σ$的非空子集的序列。给定一个长度为$n$的退化串$t$,本文提出了一种基于Burrows-Wheeler变换的新方法,用于在长度为$Σ$、运行于$O(mn)$时间的$t$中搜索长度为$m$的退化模式.此外,它是一种混合模式匹配技术,适用于常规和退化字符串。一个退化字符串是保守的,如果它的非实心字母的数量是由一个固定的正常数$q$的上限,在这种情况下,我们表明,搜索的复杂性时间是$O(qm^2)$。实验结果表明,我们的方法在实践中表现良好。
2017-08-03 cs.DS
Searching 2D-Strings for Matching Frames
该研究提出二维字符串匹配帧概念,给出最大周长匹配帧的Õ(n²·⁵)精确算法与近线性(1-ε)近似算法,同时引入新技术并发现新结构性质。
2024-04-18 cs.DS
Optimizing Exact String Matching via Statistical Anchoring
本文提出通过统计锚定优化精确字符串匹配,利用语言统计信息提升模式匹配效率。
2025-12-21 cs.DS
A Fast Heuristic for Exact String Matching
给定由$δ$不同字符组成的长度为$n$的模式字符串$P$和长度为$m$的查询字符串$T$,其中$P$和$T$的字符是从大小为$Δ$的字母表$Σ$中提取的,{ \em精确字符串匹配}问题包括在$T$中找到所有出现的$P$。针对这个问题,我们提出了一个随机启发式算法,在$O(nδ)$时间预处理$P$,以确定$sparse(P)$,一个很少出现的子串$P$,然后使用它来找到所有出现的$P$在$T$有效。该试探法的预期搜索时间为$O( \frac{m}{min(|sparse(P)|, Δ)})$,其中$|sparse(P)|$至少为$δ$。我们还表明,对于一个模式字符串$P$的字符是随机均匀地从一个字母表的大小$Δ$,$E[|sparse(P)|]$是$Ω(Δlog (\frac{2Δ}{2Δ-δ}))$。
2015-12-11 cs.DS
Technology Beats Algorithms (in Exact String Matching)
在过去的40年里,已经开发了120多种算法来进行精确的字符串匹配。我们通过实验表明,\naive{}算法利用SIMD指令的现代CPU(与符号比较,在一个特殊的顺序)是最快的一个模式的长度高达约50个符号和非常好的较长的模式和小的字母。该算法分别应用SSE 2或AVX2指令并行比较16或32个字符。此外,它使用循环剥离,以进一步加快搜索阶段。我们尝试了几种顺序来比较模式符号,并且它们在文本中的概率的增加顺序是最好的。
2016-12-05 cs.DS
Dictionary matching in a stream
我们考虑流中的字典匹配问题。给定一组字符串(称为字典)和一个字符流(每次到达一个字符),任务是在我们的字典中的某个字符串出现在流中时报告。我们提出了一个随机算法,每个到达字符需要O(log log(k + m))的时间,并使用O(k log m)字的空间,其中k是字典中的字符串的数量和m是字典中最长的字符串的长度。
2015-04-23 cs.DS
Approximate String Matching: Theory and Applications (La Recherche Approchée de Motifs : Théorie et Applications)
近似字符串匹配是计算机科学中经常出现的基本问题。这个问题可以定义如下:设$D=\{x_1,x_2,\ldots x_d\}$是一组定义在字母表$Σ$上的$d$单词,设$q$是一个也定义在$Σ$上的查询,设$k$是一个正整数。我们希望在$D$上构建一个能够回答以下查询的数据结构:在$D$中找到所有与查询词$q$最多不同的词,并带有$k$错误。在这篇论文中,我们研究了字典、文本和索引中的近似字符串匹配方法,提出了有效解决这个问题的实用方法。我们从三个互补的方向来探讨这个问题:1)字典中的近似字符串匹配。针对这个问题,我们提出了两种解决方案,第一种是使用哈希表来实现$k \geq 2$,第二种是使用Trie和反向Trie,并且限制为(k = 1)。这两个解决方案都适用于文本中的近似字符串匹配,而不会损失性能。2)\textit{autocompletion}的近似字符串匹配,即查找给定前缀中可能包含错误的所有后缀。我们给出了一个新的解决方案,更好地在实践中比所有以前提出的解决方案。3)生物序列的比对问题可以被解释为一个近似的字符串匹配问题。我们提出了一个解决方案的同行和多序列比对。\medskip所有获得的结果表明,我们的算法,给最好的性能集的实际数据(基准从现实世界)。我们所有的方法都是以库的形式提出的,它们都在网上发布。
2017-01-30 cs.DS
Space-Efficient String Indexing for Wildcard Pattern Matching
在本文中,我们描述了压缩索引,支持模式匹配查询字符串与通配符。对于固定大小的字母表,我们的数据结构使用$O(n\log^{\varepsilon}n)$位用于任何$\varepsilon>0$,并报告$O(m+σ^g \cdotμ(n) + \mathrm{occ})$时间内查询字符串的所有$\mathrm{occ}$出现,其中$μ(n)=o(\log\log\log n)$,$σ$是字母表大小,$m$是字母表符号的数量,$g$是查询字符串中查询符号的数量。我们还提出了一个$O(n)$位索引与$O((m+σ^g+\mathrm{occ})\log^{\varepsilon}n)$查询时间和$O(n(\log\log n)^2)$位索引与$O((m+σ^g+\mathrm{occ})\log\log n)$查询时间.这些是这个问题的第一个非平凡的数据结构,需要$o(n\log n)$位空间。
2014-01-03 cs.DS
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
Linear Algorithm for Conservative Degenerate Pattern Matching
在字母表A上的退化符号x * 是A的非空子集,并且这样的符号的序列是退化串。一个简并弦被称为保守弦,如果它的非实心符号的数目的上界是一个固定的正常数k。我们考虑保守退化字符串的匹配问题,并提出了第一个线性时间算法,可以找到,对于给定的退化字符串P * 和T * 的总长度n包含k个非固体符号的总数,P * 在T * 中的出现在O(nk)时间。
2015-06-15 cs.DS
Fast Average-Case Pattern Matching on Weighted Sequences
大小为$σ$的字母表上的加权字符串是这样的字符串,在该字符串中,一组字母可以以各自的出现概率出现在每个位置处。加权字符串,也称为位置权重矩阵或不确定序列,在许多情况下自然出现。在这篇文章中,我们研究了加权字符串匹配问题,特别关注平均情况分析。给定一个加权模式字符串$x$的长度$m$,一个文本字符串$y$的长度$n>m$,和一个累积的权重阈值$1/z$,定义为最小概率的因素出现在一个加权字符串,我们提出了一个算法,需要平均情况下的搜索时间$o(n)$的模式匹配的重量比$\frac{z}{m} < \min\{\frac{1}{\log z},\frac{\log σ}{\log z (\log m + \log \log σ)}\}$。对于长度为$m$的模式串$x$,长度为$n>m$的加权文本串$y$,以及累积权重阈值$1/z$,我们提出了一种算法,对于相同的权重比,需要平均情况下的搜索时间$o(σn)$。这些结果的重要性在于,这些算法的工作在平均情况下的次线性搜索时间的文本的大小,并在线性预处理的时间和空间的模式的大小,为这些比率的事实。
2015-12-08 cs.DS
String Matching with Variable Length Gaps
我们考虑字符串匹配与可变长度的差距。给定一个字符串$T$和一个由可变长度间隔(指定范围内的任意长度字符串)分隔的字符串组成的模式$P$,问题是找到$T$中与$P$匹配的子串的所有结束位置。这个问题是计算生物学应用中的一个基本问题。令$m$和$n$分别为$P$和$T$的长度,令$k$为$P$中的字符串数。本文提出了一种新的时间$O(n\log k + m +α)$和空间$O(m + A)$的计算方法,其中$A$是$P$中间隔长度的下界之和,$α$是$P$中字符串在$T$中出现的总次数.与以前的结果相比,该界基本上同时实现了已知的最佳时间复杂度和空间复杂度。因此,我们的算法获得了几乎所有$m$、$n$、$k$、$A$和$α$组合的最佳已知边界。我们的算法是令人惊讶的简单和直接实现。我们还提出了算法,发现和编码的位置,所有字符串在$P$的模式的每一个匹配。
2011-10-13 cs.DS
Order-Preserving Pattern Matching Indeterminate Strings
给定一个不确定的字符串模式$p$和一个不确定的字符串文本$t$,具有字符不确定性的保序模式匹配($μ$ OPPM)问题是寻找$t$中满足$p$定义的可能排序之一的所有子串.当文本和模式都是确定的字符串时,我们面临的问题是精确保序模式匹配(OPPM)问题,它在时间序列分析中有着广泛的应用。尽管具有相关性,但确切的OPPM问题存在两个主要缺点:1)无法处理文本中的不确定性,从而无法分析有噪时间序列; 2)无法处理模式中的不确定性,从而强制要求严格满足所有模式位置之间的顺序。本文首次提出了一种多项式算法来解决在模式或文本上观察到不确定性时的$μ$ OPPM问题。给定两个字符串的长度为$m$和$O(r)$不确定字符串的位置,我们证明了$μ$ OPPM问题可以解决的$O(mr\lg r)$时间,当一个字符串是不确定的和$r\in\mathbb{N}^+$。当模式和文本都存在不确定性时,给出了可满足性问题的映射,并给出了一般问题复杂性的结果,证明了$μ$ OPPM问题一般是NP-难的.
2019-05-07 cs.DS
Efficient Pattern Matching in Elastic-Degenerate Strings
本文将缺弦的概念推广到弹性退化弦。弹性简并字符串可以被看作是由弹性简并符号交织的k > 1个种子(子字符串/子模式)的有序集合,使得每个弹性简并符号对应于两个或更多个可变长度字符串的集合。本文提出了一种求解(实心)模式和弹性退化文本的模式匹配问题的算法,该算法的时间复杂度为O(N+αγnm),其中m为给定模式的长度,n和N分别为给定弹性退化文本的长度和总大小,m为给定模式的长度,n为给定模式的长度,N为给定模式的长度,m为给定模式的长度,n为给定模式的长度。α和γ是小常数,分别表示文本的任何弹性退化符号中的串的最大数目和弹性退化符号中的最大数目,在文本中出现的任何模式所跨越的退化符号。对于文本中恒定数量的弹性退化符号,该算法所使用的空间在输入的大小上是线性的; α和γ在实际应用中非常小,因此该算法在实践中有望非常有效地工作。
2016-10-25 cs.DS
The CDAWG Index and Pattern Matching on Grammar-Compressed Strings
本研究提出将CDAWG用作语法压缩字符串的索引,实现了高效模式匹配,实验验证其运行时性能达当前最优,且空间复杂度符合已知最优渐近界。
2024-07-11 cs.DS
Efficient Online String Matching through Linked Weak Factors
本文提出基于哈希连接相邻弱因子的新算法Hash Chain,解决在线字符串匹配问题,尽管复杂度为O(nm),但实践中表现次线性且性能优于现有最有效算法。
2023-10-24 cs.DS
Improved Circular Dictionary Matching
本文研究任意字典的循环字典匹配问题,通过扩展后缀数组并提出LCP数组采样机制,在压缩空间内实现了高效的查询时间。
2025-04-04 cs.DS
Fast and linear-time string matching algorithms based on the distances of $q$-gram occurrences
给定一个长度为$n$的文本$T$和一个长度为$m$的模式$P$,字符串匹配问题是一个在$T$中找到所有$P$的任务。在这项研究中,我们提出了一种算法,解决了这个问题,在$O((n + m)q)$时间考虑到两个相邻的出现之间的距离相同的$q$ -gram包含在$P$。我们还提出了一个理论上的改进,它运行在$O(n + m)$的时间,虽然它不一定是更快的实践。我们比较了我们和现有算法在各种真实和人工数据集上的执行时间,例如英文文本,基因组序列和斐波那契字符串。实验结果表明,我们的算法是一样快的国家的最先进的算法在许多情况下,特别是当一个模式经常出现在一个文本。
2020-04-13 cs.DS
Faster STR-IC-LCS computation via RLE
约束LCS问题要求在一定的约束条件下找到两个输入字符串$A$和$B$的最长公共子序列。STR-IC-LCS问题是约束LCS问题的变体,其中解必须包括给定的约束字符串$C$作为子串。给定两个长度分别为$M$和$N$的字符串$A$和$B$,以及一个长度至多为$\min\{M, N\}$的约束字符串$C$,Deorowicz(\em Inf. Process. Lett.},11:423--426,2012),以$O(MN)$时间运行。在这项工作中,我们提出了一个$O(mN + nM)$的时间解决方案的STR-IC-LCS问题,其中$m$和$n$表示的运行长度编码的$A$和$B$的大小,分别。由于$m \leq M$和$n \leq N$总是成立,我们的算法总是与Deorowicz的算法一样快,并且当输入字符串通过RLE可压缩时更快。
2017-03-15 cs.DS
Faster Longest Common Extension Queries in Strings over General Alphabets
最长公共扩展查询(通常称为最长公共前缀查询)构成多字符串算法中的基本构建块,例如计算运行和近似模式匹配。我们表明,序列的$q$ LCE查询的大小$n$的字符串在一般有序的字母表可以实现在$O(q \log \log n+n\log^*n)$的时间,使只有$O(q+n)$符号比较。因此,可以在进行$O(n)$符号比较的$O(n \log \log n)$时间内计算字符串中在一般有序字母表上的所有游程。我们的结果改进了Kosolobov(信息处理Letters,2016)的解决方案,他给出了一个具有$O(n \log^{2/3} n)$运行时间的算法,并证明了$O(n)$时间是可能的。我们在解决这个猜想方面取得了重大进展。当时间增加到$O(q\log n + n\log^*n)$时,我们的技术扩展到一般无序字母的情况。主要工具是差异覆盖和不交集数据结构。
2016-04-07 cs.DS
Order Preserving Matching
我们引入了一个新的字符串匹配问题,称为保序匹配的数字字符串中的模式匹配的文本,如果文本包含一个子串的相对顺序与模式相一致。保序匹配适用于许多场景,如股票价格分析和音乐旋律匹配,其中应该匹配顺序关系而不是字符串本身。解决保序匹配与数字字符串的顺序关系的表示有关。我们定义了前缀表示和最近邻表示,这导致有效的算法保序匹配。我们提出了有效的算法为单一和多模式的情况下。对于单模式的情况,我们给出了一个O(nlog m)时间的算法,并进一步优化,以获得O(n + mlog m)时间。对于多模式的情况下,我们给出了一个O(n log m)的时间算法。
2013-02-17 cs.DS
Position Heaps for Cartesian-tree Matching on Strings and Tries
Cartesian树模式匹配是最近引入的模式匹配方案,其检测具有与查询模式相似的结构的连续数据流中的片段。形式上,笛卡尔树模式匹配寻找文本串$S$的所有子串$S'$,使得$S'$的笛卡尔树与查询模式$P$的笛卡尔树一致。在本文中,我们提出了一个新的索引结构,这个问题称为笛卡尔树位置堆(CPH)。令$n$为输入文本字符串$S$的长度,$m$为查询模式$P$的长度,$σ$为字母表大小。我们发现,CPH的$S$,表示$\mathsf{CPH}(S)$,支持模式匹配查询在$O(m (σ+ \log (\min\{h, m\})) + occ)$时间与$O(n)$空间,其中$h$是高度的CPH和$occ$是模式出现的次数。我们展示了如何在$O(n)$工作空间的$O(n \log σ)$时间内构建$\mathsf{CPH}(S)$。此外,我们将问题扩展到文本是标记树(即Trie)的情况。给定一个trie $T$与$N$节点,我们表明,CPH的$T$,表示$\mathsf{CPH}(T)$,支持模式匹配查询的trie在$O(m (σ^2 + \log (\min\{h, m\})) + occ)$时间与$O(N σ)$空间。我们还展示了一个运行在$O(N σ)$时间和$O(N σ)$工作空间中的$\mathsf{CPH}(T)$的构造算法。
2021-08-14 cs.DS
A Simple Reduction for Full-Permuted Pattern Matching Problems on Multi-Track Strings
在本文中,我们研究了字符串模式匹配的一个变种,它处理元组的字符串称为\textit{multi-track strings}。多轨字符串是字符串(或\textit{single-track strings})的概括,主要用于与搜索多个基因组和音乐信息检索相关的问题。具有长度$n$和轨道计数$N$的多轨道串$\mathcal{T} = (t_1, t_2, t_3, \ldots , t_N)$是具有从大小为$σ_U$的公共字母表中提取的字符的长度为$n$的$N$串的多集合。给定两个多轨道串$\mathcal{T} = (t_1, t_2, t_3, \ldots , t_N)$和$ \mathcal{P} = (p_1, p_2, p_3, \ldots , p_N)$,其长度为$n$,轨道计数为$N$,如果对于所有$i \in \{1,2,3,\ldots N \}$的$t_{r_i} = p_i$和$(1, 2, 3,\ldots,N)$的某个置换$(r_1, r_2, r_3\ldots,r_N)$,则在$\mathcal{P}$和$\mathcal{T}$之间存在一个\textit{full-permuted-match},我们将该$\mathcal{P}\asymp\mathcal{T}$表示为$\mathcal{P}\asymp\mathcal{T}$。最近提出了解决多…
2019-11-28 cs.DS
Cartesian Tree Subsequence Matching
Park等人[TCS 2020]观察到两个(数值)字符串之间的相似性可以通过笛卡尔树来捕获:字符串的笛卡尔树是一棵二叉树,通过选择字符串的最小值作为树根递归构造。如果两个等长的字符串的笛卡尔树是同构的,则称它们为笛卡尔树匹配。Park等人[TCS 2020]介绍了以下笛卡尔树子串匹配(CTMStr)问题:给定长度为$n$的文本字符串$T$和长度为$m$的模式字符串,找到文本字符串$T$的每个连续子串$S = T[i..j]$,使得$S$和$P$笛卡尔树匹配。他们展示了如何在$\tilde{O}(n+m)$时间内解决这个问题。本文介绍了笛卡尔树子序列匹配(CTMSeq)问题,该问题要求找到$T$的每个最小子串$S = T[i..j]$,使得$S$包含一个子序列$S'$,该子序列是笛卡尔树与$P$匹配的.我们证明了CTMSeq问题可以有效地解决,在$O(m n p(n))$时间,其中$p(n)$表示动态前导查询的更新/查询时间。通过使用合适的动态前驱数据结构,我们获得了CTMSeq的$O(mn \log \log n)$ -时间和$O(n \log m)$ -空间解。这将CTMSeq与密切相关的保序子序列匹配(OPMSeq)进行了对比,Bose等人[IPL 1998]证明OPMSeq是NP难的。
2022-04-15 cs.DS
Faster Algorithms for Semi-Matching Problems
我们考虑的问题,发现\textit{semi-matching}在二分图,这也是广泛研究的各种名称在调度文献。我们给更快的算法加权和未加权的情况下。对于加权情形,我们利用问题的几何结构给出了一个$O(nm\log n)$时间算法,其中$n$是顶点数,$m$是边数.这改进了Horn [Operations Research 1973]和Bruno、Coffman和Sethi [Communications of the ACM 1974]的经典$O(n^3)$算法。对于未加权的情况,界限可以进一步改进。我们给出了一个简单的分治算法,运行在$O(\sqrt{n}m\log n)$时间,改进了两个以前的$O(nm)$时间算法亚伯拉罕[硕士论文,格拉斯哥大学2003年]和哈维,Ladner,Lovász和塔米尔[WADS 2003年和算法杂志2006年]。我们还扩展了该算法,以在$O(\sqrt{n}m\log n)$时间内解决\textit{Balance Edge Cover}问题,改进了Harada、Ono、Sadakane和Yamashita [ISAAC 2008]先前的$O(nm)$时间算法。
2012-06-13 cs.DS
Suffix sorting via matching statistics
本研究提出一种基于匹配统计的后缀排序新算法,通过构建匹配统计压缩表示加速后缀比较,在高度相似字符串集合上构建广义后缀数组的速度可媲美甚至超过现有最快方法,还提出了可独立应用的匹配统计快速计算启发式方法。
2022-07-03 cs.DS
Fast and Compact Regular Expression Matching
我们研究了字符串匹配中的4个问题,即正则表达式匹配,近似正则表达式匹配,字符串编辑距离,和子序列索引,在一个标准的字RAM模型的计算,允许在恒定的时间内操作的字符串大小的字。我们展示了如何提高空间和/或删除依赖于字母表的大小,为每个问题使用现有算法的改进制表技术或通过结合已知的算法在一个新的方式。
2008-09-22 cs.DS
A Faster Implementation of Online Run-Length Burrows-Wheeler Transform
行程长度编码Burrows-Wheeler变换字符串的行程长度BWT(RLBWT)是处理高度重复字符串的一个强大工具。提出了一种新的运行压缩空间下的在线RLBWT算法,该算法在$O(n\lg r)$时间和$O(r\lg n)$空间中运行,其中$n$是到目前为止接收到的输入串$S$的长度,$r$是反向$S$在BWT中的运行次数.我们改进了最先进的在线RLBWT算法的经验建设时间。采用动态链表来维护全序,通过动态链表中标签的直接比较,可以代替动态小波树中对游程压缩串的秩查询。各种基准测试的实验结果表明,我们的算法的效率,特别是对高度重复的字符串。
2017-10-15 cs.DS
An invertible transform for efficient string matching in labeled digraphs
设$G = (V, E)$是一个有向图,其中每个顶点都是未标记的,每个边都用某个字母表$Ω$中的一个字符标记,并且任何两条具有相同头和相同尾的边都有不同的标记。幂集构造给出了$G$到弱连通有向图$G' = (V', E')$的变换,使得能够解决在$G$中是否存在遍历匹配任意长的查询字符串$q$的判定问题,该遍历在时间上在$|q|$中是线性的,并且独立于$|E|$和$|V|$ .我们发现$G$是唯一确定的$G'$时,对于每个$v_\ell \in V$,有一些不同的字符串$s_\ell$的$Ω$,使$v_\ell$是一个封闭的散步在$G$匹配$s_\ell$的起源,并没有其他散步在$G$匹配$s_\ell$,除非它开始和结束于$v_\ell$。然后,我们利用这个可逆性条件,以战略性地改变任何$G$,使其变换$G'$,使检索所有$t$终端顶点的散步在未改变的$G$匹配$O(|q| + t \log |V|)$ $O(|q| + t \log |V|)$时间。最后,我们提出了两个定义性质的一类变换,包括Burrows-Wheeler变换和变换在这里。
2021-04-12 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
Online Pattern Matching for String Edit Distance with Moves
带移动的编辑距离(EDM)是一种字符串到字符串的距离度量,除了将一个字符串转换为另一个字符串的顺序编辑操作之外,还包括子字符串移动。虽然优化EDM是棘手的,它有许多应用,特别是在错误检测。ESP是一种有效的语法分析算法,它保证了同一个子串在不同的外观之间的语法差异有一个上界。ESP可以用于计算近似EDM,作为解析树中节点标签构建的特征向量之间的L1距离。然而,ESP不适用于其中整个文本事先未知的流文本数据。我们提出了一个在线ESP(OESP),使在线模式匹配EDM。OESP为流媒体文本构建解析树,在线计算特征向量间的L1距离。对于EDM的空间有效的计算,OESP直接编码的解析树到一个简洁的表示,通过利用动态简洁树的最新结果背后的想法。我们实验测试OESP的能力,以在线方式计算EDM基准数据集上,我们显示OESP的效率。
2014-08-26 cs.DS
Faster Lightweight Lempel-Ziv Parsing
我们提出了一种算法,该算法计算$O(n(\logσ+ \log\log n))$时间和$n\logσ+ εn$空间位中的Lempel-Ziv分解,其中$ε$是常数有理参数,$n$是输入字符串的长度,而$σ$是字母表大小。空间边界中的$n\logσ$位用于被视为只读的输入字符串本身。
2015-06-08 cs.DS
Faster fully compressed pattern matching by recompression
本文研究了一个完全压缩的模式匹配问题。压缩由直线程序(SLP)表示,即一种上下文无关文法,只生成一个字符串;该术语完全意味着模式和文本都以压缩形式给出。使用最近开发的局部再压缩技术来处理这个问题:重构SLP,使得模式和文本的子串以相同的方式在两个SLP中编码。为此,SLP被本地解压缩,然后以统一的方式重新压缩。该技术产生用于压缩模式匹配的O((n+m)log M)算法,假设M适合O(1)机器字,其中n(m)是文本(模式)的压缩表示的大小,而M是解压缩模式的大小。如果只有m+n适合O(1)机器字,则运行时间增加到O((n+m)log M log(n+m))。算法复杂度为O(n^2m)。
2013-06-25 cs.DS
Algorithms for Jumbled Pattern Matching in Strings
字符串s的Parikh向量p(s)被定义为字符的多重性向量。Parikh向量q出现在s中,如果s有一个子串t,其中p(t)=q。我们提出了两个新的算法搜索查询q在文本s。一个解决了决策问题的二进制文本在恒定的时间,使用线性大小索引的文本。第二个算法,对于一般的有限字母表,找到所有出现的一个给定的Parikh向量q,并具有次线性预期的时间复杂度,我们提出了两个变种,都使用线性大小索引的文本。
2011-02-08 cs.DS
Parameterized Algorithms for String Matching to DAGs: Funnels and Beyond
字符串与标号图匹配(SMLG)问题要求在标号图$G = (V, E)$中找到拼写与输入字符串$S \in Σ^m$匹配的所有路径。SMLG可以在二次$O(m|E|)$时间内求解[Amir等人,JALG],其通过最近以SETH为条件的下限被证明是最佳的[Equi et al.,ICALP 2019]。下界状态,没有强次二次时间算法存在,即使仅限于有向无环图(DAG)。在这项工作中,我们提出了第一个参数化的算法SMLG的DAG。我们的参数捕获的拓扑结构的$G$。我们所有的结果都来自Knuth-Morris-Pratt算法的推广[Park and Kim,CPM 1995],该算法经过优化,可以在与前缀不可比匹配数量成比例的时间内工作。为了获得$G$的拓扑结构中的参数化,我们首先研究一类特殊的DAG,称为漏斗[Millani等人,JCO]并将它们推广到$k$ -漏斗和类$ST_k$。我们提出了一些新的特性和算法的贡献漏斗和他们的推广。
2023-02-02 cs.DS
Efficient Online String Matching Based on Characters Distance Text Sampling
在文本中搜索模式的所有出现是计算机科学中的一个基本问题,在许多其他领域,如自然语言处理,信息检索和计算生物学的应用。采样字符串匹配是最近推出的一种有效的方法,一方面,为了克服令人望而却步的空间要求的索引建设,并大大减少搜索时间的在线解决方案,另一方面。在本文中,我们提出了一种新的算法的采样字符串匹配问题的基础上,字符距离采样方法。其主要思想是在验证原始文本之前,对给定主元字符的连续出现之间的距离进行采样,然后在线搜索采样数据以查找采样模式的任何出现。从理论上证明了在适当的条件下,该方案可以同时获得线性最坏时间复杂度和最优平均时间复杂度.从实践的角度来看,我们的解决方案在实践中表现出次线性行为,并将在线搜索速度提高了9倍,使用有限的额外空间,其数量从文本大小的11%到2.8%,与以前的解决方案相比,增益高达50%。
2019-08-16 cs.DS
Binary Jumbled Pattern Matching on Trees and Tree-Like Structures
二进制混杂模式匹配要求预处理二进制字符串$S$,以便回答查询$(i,j)$,该查询要求长度为$i$并且恰好具有$j$ 1位的$S$的子串。这个问题自然地推广到顶点标记树和图,通过替换“子串”与“连通子图”。在本文中,我们给出了一个$O(n^2 / \log^2 n)$的时间解决方案的树,目前最好的边界匹配(更简单的问题)字符串。我们还给出了一个$\Oh{g^{2 / 3} n^{4 / 3}/(\log n)^{4/3}}$时间的解决方案,压缩字符串的大小为$g$的语法。当字符串在许多流行的压缩方案下是可压缩的时,该解决方案改进了已知的界限。最后,我们证明了该问题是固定参数的图的树宽$w$,从而改进了以前最好的$n^{O(w)}$算法[ICALP'07]。
2014-06-28 cs.DS
Efficient Parameterized Pattern Matching in Sublinear Space
本文针对参数化模式匹配问题,分析参数化字符串的周期性,将 Galil-Seiferas 精确匹配算法推广至参数化匹配,实现亚线性额外空间的高效算法。
2023-06-19 cs.DS
Reversible Programming: A Case Study of Two String-Matching Algorithms
字符串匹配是算法中的一个基本问题。本研究探讨两个可逆的字符串匹配算法的发展和建设:一个天真的字符串匹配算法和拉宾-卡普算法。该算法用于引入可逆计算的概念,从基本的可逆编程技术开始,以更先进的考虑多项式哈希更新函数的注入拉宾-卡普算法。其结果是两个干净的输入保持可逆算法,不需要额外的空间,并具有相同的渐近时间复杂度作为他们的经典不可逆原件。这项研究的目的是有助于身体的可逆算法和可逆规划的纪律。
2022-11-22 cs.DS cs.PL
Efficient Pattern Matching on Binary Strings
二进制字符串匹配问题在于找到文本中所有出现的模式,其中两个字符串都建立在二进制字母表上。这是计算机科学中一个有趣的问题,因为二进制数据在电信和计算机网络应用中无处不在。此外,该问题也在图像处理领域和压缩文本的模式匹配中找到应用。最近,它已被证明,经典的精确字符串匹配算法的适应不是很有效的二进制数据。在本文中,我们提出了两个有效的算法的问题,适应完全避免任何参考位允许处理模式和文本字节的字节。实验结果表明,新算法在大多数情况下优于现有的解决方案。
2008-10-15 cs.DS cs.IR
Bridging Classical and Quantum String Matching: A Computational Reformulation of Bit-Parallelism
本文提出将位并行字符串匹配算法转换到量子框架,并通过嵌入Grover搜索实现二次加速,以Shift-And和Shift-Add为例验证了该方法的简洁性与适应性。
2025-03-07 cs.DS cs.IR