Algorithm 从表中查找最长公共子序列

Algorithm 从表中查找最长公共子序列,algorithm,dynamic-programming,Algorithm,Dynamic Programming,对于LCS问题,我有两个输入字符串: 1:ABCDGH 2:AEDFHR 下表为LCS长度自下而上表格的动态规划解决方案: 根据中提供的方法,在尝试查找LCS中的实际字母时,请从表的末尾开始,然后返回。如果左侧和右侧的单元格与当前单元格不相同,且单元格对角线比当前单元格小一个,则您知道当前列中的字符已包含,并按对角线向后移动。否则,您要么向左移动,要么向右移动 按照这个方法,你会有一系列的运动(H,R),(H,H),然后是(F,G)。但是,一旦你到达那里,算法将如何决定下一步的方向?似乎它应该

对于LCS问题,我有两个输入字符串: 1:ABCDGH 2:AEDFHR

下表为LCS长度自下而上表格的动态规划解决方案:

根据中提供的方法,在尝试查找LCS中的实际字母时,请从表的末尾开始,然后返回。如果左侧和右侧的单元格与当前单元格不相同,且单元格对角线比当前单元格小一个,则您知道当前列中的字符已包含,并按对角线向后移动。否则,您要么向左移动,要么向右移动


按照这个方法,你会有一系列的运动(H,R),(H,H),然后是(F,G)。但是,一旦你到达那里,算法将如何决定下一步的方向?似乎它应该向左移动,因为这将导致“D”从下一列向左包含在LCS中,但是(F,G)的左、右和对角线的单元格都有2的值,对角线的单元格不少于1那么,当一个单元格被相同的值包围时,算法中的逻辑应该是什么呢?

动态规划问题通常有多个最优解。当两个或三个相邻单元具有相同的值时,它们是相同的,并且如果该值也是相邻单元中的最佳值,则跳到其中任何一个将导致一个最优解。(请注意,您的问题陈述可能会施加额外的约束,例如“如果存在多个最优解决方案,请尽早选择最后一个替换方案”。

我投票将此问题作为离题题题结束,因为它与编程无关。