浅析图的邻接矩阵进行平方运算的含义

某一天,我在一本书上看到了一个问题,大意是实现矩阵的平方运算,并分析平方运算后邻接矩阵中元素值的含义,想了好久没弄明白。今天上课闲来无数,在纸上把这个问题模拟了一下,没想到却发现了其中的巧妙。

首先我们来构造一个图如下:












                                              图1.1

                  0  1  0  1                       2  1  2  1

矩阵 A =   1  0  1  1   矩阵A^2 =  1  3  1  2

                  0  1  0  1                       2  1  2  1

                  1  1  1  0                       1  2  1  3


现在我们来进行矩阵乘法,这是A^2的第一行

a[1][1] = a[1][1]*a[1][1] + a[1][2]*a[2][1] + a[1][3]*a[3][1] + a[1][4]*a[4][1] = 2

a[1][2] = a[1][1]*a[1][2] + a[1][2]*a[2][2] + a[1][3]*a[3][2] + a[1][4]*a[4][2] = 1

a[1][3] = a[1][1]*a[1][3] + a[1][2]*a[2][3] + a[1][3]*a[3][3] + a[1][4]*a[4][3] = 2

a[1][4] = a[1][1]*a[1][4] + a[1][2]*a[2][4] + a[1][3]*a[3][4] + a[1][4]*a[4][4] =1

我们来分析第一个式子,

a[1][1] = 0,所以a[1][1]*a[1][1] = 0;

a[1][2] = 1,a[2][1] = 1,所以a[1][2]*a[2][1] = 1;

a[1][3] = 0,所以a[1][3]*a[3][1] = 0;

a[1][4] = 1,a[4][1] = 1,所以a[1][4]*a[4][1] = 1;

整个式子相加为2,不知道大家看到这里有没有发现什么- -。

因为矩阵乘法的原因,两个相乘时,第一个的纵坐标等于第二个的横坐标,例如a[1][2]*a[2][1]就相当于从1“走”到2,再从2“走”到1,而且只有当两者都为1,即存在这两条的时候这个乘积才会为1,那么就表示从1出发到达2的路径+1。

其实矩阵A的含义可以这样解释,a[i][j]表示的是,从点i出发走一步到点j有多少条路径,不用多说要么为1,要么为0。而乘上一个矩阵A就相当于步数+1。现在我们来分析A^2这个矩阵的含义,a[i][i]表示的是,从点i出发走2步到达点j有多少条路径。那么是否可以表示为A^3,A^4,...,A^n这样的形式呢。

我们看一下A^3中的两次次运算

a^3[1][1] = a^2[1][1]*a[1][1] + a^2[1][2]*a[2][1] + a^2[1][3]*a[3][1] + a^2[1][4]*a[4][1] = 2*0 + 1*1 + 2*0 +1*1 = 2

a^3[1][2] = a^2[1][1]*a[1][2] + a^2[1][2]*a[2][2] + a^2[1][3]*a[3][2] + a^2[1][4]*a[4][2] = 2*1 + 1*0 + 2*1 + 1*1 = 5

这个其实就是在走两步的基础上再走一步。


最后,总结下A^n中,A[i][j]表示的是从i出发走到点j走n步,有多少种走法。

如若有错误,还请指出。。。



详细参考资料http://pan.baidu.com/s/1hqxPIlu


  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值