浅谈矩阵树定理及其应用(Matrix-Tree)

矩阵树定理

用途:解决生成树(树形图)计数问题。

前置知识

矩阵初等变换

  1. 交换两行/两列,\(Det\)\(-1\)
  2. 某一行乘\(c\)\(Det\)\(c\)

行列式

高斯消元求行列式

柯西-比内公式

有一个\(n\cdot m\)的矩阵\(A\)\(m\cdot n\)的矩阵\(B\),令\(n\le m\)
\(Det(AB)=\sum\limits_{S}Det(A_S)\cdot Det(B_S)\),其中\(S\)表示集合{1,2,3...m}的一个大小为\(n\)的子集合,\(A_S\)表示\(A\)保留\(S\)中的\(n\)列的子矩阵,\(B_S\)表示保留\(S\)中的\(n\)行的子矩阵

结论

无向图,度数矩阵-邻接矩阵,随便求一个主子式
外向树,入度-邻,去掉根所在的那一行一列
内向树,出度-邻,去掉根所在的那一行一列
\(K\) 为度数矩阵 \(-\) 邻接矩阵,

\[Det(K)=\sum\limits_{T}\prod_{e_i\in T} w_{e_i} \]

无向无边权图的矩阵树证明

\(L\) 为基尔霍夫矩阵(拉普拉斯矩阵):无向图的度数矩阵\(-\)邻接矩阵

  1. \(L\)中行的和为\(0\),列的和为\(0\)
  2. \(Det(L)\)\(0\)(高斯消元到最后一行只有一个数可以非零,并且这一行和为 \(0\) )

\(L_{1,1}\)\(L\)去掉第\(1\)行第\(1\)列的主子式,\(Det(L_{1,1})\)就是生成树个数
下面的大点、小点均表示这条边连接的两个点的标号大小
构造关系矩阵\(B\):

\[ B_{i,j}=\left\{ \begin{aligned} 1 & & {v_i\ 与\ e_j\ 相连,v_i\ 标号比\ e_j连接的另一点小}\\ -1 & & {v_i\ 与\ e_j\ 相连,v_i\ 标号比\ e_j连接的另一点大}\\ 0 & &{otherwise}\\ \end{aligned} \right. \]

posted @ 2022-01-16 19:37  Lumos壹玖贰壹  阅读(203)  评论(0编辑  收藏  举报