ブルーフカ法(Borůvka's algorithm)
概要
ブルーフカ法は、
グラフ理論において、重み付き
連結グラフの最小
全域木を求めるための
アルゴリズムです。最小
全域木とは、グラフ内の全ての
頂点を連結し、
辺の重みの合計が最小となる木構造のことです。
この
アルゴリズムは、
1926年に
チェコの
数学者オタカル・ブルーフカによって、
モラヴィア地方の電力網を敷設する際に考案されました。その後、ギュスターヴ・ショケ(1938年)、ウカシェヴィチら(1951年)、ソリン(1965年)によっても独立に再発見されています。特に
並列計算の分野では、ソリン
アルゴリズムとも呼ばれることがあります。
1.
初期化: グラフ内の各
頂点をそれぞれ独立した木(一つの
頂点のみからなる木)として扱います。この時点では、グラフは複数の木(森)の
集合として表現されます。
2.
最小重み辺の選択: 各木に対して、その木と他の木を繋ぐ
辺のうち、重みが最小の
辺を一つ選択します。この際、複数の木が同じ
辺を選ぶこともあります。これは複数の木が連結されることを意味します。
3.
木の連結: 選択された
辺を用いて木同士を連結します。これにより、森を構成する木の数が減少します。
4.
繰り返し: 全ての木が一つに連結されるまで、ステップ2と3を繰り返します。最終的に得られた木が最小
全域木となります。
具体例
具体的な例を用いて、ブルーフカ法の動作を説明します。
[ここに具体的なグラフと
アルゴリズムのステップごとの状態遷移の図解があると、より理解が深まる]
計算量
ブルーフカ法の計算量は、グラフの
頂点数をV、
辺数をEとした場合に、O(E log V)となります。これは、
アルゴリズムが最大でO(log V)回の反復を行うためです。平面グラフの場合、反復ごとに不要な
辺を取り除くことで、より線形に近い計算量で済む場合があります。
ブルーフカ法は、最小
全域木を求める他の
アルゴリズムと比較して、以下の特徴を持ちます。
クラスカル法: ブルーフカ法と同様に、初期状態で各
頂点を独立した木として扱います。両者とも、森を徐々に連結していくアプローチを採用しています。
プリム法: プリム法では、特定の開始
頂点から木を徐々に拡大していく点が異なります。これは、ブルーフカ法が複数の木を同時に連結していくアプローチとは対照的です。
バーナード・チャゼルのアルゴリズム: 最小
全域木を求める
アルゴリズムの中で、最も効率的であるとされるバーナード・チャゼルの
アルゴリズム(計算量O(E α(E,V)))は、ブルーフカ法を参考にしています。
関連項目
プリム法
クラスカル法
参考文献
Nešetřil, Jaroslav, Eva Milková, and Helena Nešetřilová. "Otakar Borůvka on minimum spanning tree problem translation of both the 1926 papers, comments, history." Discrete mathematics 233.1-3 (2001): 3-36.
http://www.cs.mun.ca/~kol/courses/6901-f16/boruvka-nmn.pdf
この参考文献は、ブルーフカ法に関するオリジナルの論文を翻訳したものであり、歴史的な背景や詳細な解説が含まれています。