http://en.wikipedia.org/wiki/Minimum_spanning_tree
最小スパニング ツリー アルゴリズムを最高のものと比較してベンチマークすることを検討しています。これらのアルゴリズムの C++ 実装がどこにあるか知っている人はいますか? 私はどんちゃん騒ぎしてグーグルで検索しましたが、何も見つかりませんでした。これらのアルゴリズムが最高の場合、C++ の実装がどこかにあるに違いありません。
これまでで最速の最小スパニング ツリー アルゴリズムは、David Karger、Philip Klein、Robert Tarjan によって開発され、Borůvka のアルゴリズムと逆削除アルゴリズムの組み合わせに基づく線形時間ランダム化アルゴリズムを発見しました.[2][3] Bernard Chazelle による最速の非ランダム化アルゴリズムは、おおよその優先順位キューであるソフト ヒープに基づいています。[4][5] その実行時間は O(m α(m,n)) です。ここで、m はエッジの数、n は頂点の数、α はアッカーマン関数の古典的な逆関数です。関数 α は非常にゆっくりと成長するため、すべての実用的な目的では、4 を超えない定数と見なすことができます。したがって、チャゼルのアルゴリズムは線形時間に非常に近くなります。エッジの重みがビット長が制限された整数の場合、次に、実行時間が線形である決定論的アルゴリズムが知られています[6]。一般的な重みの実行時間が線形である決定論的アルゴリズムが存在するかどうかは、まだ未解決の問題です。しかし、Seth Petie と Vijaya Ramachandran は、証明可能な最適な決定論的最小スパニング ツリー アルゴリズムを発見しましたが、その計算の複雑さは不明です [7]。
私はすでに Boost C++ のグラフ アルゴリズムに対してテストを行っています。