Kruskal-Algorithmus: Unterschied zwischen den Versionen

Aus KGS-Wiki
K (Präziserer Link)
K (Mermaid auf Diagrams umgestellt)
Zeile 1: Zeile 1:
{{Thumbnailbox|
{{Thumbnailbox|
INHALT={{#mermaid:graph LR
INHALT=<mermaid>
graph LR
a((A))
a((A))
b((B))
b((B))
Zeile 13: Zeile 14:
c -- 2 --- d
c -- 2 --- d
d -- 7 --- e
d -- 7 --- e
}}
</mermaid>
|CAPTION=Ein Beispielgraph}}
|CAPTION=Ein Beispielgraph}}


Zeile 26: Zeile 27:
{{Hinweisbaustein|style=padding:none; border:none;|INHALT=
{{Hinweisbaustein|style=padding:none; border:none;|INHALT=
{{Thumbnailbox|
{{Thumbnailbox|
INHALT={{#mermaid:graph LR
INHALT=<mermaid>
graph LR
a((A))
a((A))
b((B))
b((B))
Zeile 41: Zeile 43:
linkStyle default stroke:lightgray, fill:none;
linkStyle default stroke:lightgray, fill:none;
linkStyle 2 stroke:#00b169, color:green;
linkStyle 2 stroke:#00b169, color:green;
}}
</mermaid>
|CAPTION=Schritt 1
|CAPTION=Schritt 1
|ALIGN=left
|ALIGN=left
Zeile 47: Zeile 49:


{{Thumbnailbox|
{{Thumbnailbox|
INHALT={{#mermaid:graph LR
INHALT=<mermaid>
graph LR
a((A))
a((A))
b((B))
b((B))
Zeile 63: Zeile 66:
linkStyle 2 stroke:#00b169, color:green;
linkStyle 2 stroke:#00b169, color:green;
linkStyle 4 stroke:#00b169, color:green;
linkStyle 4 stroke:#00b169, color:green;
}}
</mermaid>
|CAPTION=Schritt 2
|CAPTION=Schritt 2
|ALIGN=left
|ALIGN=left
Zeile 69: Zeile 72:


{{Thumbnailbox|
{{Thumbnailbox|
INHALT={{#mermaid:graph LR
INHALT=<mermaid>
graph LR
a((A))
a((A))
b((B))
b((B))
Zeile 86: Zeile 90:
linkStyle 4 stroke:#00b169, color:green;
linkStyle 4 stroke:#00b169, color:green;
linkStyle 5 stroke:#00b169, color:green;
linkStyle 5 stroke:#00b169, color:green;
}}
</mermaid>
|CAPTION=Schritt 3
|CAPTION=Schritt 3
|ALIGN=left
|ALIGN=left
Zeile 92: Zeile 96:


{{Thumbnailbox|
{{Thumbnailbox|
INHALT={{#mermaid:graph LR
INHALT=<mermaid>
graph LR
a((A))
a((A))
b((B))
b((B))
Zeile 110: Zeile 115:
linkStyle 5 stroke:#00b169, color:green;
linkStyle 5 stroke:#00b169, color:green;
linkStyle 0 stroke:#00b169, color:green;
linkStyle 0 stroke:#00b169, color:green;
}}
</mermaid>
|CAPTION=Schritt 4
|CAPTION=Schritt 4
|ALIGN=left
|ALIGN=left

Version vom 14. September 2023, 15:16 Uhr

graph LR a((A)) b((B)) c((C)) d((D)) e((E)) a -- 3 --- b b -- 7 --- c a -- 1 --- c b -- 5 --- d b -- 1 --- e c -- 2 --- d d -- 7 --- e

Ein Beispielgraph

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

  1. Joseph Kruskal: On the shortest spanning subtree and the traveling salesman problem. In: Proceedings of the American Mathematical Society, 7, 1956, S. 48–50