基尔霍夫矩阵

基尔霍夫矩阵

定义:如果图D有总共N个点,那么图D的基尔霍夫矩阵D可以表示为:
1 $ D_{ij} = degree(i) $degree:图的读书
2 $ D_{i,j} = −cnt(i, j)$cnt :两点之间的边数

性质

引理 : |D| = 0 证:性质:每一行的和 = 0,那么根据行列式恒等变换,全部加到第一列,就是0
引理 : 如果图G不连通,任意余子式(|M_{ii}| = 0)
引理:如果图G是一棵树,那么任意余子式(|M_{ii}| = 1)
引理:如果图G是一棵树,那么给矩阵(|M_{11}|)加上1之后,余子式(M_{11} = 1)
对于后两条的证明:若我们节点数小n的树都满足
用数学归纳法,递归下去,消掉一个根节点后(M_{11})子树的根节点度数都要+1,最后对角线全部加+1,根据行列式恒等变换就可以拆除一个单位矩阵,和一个值为0的图矩阵

矩阵树定理

一张图的生成树个数就是,任意一主余子式的值
例子:求下面4点完全的生成树个数

那么得到结论,完全图的生成树个数为点数n的n-2次方
那么问题来了,如何计算行列式的值呢

计算行列式的值

根据性质:行列式的恒等变换
把行列式消成上三角行列式
然后,你就会发现对行列式的值贡献的有且只有对角线的乘积...
复杂度(O(n^3))

原文地址:https://www.cnblogs.com/sssy/p/9159841.html