【数据结构】探究邻接矩阵A^2的意义

  • Post author:
  • Post category:其他




在无权图中,邻接矩阵A^m^的意义就是表示从i到j有多少条长度为m的可行路径。

假设有矩阵
A = \left[ {\begin{array}{*{20}{c}} 0&1&1&0&1\\ 1&0&0&1&1\\ 1&0&0&1&0\\ 0&1&1&0&1\\ 1&1&0&1&0 \end{array}} \right]{A^2} = \left[ {\begin{array}{*{20}{c}} 3&1&0&3&1\\ 1&3&2&1&2\\ 0&2&2&0&2\\ 3&1&0&3&1\\ 1&2&2&1&3 \end{array}} \right]
,那么这个新的矩阵
{A^2}
的每一个点(i,j)又有什么意义呢?

我们取一个点来看,假设是第一行第四列这个点(1,4),这个点是由矩阵A的第一行{0,1,1,0,1}和矩阵A的第四列{0,1,1,0,1}计算得到的。

第一个矩阵的第一行的每一个点的坐标是(1,1),(1,2),(1,3),(1,4),(1,5)

第二个矩阵的第四列的每一个点的坐标是(1,4),(2,4),(3,4),(4,4),(5,4)

从中我们可以得到一个规律:假设第一个矩阵的每一个点的坐标是(i,k),那么第二个矩阵的每一个点的坐标是(k,j),并且每一个点的意义均为两个定点之间是否有边。所以如果当第一个矩阵中的(i,k)为1,第二个矩阵中的(k,j)也为1,那么最后计算得到的结果也为1,也就表示从i到j有边。

以此类推,将第一行中的每一个点和第四列中的每一个点运算后相加,也就得到了有多少条从i到j的可行路径。并且由于每个点都是从i到k,然后再从k到j,所以每条路径的长度均为2。


所以
{A^2}
的意义就是表示从i到j有多少条长度为2的可行路径。

另外我们也可以得到
{A^m}

的意义就是表示从i到j有多少条长度为m的可行路径

,但是这个结论

只适用于无权图

,因为在有权图中,邻接矩阵是用来存储边的权值的,也就失去了无权图中仅表示是否有边的这个意义了。



版权声明:本文为qq_45879198原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。