基尔霍夫矩阵&矩阵树定理学习笔记

背景:

好多东西没学。
勇士被快船惊天大逆转!!!
快船 N B NB NB
紧接着下午打球水杯被搞烂了 . . . ... ...

正题:

P a r t 1 Part1 Part1行列式:

对于一个 n ∗ n n*n nn的矩阵 A A A
p p p枚举列的全排列, τ ( p ) τ(p) τ(p)表示排列 p p p的逆序对的个数。
则其行列式为 d e t A = ∑ p ( − 1 ) τ ( p ) ∏ i = 1 n a i , p i det_A=\sum_p(-1)^{τ(p)}\prod_{i=1}^na_{i,p_i} detA=p(1)τ(p)i=1nai,pi
那么这个东西有什么性质呢?

[ 1 ] [1] [1]
交换行和列,则行列式结果的符号取反。

这很显然,因为逆序对的奇偶性刚刚好相反。

[ 2 ] [2] [2]
两行或两列一样时,行列式结果为 0 0 0

这很显然,因为 p p p全部枚举过了,且一定枚举到相同的序列,而 i i i又会枚举相等,所以成立。

[ 3 ] [3] [3]
某一行或某一列乘上了 k k k,最后的结果也会乘 k k k

这很显然,你考虑每一行或每一列的贡献,一个 ∏ \prod 有且仅会被枚举 1 1 1次乘 k k k的数,每一次乘 k k k,因此你将这个 k k k提取出 ∑ \sum 外面即可,那就是刚刚好乘 k k k

[ 4 ] [4] [4]
某一行是另一行的 k k k倍或某一列是另一列的 k k k倍,最后的结果为 0 0 0

其实就是 [ 2 ] , [ 3 ] [2],[3] [2],[3]的结合体。你先提取出一个 k k k,那么就会存在某两行或某两列相等,那么结果就为 0 0 0了。

[ 5 ] [5] [5]
某一行加上另一行的 k k k倍或某一行列加上另一列的 k k k倍,最后结果的不变。当某一行加上另一行的k倍时,行列式不变。

证明:可以从求和式子的每一项的那一行的那个元素下手,
d e t det det求和式拆成两个 d e t det det求和式(就是把被加上 k k k倍的哪一行/列拆为原来的和新加的):
d e t 1 det_1 det1与原矩阵的行列式求法相同;
d e t 2 det_2 det2所代表的矩阵中有两行成比例,比例系数为 k k k,值为 0 0 0 (性质 [ 4 ] [4] [4])。
所以相比原来的行列式,值不变。

至此,行列式就结束了。

P a r t 2 Part2 Part2基尔霍夫矩阵&矩阵树定理:

不知道是不是基尔霍夫电流顶定律的那个人发明的?
这里的基尔霍夫矩阵可以用来求无向图生成树的个数。
对于一个无向图 G G G,它的生成树个数等于其基尔霍夫矩阵任何一个 N − 1 N-1 N1阶主子式的行列式的绝对值。
所谓的 N − 1 N-1 N1阶主子式就是对于一个任意的一个 r r r,将矩阵的第 r r r行和第 r r r列同时删去得到的新矩阵。
基尔霍夫矩阵的一种求法(矩阵树定理): 基 尔 霍 夫 矩 阵 K = 度 数 矩 阵 D − 邻 接 矩 阵 A 基尔霍夫矩阵K=度数矩阵D-邻接矩阵A K=DA

解释一下:
度数矩阵 ( i , i ) (i,i) (i,i)表示 i i i这点的度,其余点均为0。
邻接矩阵 ( i , j ) (i,j) (i,j)表示 ( i , j ) (i,j) (i,j)连的边数;特别的,若 i = j i=j i=j,则为 0 0 0

P a r t 3 Part3 Part3快速求行列式:

首先对于这样一个矩阵:
在这里插入图片描述
注意到是一个上三角矩阵(左下的值为 0 0 0,而右上有值)。
其行列式的值为对角线的乘积(同理下三角矩阵)。
因为只有 p p p的排列为 1234 1234 1234 时, ∏ \prod{} 后才没有 0 0 0出现,才对结果有贡献。

又因为性质 [ 5 ] [5] [5],所以采用高斯消元的方法,把矩阵消为一个上三角矩阵后,然后求出对角线的积,便是该矩阵的行列式的值。
复杂度 Θ ( n 3 ) \Theta(n^3) Θ(n3)

P a r t 4 Part4 Part4应用:

我们可以用上述方法求解基尔霍夫矩阵,就能解决一些问题:
[ 1 ] [1] [1]
求无向图生成树的个数。

[ 2 ] [2] [2]
内向树:树上的边是由儿子指向父亲;
外向树:树上的边是由父亲指向儿子。
若求内向生成树的个数,则 D i , i D_{i,i} Di,i表示入度即可;
若求外向生成树的个数,则 D i , i D_{i,i} Di,i表示出度即可。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值