http://en.wikipedia.org/wiki/Minimum_spanning_tree
Ich möchte meinen Minimum-Spanning-Tree-Algorithmus mit den Besten der Besten vergleichen. Weiß jemand, wo ich eine C++-Implementierung dieser Algorithmen finden kann? Ich habe gegoogelt, aber nichts gefunden. Wenn diese Algorithmen die besten sind, muss es doch irgendwo eine C++-Implementierung geben?
Der schnellste minimale Spannbaum Algorithmus wurde bisher entwickelt von David Karger, Philip Klein und Robert Tarjan entwickelt, die einen zeitlinearen randomisierten Algorithmus basierend auf einer Kombination von Borvkas Algorithmus und dem Reverse-Delete-Algorithmus[2][3]. Der schnellste nicht-randomisierte Algorithmus, von Bernard Chazelle, basiert auf dem Soft Heap, einer approximativen Prioritäts Warteschlange.[4][5] Seine Laufzeit beträgt O(m [ ] Kanten, n die Anzahl der Scheitelpunkte und die klassische funktionale Umkehrung der Ackermann-Funktion ist. Die Funktion wächst extrem langsam, so dass dass sie für alle praktischen Zwecke als eine Konstante betrachtet werden kann, die nicht größer als als 4 angesehen werden kann; daher ist der Algorithmus von Chazelle benötigt also nahezu lineare Zeit. [ ] die Kantengewichte ganze Zahlen sind mit einer gebundener Bitlänge sind, dann sind deterministische Algorithmen mit linearer Laufzeit bekannt Laufzeit bekannt.[6] Ob es eine einen deterministischen Algorithmus mit linearer Laufzeit für allgemeine Gewichte gibt, ist noch eine offene Frage. Allerdings haben Seth Petie und Vijaya Ramachandran haben jedoch einen nachweislich optimalen deterministischen Minimum-Spanning-Tree-Algorithmus gefunden, der Komplexität des Algorithmus ist unbekannt ist.[7]
Ich teste bereits gegen die Graph-Algorithmen von Boost C++.