Unterschied Zwischen Kruskal und Prim: Kruskal vs. Prim

Anonim

Kruskal vs Prim

In der Informatik sind Prims und Kruskals Algorithmen ein gieriger Algorithmus, der einen minimalen Spanning-Baum für einen verbundenen gewichteten ungerichteten Graphen findet. Ein überspannender Baum ist ein Untergraph eines Graphen, so dass jeder Knoten des Graphen durch einen Pfad verbunden ist, der ein Baum ist. Jeder Spanning Tree hat ein Gewicht und die minimalen möglichen Gewichtungen / Kosten aller Spanning Trees ist der Minimum Spanning Tree (MST).

Der Algorithmus wurde 1930 vom tschechischen Mathematiker Vojtěch Jarník und 1957 von dem Informatiker Robert C. Prim entwickelt und 1959 von Edsger Dijkstra wiederentdeckt. Algorithmus kann in drei Schlüsselschritten angegeben werden;

Der verbundene Graph mit n Knoten und dem jeweiligen Gewicht jeder Kante,

1. Wählen Sie einen beliebigen Knoten aus dem Graph und fügen Sie ihn dem Baum T (der der erste Knoten sein wird)

2. Betrachten Sie die Gewichtungen jeder Kante, die mit den Knoten im Baum verbunden ist, und wählen Sie das Minimum aus. Fügen Sie die Kante und den Knoten am anderen Ende des Baums T hinzu und entfernen Sie die Kante aus dem Diagramm. (Wählen Sie einen beliebigen aus, wenn zwei oder mehr Minima vorhanden sind)

3. Wiederholen Sie Schritt 2, bis dem Baum n-1 Kanten hinzugefügt werden.

Bei dieser Methode beginnt der Baum mit einem einzelnen beliebigen Knoten und expandiert mit jedem Zyklus von diesem Knoten aus weiter. Damit der Algorithmus ordnungsgemäß funktioniert, muss der Graph ein verbundener Graph sein. Die Grundform des Prim-Algorithmus hat eine Zeitkomplexität von O (V

2).

Der von Joseph Kruskal entwickelte Algorithmus erschien 1956 in den Schriften der American Mathematical Society. Der Kruskal-Algorithmus kann auch in drei einfachen Schritten ausgedrückt werden. Der Graph mit n Knoten und dem jeweiligen Gewicht jeder Kante, 1. Wählen Sie den Bogen mit dem geringsten Gewicht des gesamten Diagramms aus und fügen Sie den Baum hinzu und löschen Sie ihn aus dem Diagramm.

2. Von den verbleibenden wählen Sie die am wenigsten bewertete Kante, so dass kein Zyklus entsteht. Fügen Sie die Kante zum Baum hinzu und löschen Sie sie aus dem Diagramm. (Wählen Sie einen beliebigen aus, wenn zwei oder mehr Minima vorhanden sind)

3. Wiederholen Sie den Vorgang in Schritt 2.

Bei dieser Methode beginnt der Algorithmus mit der am wenigsten gewichteten Kante und setzt die Auswahl jeder Kante bei jedem Zyklus fort. Daher muss der Graph im Algorithmus nicht verbunden sein. Kruskals Algorithmus hat eine Zeitkomplexität von O (logV)

Was ist der Unterschied zwischen Kruskal und Prims Algorithmus?

• Prims Algorithmus initialisiert mit einem Knoten, während der Kruskal-Algorithmus mit einer Kante beginnt.

• Prims Algorithmen spannen von einem Knoten zum anderen, während Kruskals Algorithmus die Kanten so auswählt, dass die Position der Kante nicht auf dem letzten Schritt basiert.

• Beim Prim-Algorithmus muss der Graph ein verbundener Graph sein, während der Kruskal-Graph auch auf getrennten Graphen funktionieren kann.

• Prims Algorithmus hat eine Zeitkomplexität von O (V

2) und Kruskals Zeitkomplexität ist O (logV).