最长公共子序列

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

相关

  • 斑块丘疹(英语:papule),为局限性、实质性、直径小于1cm的表浅隆起性皮损。丘疹表面可扁平(如扁平疣(英语:flat wart))、圆形脐凹状(如传染性软疣)或粗糙不平呈乳头状,颜色可呈紫红色(如扁平
  • 心术《心术》,根据著名作家六六的同名书籍改编而成,讲述二十一世纪中国大陆都市人的感情生活故事。(第一轮首播)东方卫视、天津卫视、浙江卫视、安徽卫视(第二轮首播)北京卫视、湖北卫
  • 斯托达特詹姆斯·弗雷泽·斯托达特爵士,FRS,FRSE,FRSC(英语:Fellow of the Royal Society of Chemistry)(英语:Sir James Fraser Stoddart,1942年5月24日-),苏格兰化学家,2016年凭借分子机器的设
  • 鸟松区鸟松区(台湾话:.mw-parser-output .sans-serif{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Lato,"Helvetica Neue",Helvetica,Arial,sans-serif} Tsiá
  • 王凯骏王凯骏(Keith Wong),原名王琪,于2004年参加无线电视与英皇娱乐合办的“2004英皇新秀歌唱大赛”夺得金咪大奖及2004无线电视自办的全球华人新秀歌唱大赛季军等而晋身乐坛。现为英
  • 固定汇率制固定汇率制(又称钉住汇率制),是国家间货币采用固定汇率进行货币交换的制度,一国政府可通过行政方式限定其货币相对于另一货币的价值。该国政府依照一定重量的黄金,或者一定量的另
  • 2,3-环氧丁烷2,3-环氧丁烷(英语:2,3-Epoxybutane)是化学式为CH3CH(O)CHCH3的环氧化合物,带有两个手性碳原子,其中的(,)-2,3-环氧丁烷为内消旋化合物,因此总共有三种立体异构体。三种2,3-环氧丁
  • 田光烈田光烈(1912年-2007年7月27日),名应炬,字光烈,以字行,贵州遵义人。曾任中国佛教协会咨议委员会委员、中国佛教文化研究所特约研究员、南京金陵刻经处研究员、闽南佛学院研究生导师,
  • 安布罗斯·鲍威尔·希尔安布罗斯·鲍威尔·希尔(Ambrose Powell Hill,1825年11月9日-1865年4月2日),美国南北战争时期南方军将军。希尔早期是南方军将军托马斯·杰克逊的重要助手之一,后跟随南方军总司令
  • JoshuaJoshua可以指: