Algorithm 树编辑距离:如何获得最佳映射?

Algorithm 树编辑距离:如何获得最佳映射?,algorithm,tree,dynamic-programming,edit-distance,Algorithm,Tree,Dynamic Programming,Edit Distance,我已经实现了计算两棵树之间最小编辑距离的方法。一切都很好,我对目前的运行时间非常满意 现在,我还想生成一个diff,突出显示更改/删除/插入的节点。根据他们的论文,要求生成计算距离的映射是很自然的,根据最后一张幻灯片,似乎可以很容易地从最后一张森林距离表和树木距离表中提取映射。不幸的是,我还没有弄清楚确切的规则 如有任何补充说明,将不胜感激。非常感谢 好吧,我终于自己弄明白了。为了为两棵树的节点(分别为m和n个节点)生成最佳映射,需要在林表中进行一些回溯 对于从(m,n)森林距离表的(m,n)开

我已经实现了计算两棵树之间最小编辑距离的方法。一切都很好,我对目前的运行时间非常满意

现在,我还想生成一个diff,突出显示更改/删除/插入的节点。根据他们的论文,要求生成计算距离的映射是很自然的,根据最后一张幻灯片,似乎可以很容易地从最后一张森林距离表和树木距离表中提取映射。不幸的是,我还没有弄清楚确切的规则


如有任何补充说明,将不胜感激。非常感谢

好吧,我终于自己弄明白了。为了为两棵树的节点(分别为m和n个节点)生成最佳映射,需要在林表中进行一些回溯

对于从(m,n)森林距离表的(m,n)开始的每个字段(x,y),执行以下操作:如果通过将字段(x',y')和编辑/删除/插入成本相加获得最小值,则写下映射并转到当前森林距离表的字段(x',y')。另一方面,如果最小值是通过将当前林距离表中的字段(x',y')和树距离表中的字段(tx,ty)相加得到的,则转到当前林距离表中的字段(x',y')和对应于树(tx,ty)的林表中的字段(tx,ty)。现在需要分别在两个林表中继续回溯,并从两个林表中收集映射