设A(n x n)为一个图的邻接矩阵,则a(i,j)表示两个点之间是否连通(1:连通,0:不连通)。那么A的k次方中的每一个a(i,j)表示点i和j之间长度为k的路的条数。假设一个图能划分成若干个子图,每个子图之间不相连,那么A^1+A^2+...+A^n能表示该图的连通性。为0则不可能在一个子图,为非0则可以在一个子图。
如下图:
其邻接矩阵为:
0 1 0 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0 0 1
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 1 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1
0 0 0 0 1 0 0 0 1 0
A的平方为
1 0 1 0 0 0 0 0 0 0
0 2 0 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 1
0 0 0 0 2 0 0 0 1 0
0 0 0 0 0 1 0 1 0 0
0 0 0 0 0 0 2 0 0 0
0 0 0 0 0 1 0 1 0 0
0 0 0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 0 0 2
可以看到,对角线元素部位零,其几何意义是1点到2点再回到1点
A^1+A^2+A^3+...+A^10=
31 31 31 0 0 0 0 0 0 0
31 62 31 0 0 0 0 0 0 0
31 31 31 0 0 0 0 0 0 0
0 0 0 55 55 0 0 0 33 88
0 0 0 55 143 0 0 0 88 88
0 0 0 0 0 31 31 31 0 0
0 0 0 0 0 31 62 31 0 0
0 0 0 0 0 31 31 31 0 0
0 0 0 33 88 0 0 0 55 55
0 0 0 88 88 0 0 0 55 143
就能很方便地求出子图了。为0的表示肯定不能连通。