A Dynamic Programming Solution to a Generalized LCS Problem
本文考虑了一个广义的最长公共子序列问题--排除串约束LCS问题。对于长度为$n$和$m$的两个输入序列$X$和$Y$,以及长度为$r$的约束串$P$,问题是找到$X$和$Y$的公共子序列$Z$,排除作为子串的$P$,并且$Z$的长度被最大化。该问题及其解决方案最早由Chen和Chao \cite{1}提出,但我们发现他们的算法不能正确解决该问题。然后,本文提出了一种新的动态规划解决STR-EC-LCS问题。证明了新算法的正确性。新算法的时间复杂度为$O(nmr)$。
2013-01-30 cs.DS
A sub-quadratic algorithm for the longest common increasing subsequence problem
最长公共递增子序列问题(LCIS)是著名的最长公共子序列问题(LCS)的一个自然变体。对于LCIS以及LCS,存在$O(n^2)$时间算法和$O(n^{2-\varepsilon})$的基于SETH的条件下限。对于LCS,还有Masek-Paterson $O(n^2 / \log{n})$ -time算法,它似乎不以任何明显的方式适应LCIS。因此,一个自然的问题出现了:任何(稍微)次二次算法存在的最长共同增加子序列问题?我们肯定地回答这个问题,提出了一个$O(n^2 / \log^a{n})$ -时间算法的$a = \frac{1}{6}-o(1)$ .该算法不是基于记忆小块数据(通常用于对数加速,包括LCS中的“四个俄罗斯人的把戏”),而是利用一种新技术,限制两个序列之间重要符号匹配的数量。
2020-01-29 cs.DS
Fast and Simple Computation of All Longest Common Subsequences
本文证明了一个简单的算法,产生的{ \em所有前缀LCS图}在$O(mn)$时间为两个输入序列的大小$m$和$n$。给定第一输入序列的任何前缀$p$和第二输入序列的任何前缀$q$,一旦构造了全前缀LCS图,就可以在与输出大小成比例的时间内生成$p$和$q$的所有最长公共序列(LCS)。这个问题可以在生成表示LCS的所有不同字符串的上下文中解决,或者在生成将LCS嵌入两个输入字符串的所有方式的上下文中解决。
2011-03-08 cs.DS
Asymmetric Streaming Algorithms for Edit Distance and LCS
编辑距离(ED)和最长公共子序列(LCS)是量化两个字符串彼此相似程度的两个基本问题。在本文中,我们考虑了Andoni等人(FOCS'10)和Saks和Seshadhri(SODA'13)提出的非对称流模型中的这些问题。在这个模型中,我们可以随机访问一个字符串,流访问另一个字符串。我们的主要贡献是一个常数因子近似算法的ED与记忆的$\tilde O(n^δ)$的任何常数$δ> 0$。除此之外,我们提出了一个上限的$\tilde O_ε(\sqrt{n})$的内存需要近似ED或LCS内的一个因素$1+ε$。我们所有的算法都是确定性的,并且在一次通过中运行。为了在一个常数因子内近似ED,我们发现了三角不等式的另一个应用,这次是在流算法的背景下。三角不等式以前已被用来获得次二次时间近似算法的ED。我们的技术是新颖的,优雅地利用三角不等式,以节省内存在运行时的指数增长为代价。
2020-04-16 cs.DS
Quadratic-Time Hardness of LCS and other Sequence Similarity Measures
两个重要的序列之间的相似性度量是最长公共子序列(LCS)和动态时间弯曲距离(DTWD)。在各种应用中,对两个给定序列的这些测量的计算是中心任务。简单的动态规划算法在$O(n^2)$时间内解决了这些任务,尽管进行了大量的研究,但没有已知的具有显著更好的最坏情况上限的算法。在本文中,我们证明了一个$O(n^{2-ε})$时间算法,对于某些$ε>0$,用于计算长度为$n$的两个序列的LCS或DTWD在一个恒定大小的字母表,驳斥了流行的强指数时间假设(SETH)。此外,我们表明,计算LCS的$k$字符串的大小$O(k)$的字母表不能在$O(n^{k-ε})$的时间,任何$ε>0$,SETH下。最后,我们还解决了近似的DTWD的两个字符串在真正的次二次时间的时间复杂度。
2015-01-29 cs.CC cs.DS
Faster Space-Efficient STR-IC-LCS Computation
本文研究字符串必须包含 P 为子串的 STR-IC-LCS 问题,提出三种兼顾时间与空间效率的动态规划算法,并给出多种复杂度界。
2024-05-19 cs.DS
Approximating LCS in Linear Time: Beating the $\sqrt{n}$ Barrier
最长公共子序列是组合优化中最基本的问题之一。除了理论上的重要性,LCS在生物信息学、修订控制系统和数据比较程序中有着巨大的应用。虽然一个简单的动态程序计算LCS在二次时间,它最近已被证明,这个问题承认一个条件下限,并可能无法解决在真正的次二次时间。除此之外,LCS在近似算法方面是出了名的困难。除了在时间上获得$n^{x}$近似解的平凡采样技术$O(n^{2-2x})$之外,LCS没有其他已知的。这是在形成鲜明对比,它的双重问题编辑距离,在过去的二十年中获得了几个线性时间的解决方案。
2020-03-16 cs.DS
Reducing approximate Longest Common Subsequence to approximate Edit Distance
给定一对字符串,计算它们的最长公共子序列和编辑距离的问题已经被广泛研究了几十年。对于精确算法,LCS和编辑距离(具有字符插入和删除)是等效的;最先进的运行时间(几乎)是二次的,这在合理的细粒度复杂性假设下是紧密的。但是对于近似算法,情况就不同了:有一长串的工作改进了编辑距离的近似因子,但是对于LCS(使用二进制字符串),只有一个微不足道的$1/2$近似是已知的。在这项工作中,我们给出了一个减少近似LCS的近似编辑距离,产生第一个有效的$(1/2+ε)$近似算法的LCS为一些常数$ε>0$。
2019-04-10 cs.DS
On the Complexity of Finding Approximate LCS of Multiple Strings
本文研究多字符串近似最长公共子串问题的复杂性,利用LCP_k和k-errata树数据结构为Hamming距离和编辑距离下的受限情形提出高效算法,并在强指数时间假设下给出条件性下界。
2025-09-18 cs.DS
Variants of Constrained Longest Common Subsequence
在这项工作中,我们考虑一个变种的经典最长公共子序列问题称为双约束最长公共子序列(DC-LCS)。给定字母表A上的两个字符串s1和s2,字符串集合Cs,以及从A到N的函数Co,DC-LCS问题在于找到s1和s2的最长子序列s,使得s是Cs中所有字符串的超序列,并且使得A中每个符号a在s中出现的次数的上界为Co(a)。DC-LCS问题为计算生物学中的序列比较问题提供了一个清晰的数学公式,并推广了LCS问题的其他两个约束变体:约束LCS和无重复LCS。我们提出了两个DC-LCS问题的结果。首先,我们说明了一个固定参数的算法,其中的参数是解决方案的长度。其次,当参数为约束串的个数和字母表A的大小时,我们证明了约束LCS问题的参数化困难性结果。这个困难性结果也暗示了DC-LCS问题的参数化困难性(具有相同的参数)和当字母表的大小是常数时的NP-困难性。
2009-12-02 cs.DM cs.DS
An $O(n^2)$ Algorithm for Computing Longest Common Cyclic Subsequence
{ \em最长公共子序列(LCS)}问题是计算机科学中一个经典的研究较多的问题。LCS是字符串学中的一个核心问题,在文本压缩、检错码和生物序列比较中有着广泛的应用。然而,在许多上下文中,单词表示符号的循环序列,并且LCS必须被推广以考虑字符串的所有循环移位。这尤其发生在计算生物学中,当遗传物质从环状DNA或RNA分子中测序时。这就引发了{ \em longest common cyclic subsequence(LCCS)}的问题,该问题在两个字符串的所有循环移位之间找到最长的子序列。本文给出了求解LCCS问题的一个$O(n^2)$算法,其中$n$是字符串中符号的个数。
2010-04-18 cs.DS
Longest Common Substring Made Fully Dynamic
在最长公共子串(LCS)问题中,我们给出两个字符串$S$和$T$,每个字符串的长度最多为$n$,我们被要求找到一个最长的字符串,它同时作为$S$和$T$的片段出现。这是计算机科学中一个经典的、研究得很好的问题,有一个已知的$\mathcal{O}(n)$时间解。在这个问题的完全动态版本中,两个字符串中的任何一个都允许编辑操作,并且我们被要求在每个这样的操作之后报告一个LCS。我们提出了这个问题的第一个解决方案,需要每次编辑操作的次线性时间。特别是,我们展示了如何在每次使用$\tilde{\mathcal{O}}(n)$空间的操作之后,以$\tilde{\mathcal{O}}(n^{2/3})$时间(或$\tilde{\mathcal{O}}(\sqrt{n})$时间,如果只允许在两个字符串中的一个中进行编辑)返回LCS。这一系列研究最近由作者[SPIRE 2017]在某种程度上受到限制的动态变量中发起。给出了一个$\tilde{\mathcal{O}}(n)$大小的数据结构,它在$\tilde{\mathcal{O}}(1)$时间内返回两个字符串的LCS。在CPM 2018上,有三篇论文研究了字符串问题的类比限制动态变体。我们表明,我们的技术可以用来获得完全动态算法的几个经典问题的字符串,即,计算最长的重复,最长的回文和最长的林登子串的字符串。之前唯一已知的字符串问题的次线性时间…
2018-07-16 cs.DS
Dynamic all scores matrices for LCS score
对齐两个字符串A、B以确定它们的相似性的问题是模式匹配领域中的基本问题。这个领域中的一个重要概念是“所有得分矩阵”,它对两个字符串的局部比对比较进行编码。即,令K表示包含B的每个子串与A的对齐得分的所有得分矩阵,令J表示包含B的每个后缀与A的每个前缀的对齐得分的所有得分矩阵。在本文中,我们考虑的问题,保持所有的分数矩阵的评分函数是LCS分数,同时支持单个字符的前置和附加操作的A和N。我们的算法利用稀疏参数L=LCS(A,B)和Delta = |B| -L。对于矩阵K,我们提出了一个算法,支持增量操作的两端A在O(德尔塔)的时间。而对于矩阵J,我们提出了一个算法,支持一种类型的增量操作,无论是一个prepend操作A或一个append操作B,在O(L)的时间。这个结构也可以扩展到同时支持两个操作,时间复杂度为O(LloglogL)。
2018-08-10 cs.DS
Fast and simple algorithms for computing both $LCS_{k}$ and $LCS_{k+}$
最长公共子序列($LCS$)处理两个字符串的相似性度量问题。虽然这个问题已经被分析了几十年,但最近的兴趣源于一个实际的观察,即考虑单个字符往往过于简单化。因此,最近的作品介绍了$LCS$的变种,基于共享的子串的长度正好或至少$k$($LCS_k$和$LCS_{k+}$分别)。用于计算$LCS_k$和$LCS_{k+}$的现有技术算法的主要缺点是它们仅在有限的设置中工作良好:它们或者很好地解决了平均情况,而在病理情况下是次优的,或者它们实现了良好的最坏情况性能,但未能利用输入数据属性来加速计算。此外,这些算法是基于非平凡的数据结构,这从从业者的观点来看是不理想的。我们提出了一个单一的算法来计算$LCS_k$和$LCS_{k+}$,它优于最先进的算法在运行时的复杂性,只需要基本的数据结构。此外,我们实现了一个算法来重建的解决方案,它提供了显着的改善方面的内存消耗。我们的经验验证表明,我们节省了几个数量级的人类基因组数据的内存。我们的算法的C++实现可在https://github.com/google/fast-simple-lcsk上获得
2018-05-24 cs.DS
Lower Bounds and Improved Algorithms for Asymmetric Streaming Edit Distance and Longest Common Subsequence
本文研究了Saks和Seshadhri [SS13]提出的非对称流模型中的编辑距离(ED)和最长公共子序列(LCS)。作为随机访问模型和流模型之间的中间模型,该模型允许对一个字符串进行流访问,并对另一个字符串进行随机访问。我们的第一个主要贡献是系统的研究空间下界的ED和LCS的非对称流模型。以前,在此上下文中没有明确说明的结果,尽管可以从[SW 07][GG 10][EJ08]中最长递增子序列(LIS)的下限推断出LCS的一些下限。然而,这些界限只适用于大的字母表大小。在本文中,我们开发了几种新的技术来处理ED一般和LCS小字母表的大小,从而建立强有力的下界这两个问题。特别是,我们的ED下限在非对称流模型中提供了编辑距离和汉明距离之间的指数分离。我们的下界也扩展到LIS和最长非减序列(LNS)的标准流模型。与以前的结果一起,我们的边界提供了一个几乎完整的图片,这两个问题。作为我们的第二个主要贡献,我们给出了改进的算法ED和LCS在非对称流模型。对于ED,我们将[FHRS 20][CJLZ 20]中的常数因子近似算法的空间复杂度从$\tilde{O}(\frac{n^δ}δ)$改进为$O(\frac{d^δ}δ\;\mathsf{polylog}(n))$,其中$n$是每个字符串的长度,$d$是两个字符串之间的编辑距离.对于LCS,我们给出了二进制字母表上任意常数$δ>0$的空间为$…
2021-10-07 cs.DS
An efficient dynamic programming algorithm for the generalized LCS problem with multiple substring inclusive constraints
本文考虑了一个具有多子串包含约束的广义最长公共子序列问题。对于长度为$n$和$m$的两个输入序列$X$和$Y$,以及总长度为$r$的一组$d$约束$P=\{P_1,\cdots,P_d\}$,问题是找到$X$和$Y$的公共子序列$Z$,其包括$P$中的每个约束串作为子串,并且$Z$的长度被最大化。本文提出了一种新的动态规划方法来解决这一问题。证明了新算法的正确性。算法的时间复杂度为$O(d2^dnmr)$。在约束串个数固定的情况下,本文提出的求解多子串包容约束广义最长公共子序列问题的新算法需要$O(nmr)$时间和空间.
2015-05-25 cs.DS
Approximation Algorithms for LCS and LIS with Truly Improved Running Times
最长公共子序列($\mathsf{LCS}$)是组合优化中的一个经典和核心问题。虽然$\mathsf{LCS}$承认一个二次时间的解决方案,最近的证据表明,解决这个问题可能是不可能的,在真正的次二次时间。$\mathsf{LCS}$的一个特殊情况,其中每个字符在每个字符串中最多出现一次,等价于最长递增子序列问题($\mathsf{LIS}$),它可以在拟线性时间内求解。在这项工作中,我们提出了新的算法近似$\mathsf{LCS}$在真正的次二次时间和$\mathsf{LIS}$在真正的次线性时间。我们的近似因子取决于最优解大小与输入大小的比值。我们用$λ$表示这个比率,并且在没有任何关于$λ$的先验知识的情况下,得到了关于$\mathsf{LCS}$和$\mathsf{LIS}$的以下结果。$\bullet$一个真正的次二次时间算法,用于$\mathsf{LCS}$,具有近似因子$Ω(λ^3)$。$\bullet$一个真正的次线性时间算法,用于$\mathsf{LIS}$,具有近似因子$Ω(λ^3)$。三角不等式最近被[Boroujeni,Ehsani,Ghodsi,HajiAghayi和Seddighin SODA 2018]和[Charkraborty,Das,Goldenberg,Koucky和Saks FOCS 2018]用于提出编辑距离的新近似算法。我们的技术$\mat…
2021-11-20 cs.DS
A Data-Structure for Approximate Longest Common Subsequence of A Set of Strings
给定一组$k$字符串$I$,它们的最长公共子序列(LCS)是具有最大长度的字符串,该字符串是$I$中所有字符串的子集。用于该问题的数据结构将$I$预处理为数据结构,使得可以更快地计算具有$I$的字符串的查询字符串集合$Q$的LCS。由于该问题对于任意$k$都是NP难的,因此我们允许一个错误,该错误允许某些字符被其他字符替换。我们用额外的输入$m$来定义问题的近似版本,它是描述输入的正则表达式(regex)的长度,近似因子是算法返回的regex中可能性数量的对数,除以具有最小可能性数量的对数regex。然后,我们使用树型数据结构来实现次线性时间LCS查询。我们还解释了如何将这个想法扩展到最长递增子序列(LIS)问题。
2021-01-12 cs.DS
Quantum Speed-ups for String Synchronizing Sets, Longest Common Substring, and k-mismatch Matching
最长公共子串(LCS)是一个重要的文本处理问题,最近在量子查询模型中得到了研究。这个问题的决策版本,LCS与阈值$d$,询问是否两个长度为$n$的输入字符串有一个共同的长度为$d$的子串。两个极端的情况,$d=1$和$d=n$,分别对应于元素清晰度和非结构化搜索,量子查询复杂性的两个基本问题。然而,中间病例$1\ll d\ll n$尚未完全了解。我们表明,LCS与阈值$d$的复杂性之间的两个极端的情况下,$n^{o(1)}$因素:LCS与阈值$d$有一个量子算法在$n^{2/3+o(1)}/d^{1/6}$查询复杂性和时间复杂性,并要求至少$Ω(n^{2/3}/d^{1/6})$量子查询复杂性。我们的结果改进了以前的上界$\tilde O(\min \{n/d^{1/2}, n^{2/3}\})$(Le Gall和Seddighin ITCS 2022,Akmal和Jin SODA 2022),并回答了Akmal和Jin的一个公开问题。我们的主要技术贡献是Kempa和Kociumaka(STOC 2019)引入的强大的String Synchronizing Set技术的量子加速。它根据字符串中的$n/τ^{1-o(1)}$同步位置的长度- $Θ(τ)$上下文一致地对它们进行采样,并且每个同步位置可以由量子算法在$\tilde O(τ^{1/2+o(1)})$时间内报告。作为我们的…
2022-11-29 cs.DS
Subsequence Matching and LCS under Cartesian-Tree Equivalence
Kyushu University(九州大学);Joint Graduate School of Mathematics for Innovation, Kyushu University(九州大学数学创新联合研究生院);University of Electro-Communications(电气通信大学)
本文提出Cartesian树匹配下的子序列匹配与最长公共子序列问题,针对不同字母表提出高效算法及时间下限。
2025-12-30 cs.DS
How Compression and Approximation Affect Efficiency in String Distance Measures
真实世界的数据通常以压缩形式出现。直接分析压缩数据(而不解压缩)可以节省大量的空间和时间。在这项工作中,我们专注于基本的序列比较问题,并试图量化的增益时,底层数据是高度可压缩的时间复杂度。我们考虑语法压缩,它统一了许多实际相关的压缩方案。对于总长度$N$和总压缩大小$n$的两个串,已知编辑距离和最长公共子序列(LCS)可以在时间上精确地计算$\tilde{O}(nN)$,这与未压缩设置的$O(N^2)$相反。许多应用需要同时比对多个序列,并且用于$k$字符串的中值编辑距离和LCS的已知最快精确算法在$O(N^k)$时间内运行。这自然提出了一个问题:压缩是否有助于显著减少$k \geq 3$的运行时间,可能是减少到$O(N^{k/2}n^{k/2})$或$O(Nn^{k-1})$。不幸的是,我们显示的下界,排除了任何改善超过$Ω(N^{k-1}n)$时间的任何这些问题假设强指数时间假设。同时,我们表明,近似和压缩在一起可以是令人惊讶的有效。我们开发了一个$\tilde{O}(N^{k/2}n^{k/2})$时间FPTAS的$k$序列的中值编辑距离。相比之下,没有$O(N^{k-Ω(1)})$时间PTAS已知的中值编辑距离的问题,在未压缩的设置。对于两个字符串,我们得到编辑距离和LCS的$\tilde{O}(N^{2/3}n^{4/3})$时间FPTAS。相比之下,对于未压缩的字符串,…
2021-12-10 cs.DS
Improved Approximation for Longest Common Subsequence over Small Alphabets
研究了最长公共子序列(LCS)问题的可逼近性。求解LCS问题的最快算法在输入长度上的基本二次时间内运行,并且已知在强指数时间假设下,二次运行时间无法被击败。然而,除了在一些有限的情况下,LCS的近似计算没有这样的限制。近似算法也很缺乏。当两个给定的字符串在大小为$k$的字母表上时,返回由两个字符串中出现最频繁的符号形成的子序列实现LCS的$1/k$近似。这是一个开放的问题,是否可以在真正的次二次时间($O(n^{2-δ})$时间常数$δ>0$)实现更好的$1/k$近似。最近的一个结果[Rubinstein and Song SODA'2020]表明,只要输入字符串具有相同的长度,在真正的次二次时间中,在二进制字母表上对LCS的$1/2+ε$近似是可能的。在本文中,我们表明,如果一个$1/2+ε$近似($ε>0$)是可实现的二进制LCS在真正的次二次时间时,输入字符串可以是不平等的,然后为每个常数$k$,有一个真正的次二次时间算法,实现了$1/k+δ$近似$k$ -ary字母表LCS的一些$δ>0$。二进制是最难的。我们还表明,对于每个常数$k$,如果给定$k$进制字母表上的两个长度为\emph{equal}的字符串,则可以在真正的次二次时间内获得某个常数$ε>0$的$1/k+ε$逼近,从而将Rubinstein和Song的结果扩展到所有常数大小的字母表。
2021-05-07 cs.CC cs.DS
Computing SEQ-IC-LCS of Labeled Graphs
本文定义带标号图上的 SEQ-IC-LCS 问题,并分别针对三图无环、两目标图可有环而约束图无环的情形给出动态规划算法及时间空间复杂度。
2023-07-15 cs.DS
Approximating the Longest Common Subsequence problem within a sub-polynomial factor in linear time
两个字符串的最长公共子序列(LCS)是一个基本的字符串相似性度量,经典的动态规划解决方案需要二次时间。尽管做出了重大努力,但在改进运行时方面几乎没有取得进展。即使在近似领域,除了平凡的$\sqrt{n}$ -近似之外,对线性时间算法也知之甚少。最近的突破性结果提供了一种$n^{0.497}$ -因子近似算法[HSSS 19],最近将其改进为$n^{0.4}$ -因子1 [BCD 21]。后一篇论文还展示了一个$n^{2-2.5α}$时间算法,该算法输出LCS的$n^α$近似,但到目前为止,还没有真正的次二次时间的次多项式近似。在这项工作中,我们展示了一个算法,它运行在$O(n)$时间,并输出一个$n^{o(1)}$因子近似LCS $(x,y)$,具有很高的概率,对于任何一对长度$n$输入字符串。我们的整个算法仅仅是最近在[ANSS 21]中引入的Block-LIS问题的有效黑盒简化,并直接解决Block-LIS问题。
2021-12-15 cs.DS
A Compact DAG for Storing and Searching Maximal Common Subsequences
本研究针对最大公共子序列(MCSs)紧凑表示的复杂度难题,提出多项式时间构造多项式规模DAG的方法,支持MCSs的高效枚举、计数与随机访问,填补了MCSs与LCSs间的复杂度差距,为新型序列分析奠定基础。
2023-07-25 cs.DS
Approximation Schemes for Edit Distance and LCS in Quasi-Strongly Subquadratic Time
Stanford University(斯坦福大学)
本文提出新的随机近似方案,针对编辑距离和最长公共子序列问题,在准多项式时间内实现近似解,改进了传统二次时间动态规划算法。
2026-03-31 cs.DS
Longest Common Subsequence: Tabular vs. Closed-Form Equation Computation of Subsequence Probability
最长公共子序列问题(LCS)是在给定的一组字符串中寻找最长的子序列。LCS问题是一个NP难问题,这使得它成为一个目标,大量的努力,以找到一个更好的解决方案,与数学方法。大多数著名的概率统计函数的基线是一个表格随机,概率方法。这种方法在每次迭代中近似LCS的长度。束搜索和基于概率的列表算法的结合,导致了大量的建议和成就的算法来解决LCS问题。在这项工作中,我们引入了一个封闭的形式方程的概率表计算首次。此外,我们提出了其他相应的形式的封闭形式的方程,并证明了所有这些。该封闭式方程为分析和进一步近似开辟了新的方法。利用这些定理和束搜索,我们提出了一种估计剩余子序列的LCS长度的解析方法。此外,我们提出了另一种启发式函数的基础上的变异系数。结果表明,我们提出的方法优于国家的最先进的方法对LCS问题。
2022-06-23 cs.DS
Subsequence Matching and LCS with Segment Number Constraints
本文研究分段LCS(SegLCS)和分段子序列匹配(SegE)问题,提出SegE的SETH条件时间下界、O(mn)时间算法,以及SegLCS的O(fn2(n1-ℓ+1))时间算法。
2025-02-26 cs.DS
An Efficient Dynamic Programming Algorithm for the Generalized LCS Problem with Multiple Substring Exclusion Constrains
本文考虑了一个具有多子串排除约束的广义最长公共子序列问题。对于长度为$n$和$m$的两个输入序列$X$和$Y$,以及总长度为$r$的一组$d$约束$P=\{P_1,...,P_d\}$,问题是找到$X$和$Y$的公共子序列$Z$,将$P$中的每个约束串排除为子串,并且使$Z$的长度最大化。这个问题被声明为NP难的\cite{1},但我们最终发现这不是真的。本文提出了一种新的动态规划方法。证明了新算法的正确性。算法的时间复杂度为$O(nmr)$。
2013-03-08 cs.DS
Quantum Meets Fine-grained Complexity: Sublinear Time Quantum Algorithms for String Problems
本文针对最长公共子串、最长回文子串和Ulam距离三个字符串问题,提出了次线性时间量子算法并给出量子下界,揭示了LCS与LPS量子复杂性的差异。
2022-05-24 cs.CC cs.DS quant-ph
Approximating binary longest common subsequence in almost-linear time
最长公共子序列(LCS)是一个基本的字符串相似性度量,计算两个字符串的LCS是一个经典的算法问题。教科书上的动态规划算法给出了二次时间的精确算法,这在合理的细粒度复杂性假设下基本上是最好的,所以一个自然的问题是找到更快的近似算法。当输入是两个二进制字符串时,在线性时间中有一个简单的$\frac{1}{2}$近似:计算最长的公共全0或全1子序列。即使在真正的次二次时间中,是否有可能得到更好的近似值,这一点一直是开放的。Rubinstein和Song证明,在两个输入字符串长度相等的假设下,答案是肯定的。我们解决这个问题,推广他们的结果不等长的字符串,证明,对于任何$\varepsilon>0$,存在$δ>0$和$(\frac{1}{2}+δ)$ -近似算法的二进制LCS运行在$n^{1+\varepsilon}$时间。作为我们的结果和Akmal和Vassilevska-Williams的结果的结果,对于任何$\varepsilon>0$,存在在$n^{1+\varepsilon}$时间上的$q$ -ary字符串上LCS的$(\frac{1}{q}+δ)$ -近似。我们的技术建立在最近的工作Guruswami,他和李谁证明了新的界限容忍删除错误的纠错码。他们证明了一个组合的“结构引理”的字符串分类,他们根据自己的振荡模式。我们证明和使用的算法推广这个结构引理,这可能是独立的利益。
2023-02-09 cs.DM cs.DS math.CO
Longest Common Subsequence in k-length substrings
在本文中,我们定义了一个新的问题,出于计算生物学,$LCSk$的目的是找到最大数量的$k$长度$substrings$,在两个输入字符串匹配,同时保持其出现顺序。传统的LCS定义是我们问题的一个特例,其中$k = 1$。我们提供了一个算法,解决一般情况下的$O(n^2)$时间,其中$n$是输入字符串的长度,等于所需的时间为特殊情况下的$k=1$。该算法的空间需求是$O(kn)$。%,但是,为了启用解决方案的%回溯,需要$O(n^2)$空间。我们还定义了一个互补的$EDk$距离测度,并证明了$EDk(A,B)$可以在$O(nm)$时间和$O(km)$空间中计算,其中$m$,$n$分别是输入序列$A$和$B$的长度。
2014-02-10 cs.DS
Faster Algorithms for Longest Common Substring
针对最长公共子串问题,提出字RAM模型下O(n log σ/√log n)时间的亚线性算法(σ=O(1)时);拓展到k-错配LCS问题,给出O(n log^{k-1/2}n)时间算法,突破n log^k n壁垒。
2025-11-17 cs.DS
Time-Space Tradeoffs for Finding a Long Common Substring
我们考虑的问题,找到两个文件的总长度$n$,最长的字符串作为两个文件的子串。这个问题被称为最长公共子串(LCS)问题,有一个经典的$O(n)$时间解决方案,可以追溯到后缀树的发现(Weiner,1973)和整数字母表的有效构造(Farach-Colton,1997)。然而,这些解决方案需要$Θ(n)$空间,这在许多应用中是禁止的。为了解决这个问题,Starikovskaya和Vildhøj(CPM 2013)表明,对于$n^{2/3} \le s \le n^{1-o(1)}$,LCS问题可以在$O(s)$空间和$O(\frac{n^2}{s})$时间中求解。Kociumaka等人(欧空局,2014年)将这一权衡推广到$1 \leq s \leq n$,从而提供了从恒定空间到线性空间的平滑时空权衡。在本文中,我们获得了显着的加速的情况下,所寻求的LCS的长度$L$是大的。对于$1 \leq s \leq n$,我们证明了LCS问题可以在$O(s)$空间和$\tilde{O}(\frac{n^2}{L\cdot s}+n)$时间中求解。该结果基于源自具有失配问题的LCS的技术(Flouri等人,2015; Charalampopoulos等人,CPM 2018),空间高效的局部一致性解析(Birenzwige et al.,SODA 2020),以及输入文档中最大重复(运行)的结构。
2020-04-28 cs.DS
Sublinear Space Algorithms for the Longest Common Substring Problem
给定$m$文档的总长度$n$,我们考虑的问题,找到一个最长的字符串共同的至少$d \geq 2$的文件。这个问题被称为\emph{longest common substring (LCS) problem},并且具有经典的$O(n)$空间和$O(n)$时间解(Weiner [FOCS'73],Hui [CPM'92])。然而,线性空间的使用在许多应用中是不切实际的。在本文中,我们表明,对于任何权衡参数$1 \leq τ\leq n$,LCS问题可以解决在$O(τ)$空间和$O(n^2/τ)$时间,从而提供了第一个光滑的确定性的时间-空间权衡从常数到线性空间。结果使用了一种新的非常简单的算法,它计算了在$O(n^2/τ)$时间和$O(1)$空间中LCS的$τ$ -加法近似。我们还展示了确定性分支程序的时间-空间权衡下界,这意味着任何确定性RAM算法解决LCS问题的文件,从足够大的字母在$O(τ)$空间必须使用$Ω(n\sqrt{\log(n/(τ\log n))/\log\log(n/(τ\log n)})$时间。
2014-07-02 cs.DS
New tabulation and sparse dynamic programming based techniques for sequence similarity problems
计算长度为$n$和$m$的两个字符串$A$和$B$的最长公共子序列(LCS)的长度是一个经典的研究课题,已知许多面向最坏情况的结果。我们提出了两个算法的LCS长度计算分别$O(mn \log\log n / \log^2 n)$和$O(mn / \log^2 n + r)$的时间复杂度,后者工作的$r = o(mn / (\log n \log\log n))$,其中$r$是匹配的数量在动态规划矩阵。我们还描述了一个给定的问题足以应用我们的技术的条件,提出了几个具体的例子,即编辑距离,LCTS和MerLCS问题。
2014-05-21 cs.DS
Multivariate Fine-Grained Complexity of Longest Common Subsequence
我们重温了经典的组合模式匹配问题,找到一个最长的共同子序列(LCS)。对于长度为$n$的字符串$x$和$y$,教科书算法在时间$O(n^2)$中求解LCS,但是尽管已经花费了很多努力,但是没有$O(n^{2-\varepsilon})$时间算法是已知的。最近的工作确实表明,这样的算法将反驳强指数时间假设(SETH)[Abboud,Backurs,Vassilevska Williams + Bringmann,Künnemann FOCS'15]。尽管有二次时间的障碍,但40多年来,一个持久的科学兴趣继续为LCS及其变体产生快速算法。特别注意的是识别和利用输入参数,产生强次二次时间算法的特殊情况下的利益,例如,差异文件比较。这条研究路线一直成功地进行到1990年,当时重大的改进停止了。在本文中,使用细粒度复杂性的镜头,我们的目标是(1)证明缺乏进一步的改进和(2)确定是否LCS的某些特殊情况下承认比目前已知的更快的算法。为此,我们对LCS的多变量复杂性进行了系统的研究,并考虑了文献中先前讨论的所有参数:输入大小$n:=\max\{|x|,|y|\}$,较短字符串$m:=\min\{|x|,|y|\}$的长度,$x$和$y$的LCS的长度$L$,删除数$δ:= m-L$和$Δ:= n-L$,字母表大小,以及匹配对$M$和显性对$d$的数量。对于任何一类的实例,通过固定每个参数单独的输…
2018-03-02 cs.CC cs.DS
Longest Common Subsequence in at Least $k$ Length Order-Isomorphic Substrings
我们考虑最长公共子序列(LCS)问题的限制,公共子序列被要求至少由$k$长度的子串。首先,我们展示了一个$O(mn)$时间算法的问题,它提供了一个更好的最坏情况下的运行时间比现有的算法,其中$m$和$n$是输入字符串的长度。此外,我们主要考虑了LCS在至少$k$长序同构子串中的问题。我们表明,这个问题也可以解决在$O(mn)$最坏情况下的时间由一个易于实现的算法。
2017-02-06 cs.DS
A Fast Randomized Algorithm for Finding the Maximal Common Subsequences
Nokia Bell Labs(诺基亚贝尔实验室);Rutgers University(罗格斯大学)
寻找$L$多个字符串的公共连续性在生物信息学、计算语言学和信息检索领域有许多应用。一个众所周知的结果表明,找到$L$字符串的最长公共子序列(LCS)是NP难的,例如,计算复杂性在$L$中是指数的。在本文中,我们开发了一个随机算法,简称为{ \em Random-MCS},用于寻找多个字符串的最大公共子序列($MCS$)的随机实例。如果将任何字符插入子序列不再产生公共子序列,则公共子序列为{ \em最大}。MCS的一个特殊情况是LCS,其中长度最长。我们表明,我们的算法的复杂性是线性的$L$,因此是适合于大型$L$。此外,我们研究了MCS的单个实例的发生概率,并通过理论和实验研究表明,从{ \em Random-MCS}的多个运行的最长的子序列往往会产生一个解决方案,$LCS$。
2020-09-07 cs.AI cs.CC cs.DS
Dynamic Longest Common Substring in Polylogarithmic Time
King’s College London(伦敦国王学院);Institute of Computer Science, University of Wrocław(弗罗茨瓦夫大学计算机科学研究所)
研究动态最长公共子串问题,提出在多项式对数时间内处理更新的算法,同时给出数据结构的下界分析。
2026-04-08 cs.DS
Computing the Number of Longest Common Subsequences
本文提供了计算两个输入字符串的不同最长公共连续数和计算LCS嵌入数的非常简单、有效的算法。
2003-01-29 cs.DM cs.DS
Does Preprocessing help in Fast Sequence Comparisons?
我们研究了预处理的编辑距离计算:预处理算法分别作用于每个字符串,然后查询算法将两个预处理后的字符串作为输入。这个模型的灵感来自于我们想要计算同一个字符串池中许多对之间的编辑距离的场景。我们的成果包括:置换-LCS:如果两个排列之间的LCS具有长度$n-k$,则可以通过$O(n \log(n))$预处理和$O(k \log(n))$查询时间来计算它的长度\textit{ exactly}。小编辑距离:对于一般的字符串,如果它们的编辑距离最大为$k$,我们可以通过$O(n\log(n))$预处理和$O(k^2 \log(n))$查询时间来计算它的\textit{ exactly}。近似编辑距离:对于最一般的输入,我们可以用预处理时间$\tilde{O}(n^2)$和查询时间$\tilde{O}(n^{1.5+o(1)})$将编辑距离近似为因子$(7+o(1))$内。所有这些结果都显着提高了在没有预处理的编辑距离计算的最新技术水平。有趣的是,通过将我们的算法与预处理相结合,我们提供了新的改进结果,在次二次时间内近似编辑距离而无需预处理。
2021-08-20 cs.CC cs.DS
Finding Diverse Strings and Longest Common Subsequences in a Graph
本文首次研究汉明距离下多样性最长公共子序列问题,分析Sum和Min多样性度量下的计算复杂性,证明K有界时多项式可解、K无界时NP难且Max-Sum情形存在PTAS,并在DAG设定下给出参数化复杂性结果。
2024-06-10 cs.CC cs.DS cs.FL
The Labeled Direct Product Optimally Solves String Problems on Graphs
后缀树是一种重要的数据结构,它是解决诸如精确模式匹配、最长公共子串、匹配统计和最长重复子串等基本字符串问题的核心。最近的研究集中在扩展这些问题中的一些顶点标记的图形,虽然使用特设的方法,在某些情况下,不推广到所有的输入图。在没有一个无处不在的工具,如后缀树的标记图,我们引入了标记的直接产品的两个图作为一个通用的工具,以获得最佳的算法:我们获得概念上更简单的算法的二次问题的字符串匹配(SMLG)和最长的公共子串(LCSP)的标记图。我们的算法也更有效,因为它们在标记乘积图的大小上是时间线性的,对于某些输入,它可能小于二次的,并且它们的运行时间是可预测的,因为标记直积图的大小可以有效地预先计算。我们还解决了包含圈的图上的LCSP,这是Shimohira等人在2011年留下的一个开放问题。为了展示标记乘积图的强大功能,我们还将其应用于解决标记图中的匹配统计(MSP)和最长重复串(LRSP)问题。此外,我们表明,我们的(最坏情况下的二次)算法也是最佳的,条件正交向量假设。最后,我们通过在无向图上研究LRSP,完成了LRSP的复杂性图。
2021-09-11 cs.CC cs.DS
Computing a Longest Common Palindromic Subsequence
{ \em最长公共子序列(LCS)}问题是计算机科学中一个经典的研究较多的问题。回文是一个词,它读起来和读起来是一样的。{ \em longest common palindromic subsequence(LCPS)}问题是经典LCS问题的一个有趣的变体,经典LCS问题寻找两个给定字符串之间的最长公共子序列,使得计算出的子序列也是回文。本文研究了LCPS问题,给出了求解该问题的有效算法。据我们所知,这是第一次尝试研究和解决这个有趣的问题。
2011-10-24 cs.DM cs.DS
A hardness result and new algorithm for the longest common palindromic subsequence problem
2-LCPS问题,首先由Chowdhury等人[Fundam.通知。,129(4):329-340,2014],要求计算两个给定字符串$A$和$B$之间的最长回文公共子序列(的长度)。我们表明,2-LCPS问题是至少一样难的研究最长的公共子序列问题的四个字符串(4-LCS问题)。然后,我们提出了一个新的算法,解决了2-LCPS问题在$O(σM^2 + n)$时间,其中$n$表示的长度$A$和$B$,$M$表示之间的匹配位置的数量$A$和$B$,和$σ$表示的数量不同的字符出现在$A$和$B$。我们的新算法比Chowdhury等人的算法更快。的稀疏算法时,$σ= o(\log^2n \log\log n)$。
2016-12-22 cs.DS
Identifying all abelian periods of a string in quadratic time and relevant problems
弦的阿贝尔周期性在过去的几年里得到了广泛的研究。在2006年Constantinescu和Ilie定义了一个字符串的阿贝尔周期,并给出了几个计算字符串所有阿贝尔周期的算法。与词的古典时期相比,它的阿贝尔版本更灵活,词的因子在其字母的任何内部排列下都被认为是相同的。我们给出了两个O(|y| ^2)算法来计算字符串y的所有阿贝尔周期。第一种方法将每个字母映射到一个合适的数字,使得字符串的每个因子可以通过与其字母对应的数字的唯一和来识别,从而可以容易地识别阿贝尔周期。另一种是将每个字母映射到一个素数,这样字符串的每个因子都可以通过与其字母对应的数字的唯一乘积来识别,因此可以很容易地识别阿贝尔周期。我们还定义了弱阿贝尔周期的字符串,并给出了一个O(|y| log(|y|))算法计算它们,以及其他一些更基本的问题的算法。
2012-07-05 cs.DS
Heuristic algorithms for the Longest Filled Common Subsequence Problem
在CPM 2017上,Castelli等人定义并研究了最长公共子序列问题的一个新变体,称为最长填充公共子序列问题(LFCS)。对于LFCS问题,输入由两个字符串$A$和$B$以及多字符集$\mathcal{M}$组成。目标是将来自$\mathcal{M}$的字符插入到字符串$B$中,从而获得新字符串$B^*$,使得$A$和$B^*$之间的最长公共子序列(LCS)最大化。Casteli等人证明了该问题是NP难的,并给出了一个3/5-近似算法。本文从实验的角度对这一问题进行了研究。我们介绍,实施和测试新的启发式算法,并将它们与Casteli等人的近似算法进行比较。此外,我们引入了一个线性规划(ILP)模型的问题,我们使用的状态,最先进的ILP求解器,Guesthouse,获得精确的解决方案,中等大小的实例。
2019-04-16 cs.DS
Efficient algorithms for enumerating maximal common subsequences of two strings
本研究针对两字符串最大公共子序列枚举问题,提出三种不同时空复杂度的高效算法,分别适配不同的资源与输出效率需求,部分结构还支持条件式MCS检索。
2023-07-20 cs.DS
Dynamic Time Warping in Strongly Subquadratic Time: Algorithms for the Low-Distance Regime and Approximate Evaluation
动态时间规整距离(DTW)是一种广泛使用的时间序列间距离度量。最著名的算法计算DTW运行在近二次时间,和条件下限禁止存在显着更快的算法。然而,对于DTW很小的特殊情况,下限并不妨碍更快的算法。对于任意度量空间$Σ$,将距离归一化,使得最小非零距离为1,本文给出了一个计算$Σ$上两个字符串$x$和$y$在时间$O(n \cdot \operatorname{dtw}(x, y))$上的$\operatorname{dtw}(x, y)$的算法.我们还提出了一个近似算法,计算$\operatorname{dtw}(x, y)$内的一个因素的$O(n^ε)$在时间$\tilde{O}(n^{2 - ε})$为$0 < ε< 1$。该算法允许字符串$x$和$y$被带到一个任意的良好分离的树度量与对数深度和最多指数纵横比。进一步扩展我们的技术,我们还获得了第一近似算法的编辑距离与字符从任意度量空间,提供了一个$n^ε$近似的时间$\tilde{O}(n^{2 - ε})$,具有很高的概率。此外,我们提出了一个简单的减少从计算编辑距离计算DTW。将我们的约化应用于关于$\{0, 1\}$上的编辑距离的Bringmann和Künnemann的条件下界,我们获得了计算DTW的条件下界超过三个字母的字母表(距离为0和1)。这改进了Abboud,Backurs和Williams之前的结果。使用类似的方…
2019-05-23 cs.DS
Approximating Edit Distance Within Constant Factor in Truly Sub-Quadratic Time
编辑距离是两个字符串相似性的度量,基于将一个字符串转换为另一个字符串所需的最小字符插入、删除和替换次数。编辑距离可以使用以二次时间运行的动态规划算法精确计算。Andoni、Krauthgamer和Onak(2010)给出了一种近似线性时间算法,该算法在近似因子$\text{poly}(\log n)$内近似编辑距离。在本文中,我们提供了一个算法的运行时间$\tilde{O}(n^{2-2/7})$,近似的编辑距离在一个常数的因素。
2021-02-16 cs.DS
Quadratic Conditional Lower Bounds for String Problems and Dynamic Time Warping
字符串的经典相似性度量是最长公共子序列和Levenshtein距离(即,经典的编辑距离)。曲线的经典相似性度量是动态时间规整。这些测量可以通过简单的$O(n^2)$动态规划算法来计算,并且尽管付出了很多努力,但是还没有已知的具有显著更好的运行时间的算法。我们证明,即使仅限于二进制字符串或一维曲线,分别,这些措施没有强次二次时间算法,即,对于任何$\varepsilon > 0$,没有运行时间为$O(n^{2-\varepsilon})$的算法,除非强指数时间假设失败。我们将结果推广到编辑距离的任意固定成本的四个操作(删除在两个字符串之一,匹配,替代),通过识别平凡的情况下,可以解决在恒定的时间,并证明二次时间硬度二进制字符串的所有其他成本的选择。这改善和推广已知的硬度结果Levenshtein距离[Backurs,Indyk STOC'15]的限制,二进制字符串和推广到任意成本,并增加了重要的问题,最近的一系列研究显示越来越多的二次时间问题的条件下界。作为我们的主要技术贡献,我们介绍了一个框架,证明二次时间硬度的相似性措施。要应用该框架,只需构造一个小工具即可,该小工具封装了模拟从可满足性减少所需的所有表达能力。最后,我们证明二次时间硬度最长回文子序列和最长串联子序列通过减少最长的共同子序列,显示条件下界的基础上强指数时间假设也适用于字符串问题,不一定是相似的措施。
2015-04-02 cs.CC cs.DS
Fine-grained Complexity Meets IP = PSPACE
在本文中,我们研究了细粒度的复杂性,找到精确和近似的解决方案的问题,在P.我们的主要贡献是显示减少从精确到近似的解决方案的主机这样的问题。作为一个(值得注意的)例子,我们表明,最接近的LCS对问题(给定两组字符串$A$和$B$,精确计算最大$\textsf{LCS}(a, b)$与$(a, b) \in A \times B$)是等价于其近似版本(在近线性的时间减少,并与一个常数近似因子)。更一般地说,我们确定了一类问题,我们称之为BP对类,包括精确和近似的解决方案,并表明它们都是等价的近线性时间减少。探索这个类和它的属性,我们还表明:$\bullet$在NC-SETH假设(一个显着更宽松的假设比SETH),解决这个类中的任何问题需要基本上二次时间。$\bullet$对已知算法的运行时间的适度改进(剃除对数因子)将意味着NEXP不是非均匀$\textsf{NC}^1$。$\bullet$最后,我们利用我们的技术来显示新的障碍,确定性近似算法LCS。这些新结果的核心是有界空间计算的交互式证明系统与P中问题的精确和近似解决方案的细粒度复杂性之间的深刻联系。特别是,我们的结果建立在经典IP = PSPACE结果的证明技术上。
2022-12-09 cs.CC cs.DS
String Cadences
我们说一个字符串有节奏,如果某个字符以规则的间隔重复,可能有该字符的插入出现。如果第一个音程必须与其他音程长度相同,我们称之为固定节奏。我们给出了一个次二次算法,用于确定一个字符串是否有任何节奏组成的至少三个出现的字符,和一个近线性算法,找到所有锚定的节奏。
2016-10-11 cs.DS