在这里,edit_distance(a, b) = 1,edit_distance(b, c) = 1。此外,edit_distance(a, c) = 1。 但是,我们也可以有以下内容:
a = CAP
b = CAT
c = RAT
在这里,edit_distance(a, b) = 1,edit_distance(b, c) = 1,但是edit_distance(a, c) = 2。因此,没有办法仅使用a和b的编辑距离以及b和c的编辑距离来计算a和c的编辑距离。 然而,我们知道edit_distance(a, c) ≤ edit_distance(a, b) + edit_distance(b, c),因为您始终可以按顺序应用变换将a转换为c。更一般地说,编辑距离形成了一个离散的距离度量,这构成了BK树数据结构的基础。 希望这可以帮到您!
- templatetypedef
3
1我们也知道 edit_distance(a, c) ≥ abs(edit_distance(a, b) - edit_distance(b, c));换句话说,一个转换中的每个插入/删除/替换可能会抵消另一个转换中的单个插入/删除/替换,但不能超过这个范围。 - Kyle Strand
edit_distance(a, c) ≥ abs(edit_distance(a, b) - edit_distance(b, c))
;换句话说,一个转换中的每个插入/删除/替换可能会抵消另一个转换中的单个插入/删除/替换,但不能超过这个范围。 - Kyle Stranda = CAT,b = CAP,c = CAT
的情况。仅从距离度量无法确定d(a,c) == 0
。 - Jim Mischel