高效内存的树编辑距离算法
1 引言
层次数据常被建模为树,树数据在众多应用中广泛出现,如JSON、XML等层次数据格式,以及天体物理学中的合并树。计算两棵树之间的相似度是一个有趣的查询,而树编辑距离是衡量树相似度的标准方法,它被定义为将一棵树转换为另一棵树所需的最小节点编辑操作成本序列。树编辑距离在许多应用中都有成功应用,并受到了数据库社区的广泛关注。
计算树编辑距离(TED)的最快算法是将输入树分解为较小的子树,并使用动态规划从子树的解构建整体解。不同TED算法的关键区别在于分解策略,这对运行时间有重大影响。早期计算TED的尝试使用硬编码策略,这种策略忽略或仅部分考虑输入树的形状,可能导致非常差的策略和高达多项式级别的渐近运行时间差异。
最近的进展是鲁棒树编辑距离(RTED)算法,它分两步操作:第一步计算分解策略,该策略适应输入树,并在LRH策略类中被证明是最优的;第二步执行该策略,进行实际的距离计算。
然而,RTED在策略计算时的内存消耗是个问题。对于大实例,策略计算所需的内存可能是实际距离计算的两倍,成为瓶颈。为解决这个问题,本文提出了MemoryOptStrategy算法,通过自底向上计算策略并提前释放部分记忆表,显著减少了策略计算的内存需求,至少减少50%,且在实践中从不超过距离计算所需的内存。
2 背景
2.1 符号表示
- 树F是一个有向、无环、连通图,节点集合为N(F),边集合为E(F) ⊆ N(F) × N(F),每个节点最多有一条入边。
- 在边(v, w)中,v是父节点,w是子节点,记为p(w) = v。
- 没有父节点的
超级会员免费看
订阅专栏 解锁全文
935

被折叠的 条评论
为什么被折叠?



