改进模拟退火法应用于图匹配(一)
很久没有写博客了,主要还是因为太懒啦。哈哈哈!最近想着把实习做的内容写下来,和对这方面内容感兴趣的大家一起学习学习。 好了, 其他的话就不多说了,直接步入正题啦。 下面的内容按图简介,图匹配简介,改进模拟退火法简介,代码展示,算例展示等依次展开。
剩下的部分等到第二篇再写啦,这周末没写完,下周末再继续啦。
图简介
再讲图匹配(Graph matching)之前, 我们首先对图(Graph)进行基础的了解。 图是由节点(Vertex)以及边(Edge)组成的结构,可以用来代表各种物体,因此广泛应用于生物信息学,化学信息学以及计算机视觉等领域。 以下是有关图的几个基础概念的说明:
-
图可以表示为 G = ( V , E ) G = (V, E) G=(V,E),其中V为该图节点的集合,记该图共有N个节点,则V可表示为 $V = {1,…, N}。而E则是各对节点之间边的集合,表示为 E ⊂ V × V E \subset V \times V E⊂V×V 。 每一个图都可以用一个邻接矩阵(Adjacency matrix)来表示,此处我们用A来表示该矩阵。首先A是一个大小为 N × N N\times N N×N 的矩阵, 其中若 A i j = 1 A_{ij} = 1 Aij=1,则表示节点i与节点j之间有边存在,反之,则 A i j = 0 A_{ij} = 0 Aij=0.
-
若图的每条边存在相对应的权重(Weight),则我们称该图为加权图(Weighted Graph)。权重通常是正实数,不过也可以是向量,例如曲线的坐标,这就意味着在相对应的两个节点之间存在一条曲线,而非直线。
-
图可以分为有向图(Directed Graph)和无向图(Undirected Graph)。如为无向图,则 A i j = A j i A_{ij} = A_{ji} Aij=Aji, 若不相等则为有向图。 在该博客中,讨论的图均是无向图。
-
图匹配指的是两张图(G, H)节点之间映射,可以表示为 f : V G → V H f : V^{G} \rightarrow V^{H} f:VG→VH。 如果两张图有相同的节点数 N N N且 f f f是双射,则该映射关系为一一对应(one-to-one)。该映射关系可以用一个置换矩阵(Permutation Matrix)来表示。所有匹配所对应的置换矩阵的集合可以表示为 : P = { P ∈ { 0 , 1 } N × N : P 1 N = 1 N , P T 1 N = 1 N } \mathcal{P} = \{P \in \{0, 1\}^{N \times N} : P1_{N} = 1_{N}, P^{T}1_{N} = 1_{N}\} P={ P∈{ 0,1}N×N:P1N=1N,PT1N=1N} ,其中 1 N 1_{N} 1N为有 N N N个1的列向量。
图匹配简介
接下来就是对图匹配做一个介绍,为了比较两张图之间的差异, 我们首先要做的第一件事就是进行图匹配,也就是将两张图之间相应的节点一一对应。 在上面的图简介中我们提到过,两张图之间的匹配关系可以由相对应的置换矩阵 P P P所表示。若 P i j = 1 P_{ij} = 1 Pij=1,则意为图 G G G中的节点 i i i对应于图 H H H中的节点 j j j,反之,则为0。如果两张图 G G G和 H H H的节点总数不同,我们就需要添加‘’多余的点(Dummy Node)‘’到节点数较少的那张图中,使得两张图的节点数相同。Dummy Node指的是不与图中任何节点之间存在边的节点。此外,在该博客中我们所考虑的图均是加权图,因此我们用 W G WG WG 和 W H WH WH分别指代对应图中的加权邻接矩阵(Weighted Adjacency Matrix),也就是邻接矩阵中1由边所对应的权重进行替换。我们可以将两张图之间的差异由以下公式进行表示: D i s t a n c e = m i n P ∈ P ∣ ∣ W G − P ∗ W H ∗ P T ∣ ∣ F 2 Distance = min_{P \in \mathcal{P}}||WG - P*WH*P^{T}||_{F}^{2} Distance=minP∈P∣∣WG−P∗WH∗PT∣∣F2,其中 ∣ ∣ ∣ ∣ F ||\quad ||_{F} ∣∣∣∣F指的是Frobenius范数。公式中的范数可以替换成其他范数。
将两张图 G G G和 H H H进行匹配,我们首先可以先固定图 G G G中节点的顺序,然后改变图 H H H中的节点的顺序,使得两张图之间的差异最小。在这里,我们用改良后的模拟退火法来求解图匹配问题。求解的顺序由如下:
- 步骤一 : 如有需要,添加dummy nodes到节点数较少的图中,使得两张图的节点数相同。
- 步骤二 :选择一种对边的加权方式,然后计算两张图相对于的加权邻接矩阵。
- 步骤三 : 使用改良后的模拟退火法来找寻最优解。
4种加权邻接矩阵
在这里,我们介绍下4种对边的加权方式,也就是4种加权邻接矩阵。在图匹配问题中,选择不同的加权方式可能会影响求解的速度以及结果的精度。为了更好的解释这4种加权邻接矩阵,我们以下图为例。此外,分别用 W G 1 WG1 WG1, W G 2 WG2 WG2, W G 3 WG3 WG3 和 W G 4 WG4 WG4来指代该图 G G G的4种加权邻接矩阵。
- 第一种 : 该种加权邻接矩阵就是邻接矩阵。如上图所示,我们可以看到节点1与节点2相连,此外,节点1与节点3之间并没有直接的路径存在。因此,我们可以得到 W G 1 ( 1 , 2 ) = 1 WG1(1, 2) = 1 WG1(1,2)=1以及 W G 1 ( 1 , 3 ) = 0 WG1(1, 3) = 0 WG1(1,3)=0。
- 第二种 : 我们将边的长度作为一种加权方式,则在该种加权邻接矩阵中所有不为0的值就是对应边的长度。上图中,我们可以看到节点1与节点5之间所存在的边的长度为 5 \sqrt{5} 5,则 W G 2 ( 1 , 4 ) = 5 WG2(1, 4) = \sqrt{5}