矩阵树定理
矩阵树定理与生成树
1.矩阵树定理
矩阵树定理用矩阵刻画了一个图的生成树个数
设 \(G\) 是一个 \(n\) 个点 \(m\) 条边的无向图,定义矩阵:
其中 \(deg_i\) 表示点 \(i\) 的度数, \(E_{i,j}\) 表示点 \(i\) 与点 \(j\) 之间的边数。
那么有图 \(G\) 的生成树个数为:
1.1 证明
我们从组合角度出发,给出一个没有那么严谨的证明,使用Cauchy-Binet公式。
我们只说明 \(k = 1\) 时的情况,
相信读者能够理解。
定义矩阵 \(L_{m,n}\):对于第 \(i\) 列,设图中第 \(i\) 条边为 \((u_i, v_i)\),令 \(L_{u_i, i} = 1, L_{v_i, i} = -1\)。(读者或许会迷惑 \(u_i\) 与 \(v_i\) 的顺序,事实上你看完证明会发现这无关紧要)
同时我们简记 \(\det L(G)_{[n] \setminus \{k\}, [n] \setminus \{k\}}\) 为 \(A\),即 \(L(G)\) 的一个余子式。
于是有 \(L(G) = L * L^{\top}\),设 \(L\) 删去第一行后为 \(B\)。
由Cauchy-Binet公式:
我们下面说明:当 \(k_1, k_2, \dots, k_{n-1}\) 构成一棵生成树时此贡献为 \(1\),否则为 \(0\)。
-
反面,加入不是一颗树,那么则有环,且除环上的边外无别的边,我们单独考虑涉及的点与边。取出这个子矩阵,利用行列式的性质,把所有行加到第一行,使得第一行全部为零,于是整个就为 \(0\)。
-
正面,我们建出这棵树,每条边对应他下面那个点,而因为我们删去了 \(L\) 的第一行,所以所有与 \(1\) 相连的边就确定了,情况存在且唯一,平方后即为 \(1\)。
就证完了。
2.1 理解
我们体会它,描绘一下它的证明过程。
我也真是醉了,网上基本找不到对带权矩阵树定理的描述。
关键在于我们取出 \(B\) 的一个子矩阵,倘若非生成树,那么结果必为 \(0\),可是,当他是生成树时,我们在求什么?
关键在于我们对于上面时,每条边设了一个 \(1\) 和一个 \(-1\),倘若改成别的数呢?
结论:对于每条边 $(i, j) 把 $ \(E_{i, j}\) 改成此边的边权,用矩阵树定理,就可以求:
前提:\(<W, +, \times>\) 构成一个环。

浙公网安备 33010602011771号