编辑距离问题是对其两个DNA序列问题的一般化,有许多通过对齐的方法来度量两个DNA序列的相似度。其中一种对齐方式是在两个序列x和y之间插入空格(包括两端),使得序列结果x'和y'有相同的长度而且不在同一位置均为空格(也就是说,没有位置j使得x'[j]和y'[j]均为空格)。然后给每个位置一个“分数”。位置j以如下方式得到一个分数:
+1 ,如果x'[j]=y'[j]而且都不是空格;
-1 ,如果x'[j]!=y'[j]而且都不是空格;
-2 ,如果x'[j]或者y'[j]是空格;
以上摘自《算法导论》p219,现给出两个DNA序列,求出两个DNA序列的对其方式使其分数最大。
这个转换我最初是没有想到的,但是看了别人的说明百度文库,最初看完以为上面说的有点不大对,但是仔细分析了一下,觉的真是巧妙啊:
cost(copy)=-1 复制操作,相当于对齐后x'[i]=y'[i],分数+1
cost(replace)=+1 替换操作,相当于对齐后x'[j]!=y[j],分数-1(都不为空格