Full-text and Keyword Indexes for String Searching
在这项工作中,我们提出了一个文献综述全文和关键字索引以及我们的贡献(主要是面向实践的)。第一个贡献是FM膨胀索引,它是著名的FM索引(一种压缩的全文索引)的修改,以空间换取速度。在我们的方法中,计数表和出现列表除了存储单个字符外,还存储有关所选$q$ -gram的信息。描述了两种变体,即一种使用具有$O(m + \log m \log \log n)$平均查询时间的$O(n \log^2 n)$空间位,另一种使用线性空间和$O(m \log \log n)$平均查询时间,其中$n$是输入文本长度,$m$是模式长度。我们的实验表明,一个显着的加速可以通过操作$q$ -克(虽然在成本非常高的空间要求,因此得名“臃肿”)。在关键字索引方面,我们提出了分裂索引,它可以有效地解决$k$ -不匹配问题,特别是对于1个错误。我们在C++语言中的实现主要集中在数据压缩上,这有利于搜索速度(通过缓存友好)。我们比较我们的解决方案与其他算法,我们表明,它是更快的汉明距离时,使用。对于中端PC上的几兆字节自然语言词典,报告了一个不匹配的查询时间为1微秒。一个小的贡献包括字符串草图,旨在加快近似字符串比较的额外空间($O(1)$每字符串)的成本。它们可以在关键字索引的上下文中使用,以便通过使用快速逐位操作而不是显式验证来推断两个字符串至少相差$k$不匹配。
2015-08-26 cs.DS
Efficient Online String Matching Based on Characters Distance Text Sampling
在文本中搜索模式的所有出现是计算机科学中的一个基本问题,在许多其他领域,如自然语言处理,信息检索和计算生物学的应用。采样字符串匹配是最近推出的一种有效的方法,一方面,为了克服令人望而却步的空间要求的索引建设,并大大减少搜索时间的在线解决方案,另一方面。在本文中,我们提出了一种新的算法的采样字符串匹配问题的基础上,字符距离采样方法。其主要思想是在验证原始文本之前,对给定主元字符的连续出现之间的距离进行采样,然后在线搜索采样数据以查找采样模式的任何出现。从理论上证明了在适当的条件下,该方案可以同时获得线性最坏时间复杂度和最优平均时间复杂度.从实践的角度来看,我们的解决方案在实践中表现出次线性行为,并将在线搜索速度提高了9倍,使用有限的额外空间,其数量从文本大小的11%到2.8%,与以前的解决方案相比,增益高达50%。
2019-08-16 cs.DS
Text Searching Allowing for Non-Overlapping Adjacent Unbalanced Translocations
在本文中,我们研究的\emph{approximate string matching problem}时,允许的编辑操作是\emph{non-overlapping unbalanced translocations of adjacent factors}。当文本的两个相邻子字符串交换时,会发生这种编辑操作,从而导致修改后的字符串。允许两个相关的子串具有不同的长度。这种对弦的大规模修改有各种应用。它们是最常见的染色体改变之一,占所有杂合性丢失的30%,这是导致癌症抑制基因失活的主要遗传事件。此外,在其他应用中,它们是音乐或自然语言信息检索中的频繁修改。然而,尽管它们在文本处理的许多领域中起着核心作用,但很少有人关注允许这种编辑操作的匹配字符串的问题。在本文中,我们提出了三个算法来解决这个问题,他们都有一个$\bigO(nm^3)$的最坏情况和一个$\bigO(m^2)$ -空间复杂度,其中$m$和$n$的模式和文本的长度,分别。特别是,我们的第一个算法是基于动态规划方法。我们的第二个解决方案通过使用模式的有向无环词图改进了前一个解决方案。最后,我们的第三个算法是基于对齐过程。我们还表明,在等概率和字符的独立性的假设下,我们的第二个算法有一个$\bigO(n\log^2_σ m)$平均时间复杂度,对于一个字母表的大小$σ\geq 4$。
2021-01-03 cs.DS cs.LO
A Compact DAG for Storing and Searching Maximal Common Subsequences
本研究针对最大公共子序列(MCSs)紧凑表示的复杂度难题,提出多项式时间构造多项式规模DAG的方法,支持MCSs的高效枚举、计数与随机访问,填补了MCSs与LCSs间的复杂度差距,为新型序列分析奠定基础。
2023-07-25 cs.DS
Sequence Searching Allowing for Non-Overlapping Adjacent Unbalanced Translocations
不平衡易位是最常见的染色体改变之一,占所有杂合性丢失的30%,是导致肿瘤抑制基因失活的主要遗传事件。尽管它们在基因组序列分析中起着中心作用,但很少有人关注允许这种染色体改变的匹配序列的问题。在本文中,我们研究的\emph{approximate string matching}问题时,编辑操作是相邻因素的非重叠不平衡易位。特别是,我们首先提出了一个$O(nm^3)$ -时间和$O(m^2)$ -空间算法的基础上的动态规划方法。然后,我们改进我们的第一个结果,设计了第二个解决方案,利用有向无环字图的模式。特别是,我们表明,在等概率和字符的独立性的假设下,我们的算法有一个$O(n\log^2_σ m)$平均时间复杂度,对于一个字母表的大小$σ$,仍然保持$O(nm^3)$ -时间和$O(m^2)$ -空间复杂度在最坏的情况下。据我们所知,这是文献中的第一个解决方案的近似字符串匹配问题,允许不平衡易位的因素。
2018-12-02 cs.DS
Exhaustive Exact String Matching: The Analysis of the Full Human Genome
由于许多实际应用,精确的字符串匹配几十年来一直是计算机科学中的基本问题。有些与常见的程序有关,例如在文件和文本编辑器中搜索,或者最近与更高级的问题有关,例如人工智能和生物信息学中的模式检测。已经开发了数十种用于模式匹配的算法和方法,并且存在几种程序设计语言、包、应用程序和在线系统,其可以在生物序列中执行精确的字符串匹配。然而,这些技术仅限于在序列中搜索特定的和预定义的字符串。本文提出了一种新的方法(称为Ex2SM),这是一个先进的数据结构和算法的执行流水线,明确设计的文本挖掘,可以检测到每一个可能的重复字符串在多元生物序列。与文献中的已知算法相比,这里提出的方法是字符串不可知的,即,它不需要一个输入字符串来搜索它,而是它可以检测到每个字符串,存在至少两次,无论其属性,如长度,频率,字母表,重叠等的复杂性的问题解决和所提出的方法的潜力证明与整个人类基因组上进行的实验分析。更具体地,已经检测到长度高达50个字符的所有重复字符串,由于这种长字符串的可能排列的指数数量,使用其他算法几乎不可能实现这一成就。
2019-07-24 cs.DS cs.IR
Technology Beats Algorithms (in Exact String Matching)
在过去的40年里,已经开发了120多种算法来进行精确的字符串匹配。我们通过实验表明,\naive{}算法利用SIMD指令的现代CPU(与符号比较,在一个特殊的顺序)是最快的一个模式的长度高达约50个符号和非常好的较长的模式和小的字母。该算法分别应用SSE 2或AVX2指令并行比较16或32个字符。此外,它使用循环剥离,以进一步加快搜索阶段。我们尝试了几种顺序来比较模式符号,并且它们在文本中的概率的增加顺序是最好的。
2016-12-05 cs.DS
Practical Algorithmic Techniques for Several String Processing Problems
数据采掘和知识发现领域使用大量的文本数据,这些数据需要被有效地处理。特定的问题,如寻找一组有序集的最大权重有序公共子集或搜索文本中的特定模式,经常发生在这种情况下。在本文中,我们提出了几个新的和实用的算法技术处理文本数据(字符串),以有效地解决多个问题。我们的技术利用有效的字符串算法和数据结构,如KMP,后缀数组,尝试和确定性有限自动机。
2009-12-04 cs.DS cs.FL
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
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
Separating Sets of Strings by Finding Matching Patterns is Almost Always Hard
University of Udine(乌迪内大学);University of Newcastle(纽卡斯尔大学)
我们研究的问题的复杂性,搜索一组模式,分开两个给定的字符串集。这个问题在很多领域都有应用,特别是在数据采掘、计算生物学和理解遗传算法的复杂性方面。我们证明了找到一个小的模式集,匹配一组字符串,但不匹配第二组中的任何字符串的基本问题是困难的(NP-完全,W[2]-困难时,参数化的模式集的大小,和APX-困难)。然后,我们执行一个详细的参数化分析的问题,分离易处理和难处理的变量。特别是,我们表明,参数化的模式集的大小和字符串的数量,字母表的大小和字符串的数量给FPT的结果,等等。
2016-12-19 cs.AI cs.CC cs.DS
On the sensitivity of CDAWG-grammars
Kyushu University(九州大学)
研究CDAWG文法对字符串编辑的敏感性,给出其最坏情况加性敏感性的下界3g-21和上界8g+4。
2026-05-28 cs.DS
Fast Packed String Matching for Short Patterns
在文本中搜索模式的所有出现是计算机科学中的一个基本问题,在许多其他领域,如自然语言处理,信息检索和计算生物学的应用。在过去的二十年里,一个总的趋势已经出现,试图利用字RAM模型的力量,以加快经典的字符串匹配算法的性能。在这个模型中,算法对长度为w的字进行运算,对字符块进行分组,对字进行算术和逻辑运算需要一个时间单位。在本文中,我们使用专门的字长压缩字符串匹配指令,基于英特尔流SIMD扩展(SSE)技术,设计非常快速的字符串匹配算法的情况下,短模式。从我们的实验结果证明,尽管他们的二次最坏情况下的时间复杂度,新提出的算法成为明显的赢家,平均短模式,在文献中已知的最有效的算法相比。
2012-09-28 cs.DS cs.IR cs.PF
Speeding Up String Matching by Weak Factor Recognition
字符串匹配是找到与给定模式匹配的文本的所有子字符串的问题。它是计算机科学中研究最多的问题之一,主要是由于它在几个领域中的非常不同的应用。近年来,字符串匹配领域的研究主要集中在搜索过程的效率和灵活性上,并且已经提出了非常有效的技术来加速现有的解决方案。在这种情况下,基于因素识别的算法是最好的解决方案之一。在本文中,我们提出了一个简单的和非常有效的字符串匹配算法的基础上弱因子识别和散列。我们的算法有一个二次最坏情况下的运行时间。然而,尽管它的二次复杂性,实验结果表明,我们的算法在大多数情况下获得最佳的运行时间相比,在各种条件下,对文献中最有效的算法。在小字母和长模式的情况下,运行时间的增益达到28%。这使得我们提出的算法在实际情况下最灵活的解决方案之一。
2017-07-03 cs.DS cs.IR
Quantum Algorithms for the Most Frequently String Search, Intersection of Two String Sequences and Sorting of Strings Problems
我们研究的算法解决三个问题的字符串。第一个是最常见的字符串搜索问题。问题如下。假设我们有一个长度为$k$的$n$字符串序列。问题是找到在序列中出现最频繁的字符串。我们提出了一个量子算法,具有查询复杂度$\tilde{O}(n \sqrt{k})$。与需要$Ω(nk)$查询的确定性算法相比,该算法显示出速度的提高。第二个是搜索两个字符串序列的交集。所有字符串都具有相同的长度$k$。第一集合的大小是$n$,第二集合的大小是$m$。我们提出了一个量子算法,具有查询复杂度$\tilde{O}((n+m) \sqrt{k})$。与需要$Ω((n+m)k)$查询的确定性算法相比,该算法具有更高的速度。第三个问题是长度为$k$的$n$字符串的排序。一方面,众所周知,量子算法无法比经典算法更快地对对象进行渐进排序。另一方面,我们专注于对不是任意对象的字符串进行排序。我们提出了一个量子算法,具有查询复杂度$O(n (\log n)^2 \sqrt{k})$。与需要$Ω((n+d)k)$查询的确定性算法(基数排序)相比,该算法显示出速度的提高,其中$d$是字母表的大小。
2020-01-07 cs.DS quant-ph
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
Bridging Classical and Quantum String Matching: A Computational Reformulation of Bit-Parallelism
本文提出将位并行字符串匹配算法转换到量子框架,并通过嵌入Grover搜索实现二次加速,以Shift-And和Shift-Add为例验证了该方法的简洁性与适应性。
2025-03-07 cs.DS cs.IR