内容简介
图表示能非常好的反映对象的属性与对象之间的关系,被广泛的应用在模式识别领域,而图匹配方法,作为实现图高效查询的重要方法之一被广泛的应用于生物信息学,图像分类,计算机网络等等领域。而图编辑距离(Graph Edit Distance,GED)是非常重要的图匹配问题,有良好得到容错率且可以应用于大量的图匹配相关领域之上。由于精确解GED问题的指数难度,越来越多的近似图编辑距离算法希望通过更快的时间来得到尽可能接近精确的图编辑距离。
相关论文1
标题:Approximate graph edit distance computation by means of bipartite graph matching
作者:Kaspar Riesen, Horst Bunke
期刊:Image and Vision computing, 2009, 27(7): 950-959
相关论文2
标题:Graph Edit Distance as a Quadratic Program
作者:S´ebastien Bougleux, Benoit Ga¨uz`ere,Luc Brun
期刊: 2016 23rd International Conference on Pattern Recognition (ICPR)
相关论文3
标题:A survey of graph edit distance
作者:Xinbo Gao, Bing Xiao, Dacheng Tao & Xuelong Li
期刊: Pattern Analysis and applications, 2010, 13: 113-129
01 问题介绍
由于图可以很好的表示对象与对象之间的关系,图开始被大量使用在各个领域当中。而图匹配则是图数据识别的重要方法,其中基于图编辑距离(Graph Edit Distance,GED)的图匹配算法由于其拥有良好的容错率以及可以广泛的用于任意的图模型(如无向图,有向图,属性图,无属性图),在许多领域上均有应用。
图编辑距离问题是指从源图A通过一系列操作,最终得到目标图B所需要的最小代价,而操作集合以及每个操作的代价会随着问题的不同而调整。下图是一个图变化过程的实例,左上角的图为源图A,左下角的图为目标图B,图上的边的颜色代表边的属性,点的形状则代表点的属性,可用的操作有删边加边,删点加点,修改边或者点的属性。如果每个操作的花费为1,则这两个图的GED就为4。
图1 GED过程示例
02 精确求解
当我们求解GED的时候,如果我们已经知道了两个图中点的映射,那么我们就可以很快的得到GED的值,比如两个完全同构的图,他们的GED为0。但是对于图同构问题,我们暂时还没有多项式方法,但是是NP问题,而GED问题又是难于图同构问题的,也就是说我们暂时还没有多项式方法可以精确的求解GED问题。目前最主流的算法为A-star搜索算法,在networkx和大量图匹配代码库中被使用。
A-star搜索算法(启发式搜索算法)与经典深度优先搜索类似,通过对当前搜索路径的评估来对部分状态进行剪枝,减少搜索空间。而如何对当前状态的价值进行评估,则是A-star搜索算法的一大问题,也有大量的参考文献通过调整不同的评估函数来达到更好的效果。但并没有从实质理论保证上对指数时间进行优化,在最坏情况下会与经典深度优先搜索达到相同的复杂度,因此并没有从根本上解决指数级别时间的问题。
算法1 精确图编辑距离算法
输入:非空图
其中,
输出:从图
到图
的最小代价路径
1.初始化OPEN集合为空集;
2.对于点
,将替换操作
插入OPEN集合;
3.插入删除操作
至OPEN集合;
4.loop
5.
,从OPEN集合中提取
;
6.if
是一个完全编辑路径 then
7.返回
作为最终结果;
8.else
9.
10.if k<n then
11.对点w,
12.将
插入OPEN集合;
13.将
插入OPEN集合;
14.else
15.将
插入OPEN集合;
16.end if
17.end if
18.end loop
03 近似求解
比起精确求解算法,由于时间快且调整空间更大,越来越多的人将目光转移到了近似图编辑距离上。实际上图近似距离可以规约成一个QAP问题,QAP问题是一个NPC问题(但不代表GED是一个NPC问题),而对于QAP问题有很多成熟的近似求解的方法,因此一条将GED转换成QAP问题再通过QAP近似求解算法的求解路径就产生了。
3.1 QAP问题介绍
QAP问题又叫做二次指派问题,对于两个集合S,Q 我们要从中找到一个完全匹配的方式使得最终的总代价最小。下面是QAP的具体形式,K则是代价矩阵。
图2 QAP问题的数学形式 (来源:Ye et al.,2023)
我们可以把X矩阵看做一个映射矩阵,不同的映射矩阵则代表着不同的映射方式,我们假设考虑如果Xi,k=1 那么意味着源图中i这个点映射到了目标图k, Xj,l=1 同样的着源图中j这个点映射到了目标图l。那么我们可以对应着不同的情况
图3 (来源:Graph Edit Distance as a Quadratic Program)
通过这个方法我们就可以得到这个矩阵K,我们实际上把GED问题转换成一个QAP问题,而对于这个特殊的QAP问题,我们可以用特殊的近似去解决。
3.2 BP二分图算法
GED问题实际上像上面所说的转换成一个匹配问题,如果有了匹配的方案之后,我们就可以快速的算出当前匹配的编辑距离,但是这个前提是我们已经得到了所有点的匹配,但是枚举这些点的匹配的复杂度是指数级别的,因此BP算法通过将问题简化来试图优化时间复杂度。
BP算法将图看成了一个二分图,左边的点代表源图中的点,右边的点代表目标图中的点,如果左边的点与右边的点匹配则我们视作左边的点映射到了右边的点,如果我们已知了这个二分图的匹配那么就可以得到全图的映射。但是由于二分图匹配问题只能反映点的信息,因此初始的BP算法是一个只考虑点信息的算法。
BP矩阵可以看成一个(n+m)*(n+m)的矩阵,由于点可能被删除或者添加,因此给两个图都补上虚假的空点,如果一个源图中的点i与目标图中的点j发生匹配,则需要将i的点属性转换成点j的属性,也就是替换操作
的代价,对于源图中的点如果与空点匹配则代表该点被删除
,则需要删除的代价,对于左边的空点与目标图中的点匹配则代表该点被新增
,则需要插入点的代价。因此我们这样就得到了BP矩阵,再利用匈牙利算法(时间复杂度为O(n3) 去得到当前BP矩阵的最佳完美匹配。但这样不考虑边信息的算法明显无法得到最优解,因此也有大量的论文通过将边信息加入来改变BP矩阵,但并不能从根本上解决问题,因此BP算法比起其他近似方法有明显的速度优势但效果也较差。
3.3 QUBO近似算法
QAP本身是一个有限制的二次优化问题,但是我们可以对QAP的硬限制变成软限制而调整成一个QUBO问题,通过软限制来限制每行每列都只有一个1,来通过市面上大量的QUBO求解器去求解。
在转换成QUBO问题后我们就可以用很多普遍的QUBO高效求解器去进行求解,比如IPFP,SB算法,pyqubo等等[引用]。
但是转换成QUBO也会有部分问题比如对于不同的惩罚项会带来极大的效果差别,惩罚项过小会导致收敛到不可行解,惩罚项过大会导致收敛到可行但较差解,也同样也有部分论文去研究如何设置惩罚项,但是由于从QAP转到QUBO本身的搜索空间的变大导致问题搜索难度增加,效果都不是非常理想,但对于BP算法来说已经有较大的提升。
04 总结
本文阐述了GED问题的定义以及应用,探究对比了当前市面上部分主流求解方式,并对其遇到的问题已经优势点进行了分析,在GED问题上如何更好的表示边与点的关系,如何通过QAP问题作为中间步骤得到更好的解,如何利用深度学习图神经网络得到高效的求解模型,都是GED问题未来发展的探究方向。
欢迎大家订阅“量子计算HiQ”,查看更多论文分享和学术活动信息