ブルーフカ法(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
この参考文献は、ブルーフカ法に関するオリジナルの論文を翻訳したものであり、歴史的な背景や詳細な解説が含まれています。