最长公共子序列

✍ dations ◷ 2025-06-30 08:48:14 #算法,动态规划,组合数学,多项式时间问题,NP完全问题

最长公共子序列(LCS)是一个在一个序列集合中(通常为两个序列)用来查找所有序列中最长子序列的问题。这与查找最长公共子串的问题不同的地方是:子序列不需要在原序列中占用连续的位置 。最长公共子序列问题是一个经典的计算机科学问题,也是数据比较(英语:data comparison)程序,比如Diff工具,和生物信息学应用的基础。它也被广泛地应用在版本控制,比如Git用来调和文件之间的改变。

一个数列 S {\displaystyle S} ,如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的,则 S {\displaystyle S} 称为已知序列的最长公共子序列。

对于一般性的LCS问题(即任意数量的序列)是属于NP-hard。但当序列的数量确定时,问题可以使用动态规划(Dynamic Programming)在多项式时间内解决。

最长公共子序列问题存在最优子结构:这个问题可以分解成更小,更简单的“子问题”,这个子问题可以分成更多的子问题,因此整个问题就变得简单了。最长公共子序列问题的子问题的解是可以重复使用的,也就是说,更高级别的子问题通常会重用低级子问题的解。拥有这个两个属性的问题可以使用动态规划算法来解决,这样子问题的解就可以被储存起来,而不用重复计算。这个过程需要在一个表中储存同一级别的子问题的解,因此这个解可以被更高级的子问题使用。

动态规划的一个计算最长公共子序列的方法如下,以两个序列 X {\displaystyle X} Y {\displaystyle Y} 为例子:

设有二维数组 f {\displaystyle f} 表示 X {\displaystyle X} i {\displaystyle i} 位和 Y {\displaystyle Y} j {\displaystyle j} 位之前的最长公共子序列的长度,则有:

其中, s a m e ( a , b ) {\displaystyle same(a,b)} X {\displaystyle X} 的第 a {\displaystyle a} 位与 Y {\displaystyle Y} 的第 b {\displaystyle b} 位完全相同时为“1”,否则为“0”。

此时, f {\displaystyle f} 中最大的数便是 X {\displaystyle X} Y {\displaystyle Y} 的最长公共子序列的长度,依据该数组回溯,便可找出最长公共子序列。

该算法的空间、时间复杂度均为 O ( n 2 ) {\displaystyle O(n^{2})} ,经过优化后,空间复杂度可为 O ( n ) {\displaystyle O(n)}


下面算法计算了所有子问题的最长公共子序列长度C

相关

  • 动脉动脉(希腊语:αρτηρία)是指在生物体内、从心脏运送血液到全身各器官(包括心脏本身)的多条血管。除了肺循环的动脉以及脐动脉,动脉运送的是含氧量高的血液(因此也有称之为“动
  • 兰博基尼兰博基尼公司(意大利语:Automobili Lamborghini S.p.A.,意大利语: 聆听)是一家集设计、工程、制造与销售于一身的超级跑车制造商,坐落于意大利圣亚加塔·波隆尼。1963年由费鲁齐
  • 先驱者计划name = 'Aero', description = '航空太空科技(航空航天科技)', content = {{ type = 'text', text = [=[本页面没有类似于NoteTA的数量限制。 请自行修改分类名。在NoteTA样板
  • α-胡萝卜素α-胡萝卜素是一种胡萝卜素,分子的一端为β-环,另一端为ε-环. 它是第二常见的胡萝卜素。美国成人与中国成人的血清α-胡萝卜素平均浓度是4.71 µg/dL,其中男子是4.22 µg/dL,女
  • 1970年 罗凡尼米第六届冬季世界大学生运动会于1970年4月3日至9日在芬兰罗瓦涅米举行。这是芬兰首次主办冬季世界大学生运动会。此次比赛共设七个大项。*  主办国家/地区(芬兰)
  • 奥迦斯奥迦斯(Orcus)罗马神话中的死神,经常会被视为与黑帝斯是同一神祇。有时会出现在大地上和人杀斗,有些传说中他有黑色的翅膀。
  • 副交感神经系统副交感神经系统(Parasympathetic system)是自律神经系统的两个部分其中之一,另一个部分是交感神经系统。(肠神经系统(ENS)现在通常被称为一个独立的系统,因为它有自己独立的反射活
  • 共振价键理论在凝聚体物理学中,共振价键理论(英语:resonating valence bond theory,简称RVB)是一种试图解释高温超导(尤其是铜氧化物超导体)的理论模型。1987年,美国物理学家菲利普·安德森和印
  • 可敦可敦(蒙古语:.mw-parser-output .font-mong{font-family:"Menk Hawang Tig","Menk Qagan Tig","Menk Garqag Tig","Menk Har_a Tig","Menk Scnin Tig","Oyun Gurban Ulus Tig"
  • 指盘涧蟾指盘涧蟾(学名:),又称为三发涧蟾(Sambas stream toad)、婆罗洲彩虹蟾(Bornean rainbow toad)、彩虹蟾蜍,是蟾蜍科涧蟾属的物种,分布于印度尼西亚与马来西亚。它的自然栖息地为亚热带与