有向全域木

同義語:spanning arborescence

概要

有向全域木(spanning arborescence)とは、有向グラフの全域部分グラフで、指定した根 $r$ からどの頂点へも有向歩道がちょうど 1 つあるものである。根の入次数が $0$、他の頂点の入次数が $1$ で有向閉路をもたないことと同値で、すべての頂点が $r$ から到達可能なときに限って存在する。重み付きの入次数の Laplacian 行列から第 $r$ 行と第 $r$ 列を除いた行列式は、$r$ を根とする有向全域木の重みの和に等しく(有向グラフの行列木定理)、無向グラフの行列木定理はその特別な場合である。根に向かう有向全域木は Euler 閉路の数え上げ(BEST の定理)に現れる。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{div}[0]{\mathbin{÷}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: 有向グラフ, 全域木, 行列木定理, 行列式

連結な無向グラフには全域木があり、その個数は Laplacian 行列の小行列式で数えられる(行列木定理)。辺に向きがある有向グラフでは、木の向きも考える必要がある。1 つの頂点 $r$(根)から出発して、どの頂点へも有向辺をたどってちょうど 1 通りで行ける部分グラフが 有向全域木 である。情報を 1 か所から全体へ配る経路や、各頂点が「親」を 1 つずつ指す構造は、有向全域木として表せる。
この記事では、有向全域木を定義して入次数による特徴づけを証明し、有向全域木が存在するための条件を述べる。主定理は、重み付きの有向グラフについて、根の行と列を除いた入次数の Laplacian 行列の行列式が、有向全域木の重みの和に等しいという 有向グラフの行列木定理 である。無向グラフの行列木定理はその系として得られる。

定義

この記事の有向グラフは、有向グラフ の記事の定義「有向グラフの定義」に従い、有限集合 $V$ と有向辺の集合 $A\subset V\times V$ の組 $D=(V,A)$ とする(ループ $(v,v)$ は許すが、同じ向きの平行な有向辺はない)。$n:=\lvert V\rvert$ とする。辺の集合 $F\subset A$ について、有向グラフ $(V,F)$ を $D$ の 全域部分グラフ といい、辺の集合 $F$ と同一視する。頂点 $v$ の $F$ での入次数を $\deg^-_F(v):=\lvert\{u\mid(u,v)\in F\}\rvert$ と書く。有向歩道は 有向グラフ の記事の定義「有向歩道・有向道・有向閉路」のとおり、頂点の列 $v_0,v_1,\dots,v_\ell$($\ell\ge0$)で各 $(v_{i-1},v_i)$ が有向辺であるものである。

有向木と有向全域木

有向グラフ $T=(V_T,F)$ と頂点 $r\in V_T$ について、どの頂点 $v\in V_T$ に対しても $r$ から $v$ への $T$ の有向歩道がちょうど 1 つあるとき、$T$ を $r$ を 根 とする 有向木(arborescence)という。
有向グラフ $D=(V,A)$ の全域部分グラフ $F\subset A$ で、$(V,F)$ が $r$ を根とする有向木であるものを、$D$ の $r$ を根とする 有向全域木(spanning arborescence)という。その個数を $\tau_r(D)$ と書く。

$r$ から $r$ への有向歩道には長さ $0$ のもの($r$ だけの列)があるので、定義は「$r$ に戻ってくる有向歩道が他にない」ことも求めている。定義で有向道ではなく有向歩道を数えるのはこのためである(ex-arb-counterexamples の 2 行目)。
有向辺の向きをすべて逆にした $D^{\mathrm{op}}$(有向グラフ の記事の逆有向グラフ)の、$r$ を根とする有向全域木は、$D$ では「どの頂点からも $r$ へちょうど 1 通りで行ける」部分グラフになる。これを $r$ に向かう有向全域木(in-arborescence)と呼ぶことがある。以下ではおもに根から外へ向かう有向全域木を扱い、根に向かうものは $D^{\mathrm{op}}$ に置き換えて扱う。

特徴づけと存在

有向木の特徴づけ

$T=(V,F)$ を有向グラフ、$r\in V$ とする。次の 3 条件は同値である。

  1. $T$ は $r$ を根とする有向木である。
  2. $\deg^-_F(r)=0$、$r$ 以外のすべての頂点 $v$ で $\deg^-_F(v)=1$ であり、どの頂点も $r$ から到達可能である。
  3. $\deg^-_F(r)=0$、$r$ 以外のすべての頂点 $v$ で $\deg^-_F(v)=1$ であり、$T$ は有向閉路をもたない。
    このとき $\lvert F\rvert=n-1$ であり、$T$ の基礎グラフ(有向グラフ の記事の定義「基礎グラフと向き付け」)は木である。

条件 2・3 のもとで、$r$ 以外の頂点 $v$ に入る $F$ の有向辺はただ 1 本なので、その始点を $v$ の 親 といい $p(v)$ と書く。有向木は、根以外の各頂点が親を 1 つずつ指し、親をたどると必ず根に着く構造である。

1⇒2:到達可能性は定義から従う。$(u,r)\in F$ があれば、$r$ から $u$ への有向歩道の後ろに $r$ をつなぐと、$r$ から $r$ への長さ $1$ 以上の有向歩道ができ、長さ $0$ のものと合わせて 2 つになる。よって $\deg^-_F(r)=0$ である。$v\ne r$ への有向歩道は長さ $1$ 以上で、最後の有向辺は $v$ に入るので $\deg^-_F(v)\ge1$ である。$(w,v),(w',v)\in F$($w\ne w'$)なら、$r$ から $w$、$w'$ への有向歩道の後ろにそれぞれ $v$ をつなぐと、最後から 2 番目の頂点が異なる 2 つの有向歩道ができる。よって $\deg^-_F(v)=1$ である。
2⇒3:有向閉路 $c_0,c_1,\dots,c_\ell=c_0$ があるとする。$r$ は入次数が $0$ なので閉路上にない。閉路上の頂点 $c_i$ に入る $F$ の有向辺はただ 1 本なので、それは閉路の辺 $(c_{i-1},c_i)$ である(添字は $\ell$ を法とする)。$r$ から $c_0$ への有向歩道 $r=x_0,\dots,x_k=c_0$ をとる。$x_j$ が閉路上にあり $j\ge1$ なら、$(x_{j-1},x_j)$ は $x_j$ に入るただ 1 本の有向辺なので、$x_{j-1}$ も閉路上にある。$j=k$ から順に下ると $x_0=r$ が閉路上にあることになり、矛盾する。
3⇒1:$v\ne r$ に対して親 $p(v)$ をとる。頂点の列 $v,p(v),p(p(v)),\dots$ は、根に着くまで定義される。同じ頂点が 2 度現れたとすると、2 度目までの最短の区間を逆にたどったものは有向閉路になり、条件に反する。$V$ は有限なので、ある $k\ge0$ で $p^k(v)=r$ となる($k$ は最初にそうなる番号)。$r=p^k(v),p^{k-1}(v),\dots,p(v),v$ は $r$ から $v$ への有向歩道である。逆に $r=x_0,\dots,x_m=v$ を任意の有向歩道とすると、$x_m$ に入る有向辺はただ 1 本なので $x_{m-1}=p(x_m)$ であり、順に $x_{m-j}=p^j(v)$ となる。$x_0=r$ で、$r$ には親がないので $m=k$ であり、有向歩道は上のものに一致する。$v=r$ のときも、長さ $1$ 以上の有向歩道は最後の有向辺が $r$ に入るので存在しない。
最後の主張:入次数の和から $\lvert F\rvert=n-1$ である。$T$ は有向閉路をもたないので、ループも、$(u,v)$ と $(v,u)$ の組もない。よって基礎グラフは $n-1$ 本の辺をもち、どの頂点も $r$ と道でつながるので連結である。全域木 の命題「木の判定」により、基礎グラフは木である。$\square$

有向全域木の存在

有向グラフ $D=(V,A)$ と $r\in V$ について、$r$ を根とする有向全域木が存在するためには、すべての頂点が $r$ から到達可能であることが必要十分である。

必要性:有向全域木の有向歩道は $D$ の有向歩道である。
十分性:$v\in V$ について、$r$ から $v$ への有向歩道の長さの最小値を $d(v)$ とする。$v\ne r$ について、長さ $d(v)$ の有向歩道 $r=x_0,\dots,x_k=v$($k=d(v)\ge1$)を 1 つ選び、$p(v):=x_{k-1}$ とする。$x_0,\dots,x_{k-1}$ は $p(v)$ への長さ $k-1$ の有向歩道なので $d(p(v))< d(v)$ である。$F:=\{(p(v),v)\mid v\ne r\}$ とおくと、$F$ の有向辺の終点は $r$ 以外で、各 $v\ne r$ に入るのは $(p(v),v)$ だけである。$F$ の有向辺に沿って $d$ は真に増えるので、$F$ は有向閉路をもたない。prop-arb-char の 3⇒1 により、$F$ は $r$ を根とする有向全域木である。$\square$

この証明の $F$ は、$r$ からの最短の経路を集めた有向全域木である。$r$ から近い順に頂点を訪ねる幅優先探索と同じ考え方で作れる。

有向グラフの行列木定理

$V=\{1,\dots,n\}$ とし、ループでない各有向辺 $a\in A$ に 重み $w(a)$ を与える(重みは実数でも、可換環の元や変数でもよい)。

入次数の Laplacian 行列

重み付きの有向グラフ $(D,w)$ の 入次数の Laplacian 行列 を、$n\times n$ 行列 $L=L^{\mathrm{in}}_w(D)$ で
$$ L_{vv}:=\sum_{u\ne v,\ (u,v)\in A}w(u,v),\qquad L_{uv}:=\begin{cases}-w(u,v)&(u\ne v,\ (u,v)\in A)\\0&(u\ne v,\ (u,v)\notin A)\end{cases} $$
と定める。$L$ から第 $r$ 行と第 $r$ 列を除いた $(n-1)$ 次の行列を $L[r]$ と書く。すべての重みが $1$ のとき、$L_{vv}$ はループを除いた入次数である。

$L$ の各列の和は $0$ である。第 $v$ 列には、$v$ に入る有向辺 $(u,v)$ ごとに、第 $v$ 成分に $w(u,v)$、第 $u$ 成分に $-w(u,v)$ が入るからである。ループは有向全域木に現れないので、行列にも入れない。

有向グラフの行列木定理

重み付きの有向グラフ $(D,w)$ と根 $r\in V$ について
$$ \det L[r]=\sum_{F}\ \prod_{a\in F}w(a) $$
が成り立つ。右辺の和は、$D$ の $r$ を根とする有向全域木 $F$ すべてにわたる。とくにすべての重みが $1$ なら、$\det L[r]=\tau_r(D)$ である。

$L[r]$ の行と列は $V':=V\setminus\{r\}$ の元で番号付ける。$x\in V'$ について $\mathbf e_x$ を第 $x$ 成分だけが $1$ の単位ベクトルとし、$\mathbf e_r:=0$ とおく。第 $v$ 列($v\in V'$)は、$v$ に入るループでない有向辺についての和
$$ L[r]_{\bullet v}=\sum_{u\ne v,\ (u,v)\in A}w(u,v)\,(\mathbf e_v-\mathbf e_u) $$
である($u=r$ の項では第 $r$ 成分が除かれている)。行列式は各列について線形なので、各 $v\in V'$ に入る有向辺を 1 本ずつ選ぶ選び方、すなわち写像 $f\colon V'\to V$ で $f(v)\ne v$、$(f(v),v)\in A$ となるものすべてについて
$$ \det L[r]=\sum_f\Bigl(\prod_{v\in V'}w(f(v),v)\Bigr)\det M_f,\qquad M_f\text{ の第 }v\text{ 列}:=\mathbf e_v-\mathbf e_{f(v)} $$
となる。$F_f:=\{(f(v),v)\mid v\in V'\}$ とおくと、$\deg^-_{F_f}(r)=0$、$v\in V'$ で $\deg^-_{F_f}(v)=1$ であり、$f\mapsto F_f$ は、ループを含まずこの入次数の条件を満たす $F\subset A$ 全体との全単射である(有向全域木はループを含まないので、どれもこの形をしている)。次を示せばよい。

  • $F_f$ が有向閉路をもてば $\det M_f=0$。
  • $F_f$ が有向閉路をもたなければ $\det M_f=1$。
    実際そうなら、prop-arb-char の 1⇔3 により、和に残るのはちょうど $F_f$ が有向全域木となる $f$ であり、主張を得る。
    有向閉路 $c_0,c_1,\dots,c_\ell=c_0$ があるとき、$r$ は入次数が $0$ なので閉路上になく、閉路上の各 $c_i$ に入る $F_f$ の有向辺は $(c_{i-1},c_i)$ なので $f(c_i)=c_{i-1}$ である。$f$ は閉路の頂点の集合 $C$ をそれ自身へ全単射に写すから
    $$ \sum_{c\in C}M_{f,\bullet c}=\sum_{c\in C}\mathbf e_c-\sum_{c\in C}\mathbf e_{f(c)}=0 $$
    となり、$M_f$ の列は一次従属で $\det M_f=0$ である。
    有向閉路がないとき、$F_f$ は有向木で、$f(v)$ は $v$ の親である。$v$ への有向歩道の長さを $v$ の深さとすると、親の深さは $v$ の深さより $1$ 小さい。$V'$ の元を深さが小さい順に $v_1,\dots,v_{n-1}$ と並べる。行と列を同じ順に並べ替えても行列式は変わらない。第 $v_j$ 列 $\mathbf e_{v_j}-\mathbf e_{f(v_j)}$ の $0$ でない成分は、対角の $1$ と、$f(v_j)\ne r$ のときの $f(v_j)=v_i$($i< j$)の行の $-1$ だけである。よって並べ替えた $M_f$ は対角成分が $1$ の上三角行列で、$\det M_f=1$ である。$\square$

すべての重みを変数とみると、thm-arb-matrix-tree の右辺は有向全域木の母関数である。$D$ が多重の有向辺をもつとき(グラフ の記事でいう多重有向グラフ)は、平行な有向辺の本数を重みにとれば、平行な辺を区別した有向全域木の個数が得られる。

3 頂点の重み付きの例

頂点 $1,2,3$ のすべての順序対に有向辺があり(ループはない)、$(u,v)$ の重みを $w_{uv}$ とする。根 $1$ について
$$ L[1]=\begin{pmatrix}w_{12}+w_{32}&-w_{23}\\-w_{32}&w_{13}+w_{23}\end{pmatrix},\qquad\det L[1]=w_{12}w_{13}+w_{12}w_{23}+w_{13}w_{32} $$
である。3 つの項は、根 $1$ の有向全域木 $\{(1,2),(1,3)\}$、$\{(1,2),(2,3)\}$、$\{(1,3),(3,2)\}$ に対応する。頂点 $2$・$3$ から出て $1$ に入る辺の重み $w_{21},w_{31}$ は現れない。

4 頂点の例

頂点 $1,2,3,4$ と有向辺 $(1,2),(1,3),(2,3),(3,2),(2,4),(3,4),(4,1)$ の有向グラフ $D$ では
$$ L=\begin{pmatrix}1&-1&-1&0\\0&2&-1&-1\\0&-1&2&-1\\-1&0&0&2\end{pmatrix},\qquad\det L[1]=\det\begin{pmatrix}2&-1&-1\\-1&2&-1\\0&0&2\end{pmatrix}=6 $$
である。根 $1$ の有向全域木は、頂点 $2$ の親を $1$ か $3$、頂点 $3$ の親を $1$ か $2$、頂点 $4$ の親を $2$ か $3$ から選ぶ $8$ 通りのうち、$2$ と $3$ が互いを親にする $2$ 通り(有向閉路 $2,3,2$ ができる)を除いた $6$ 個である。同様に $\det L[2]=\det L[3]=\det L[4]=3$ で、根によって個数が違う。

無向グラフの行列木定理との関係

単純な無向グラフ $G=(V,E)$ の各辺 $uv$ を 2 本の有向辺 $(u,v)$、$(v,u)$ に置き換えた有向グラフを $\vec G$ とする(有向グラフ の記事でいう対称な有向グラフ)。

無向グラフの全域木

単純な無向グラフ $G$ と頂点 $r$ について、$\vec G$ の $r$ を根とする有向全域木 $F$ にその基礎グラフを対応させる写像は、$G$ の全域木全体への全単射である。とくに、$G$ の全域木の個数を $\tau(G)$、$G$ の Laplacian 行列(次数を並べた対角行列から隣接行列を引いたもの)を $L(G)$ とすると、$\tau(G)=\tau_r(\vec G)=\det L(G)[r]$ である。

$F$ の基礎グラフは prop-arb-char により木で、辺は $G$ の辺なので、$G$ の全域木である。
全単射であること:$G$ の全域木 $T$ を 1 つとる。$T$ は連結なので、$\vec T$ では $r$ からすべての頂点に到達でき、thm-arb-exist により $\vec T$ には $r$ を根とする有向全域木がある。その基礎グラフは $T$ の部分グラフで辺が $n-1$ 本なので $T$ に等しい。逆に、基礎グラフが $T$ になる有向全域木 $F$ は $\vec T$ に含まれる。$F$ の中の $r$ から $v$ へのただ 1 つの有向歩道は、prf-arb-char の 3⇒1 で見た形 $r=p^k(v),\dots,p(v),v$ で頂点が相異なり、$T$ の中の $r$ と $v$ を結ぶ道である。木の中で 2 頂点を結ぶ道はただ 1 つ(森 の定理「森の同値条件」の 3)なので、$v$ の親はその道で $v$ の直前の頂点として $T$ だけから決まる。よって基礎グラフが $T$ の有向全域木はちょうど 1 つである。
すべての重みを $1$ とすると、$L^{\mathrm{in}}(\vec G)$ の対角成分は $G$ の次数、$(u,v)$ 成分は $uv\in E$ のとき $-1$ なので $L^{\mathrm{in}}(\vec G)=L(G)$ である。thm-arb-matrix-tree から最後の等式が従う。$\square$

これは 行列木定理 の定理「行列木定理」の $\tau(G)=\det L[x]$ の部分(単純グラフの場合)を、有向グラフの側から導いたものである。$L(G)$ のどの頂点を除いても同じ値になることは、$\vec G$ ではどの頂点を根にしても有向全域木の個数が同じことを意味する。一般の有向グラフでは、ex-arb-four のように根によって個数が変わる。

完全有向グラフ

$n$ 頂点の完全グラフ $K_n$ から作った $\vec K_n$(相異なる 2 頂点の間に両向きの有向辺がある)では、cor-arb-undirected と Cayleyの公式 により $\tau_r(\vec K_n)=n^{n-2}$ である。$n=4$ なら $16$ 個である。

根に向かう有向全域木と Euler 閉路

有向グラフ $D$ の 出次数の Laplacian 行列 $L^{\mathrm{out}}$ を、対角成分をループを除いた出次数(の重みの和)とし、非対角成分は $L^{\mathrm{in}}$ と同じく $(u,v)$ 成分を $-w(u,v)$ とした行列と定める。$D^{\mathrm{op}}$ の入次数の Laplacian 行列は $L^{\mathrm{out}}(D)$ の転置なので、thm-arb-matrix-tree を $D^{\mathrm{op}}$ に使うと、$\det L^{\mathrm{out}}(D)[r]$ は $D$ の $r$ に向かう有向全域木の個数に等しい。
どの頂点でも入次数と出次数が等しい有向グラフを 均衡 しているという。Sta13 Theorem 10.2(pp. 191–192)は、均衡していて基礎グラフが連結な有向グラフ $D$(ループと多重の有向辺を許す)と有向辺 $e$ について、$e$ から始まる Euler 閉路(すべての有向辺をちょうど 1 回ずつ通る有向の閉じた経路)の個数が
$$ \tau^{\to}(D,v)\prod_{u\in V}(\deg^+(u)-1)! $$
に等しいことを示している。ここで $v$ は $e$ の始点、$\tau^{\to}(D,v)$ は $v$ に向かう有向全域木の個数、$\deg^+(u)$ は出次数である。Euler 閉路の中で各頂点 $u\ne v$ を最後に出る有向辺を集めると、$v$ に向かう有向全域木になることが鍵である(同 pp. 191–192。この記事では証明しない)。これは BEST の定理と呼ばれる(同 p. 198 の注)。同書 Theorem 10.4(pp. 193–194)は、出次数の Laplacian 行列による上の数え方を述べている。

重みが最小の有向全域木

辺に費用 $w(a)$ があるとき、費用の和が最小の有向全域木を求める問題は、無向グラフの最小全域木(全域木 の定理「Kruskal法の正しさ」)の有向版である。prop-arb-char により、有向全域木は根以外の各頂点に入る有向辺を 1 本ずつ選んだものだが、各頂点で最も安い辺を選ぶだけでは有向全域木になるとは限らない。

頂点ごとに最も安い辺を選ぶと閉路ができる例

頂点 $r,a,b$ と有向辺 $(r,a),(r,b),(a,b),(b,a)$ の費用を、それぞれ $5,5,1,1$ とする。$a$・$b$ に入る最も安い有向辺を選ぶと $(b,a),(a,b)$ で、有向閉路になり、$r$ から到達できない。根 $r$ の有向全域木は $\{(r,a),(r,b)\}$、$\{(r,a),(a,b)\}$、$\{(r,b),(b,a)\}$ の 3 個で、費用は $10,6,6$ である。最小の費用 $6$ の木は、閉路 $a,b$ の 1 本を残し、閉路に外から入る 1 本に替えたものである。

Edmonds は、このようにできた有向閉路を 1 点に縮めて小さい問題に帰着させ、指定した根をもつ重みが最大(または最小)の有向全域木を求める効率のよい算法を与えた(Edm67 p. 233 の要旨、閉路の縮約は p. 235 の (12)。この記事では証明しない)。

条件を外したときの反例

外す条件反例成り立たなくなること
すべての頂点が $r$ から到達可能(thm-arb-exist)頂点 $1,2,3$、有向辺 $(1,2)$ だけ、$r=1$根 $1$ の有向全域木が存在する
定義で有向歩道を数える(def-arb-main)有向閉路 $1,2,1$(有向辺 $(1,2),(2,1)$)、$r=1$$r$ から各頂点への有向道はただ 1 つだが、根の入次数が $0$ でない(prop-arb-char の 2)
入次数の Laplacian 行列を使う(thm-arb-matrix-tree)頂点 $1,2$、有向辺 $(1,2)$、$r=1$出次数の Laplacian 行列では $\det L^{\mathrm{out}}[1]=0$ で、$\tau_1(D)=1$ と一致しない
対角成分にループを数えない(def-arb-laplacian)頂点 $1,2$、有向辺 $(1,2),(2,2)$、$r=1$ループを数えると $(2,2)$ 成分が $2$ になり、$\tau_1(D)=1$ と一致しない
反例の確認

どの行も、左の条件だけを外している。

4 つの確認を開く

1 行目:頂点 $3$ に入る有向辺がないので、prop-arb-char の 2 の入次数の条件を満たす $F$ がない。行列でも $L[1]=\begin{pmatrix}1&0\\0&0\end{pmatrix}$ で $\det L[1]=0$ であり、thm-arb-matrix-tree と合っている。

2 行目:$1$ から $2$ への有向道は $1,2$ だけで、$1$ から $1$ への有向道は長さ $0$ のものだけである($1,2,1$ は頂点がくり返すので有向道でない)。しかし有向歩道 $1,2,1$ があるので、def-arb-main の意味の有向木ではない。実際、根の入次数は $1$ であり、有向辺は $2$ 本で $n-1=1$ と合わない。

3 行目:$D$ 自身が根 $1$ の有向全域木で、$\tau_1(D)=1$ である。入次数の Laplacian 行列では $L[1]=(1)$ だが、出次数の Laplacian 行列では頂点 $2$ の出次数が $0$ なので $L^{\mathrm{out}}[1]=(0)$ である。後者は $1$ に向かう有向全域木($2$ から $1$ への有向辺が要る)の個数 $0$ を数えている。

4 行目:ループは有向全域木に入らないので、$\tau_1(D)=1$ のままである。対角成分にループを数えると $(2,2)$ 成分は $2$ になり、$\det L[1]=2$ となる。

関連項目

参考文献

[2]
Jack Edmonds, Optimum branchings, Journal of Research of the National Bureau of Standards, Section B: Mathematics and Mathematical Physics, 1967, pp. 233–240(要旨 p. 233、閉路の縮約 (12) p. 235)

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する