Minimale Spannbäume
Ein minimaler Spannbaum verbindet alle Knoten eines gewichteten, zusammenhängenden Graphen mit dem kleinstmöglichen Gesamtgewicht der Kanten; Greedy-Algorithmen wie Kruskal und Prim berechnen einen solchen effizient.
Definition
Ein minimaler Spannbaum eines zusammenhängenden, kantengewichteten Graphen ist eine Teilmenge von Kanten, die alle Knoten verbindet, keinen Zyklus enthält und unter allen solchen Spannbäumen das minimale Gesamtgewicht aufweist.
Scope
Dieses Thema behandelt das Problem des minimalen Spannbaums und seine klassischen Greedy-Lösungen – Kruskals Algorithmus, der Kanten in aufsteigender Gewichtsreihenfolge unter Verwendung einer Disjoint-Set-Struktur hinzufügt, und Prims Algorithmus, der einen einzelnen Baum unter Verwendung einer Prioritätswarteschlange wachsen lässt – zusammen mit den Schnitt- und Zykluseigenschaften, die die Korrektheit dieser Algorithmen beweisen. Es berührt auch die unterstützende Disjoint-Set-Datenstruktur (Union-Find).
Core questions
- Was ist ein Spannbaum, und was macht einen davon zu einem minimalen Gewicht?
- Warum führen gierige Kantenadditionen zu einem global minimalen Spannbaum?
- Wie rechtfertigen die Schnitteigenschaft und die Zykluseigenschaft MST-Algorithmen?
- Wie unterscheiden sich Kruskals und Prims Algorithmen in Strategie und Datenstrukturen?
- Wie macht die Disjoint-Set-Struktur (Union-Find) Kruskals Algorithmus effizient?
Key concepts
- Spannbaum
- Schnitteigenschaft
- Zykluseigenschaft
- Kruskals Algorithmus
- Prims Algorithmus
- Disjoint-Set (Union-Find)
- gierige sichere Kante
- Kantengewichte
Key theories
- Schnitteigenschaft
- Für jede Partition der Knoten in zwei Mengen gehört die Kante mit dem geringsten Gewicht, die die Partition kreuzt, zu einem minimalen Spannbaum; diese sichere Kantengarantie ist die Korrektheitsgrundlage für Kruskals und Prims Greedy-Algorithmen.
- Disjoint-Set Union-Find Unterstützung
- Kruskals Algorithmus verwendet eine Union-Find-Struktur mit Union by Rank und Pfadkompression, um in nahezu konstanter amortisierter Zeit zu testen, ob das Hinzufügen einer Kante einen Zyklus erzeugen würde.
Clinical relevance
Minimale Spannbäume modellieren kostengünstige Netzwerkdesigns: die Gestaltung von Kommunikations-, Strom- oder Transportnetzen, die alle Standorte kostengünstig verbinden. Sie dienen auch als Bausteine beim Clustering, der Bildsegmentierung, bei Approximationsalgorithmen für das Problem des Handlungsreisenden und bei der Analyse von Punktmengen.
History
Das Problem des minimalen Spannbaums wurde erstmals 1926 von Otakar Borůvka für das Design elektrischer Netze gelöst. Vojtěch Jarník (1930) und später Prim (1957) und Dijkstra entwickelten den baumwachsenden Ansatz, während Kruskal (1956) die Greedy-Methode des Kantensortierens vorstellte, was dies zu einem der frühesten gut verstandenen kombinatorischen Optimierungsprobleme macht.
Key figures
- Joseph Kruskal
- Robert Prim
- Otakar Borůvka
- Vojtěch Jarník
Related topics
Seminal works
- kruskal1956
- cormen2009
Frequently asked questions
- Was ist der Unterschied zwischen Kruskals und Prims Algorithmen?
- Kruskals Algorithmus sortiert alle Kanten und fügt sie in aufsteigender Gewichtsreihenfolge hinzu, wobei alle übersprungen werden, die einen Zyklus bilden würden, und verwendet Union-Find zur Erkennung von Zyklen. Prims Algorithmus lässt einen einzelnen verbundenen Baum von einem Startknoten aus wachsen, indem er wiederholt die günstigste Kante hinzufügt, die den aktuellen Baum verlässt, unter Verwendung einer Prioritätswarteschlange. Beide erzeugen einen minimalen Spannbaum.
- Ist der minimale Spannbaum eindeutig?
- Wenn alle Kantengewichte unterschiedlich sind, ist der minimale Spannbaum eindeutig. Wenn einige Gewichte gleich sind, kann es mehrere verschiedene minimale Spannbäume geben, die alle das gleiche minimale Gesamtgewicht haben.