图数据挖掘:距离计算与频繁子结构挖掘
1. 编辑距离计算的递归搜索算法
在图数据处理中,递归搜索算法用于寻找图之间的最优编辑序列。在图 $G_1$ 中插入边时,需满足在图 $G_2$ 中具有相同标签的两个节点间至少存在一条边。同时,若添加某个候选编辑到编辑序列 $E$ 会使 $E$ 的成本立即超过当前最优编辑序列 $E_{best}$ 的成本,则该候选编辑不应被考虑。
此外,还存在许多排序优化方法来对候选编辑进行优先级排序。例如,可先执行所有节点删除操作,再进行标签替换操作,且能证明最优编辑序列总能按此方式排列。也可优先考虑那些使标签整体分布更接近目标图的标签替换操作。一般来说,可给每个编辑关联一个“优良度函数”,以此启发式地量化其在被包含进 $E$ 时找到良好编辑路径的可能性。尽早找到良好的编辑路径,能依据上述规则实现更好的剪枝效果。
不同递归搜索算法的主要区别在于使用不同的启发式方法进行候选排序和剪枝。确定经过剪枝的候选编辑后,将其应用于 $G_1$ 得到 $G_1’$,然后递归调用该过程,输入为 $(G_1’, G_2)$ 和扩充后的编辑序列 $E’$。此过程会返回以 $E’$ 为前缀的最优编辑序列 $E_{current}$。若 $E_{current}$ 的成本优于 $E_{best}$(包括为实现完全匹配而进行的简单后处理插入编辑),则将 $E_{best}$ 更新为 $E_{current}$。最后返回 $E_{best}$。
该过程能保证终止,因为剪枝步骤避免了节点标签替换和边删除操作的重复。并且,随着更多编辑操作添加到 $E$ 中,编辑后图的节点数单调不增。对于一个有 $n$ 个节点的图,最多有 $O(n^2)$ 次不重复的边添加和删除操作,
超级会员免费看
订阅专栏 解锁全文
2388

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



