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

背景:

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

正题:

P a r t 1 Part1 行列式:

对于一个 n n n*n 的矩阵 A A
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}
那么这个东西有什么性质呢?

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

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

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

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

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

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

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

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

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

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

至此,行列式就结束了。

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

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

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

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

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

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

P a r t 4 Part4 应用:

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

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

猜你喜欢

转载自blog.csdn.net/zsyz_ZZY/article/details/89335391
今日推荐