码迷,mamicode.com
首页 > 编程语言 > 详细

子图同构算法系列(1)

时间:2015-02-07 00:28:18      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:

取自 1976 Ullmann Part2

Naive alogrithm for Subgraph Isomorphism.

1. 如何判定子图同构。

  有个Gα和Gβ, Gα有pa个点,qa条边,Gβ有pb个点,qb条边。A是Gα的邻接矩阵,相应的B是Gβ的邻接矩阵。那么如何判断同构呢。设A是子图,B是原图。那么有一个A的点到B的点的映射。这个映射的模式叫做M。M是pa行,pb列的。M有一个性质就是每行只有一个1,每列至多一个1。这个就是一个A中的点到B中的点的一个映射。我们定义一个C = [cij] = M(MB)T。如果在图A中i和j有边能推导出图C中i和j有边。那为什么是对的呢。因为M是映射,MB就是把B中被映射的点按照顺序抽出来在和B点对应。 M中第i行j列为1的意义是A的第i个点对应,B的第j个点。MB中第i行j列为1的意义是现在A的第i个点对应到的点到B的第j个点有一条边。把这个矩阵转置在乘以M。C就是B中和A对应的点和在B中的边全部抽出来组成的图。

  那么如果aij = 1能推导出cij = 1。A就是B的一个子图的同构。

子图同构算法系列(1)

标签:

原文地址:http://www.cnblogs.com/Skullpirate/p/4278188.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!