《Fast Suboptimal Algorithms for the Computation of Graph Edit Distance》论文阅读
图编辑距离概念
两个图的编辑距离定义为一个图通过插入、删除和转换等操作变换为另一个图的最小代价。
最优的图编辑距离是一个np难问题,算法时间复杂度会随着图中的顶点数的增加程指数式上涨。
论文中的符合标记
A* 算法
A* 算法是一种最小代价优先的算法,代价函数 g(p) 衡量了搜索树中根节点到当前节点 p 的代价,h(p) 衡量了当前节点 p 到叶子节点的代价的估计,每次搜索的时候我们都选出 g(p) + h(p) 最小的节点来更新搜索状态知道找到最优路径。
我们可以看出来,h(p) 的高效估计是 A* 算法中非常重要的内容,本文中提到了两种估计方法:
(1)把所有节点的 h(p) 都设为 0 时, A* 算法就相当于宽度优先算法,在本文中记为 PLAIN-A*。
(2)先对图1和图2中没有处理的节点做转换操作(应为转换操作的代价一般比删除操作的代价低),在估计转换操作的代价的时候对图1中的每个节点贪婪的选取图2中与该节点转换代价最低的节点(其实就是允许图1中的多个节点转换到图2中的一个节点来获得比真实代价更小的估计代价)。经过转换操作后剩下的节点计算一下他们的删除代价就可以得到总的估计代价。该方法记为 HEURISTIC-A*。原文:
注意:If the estimated costs h(p) are always lower than, or equal to, the real costs, the algorithm is known to be admissible, that is, an optimal path from the root node to a leaf node is guaranteed to be found by this procedure.
目前的计算GED算法面临的问题
GED的计算是一个np难问题,算法时间复杂度会随着图中节点数的增加程指数级上涨,经作者测试发现目前的GED算法最多只能计算包含12节点的图。
本文中提出的解决方法
我们知道如果计算最优GED值是一个np难问题,但是我们可以采取折中策略:即允许计算结果是次优解,从而降低算法的时间复杂度。本文正是在这样的思想下提出了两种策略:
(1) PLAIN-A*-beamsearch(s)
原始的 A* 算法中的OPEN表中保存所有的被更新的状态,为了降低时间复杂度,在该算法中每次OPEN表中只保存最优的 s 个状态。我们知道这样做会导致有些搜索空间没被探索到,可能导致求得的解是次优的。
(2)PLAIN-A*-pathlength(t)
用 代替 g(p)+h(p),即优先选取最长路径。