数学

木 (グラフ理論)

木 (グラフ理論)
グラフ理論における「木」の定義、数学的な特徴、根付き木や有向木といった関連概念について解説します。

📌 主なポイント

  • 木は連結で閉路を持たない無向グラフである。
  • 頂点数nの木は、必ずn-1本の辺を持つ。
  • 木には必ず次数1の端末点(葉)が存在する。
  • 根付き木は、特定の頂点を根として階層構造を持たせた木である。

数学のグラフ理論において、(英: tree)とは、連結であり、かつ閉路(サイクル)を持たない無向グラフのことを指します。グラフ理論における最も基本的かつ重要な構造の一つであり、計算機科学におけるデータ構造としても広く応用されています。

6つの頂点と5つの辺からなる木の例
6つの頂点と5つの辺からなる木の例

閉路を持たないグラフは、連結であるかどうかにかかわらず(英: forest)と呼ばれます。したがって、木は連結な森であると定義することも可能です。

数学的特徴

頂点数が n であるグラフ T が木であるための条件は、以下のいずれか一つが満たされることと同値です。

  • 連結であり、かつ閉路を持たない。
  • 閉路を持たず、辺の数が n - 1 本である。
  • 連結であり、辺の数が n - 1 本である。
  • 任意の2頂点を結ぶ道がただ一つ存在する。
  • 閉路を持たないが、任意の2頂点間に新たな辺を追加すると、必ず一つの閉路が形成される。

また、頂点数が2以上の木には、必ず次数が1である端末点(葉)が少なくとも2つ存在します。この端末点を除去する操作を繰り返すことで、木を構成する頂点をすべて取り除くことが可能です。

根付き木

木の一つの頂点を「根(ルート)」として特別に指定したものを根付き木と呼びます。根付き木では、親、子、先祖、子孫といった階層的な関係が定義されます。

根付き木の構造例
根付き木の構造例
  • 親と子:辺で結ばれた2頂点のうち、根に近い方を親、遠い方を子と呼びます。
  • :子を持たない頂点を葉と呼びます。
  • 高さ:根からある頂点までの経路の長さをその頂点の高さと呼び、木の中で最も深い頂点の高さをその木の高さと定義します。

関連する概念

n分木

各頂点から出る子の数が最大で n 個であるような木を n 分木と呼びます。特に n=2 の二分木は、探索アルゴリズムやデータ構造において極めて重要な役割を果たします。

有向木とDAG

有向グラフにおいて、根から葉へ(あるいはその逆へ)辺の向きが統一されているものを有向木と呼びます。閉路を持たない有向グラフは有向非巡回グラフ(Directed Acyclic Graph、略称:DAG)と呼ばれます。有向木は連結なDAGの一種ですが、DAGは必ずしも木であるとは限りません(親の共有などが許容されるため)。

よくある質問

木と森の違いは何ですか?
閉路を持たないグラフを森と呼びます。その中で、グラフ全体が連結であるものを特に木と呼びます。
木には必ず葉が存在しますか?
頂点数が2以上の木であれば、必ず次数1の頂点(端末点または葉)が少なくとも2つ存在します。
DAG(有向非巡回グラフ)はすべて木ですか?
いいえ、異なります。有向木は連結なDAGの一種ですが、DAGは親の共有などが可能であるため、必ずしも木であるとは限りません。

関連記事

グラフ理論データ構造二分木有向非巡回グラフ

参考文献

  • ウィルソン, R. J.『グラフ理論』原書第4版、西関隆夫・西関裕子訳、近代科学社、2007年。