最长公共子序列

✍ dations ◷ 2025-05-19 10:05:27 #算法,动态规划,组合数学,多项式时间问题,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

相关

  • 巴拿马运河区巴拿马运河区(英语:Panama Canal Zone,西班牙语:Zona del Canal de Panamá),是1903年至1979年期间,美国位于巴拿马运河的租借地。运河区包括巴拿马运河本身,以及除巴拿马城与科隆外
  • 塞缪尔·兰利塞缪尔·皮尔庞特·兰利(英语:Samuel Pierpont Langley,1834年8月22日-1906年2月27日),美国天文学家、物理学家、数学家,航空先驱,测热辐射计的发明者,史密森博物馆馆长。兰利1834年
  • 二甲基硫二甲基硫醚,是最简单的硫醚化合物。结构、性质与二甲基醚类似。常温下为无色挥发性液态。有着如海鲜般特殊气味物质。在自然界中,常由蛋白质的分解产生。这也是海鲜腥味的来源
  • 卢班戈卢班戈为安哥拉威拉省首府,位于罗安达南方750公里,距最近之大城纳米贝150公里,根据安哥拉2009年的人口普查,卢班戈有245,196人,为安哥拉第4大城市,于1975年之前则以沙达班代拉(Sá
  • 天平动在天文学中,天平动(英语:Libration)是从卫星环绕的天体上观察所见到的,真实或视觉上非常缓慢的振荡。尽管这些振荡亦适用于其他行星,甚至太阳,但天文学家们长久以来都只用在月球相
  • 灵井许昌人遗址灵井“许昌人”遗址是1965年发现的位于河南许昌县灵井镇的一个“现代人”考古遗址。2008年成为河南省级文物保护单位。2013年入选第七批全国重点文物保护单位。2005年河南省
  • 希尔德·利瓦伊希尔德·利瓦伊(德语:Hilde Levi,1909年5月9日-2003年7月26日),拥有德国和丹麦双重国籍的物理学家,曾率先在生物和医药领域使用放射性同位素,也就是知名的放射自显影术(英语:Autoradio
  • 悬红悬红可指:
  • 安妮 (英国女王)安妮(英语:Anne,又译为安;1665年2月6日-1714年8月1日),通称安妮女王(Queen Anne),1702年3月8日起成为英格兰、苏格兰和爱尔兰女王。1707年3月1日,英苏《联合法令》正式生效,英格兰和苏格
  • 防风通圣散防风通圣散,出典自《医方集解》,共含有防风、荆芥、连翘、麻黄、薄荷、川芎、当归、白芍、白术、山栀子、大黄、芒硝、黄芩、石膏、桔梗、甘草、滑石、生姜、葱白等19种中药材