中文

一种 O(n^3) 时间的树编辑距离算法

数据结构与算法 2010-12-01 v3

摘要

两个带顶点标签的有序树之间的编辑距离是指,通过一系列基本操作将一棵树转换为另一棵树所需的最小成本,这些操作包括删除和重新标记现有节点,以及插入新节点。本文提出了一个最坏情况为 O(n3)O(n^3) 时间的算法,改进了之前的最佳 O(n3logn)O(n^3\log n) 时间算法。我们的算法需要一种新颖的自适应策略来决定动态规划如何划分为子问题(这本身就很有趣),并对该问题的前驱算法进行了更深入的理解。我们还证明了我们算法在“分解策略”算法中的最优性——该类别算法还包括之前最快的算法——通过将已知下界 Ω(n2log2n)\Omega(n^2\log^2 n) 紧缩到 Ω(n3)\Omega(n^3),与我们的算法运行时间相匹配。此外,我们获得了当两棵树大小不同(mmnn,其中 m<nm < n)时 Θ(nm2(1+lognm))\Theta(n m^2 (1 + \log \frac{n}{m})) 的匹配上界和下界。

关键词

引用

@article{arxiv.cs/0604037,
  title  = {An O(n^3)-Time Algorithm for Tree Edit Distance},
  author = {Erik D. Demaine and Shay Mozes and Benjamin Rossman and Oren Weimann},
  journal= {arXiv preprint arXiv:cs/0604037},
  year   = {2010}
}

备注

10 pages, 5 figures, 5 .tex files where TED.tex is the main one