行列木定理(matrix-tree theorem)とは、ループのないグラフの全域木の個数が、Laplacian 行列 $L$ から第 $x$ 行と第 $x$ 列を除いた行列の行列式に等しく、$L$ の $0$ でない固有値の積を頂点数 $n$ で割ったもの $\frac1n\mu_2\cdots\mu_n$ にも等しいという定理である。辺に向きを付けた接続行列 $N$ により $L=NN^{\mathsf T}$ と書き、行列式の Cauchy–Binet の公式を使うと、$n-1$ 本の辺の組ごとの小行列式が全域木なら $\pm1$、そうでなければ $0$ になることから証明できる。$L$ の余因子はすべて等しい。完全グラフに当てはめると Cayley の公式 $n^{n-2}$ が得られる。隣接行列や符号なし Laplacian の小行列式では全域木は数えられない。
前提知識: 全域木, Laplacian行列, 行列式, 木
行列木定理(matrix-tree theorem)とは、グラフの 全域木 の個数が、Laplacian行列 から 1 つの行と同じ番号の列を除いた行列の行列式に等しいという定理である。Kirchhoff の行列木定理とも呼ぶ。全域木を 1 つずつ数え上げる代わりに、行列式という多項式時間で計算できる量で全域木の個数が求まる。さらに、全域木の個数は Laplacian 行列の $0$ でない固有値の積を頂点の数で割ったものにも等しい。
この記事では、行列式についての Cauchy–Binet の公式を証明し、それを使って行列木定理を完全に証明する。全域木 の記事は行列木定理を主張と例で紹介しているが証明していない。この記事はその証明を与える。応用として、完全グラフ $K_n$ の全域木が $n^{n-2}$ 個であること(Cayleyの公式)を導く。
この記事では、グラフ $G=(V,E)$ は有限で無向とし、多重辺を許す。頂点集合を $V=\{1,\dots,n\}$、辺の本数を $m$ とする。ループはどの全域木にも含まれないので、ループがあれば除いて考える。以下、グラフはループをもたないとする。平行な辺は区別するので、全域木は辺の集合 $F\subset E$ として数える。全域木の個数を $\tau(G)$ と書く。
Laplacian 行列 $L=D-A$ と、辺に向きを付けた向き付き接続行列 $N$($n\times m$ 行列で、辺 $e$ が $u$ から $w$ へ向くとき $N_{ue}=1$、$N_{we}=-1$、ほかは $0$)の定義と、関係 $L=NN^{\mathsf T}$ は Laplacian行列 の記事の命題「Laplacian 行列の分解と 2 次形式」による。
行列 $M$ から第 $x$ 行と第 $y$ 列を除いた行列を $M(x|y)$ と書き、$M[x]:=M(x|x)$ とする。$(-1)^{x+y}\det M(x|y)$ を $M$ の $(x,y)$ 余因子 という。
$G$ をループをもたない(多重辺は許す)グラフとし、$L$ をその Laplacian 行列、$0=\mu_1\le\mu_2\le\dots\le\mu_n$ をその固有値とする。このとき、任意の $x,y\in V$ について
$$
\tau(G)=\det L[x]=(-1)^{x+y}\det L(x|y)=\frac1n\,\mu_2\mu_3\cdots\mu_n
$$
である。とくに $L$ の余因子はすべて等しい。
$\tau(G)$ は $G$ の全域木の個数であり、この定理は全域木の数え上げを行列式や固有値の計算に帰着させる。頂点を 1 つ選んで $L$ から対応する行と列を除いた小行列の行列式が答えになり、どの頂点を選んでもよい。完全グラフに適用すると Cayley の公式が得られる。
この形の主張は BH11 Proposition 1.3.4(pp. 5–6)にあり、同書は第 2 の証明として Cauchy–Binet の公式による証明の概略を与えている(p. 6)。同書によると、この結果は Kirchhoff の電気回路の論文に暗に含まれており、行列木定理として知られている(p. 6)。$G$ が連結でないときは、全域木はなく、$\mu_2=0$(Laplacian行列 の定理「固有値 $0$ の重複度」)なので、等式に現れる量はすべて $0$ になる。
$K_4$ から辺 $12$ を除いたグラフ $G$ を考える。頂点 $1,2$ の次数は $2$、頂点 $3,4$ の次数は $3$ で
$$
L=\begin{pmatrix}2&0&-1&-1\\0&2&-1&-1\\-1&-1&3&-1\\-1&-1&-1&3\end{pmatrix},\qquad
\det L[1]=\det\begin{pmatrix}2&-1&-1\\-1&3&-1\\-1&-1&3\end{pmatrix}=8
$$
である。実際、5 本の辺から 3 本を選ぶ $10$ 通りのうち、閉路 $\{13,34,41\}$ と $\{23,34,42\}$ の 2 通りを除く $8$ 通りが全域木である。固有値は $0,2,4,4$ で、$\frac14\cdot2\cdot4\cdot4=8$ とも一致する。
$p\times q$ 行列 $A$ と、列の添字の部分集合 $S\subset\{1,\dots,q\}$ について、$A$ の $S$ に属する列だけを番号順に並べた行列を $A_{\bullet S}$、行について同様にしたものを $A_{S\bullet}$ と書く。
$A$ を $p\times q$ 行列、$B$ を $q\times p$ 行列とする。$p\le q$ なら
$$
\det(AB)=\sum_{S}\det A_{\bullet S}\,\det B_{S\bullet}
$$
である。和は $\{1,\dots,q\}$ の $p$ 元部分集合 $S$ すべてにわたる。$p>q$ なら $\det(AB)=0$ である。
$A$ の第 $k$ 列を $a_k$ とする。$AB$ の第 $j$ 列は $\sum_{k=1}^qB_{kj}\,a_k$ である。行列式は列について多重線形なので
$$
\det(AB)=\sum_{k_1,\dots,k_p}B_{k_11}B_{k_22}\cdots B_{k_pp}\,\det(a_{k_1},a_{k_2},\dots,a_{k_p})
$$
であり、和は $\{1,\dots,q\}$ の元の列 $(k_1,\dots,k_p)$ すべてにわたる。行列式は交代的なので、$k_j$ に重複がある項は $0$ である。とくに $p>q$ なら重複のない列はなく、$\det(AB)=0$ である。
$p\le q$ とし、重複のない列 $(k_1,\dots,k_p)$ を考える。その値の集合を $S=\{s_1< s_2<\dots< s_p\}$ とすると、$k_j=s_{\sigma(j)}$ となる $\{1,\dots,p\}$ の置換 $\sigma$ がただ 1 つある。逆に $S$ と $\sigma$ から重複のない列が 1 つ決まる。列の並べ替えで行列式は置換の符号倍になるので $\det(a_{k_1},\dots,a_{k_p})=\operatorname{sgn}(\sigma)\det A_{\bullet S}$ である。よって
$$
\det(AB)=\sum_S\det A_{\bullet S}\sum_{\sigma}\operatorname{sgn}(\sigma)\prod_{j=1}^pB_{s_{\sigma(j)}\,j}
$$
である。$B_{S\bullet}$ の $(i,j)$ 成分は $B_{s_ij}$ なので、内側の和は $B_{S\bullet}$ の行列式の Leibniz の展開式 $\det M=\sum_\sigma\operatorname{sgn}(\sigma)\prod_jM_{\sigma(j)j}$ そのものであり、$\det B_{S\bullet}$ に等しい。$\square$
公式の主張は BH11 Proposition 1.3.5(p. 6)にある。$p=q$ なら和は $S=\{1,\dots,p\}$ の 1 項だけで、積の行列式の公式 $\det(AB)=\det A\det B$ になる。$p=1$ なら $AB$ は $1\times1$ 行列で、公式は内積 $\sum_kA_{1k}B_{k1}$ を表す。行列木定理では $B=A^{\mathsf T}$ として使い、
$$
\det(AA^{\mathsf T})=\sum_S(\det A_{\bullet S})^2
$$
の形になる。
$N$ から頂点 $x$ の行を除いた $(n-1)\times m$ 行列を $N_x$ とする。辺の集合 $S\subset E$ で $|S|=n-1$ のものについて、$(N_x)_{\bullet S}$ は $(n-1)$ 次の正方行列である。
$x\in V$、$S\subset E$、$|S|=n-1$ とする。
2 の証明.$(V,S)$ は $n$ 頂点で $n-1$ 本の辺をもつので、全域木 の記事の命題「木の判定」により、木でなければ連結でない。$(V,S)$ の連結成分のうち $x$ を含まないものの頂点集合を $C$ とする($C\neq\emptyset$)。$C$ の頂点の行はすべて $(N_x)_{\bullet S}$ に残っている。$e\in S$ の列で、$C$ の行の和 $\sum_{v\in C}N_{ve}$ を考える。$e$ の両端がともに $C$ にあれば $1+(-1)=0$、両端とも $C$ になければ $0$ である。$C$ は $(V,S)$ の連結成分なので、$S$ の辺で一端だけが $C$ にあるものはない。よって $C$ の行の和は零ベクトルで、行が線形従属なので $\det(N_x)_{\bullet S}=0$ である。
1 の証明.$n$ についての帰納法で示す。$n=1$ なら $S=\emptyset$ で、$0$ 次の行列の行列式は $1$ である。$n\ge2$ とする。$T=(V,S)$ は木なので、Cayleyの公式 の記事の補題「葉の存在と葉の付け外し」の 1 により葉(次数 $1$ の頂点)を 2 つ以上もち、そのうち $x$ でないもの $v$ がある。$v$ に接続する $S$ の辺はただ 1 本 $e$ だけなので、$(N_x)_{\bullet S}$ の $v$ の行は、$e$ の列の成分 $N_{ve}=\pm1$ 以外が $0$ である。この行について余因子展開すると
$$
\det(N_x)_{\bullet S}=\pm\det M
$$
となる。ここで $M$ は $(N_x)_{\bullet S}$ から $v$ の行と $e$ の列を除いた行列であり、それは木 $T-v$(頂点集合 $V\setminus\{v\}$、辺集合 $S\setminus\{e\}$。同補題の 2 により木である)の、同じ向きの接続行列から $x$ の行を除いたものに等しい。帰納法の仮定により $\det M=\pm1$ なので、$\det(N_x)_{\bullet S}=\pm1$ である。$\square$
$(N_x)_{\bullet S}$ の行列式の符号は、辺の向きや番号の付け方で変わるが、2 乗すれば $1$ である。この補題は BH11 の第 2 の証明(p. 6)で使われている事実を、証明を付けて述べたものである。
段 1($\tau(G)=\det L[x]$).$L=NN^{\mathsf T}$ の第 $x$ 行と第 $x$ 列を除くと、左の因子から $x$ の行を、右の因子から $x$ の列を除くことになるので $L[x]=N_xN_x^{\mathsf T}$ である。thm-mtt-cauchy-binet を $A=N_x$($(n-1)\times m$ 行列)、$B=N_x^{\mathsf T}$ に使う。$n-1\le m$ なら
$$
\det L[x]=\sum_{|S|=n-1}\det(N_x)_{\bullet S}\,\det\bigl((N_x)_{\bullet S}\bigr)^{\mathsf T}=\sum_{|S|=n-1}\bigl(\det(N_x)_{\bullet S}\bigr)^2
$$
であり、lem-mtt-incidence-minor により各項は $(V,S)$ が全域木なら $1$、そうでなければ $0$ である。全域木の辺はちょうど $n-1$ 本(全域木 の記事の系「全域木の辺の本数」)なので、和は $\tau(G)$ に等しい。$n-1>m$ なら $\det L[x]=0$ であり、辺が $n-1$ 本未満のグラフは全域木をもたないので $\tau(G)=0$ である。
段 2(余因子はすべて等しい).$L$ の余因子行列($(y,x)$ 成分が $(x,y)$ 余因子である行列)を $\operatorname{adj}L$ とすると、$L\operatorname{adj}L=\operatorname{adj}L\,L=(\det L)I=0$ である($L\mathbf 1=0$ より $\det L=0$)。$G$ が連結でないとき、$\ker L$ は 2 次元以上(Laplacian行列 の定理「固有値 $0$ の重複度」)で $L$ の階数は $n-2$ 以下なので、$(n-1)$ 次の小行列式はすべて $0$ であり、余因子はすべて $0$ に等しい。$G$ が連結なとき、$\ker L$ は $\mathbf 1$ で張られる。$L\operatorname{adj}L=0$ から $\operatorname{adj}L$ の各列は $\ker L$ に属し、定数ベクトルである。また $\operatorname{adj}L\,L=0$ を転置すると、$L$ は対称なので $L(\operatorname{adj}L)^{\mathsf T}=0$ となり、$(\operatorname{adj}L)^{\mathsf T}$ の各列、すなわち $\operatorname{adj}L$ の各行も定数ベクトルである。各列も各行も定数なので、$\operatorname{adj}L$ の成分はすべて等しい。
段 3(固有値の積).固有多項式を $\varphi(t)=\det(tI-L)=t(t-\mu_2)\cdots(t-\mu_n)$ とすると、$t$ の 1 次の係数は $\varphi'(0)=(-1)^{n-1}\mu_2\cdots\mu_n$ である。一方、$tI-L$ の第 $j$ 列は $t$ について 1 次式で、その微分は単位ベクトル $e_j$ である。行列式は列について多重線形なので、積の微分と同様に
$$
\varphi'(t)=\sum_{j=1}^n\det\bigl(\text{$tI-L$ の第 $j$ 列を $e_j$ に替えた行列}\bigr)=\sum_{j=1}^n\det\bigl((tI-L)[j]\bigr)
$$
である(2 つ目の等号は第 $j$ 列についての余因子展開)。$t=0$ とおくと $\varphi'(0)=\sum_j\det(-L[j])=(-1)^{n-1}\sum_j\det L[j]$ であり、段 1 により各 $\det L[j]$ は $\tau(G)$ なので $\varphi'(0)=(-1)^{n-1}n\,\tau(G)$ である。2 つの表示を比べて $\mu_2\cdots\mu_n=n\,\tau(G)$ を得る。$\square$
段 3 は BH11 の第 1 の証明(p. 6)の最後の部分に従った。段 1 は、全域木の個数という組合せ的な量が、接続行列の小行列式の 2 乗の和として現れることを示している。
$n\ge1$ について、完全グラフ $K_n$ の全域木の個数は $n^{n-2}$ である。
$n=1$ なら全域木は辺のない $1$ 個で、$1^{-1}=1$ である。$n\ge2$ とする。$K_n$ の Laplacian 行列は $nI-J$($J$ はすべての成分が $1$ の行列)なので、$L[x]=nI_{n-1}-J_{n-1}$ である。$J_{n-1}$ は $\mathbf 1$ を固有値 $n-1$ の固有ベクトルにもち、$\mathbf 1$ に直交する $(n-2)$ 次元の部分空間の上では $0$ である。よって $nI_{n-1}-J_{n-1}$ の固有値は $n-(n-1)=1$(重複度 $1$)と $n$(重複度 $n-2$)であり、thm-mtt-main により
$$
\tau(K_n)=\det(nI_{n-1}-J_{n-1})=1\cdot n^{n-2}=n^{n-2}
$$
である。$\square$
これは BH11 p. 6 にある導き方で、同書はこの公式を Cayley に帰している。$K_n$ の全域木は頂点 $1,\dots,n$ の上のラベル付き木と同じものなので、この系は Cayleyの公式 そのものである。その記事は Prüfer 符号による全単射で、別の証明を与えている。固有値の形で書くと、$K_n$ の Laplacian 固有値は $0$ と $n$(重複度 $n-1$)なので $\frac1n\cdot n^{n-1}=n^{n-2}$ とも計算できる。
thm-mtt-main の $\tau(G)=\frac1n\mu_2\cdots\mu_n$ を使うと、スペクトルがわかっているグラフの全域木の個数がすぐに求まる。スペクトルは Laplacian行列 の記事の例と BH11 §1.4(pp. 8–10)による。
| グラフ | Laplacian スペクトル | $\tau(G)$ |
|---|---|---|
| 2 頂点を $k$ 本の平行辺で結ぶ | $0,\ 2k$ | $\frac12\cdot2k=k$ |
| 閉路 $C_n$ | $2-2\cos(2\pi j/n)$($j=0,\dots,n-1$) | $n$ |
| 完全二部グラフ $K_{p,q}$ | $0,\ p^{(q-1)},\ q^{(p-1)},\ p+q$ | $p^{q-1}q^{p-1}$ |
| 立方体グラフ $Q_3$ | $0,\ 2^{(3)},\ 4^{(3)},\ 6$ | $\frac18\cdot8\cdot64\cdot6=384$ |
| Petersen グラフ | $0,\ 2^{(5)},\ 5^{(4)}$ | $\frac1{10}\cdot32\cdot625=2000$ |
右肩の括弧の中の数は重複度である。1 行目は BH11 p. 6 の例である。$K_{p,q}$ の値は 完全二部グラフ の記事でも求めている。表の値は、計算機で $\det L[1]$ を計算しても一致した。
閉路 $C_n$ の全域木は、$n$ 本の辺から 1 本を除いたもので、ちょうど $n$ 個ある。したがって行列木定理から三角関数の恒等式
$$
\prod_{j=1}^{n-1}\Bigl(2-2\cos\frac{2\pi j}{n}\Bigr)=n^2
$$
が得られる。数え上げと固有値の両方の表示をもつことが、この定理の使い道の 1 つである。
辺 $e$ に重み $c_e$ があり、$L_c:=N\operatorname{diag}(c_e)N^{\mathsf T}$(重み付きの Laplacian 行列)とすると
$$
\det L_c[x]=\sum_{T}\ \prod_{e\in T}c_e
$$
(和は全域木 $T$ にわたる)である。$L_c[x]=(N_x\operatorname{diag}(c_e))N_x^{\mathsf T}$ に thm-mtt-cauchy-binet を使うと、各 $S$ の項は $\det(N_x)_{\bullet S}^2\prod_{e\in S}c_e$ になるからである。すべての $c_e$ が $1$ なら thm-mtt-main に戻る。重みを変数とみると、右辺は全域木の母関数である。
| 外す条件・替える条件 | 反例 | 成り立たなくなること |
|---|---|---|
| 除く行と列の番号をそろえ、そろえないときは符号 $(-1)^{x+y}$ を付ける | 道 $P_3$(辺 $12$、$23$)で $L(1\vert 2)$ | $\det L(1\vert 2)=-1$ で、$\tau=1$ と符号が合わない |
| 行と列を 1 つずつ除く | 任意のグラフ | $L\mathbf 1=0$ なので $\det L=0$ で、全域木の個数を表さない |
| Laplacian 行列を隣接行列に替える | 三角形 $K_3$ | $\det A[1]=\det\begin{pmatrix}0&1\\1&0\end{pmatrix}=-1$ で、$\tau(K_3)=3$ と一致しない |
| $D-A$ を $D+A$(符号なし Laplacian)に替える | $K_4$ | $\det(D+A)[1]=20$ で、$\tau(K_4)=16$ と一致しない |
| 固有値の積を $n$ で割る | $K_n$($n\ge2$) | 割らないと $\mu_2\cdots\mu_n=n^{n-1}$ で、$n^{n-2}$ の $n$ 倍になる |
各行の計算を確かめる。
1 行目:$L=\begin{pmatrix}1&-1&0\\-1&2&-1\\0&-1&1\end{pmatrix}$ から第 1 行と第 2 列を除くと $\begin{pmatrix}-1&-1\\0&1\end{pmatrix}$ で、行列式は $-1$ である。余因子 $(-1)^{1+2}\cdot(-1)=1$ は $\tau(P_3)=1$ に一致する。
2 行目:thm-mtt-main の $\det L[x]$ は $(n-1)$ 次の小行列式であり、$n$ 次の行列式 $\det L$ ではない。
3 行目:$K_3$ の全域木は 3 辺から 1 本を除いた 3 個である。隣接行列の小行列式は向き付き接続行列の分解 $L=NN^{\mathsf T}$ をもたないので、Cauchy–Binet の公式による数え上げができない。
4 行目:$(D+A)[1]=\begin{pmatrix}3&1&1\\1&3&1\\1&1&3\end{pmatrix}$ の行列式は $27+1+1-3-3-3=20$ である。二部グラフでは、一方の側の頂点で $\pm1$ の符号を変える対角行列 $P$ により $D+A=PLP$ となるので、小行列式は一致する。$K_4$ は二部グラフでないので一致しない。
5 行目:$\mu_2\cdots\mu_n=n\,\tau(G)$ は、全域木と根に選んだ 1 頂点の組の個数である。
注意を 2 つ挙げる。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する