Kruskal-Algorithmus: Unterschied zwischen den Versionen
Aus KGS-Wiki
Sn (Diskussion | Beiträge) (→Beispiel: Layout) |
Sn (Diskussion | Beiträge) K (Graph-Layout) |
||
Zeile 7: | Zeile 7: | ||
e((E)) | e((E)) | ||
a -- 3 --- b | a -- 3 --- b | ||
b -- 7 --- c | |||
a -- 1 --- c | a -- 1 --- c | ||
b -- 5 --- d | b -- 5 --- d | ||
b -- 1 --- e | b -- 1 --- e | ||
Zeile 33: | Zeile 33: | ||
e((E)) | e((E)) | ||
a -- 3 --- b | a -- 3 --- b | ||
b -- 7 --- c | |||
a -- 1 --- c | a -- 1 --- c | ||
b -- 5 --- d | b -- 5 --- d | ||
b -- 1 --- e | b -- 1 --- e | ||
Zeile 40: | Zeile 40: | ||
d -- 7 --- e | d -- 7 --- e | ||
linkStyle default stroke:lightgray, fill:none; | linkStyle default stroke:lightgray, fill:none; | ||
linkStyle | linkStyle 2 stroke:#00b169, color:green; | ||
}} | }} | ||
|CAPTION=Schritt 1 | |CAPTION=Schritt 1 | ||
Zeile 54: | Zeile 54: | ||
e((E)) | e((E)) | ||
a -- 3 --- b | a -- 3 --- b | ||
b -- 7 --- c | |||
a -- 1 --- c | a -- 1 --- c | ||
b -- 5 --- d | b -- 5 --- d | ||
b -- 1 --- e | b -- 1 --- e | ||
Zeile 61: | Zeile 61: | ||
d -- 7 --- e | d -- 7 --- e | ||
linkStyle default stroke:lightgray, fill:none; | linkStyle default stroke:lightgray, fill:none; | ||
linkStyle | linkStyle 2 stroke:#00b169, color:green; | ||
linkStyle 4 stroke:#00b169, color:green; | linkStyle 4 stroke:#00b169, color:green; | ||
}} | }} | ||
Zeile 76: | Zeile 76: | ||
e((E)) | e((E)) | ||
a -- 3 --- b | a -- 3 --- b | ||
b -- 7 --- c | |||
a -- 1 --- c | a -- 1 --- c | ||
b -- 5 --- d | b -- 5 --- d | ||
b -- 1 --- e | b -- 1 --- e | ||
Zeile 83: | Zeile 83: | ||
d -- 7 --- e | d -- 7 --- e | ||
linkStyle default stroke:lightgray, fill:none; | linkStyle default stroke:lightgray, fill:none; | ||
linkStyle | linkStyle 2 stroke:#00b169, color:green; | ||
linkStyle 4 stroke:#00b169, color:green; | linkStyle 4 stroke:#00b169, color:green; | ||
linkStyle 5 stroke:#00b169, color:green; | linkStyle 5 stroke:#00b169, color:green; | ||
Zeile 99: | Zeile 99: | ||
e((E)) | e((E)) | ||
a -- 3 --- b | a -- 3 --- b | ||
b -- 7 --- c | |||
a -- 1 --- c | a -- 1 --- c | ||
b -- 5 --- d | b -- 5 --- d | ||
b -- 1 --- e | b -- 1 --- e | ||
Zeile 106: | Zeile 106: | ||
d -- 7 --- e | d -- 7 --- e | ||
linkStyle default stroke:lightgray, fill:none; | linkStyle default stroke:lightgray, fill:none; | ||
linkStyle | linkStyle 2 stroke:#00b169, color:green; | ||
linkStyle 4 stroke:#00b169, color:green; | linkStyle 4 stroke:#00b169, color:green; | ||
linkStyle 5 stroke:#00b169, color:green; | linkStyle 5 stroke:#00b169, color:green; |
Version vom 31. März 2023, 11:16 Uhr
Der Kruskal-Algorithmus ist ein Algorithmus, der zu einem gegebenen gewichteten Graphen einen minimalen Spannbaum erzeugt.
Der Algorithmus wurde 1956 von Joseph Kruskal entworfen und wie folgt beschrieben:
Führe den folgenden Schritt so oft wie möglich aus: Wähle unter den noch nicht ausgewählten Kanten von (dem Graphen) die kürzeste Kante, die mit den schon gewählten Kanten keinen Kreis bildet.[1]
Beispiel
So erzeugt der Kruskal-Algorithmus aus dem Beispielgraphen einen MST:
Je nach Implementierung könnte im ersten Schritt auch die Kante B—E ausgewählt werden.
Nach dem vierten Schritt gibt es keine Kante mehr im Graphen, die keinen Kreis erzeugt, darum terminiert der Algorithmus.
Weblinks
Quellen
- ↑ Joseph Kruskal: On the shortest spanning subtree and the traveling salesman problem. In: Proceedings of the American Mathematical Society, 7, 1956, S. 48–50