最小スパニングツリー

グラフ理論から出題される問題の多くは、最小スパニング木と呼ばれています。グラフ理論では、木とは、ある頂点から木の他の頂点への経路が正確に1本になるように、すべての頂点をつなぎ合わせる方法のことである。グラフが道路で結ばれた都市の数を表している場合,各都市が他の都市から到達できるように,道路の数を選択することができるが,ある都市から他の都市への移動手段は1つだけである.

グラフは、都市間の道路を選択する方法が複数あるように、複数のスパニングツリーを持つことができます。

2つの都市間の接続はそれぞれ重みを持っています:ある道路を移動するのに費用がかかるかもしれませんし、一方の接続が他方より長いかもしれません。グラフ理論の言語では、接続を辺と呼ぶ。

最小スパニング木とは、木のことです。他の木とは異なり、辺に付けられた重みの合計を最小にするという点で異なります。グラフの形状によっては、最小スパニング木が複数存在する場合があります。すべての辺が同じ重みを持つグラフでは、すべての木が最小スパニング木になります。すべての辺の重みが異なる場合(つまり、同じ重みを持つ辺が2つもない場合)、最小スパニング木は1本しかありません。

平面グラフの最小スパニング木。各辺には重みが付けられており,ここでは長さにほぼ比例します.Zoom
平面グラフの最小スパニング木。各辺には重みが付けられており,ここでは長さにほぼ比例します.

最小スパニングツリーを見つける

初めての試み

最小スパニングツリーを発見するアルゴリズムを作るのは非常に簡単です。

関数 MST(G,W)     .T = {}     Tスパニングツリーを形成していない         Eの中でTに対して安全な最小の重み付き辺を求める T = T union {(u,v)}     return T

この場合、「安全」とは、その辺を含めてもグラフのサイクルが形成されないことを意味します。サイクルとは、ある頂点から始まり、他の多くの頂点まで移動し、同じ辺を二度使わずに再び始点で終わることを意味します。

歴史

チェコの科学者オタカル・ボルジュカは、1926年に木を最小化するアルゴリズムを開発しました。彼はモラヴィアの電気の効率的な範囲を見つける問題を解決したいと考えていました。今日、このアルゴリズムはボルジュフカのアルゴリズムとして知られています。他にも2つのアルゴリズムが一般的に使用されています。そのうちの1つは1930年にVojtěch Jarníkによって開発され、1957年にRobert Clay Primによって実用化されました。エドガー・ワイベ・ダイクストラが1959年に再発見し、プリムのアルゴリズムと呼ばれるようになりました。もう一つのアルゴリズムはクルスカルのアルゴリズムと呼ばれ、1956年にジョセフ・クルスカルによって提唱された。3つのアルゴリズムはすべて貪欲で、多項式時間で実行される。

今日までで最速の最小スパニングツリーアルゴリズムは、Bernard Chazelleによって開発されました。このアルゴリズムは、ソフトヒープ(近似優先度キュー)に基づいています。その実行時間はO(m α(m,n))であり、mは辺の数、nは頂点の数、αはアッカーマン関数の古典的な関数逆数です。関数αは非常にゆっくりと成長するので、実用的には4よりも大きくない定数と考えられます。

この問題のために可能な限り最速のアルゴリズムは何か?これはコンピュータサイエンスの中で最も古くからある未解決の問題の一つです。少なくともすべての重みを調べなければならないので、明らかに線形の下界があります。辺の重みがビット長が制限された整数であれば,線形の実行時間を持つ決定論的アルゴリズムが知られています.一般的な重みについては、期待される実行時間が線形であるランダム化アルゴリズムがあります。

この問題は分散的にアプローチすることもできます。各ノードをコンピュータとみなし、ノードが自分の接続されたリンク以外は何も知らない場合でも、分散型最小スパニングツリーを計算することができます。

質問と回答

Q: グラフ理論における最小スパニングツリーとは何ですか?


A:最小スパニングツリーとは、グラフ理論において、辺に付けられた重みの合計を最小にするツリーのことです。

Q: グラフ理論における木とは何ですか?


A:木とは、グラフ理論において、すべての頂点をつなぎ合わせる方法で、ある頂点から木の他の頂点への経路が1つだけとなるようにします。

Q: グラフ理論で都市を表現するシナリオで、道路を選択する目的は何ですか?


A: グラフ理論で都市を表現するシナリオで道路を選択する目的は、各都市が他のすべての都市から到達できるようにすることですが、ある都市から他の都市へ移動する可能性が1つ以上ないようにすることです。

Q: グラフは複数のスパニングツリーを持つことができますか?


A: はい、グラフは複数のスパニングツリーを持つことができます。

Q: 最小スパニングツリーと他のツリーの違いは何ですか?


A:最小スパニングツリーは、辺に付けられた重みの合計を最小化するもので、他のツリーにはこの機能はありません。

Q: グラフ理論におけるエッジとは何ですか?


A:エッジとは、グラフ理論における2つの頂点の間の接続のことです。

Q: グラフの最小スパニングツリーには、異なる重みを持つエッジが複数存在するのでしょうか?


A: はい,グラフの形状によっては,最小スパニングツリーは複数存在する可能性があります.

AlegsaOnline.com - 2020 / 2023 - License CC3