2-2 全域木と切断・閉路の性質

$$\newcommand{abs}[1]{\left\lvert #1 \right\rvert} \newcommand{cG}[0]{\mathcal{G}} \newcommand{diam}[0]{\operatorname{Diam}} \newcommand{la}[0]{\leftarrow} \newcommand{lt}[0]{\left} \newcommand{Mod}[1]{\ \left(\mathrm{mod}\ #1\right)} \newcommand{mR}[0]{\mathbb{R}} \newcommand{p}[0]{\prime} \newcommand{ra}[0]{\rightarrow} \newcommand{rad}[0]{\operatorname{rad}} \newcommand{rt}[0]{\right} $$

networkの骨格を一つ選ぶ

連結グラフには、頂点間の到達可能性を保つために不要な辺が含まれていることがあります。cycle上の一本を除いても連結性は失われません。余分な辺を削り続けると、全頂点を結びながらcycleをもたない骨格が残ります。これがspanning treeです。
骨格を選んだ後、元の辺は二種類に分かれます。

  • 木に入れた辺を一本除くと、頂点集合が二つへ分かれる。
  • 木に入れなかった辺を一本加えると、ただ一つのcycleが生じる。
    このcutとcycleは互いに対応し、「どの辺とどの辺を交換すれば別の骨格になるか」を完全に決めます。

spanning treeとspanning forest

spanning treeとspanning forest

グラフ $G$ の全頂点を含む部分グラフ $T$ が木であるとき、$T$ を $G$ の全域木|spanning tree(全域木)という。
$G$ の各連結成分においてspanning treeを一つずつ選び、それらを合わせた部分グラフを全域森|spanning forest(全域森)という。

spanningは「全頂点を含む」という意味であり、全辺を含むという意味ではありません。連結グラフだけがspanning treeをもちます。

spanning treeの存在

有限グラフ $G$ がspanning treeをもつための必要十分条件は、$G$ が連結であることである。

spanning tree $T$ があれば、$T$ 内のpathは $G$ のpathでもあるため、$G$ は連結です。
逆に $G$ が連結とします。$G$ の辺をすべて残した状態から、cycleがある限りそのcycle上の辺を一本削除します。cycle上の辺 $e=uv$ を削除しても、cycleの残りが $u$ から $v$ への別のpathを与えるため、任意のwalkで $e$ を使う箇所をそのpathへ置き換えられます。従って連結性は保たれます。
辺数は有限なので操作は停止します。停止時の部分グラフは全頂点を含み、連結でcycleをもちません。従って木であり、$G$ のspanning treeです。□

「幅優先探索と深さ優先探索」のBFS・DFS親辺もspanning treeを構成します。上の証明は「cycleを消す」削除型、探索は「新頂点へ届く辺を加える」追加型です。

spanning treeの極小・極大特徴づけ

連結グラフ $G$ の全頂点を含む部分グラフ $H$ について、次は同値である。

  1. $H$ はspanning treeである。
  2. $H$ は連結で、どの辺を一本削除しても非連結になる。
  3. $H$ はcycleをもたず、$G$ の任意の辺を新たに一本加えるとcycleができる。

1から2を示します。木の任意の辺はbridgeです。実際、辺 $uv$ を除いても $u,v$ 間のpathが残れば、そのpathと $uv$ がcycleを作ります。従ってどの辺を削除しても非連結です。
1から3を示します。木はcycleをもちません。$H$ にない $G$ の辺 $e=uv$ を加えると、木内の唯一の $u$--$v$ pathと $e$ がcycleを作ります。
2から1を示します。$H$ にcycleがあれば、その上の辺を一本削除しても連結性が保たれ、2に反します。従って $H$ は連結でcycleをもたない木です。
3から1を示します。もし $H$ が非連結なら、$G$ は連結なので異なる $H$-成分を結ぶ辺 $e\in E(G)\setminus E(H)$ があります。この辺を加えても異なる成分を一本で結ぶだけでcycleはできず、3に反します。従って $H$ は連結であり、cycleをもたないので木です。□

ここで「極小連結」は辺の包含について極小、「極大acyclic」は辺の包含について極大という意味です。辺数が最少・最大という数値的主張だけではありません。

木に一本足すと生じる基本cycle

以後、$G$ を連結グラフ、$T$ をそのspanning treeとします。

fundamental cycle

$e=uv\in E(G)\setminus E(T)$ に対し、$T$ 内の唯一の $u$--$v$ pathと $e$ からなるcycleを、$T$ に関する $e$ の基本閉路|fundamental cycle(基本cycle)といい $C_T(e)$ と書く。

基本cycleの一意性

$T+e$ に含まれるcycleは $C_T(e)$ ただ一つである。

$T$ 自身はcycleをもたないため、$T+e$ のcycleは新しい辺 $e=uv$ を含まなければなりません。$e$ をcycleから除くと、残りは $T$ 内の $u$--$v$ pathです。木内のpathは一意なので、それは $C_T(e)$ を定義したpathに限られます。従ってcycleは一つだけです。□

cycle交換条件

$e\in E(G)\setminus E(T)$ と $f\in E(T)$ に対して
$$ T+e-f $$
がspanning treeであるための必要十分条件は
$$ f\in E(C_T(e)) $$
である。

$f\in C_T(e)$ とします。$T+e$ の唯一のcycleは $C_T(e)$ なので、その上の $f$ を除くとcycleがなくなります。またcycleから一本を除いた残りにより $f$ の両端は依然として結ばれているため、$T+e-f$ は連結です。全頂点を含む連結acyclic graphなのでspanning treeです。
逆に $f\notin C_T(e)$ とします。$T+e$ にある唯一のcycle $C_T(e)$ は $f$ を含まないため、$f$ を除いてもそのcycleが残ります。従って $T+e-f$ は木ではありません。□

一本の非木辺を入れたいなら、交換相手は基本cycle上から、しかもそこからならどの木辺を選んでもよいと分かります。

木から一本引くと生じる基本cut

頂点集合 $A\subseteq V(G)$ に対し、ちょうど一端だけが $A$ に属する辺全体を
$$ \delta_G(A)=\{xy\in E(G)\mid x\in A, y\notin A\} $$
と書きます。$\delta_G(A)=\delta_G(V\setminus A)$ です。

cutとfundamental cut

空でない真部分集合 $A\subsetneq V(G)$ に対する辺集合 $\delta_G(A)$ をカット (グラフ理論)|cutという。
木辺 $f\in E(T)$ を除くと $T-f$ はちょうど二つの連結成分をもつ。その一方の頂点集合を $A_f$ としたとき
$$ D_T(f)=\delta_G(A_f) $$
を $T$ に関する $f$ の基本カット|fundamental cut(基本cut)という。

どちらの成分を $A_f$ と選んでもcutは同じです。$f$ 自身は $D_T(f)$ に属します。

木辺削除後は二成分

木 $T$ の辺 $f=xy$ を削除すると、$T-f$ はちょうど二つの連結成分をもち、$x,y$ は異なる成分に属する。

$x,y$ が $T-f$ でも同じ成分にあれば、$f$ を使わない $x$--$y$ pathがあり、それと $f$ がcycleを作るので矛盾です。
任意の頂点 $v$ を取ります。$T$ 内の $v$--$x$ pathが $f$ を使わなければ $v$ は $x$ の成分に属します。使うなら、そのpathは $f=xy$ を一度通り、$v$ から $y$ までの部分は $f$ を使わないので $v$ は $y$ の成分に属します。従って全頂点はこの二成分のどちらかに入り、成分はちょうど二つです。□

cut交換条件

$f\in E(T)$ と $e\in E(G)\setminus E(T)$ に対して
$$ T-f+e $$
がspanning treeであるための必要十分条件は
$$ e\in D_T(f) $$
である。

$T-f$ の二成分を $A_f$ とその補集合とします。$e\in D_T(f)$ なら $e$ は二成分を結ぶので、$T-f+e$ は連結です。その辺数は $|V(T)|-1$ のままなので、木の特徴づけによりspanning treeです。
$e\notin D_T(f)$ なら $e$ の両端は同じ成分にあります。従って他方の成分との間に辺は加わらず、$T-f+e$ は非連結です。ゆえにspanning treeではありません。□

cycleとcutの双対的対応

二つの交換条件は同じ事実を別方向から見ています。

基本cycle・基本cutの対応

$e\in E(G)\setminus E(T)$、$f\in E(T)$ に対し
$$ f\in C_T(e)\quad\Longleftrightarrow\quad e\in D_T(f). $$

$f\in C_T(e)$ ならcycle交換条件により $T+e-f$ はspanning treeです。辺の加減は可換なので $T-f+e$ もspanning treeであり、cut交換条件から $e\in D_T(f)$ です。
逆に $e\in D_T(f)$ ならcut交換条件から $T-f+e$ はspanning treeです。従って $T+e-f$ もspanning treeで、cycle交換条件から $f\in C_T(e)$ です。□

直接には、$f$ を除いて分かれる二側を $e$ が横切ることと、$e$ の両端を結ぶ木内pathが $f$ を通ることが同値です。

二つのspanning treeを近づける

交換法則は、一つのspanning treeから別のspanning treeへ一辺ずつ移れることも示します。

spanning treeの対称交換

同じ連結グラフ $G$ の二つのspanning treeを $T_1,T_2$ とする。任意の
$$ e\in E(T_1)\setminus E(T_2) $$
に対し、ある
$$ f\in E(T_2)\setminus E(T_1) $$
が存在して、$T_1-e+f$ と $T_2-f+e$ はともにspanning treeになる。

$T_1-e$ の二成分の頂点集合を $A$ と $V\setminus A$ とします。$e$ の両端は異なる側にあります。
$T_2+e$ の基本cycle $C_{T_2}(e)$ を考えます。このcycleから $e$ を除いた $T_2$ 内のpathは、$e$ の一端から他端へ進むのでcut $\delta_G(A)$ を少なくとも一本横切ります。その横切る辺を $f$ とします。
$T_1$ では $e$ が二側を結ぶ唯一の木辺です。従って $f\ne e$ が $T_1$ にも属していれば、$T_1-e$ の二成分を $f$ が結んでしまい矛盾です。よって $f\in E(T_2)\setminus E(T_1)$ です。
$f$ は $T_1-e$ の二成分を結ぶので、cut交換条件から $T_1-e+f$ はspanning treeです。また $f$ は $C_{T_2}(e)$ 上にあるので、cycle交換条件から $T_2+e-f$ もspanning treeです。□

spanning tree交換グラフの連結性

$G$ のspanning treeを頂点とし、一辺を交換して移り合える二つを隣接させたグラフは連結である。

二つのspanning tree $T,T'$ を取ります。$T=T'$ なら何もする必要はありません。異なるなら $e\in E(T)\setminus E(T')$ を一つ選びます。対称交換定理により、ある $f\in E(T')\setminus E(T)$ と交換して
$$ T_1=T-e+f $$
をspanning treeにできます。この交換で $T'$ と共通する辺が一本増えます。
異なる辺は有限本なので、この操作を繰り返すと有限回で $T'$ に到達します。各一歩が一辺交換なので、交換グラフ内のpathが得られます。□

具体例――四角形に対角線を入れる

頂点 $1,2,3,4$ と辺
$$ 12,23,34,41,13 $$
をもつグラフを考え、spanning tree
$$ T=\{12,23,34\} $$
を選びます。
非木辺 $41$ の基本cycleは
$$ C_T(41)=\{41,12,23,34\}, $$
非木辺 $13$ の基本cycleは
$$ C_T(13)=\{13,12,23\} $$
です。従って13を追加するとき交換できる木辺は12または23であり、34を除いてもcycle $1,2,3,1$ が残るため木にはなりません。
木辺23を除くと成分は $\{1,2\}$ と $\{3,4\}$ です。従って
$$ D_T(23)=\{23,41,13\}. $$
実際、23を13または41と交換すればspanning treeになります。対応定理により
$$ 23\in C_T(13),\quad 13\in D_T(23) $$
が同時に成り立ちます。

重みを入れる前の交換原理

各辺に長さ・費用・危険度などの重みが付くと、spanning treeの中で重み和が最小のものを探したくなります。交換定理から、候補木 $T$ にない辺 $e$ を入れるとき、削除できるのは $C_T(e)$ 上の辺だけだと分かります。
もしそのcycle上に $e$ より重い木辺 $f$ があれば
$$ w(T+e-f)=w(T)+w(e)-w(f)< w(T) $$
となり、$T$ は最小ではありません。逆にcutを横切る最軽量辺は、適切な交換によって最小木へ安全に取り込めます。

演習

cycle削除でspanning treeを作る

完全グラフ $K_4$ の辺集合
$$ \{12,13,14,23,24,34\} $$
からcycle上の辺を順に削除し、spanning treeを一つ作れ。各削除後も連結であることを確認せよ。

解答

三角形 $1,2,3,1$ から辺13を削除します。残る辺は $12,14,23,24,34$ で、例えば1から2を経て3へ行け、4へは14で行けるので連結です。
残るcycle $1,2,4,1$ から24を削除します。辺は $12,14,23,34$ で、path $2,1,4,3,2$ が全頂点を結ぶので連結です。
この四辺にはcycle $1,2,3,4,1$ があるので34を削除します。残る
$$ \{12,14,23\} $$
は全4頂点を含み、1を中心に2,4へ、2を経て3へ到達できる連結グラフです。3辺しかなくcycleをもたないのでspanning treeです。□

基本cycleを全て求める

本文の四角形と対角線のグラフで、別のspanning tree
$$ T'=\{12,13,14\} $$
を選ぶ。各非木辺23,34,41の基本cycleを求めよ。ただし41は辺14と同じ無向辺なので、非木辺の一覧をまず訂正せよ。

解答

無向辺41は14と同じで既に $T'$ に入っています。従って非木辺は23と34だけです。
23の両端を結ぶ $T'$ 内pathは $2,1,3$ なので
$$ C_{T'}(23)=\{23,12,13\}. $$
34の両端を結ぶpathは $3,1,4$ なので
$$ C_{T'}(34)=\{34,13,14\}. $$
入力の辺を無向か有向か確認し、同じ辺を二重に数えないことが重要です。□

基本cutを全て求める

同じ $T'=\{12,13,14\}$ について、各木辺12,13,14のfundamental cutを求めよ。

解答

12を除くと $\{2\}$ と $\{1,3,4\}$ に分かれます。元のグラフで2から外へ出る辺は12,23なので
$$ D_{T'}(12)=\{12,23\}. $$
同様に13を除くと $\{3\}$ が分かれ、3に接続する元の辺は13,23,34なので
$$ D_{T'}(13)=\{13,23,34\}. $$
14を除くと $\{4\}$ が分かれ、接続辺は14,34なので
$$ D_{T'}(14)=\{14,34\}. $$
例えば $13\in C_{T'}(23)$ と $23\in D_{T'}(13)$ が対応しています。□

交換できない辺を説明する

本文の $T=\{12,23,34\}$ に非木辺13を加え、木辺34を除いたグラフがspanning treeでないことを、cycleとcutの二通りで説明せよ。

解答

cycle側では
$$ C_T(13)=\{13,12,23\} $$
であり34を含みません。従って13を加えて34を除いてもcycle $1,2,3,1$ が残ります。
cut側では、$T-34$ の成分は $\{1,2,3\}$ と $\{4\}$ です。辺13の両端はともに前者にあるため、このcutを横切りません。従って13を加えても頂点4は切り離されたままです。実際、得られるグラフは一方にcycleをもちながら非連結です。□

二つの木を対称交換する

四角形と対角線のグラフで
$$ T_1=\{12,23,34\},\qquad T_2=\{12,14,34\} $$
とする。$e=23\in T_1\setminus T_2$ に対して対称交換定理の $f$ を一つ求め、交換後の二つの木を書け。

解答

$T_1-23$ の成分は $\{1,2\}$ と $\{3,4\}$ です。$T_2$ で23の両端2,3を結ぶpathは
$$ 2,1,4,3 $$
なので、$T_2+23$ の基本cycleは $23,12,14,34$ です。このpathで二成分を横切る辺として $f=14$ を選べます。
交換後は
$$ T_1-23+14=\{12,14,34\}, $$
$$ T_2-14+23=\{12,23,34\}. $$
この例では二つの木がそのまま入れ替わります。どちらも連結な3辺グラフなのでspanning treeです。□

bridgeと全域木

連結グラフ $G$ の辺 $e$ について、次が同値であることを示せ。

  1. $e$ はbridgeである。
  2. $e$ は $G$ のすべてのspanning treeに含まれる。
  3. あるspanning tree $T$ で $D_T(e)=\{e\}$ となる。
解答

1から2。$e$ を含まないspanning treeがあれば、その木内で $e$ の両端を結ぶpathがあり、$G-e$ でも両端がつながります。spanning treeは全頂点を結ぶので $G-e$ も連結となり、$e$ がbridgeであることに反します。
2から3。spanning tree $T$ を一つ取ると2により $e\in T$ です。$D_T(e)$ に別の辺 $f$ があれば、cut交換条件により $T-e+f$ は $e$ を含まないspanning treeとなり2に反します。従って $D_T(e)=\{e\}$ です。
3から1。$T-e$ の二成分間を結ぶ $G$ の辺は $D_T(e)$ の辺そのものです。それが $e$ だけなら、$G-e$ では二成分を結ぶ辺がなく非連結です。従って $e$ はbridgeです。□

本章で得たもの

spanning treeは極小な連結骨格であると同時に、極大なacyclic部分グラフです。非木辺を加えると一意なfundamental cycle、木辺を除くと一意な二分割に対応するfundamental cutが生じます。そして
$$ f\in C_T(e)\Longleftrightarrow e\in D_T(f) $$
が交換可能性を二方向から記述します。

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

前ページへ
グラフ理論 ― 連結性・木・マッチング・フロー・平面性・彩色の表紙
次ページへ