当存在对整个子字符串进行操作的额外基本操作(标准是插入,删除,转置和替换单个字符)时,是否存在用于确定2个字符串之间的编辑距离的算法的示例。可能的额外基本操作的示例是:
1)复制函数 - 复制任何子字符串并将其插入需要的地方
2)移动功能 - 将任何子串移动到新位置
使用这些,如果d& D是Levenstein距离,但D也包括1)& 2),d(“Sheep”,“SheepBeep”)= 4(必须制作4个插入物),但D(“Sheep”,“SheepBeep”)= 2(插入“B”然后复制“eep”) 。同样,d(“CarDog”,“DogCar”)= 6但D(“CarDog”,“DogCar”)= 1乘2)。
是否可以对Levenstein Distance算法进行(简单)修改以实现此目的?
答案 0 :(得分:1)
仅在NP-hard problem中插入,删除和移动结果。添加重复,转置和替换似乎不太可能再次变得容易。因此,像Levenshtein动态规划这样的多项式时间方法不太可行。
在“基因组重排”和“易位距离”等术语中,生物信息学也考虑过类似的问题。