最长公共子序列

✍ dations ◷ 2025-11-30 00:34:40 #算法,动态规划,组合数学,多项式时间问题,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

相关

  • 脂多糖脂多糖(Lipopolysaccharide)是一大型分子油脂和多糖由共价键相连组成的。脂多糖是革兰氏阴性细菌外膜的主要组成部分,提供并保持细菌结构的完整性,保护细菌的细胞膜抵抗某些化学
  • 奥地利面积以下资讯是以2019年估计家用电源国家领袖国内生产总值(购买力平价) 以下资讯是以2016年估计国内生产总值(国际汇率) 以下资讯是以2016年估计人类发展指数 以下资讯是以2018
  • 美国科学促进会美国科学促进会(英语:American Association for the Advancement of Science,缩写为AAAS),创建于1848年9月20日,是世界最大的非营利科学组织,下设21个专业分会,所涉包括数学、物理学
  • Cu(IOsub3/sub)sub2/sub碘酸铜是铜的碘酸盐,目前仅已知二价的化合物。向硝酸铜溶液中加入碘酸,得到一水合物晶体:碘酸铜一水合物(Cu(IO3)2·H2O)在240°C发生脱水,生成无水物。无水物继续加热至470°C,不
  • 汉方医汉医学,是起源于汉民族的传统医学,现代的中国大陆人和台湾人多称其为“中医学”。其理论与技术最早是由汉民族所奠定以及发展的,并伴随中国在亚洲数千年以来的政治和文化上的影
  • 驻联合国代表美利坚合众国驻联合国大使(英语:United States Ambassador to the United Nations)是美国常驻联合国代表团的领导人。该职位较为正式的名称是美利坚合众国常驻联合国代表(the Pe
  • 食醯食醯是朝鲜半岛传统甜米露,通常视作饮料和甜点。其不仅包含发酵的液体成分,还留有一些沉淀的米粒和松子。食醯与甘酒类似,然而酒精含量远不及甘酒。
  • 地球酱地球酱(Earth-chan,俄语:Земля Чан / Земля-тян)是地球的萌拟人化角色,2017年在Twitter等网站爆红。2017年11月30日,用户“@Trinimmortal”在Twitter上提议制作一
  • 米伦蒂耶·波波维奇米伦蒂耶·波波维奇(希腊语:Μιλέντιε Πόποβιτς;塞尔维亚语:Милентије Поповић;塞尔维亚-克罗地亚语:;1913年7月7日-1971年5月8日),塞尔维亚族,是南斯
  • 新罕布夏州议会大厦新罕布夏州议会大厦(New Hampshire State House)是美国新罕布夏州议会的开会地点和新罕布夏州长的办公场所,位于新罕布夏州首府康科德。新罕布夏州议会大厦修建于1816年至1819