組合せ論と離散数学
木
閉路を持たない連結グラフで、最も単純かつ構造的なネットワーク。
直観近道のないネットワーク
家系図、会社の組織図、コンピュータのファイルシステム、ゲームの決定木は、いずれも同じ形をしている——どの二点もちょうど一つの経路で結ばれており、迷い込むループが存在しない。家系図の二つの枝の間にもう一本リンクを足すと閉路ができる——これは「ちょうど一つの経路」という性質を壊す近道である。木とは、可能な限り少ない辺数を持つ連結ネットワークを表す数学用語である。どの一本の辺を取り除いても二つに分かれ、どの一本の辺を足しても閉路ができる。
大学形式的な定義
定義: 木
木とは、連結(すべての頂点対の間に経路が存在する)かつ非巡回(閉路を一つも含まない)であるグラフ のことである。木の中で次数 の頂点を葉と呼ぶ。すべての連結成分が木であるグラフ(それ自体は連結である必要はない)を森と呼ぶ。
これが木を特徴づける釣り合いである: 個の頂点を持つ木は、ちょうど 本の辺を持つ——すべてを連結に保つのにぎりぎり十分で、閉路を作る余分は一切ない。すべての頂点にわたって次数を足し合わせ、握手補題()を使うと、葉と内部頂点を数える際に役立つ付随する恒等式が得られる。
| 条件 | 辺の数 | 追加の性質 |
|---|---|---|
| 連結かつ非巡回 | ちょうど | すべての頂点対の間に唯一の経路 |
| 連結で 本の辺 | どの辺を除いても非連結になる | |
| 非巡回で 本の辺 | どの辺を足してもちょうど一つの閉路ができる | |
| 本の辺を持つ非連結グラフ(木ではない) | 辺数が一致していてもどこかに閉路を持つ |
大学主要な定理
個の頂点を持つグラフ について、次は同値である:(i) は連結かつ非巡回である;(ii) は連結で 本の辺を持つ;(iii) は非巡回で 本の辺を持つ。
なぜ正しいのか?
木からどの辺を取り除いても非連結になり、どの辺を足しても閉路ができる——木はすべてを連結するのにちょうど必要な数の辺を持ち、余りも不足もない。この三つの条件はそれぞれ異なる角度からこの「ちょうど十分な」構造を捉えている。
証明
(i) 連結かつ非巡回 (ii) 連結で 本の辺 (iii) 非巡回で 本の辺 (i) を示し、三条件を環状につなげる。
**(i)(ii)**: に関する帰納法による。基底 は自明——単一の頂点は 本の辺を持つ。帰納段階では、 個の頂点を持つ連結非巡回グラフ を取る。 は有限かつ非巡回なので、葉 (次数 の頂点)を含まなければならない。そうでなければすべての頂点が次数 を持ち、任意の出発頂点からすぐに引き返さずに辺をたどると、いずれ頂点を再訪し閉路が生じてしまう。 とその唯一の接続辺を取り除くと、 個の頂点からなるグラフ が残り、これは依然連結( に連結性を頼っていた他の頂点はない)かつ非巡回(非巡回グラフの部分グラフは非巡回)である。帰納法の仮定より は 本の辺を持つので、 は 本の辺を持つ。
**(ii)(iii)**: が連結で 本の辺を持つとする。もし が閉路を持つなら、その閉路の一本の辺を取り除いても連結性は保たれ(取り除いた辺の両端点は閉路の残りの部分でまだつながっている)、 個の頂点上にわずか 本の辺しか持たない連結グラフができる。しかし 個の頂点を持つ連結グラフは少なくとも 本の辺を必要とする(最初の頂点以外の各頂点に到達するには少なくとも一本の新しい辺が要る)ため、 本の辺で 個の頂点を連結にはできず、矛盾する。よって は閉路を持たない、すなわち非巡回である。
**(iii)(i)**: が非巡回で 本の辺を持ち、連結成分が 個あるとする。各連結成分はそれ自体連結かつ非巡回なので、既に証明した (i)(ii) を各成分に個別に適用すると、 個の頂点を持つ成分は 本の辺を持つ。すべての成分について合計すると、総辺数は となる。総数は で与えられているので 、よって : は連結である。
頂点集合 ()上の異なるラベル付き木の個数は である。
なぜ正しいのか?
個の区別可能な点を木の形をしたネットワークに配線する方法が何通りあるかという純粋に組合せ論的な問いに、驚くほど単純な閉じた公式で答えている。これを証明するために使われる符号化のトリック(プリューファー列)は、「木を数える」問題を「列を数える」というずっと易しい問題に変換する。
証明
頂点集合を に固定し、 に対してラベル付き木 のプリューファー列を定義する:最小ラベルの葉を繰り返し見つけ、その唯一の隣接頂点のラベルを書き留め、その葉を削除する。 個の頂点が残った時点で止める。これにより 個のラベルが記録される( 個の頂点から始めて で止めるため、削除一回につき一つ)。よってすべてのラベル付き木は 内の列を生成する。
個の各位置が独立に 個のラベルのいずれかを取りうるため、このような列はちょうど 個存在する。あとはこの符号化が全単射であること、すなわちラベル付き木がこれらの列と一対一に対応することを示せばよい。
鍵となる事実は、プリューファー列においてラベル がちょうど 回現れることである: の隣接頂点が葉として削除されるたびに が一回書き留められ、 自身は接続辺が一本を残してすべて失われたときにのみ削除される(書き込みには寄与しない)。特に、列に一度も現れないラベルはちょうど元の葉である。これにより復号が可能になる:列 が与えられたとき、残っている列の要素としてまだ使われておらず、かつまだ接続されていない最小のラベルを繰り返し取り、それを残っている列の先頭要素に辺で結び、そのラベルを以後の候補から外し、その要素を列から取り除く。 個すべての要素を使い切ったら、残った 個のラベルを最後の辺で結ぶ。
この復号手順は、残っている頂点数に関する帰納法により、各段階で符号化器が記録したであろう最小ラベルの葉と隣接頂点を正確に特定し、符号化を一段階ずつ厳密に逆転させる。したがって符号化と復号は互いに逆写像であり、 個の頂点上のラベル付き木と 内の列との間の全単射が得られる。そのような列が 個あるので、 個の頂点上のラベル付き木もちょうど 個存在する。
大学実世界での応用と具体例
木はいたるところで階層構造やルーティング構造の背骨となっている:ファイルシステム、生物学における系統樹、機械学習における決定木、コンピュータ科学における二分探索木やハフマン符号などである。最も直接的な工学的用途の一つはネットワーク設計である:企業が事務所、センサー、コンピュータの集合を最小コストでケーブルや無線リンクでつなぐ必要があるとき、最も安価な連結レイアウトは常に全域木である——閉路でつなぐと冗長なリンクに無駄なお金を使うことになる。クルスカル法は単純な貪欲規則によりこの最安の木を見つける:可能なすべてのリンクをコスト順に並べ、閉路を作らない限り順に追加していく。
例: クルスカル法による最小コスト配線
5基の中継塔を光ファイバーケーブルで総延長最小になるようつなぎたい。可能なリンクとその長さ(km)は以下の通り:、、、、、、、。5基すべてを連結するのに必要な最小総ケーブル長を求めよ。
解答
候補の 本のリンクを長さの昇順に並べる:、、、、、、、。クルスカル法はこのリストを一度走査し、両端点がすでに以前選んだリンクで連結されている(閉路ができてしまう)場合を除いてリンクを追加する。
を追加(塔 は別々だったが、今つながった)。 を追加(塔 が グループに加わり、 となる)。 を追加(塔 は別々だったが、 につながった)。
はスキップ: と はすでに グループにあり、このリンクを追加すると閉路ができてしまう。 を追加:残る二つのグループ と を、基すべての塔からなる一つのグループにつなぐ。
この時点で 本のリンクが追加され、 個の頂点を持つ木の 本の辺に一致するので、アルゴリズムはここで停止する(以降のどのリンクも閉路を作るだけである)。最小総ケーブル長は km である。
例: あり得るバックボーン構成の数え上げ
ある通信会社が、区別可能な 個の中継局をループのない(木構造の)バックボーンネットワークでつなぐ計画を立てており、どのペアを結ぶかについてまだ制約はない。構造的に異なるラベル付き木トポロジーは何通り可能か。
解答
ケイリーの公式により、 個の頂点上のラベル付き木の個数は である。ここで なので、個数は となる。
計算すると、。よって 局をつなぐ構造的に異なる木トポロジーは 通りある。
ネットワーク計画者にとって、この巨大な設計空間こそが、誰も 通りすべてを手で列挙しない理由である。代わりに、クルスカル法のような最適化手順(定理1の辺数を数える性質により、どの候補もちょうど 本のリンクを持つことが保証される)が、他をすべて列挙することなく、リンクのコストから直接唯一の最安の木を選び出す。
ある木は 個の頂点を持つ。辺は何本あるか。
ケイリーの公式によると、 個の頂点上の異なるラベル付き木は何個あるか。
あるケーブル会社が 個の事務所を可能な限り安いネットワーク(冗長なリンクなし)でつながなければならない。ソートされたリンクコストにクルスカル法を用いると、最終的なネットワークは何本のリンクを持つか。
あるグラフは 個の頂点と 本の辺を持つが、 個の別々の連結成分に分かれている(そのうち一つは閉路を含む)。辺数が に一致しているにもかかわらず、このグラフは定理1のどの特徴づけを満たさないか。
参考文献
- Reinhard Diestel (2017). Graph Theory
- David R. Karger, Philip N. Klein, Robert E. Tarjan (1995). A randomized linear-time algorithm to find minimum spanning trees · DOI:10.1145/201019.201022
- Aaron Schild (2017). An almost-linear time algorithm for uniform random spanning tree generation · arXiv:1711.06455 [プレプリント・未査読]