Borůvka-Algorithmus: Unterschied zwischen den Versionen

Aus KGS-Wiki
(→‎Beispiel: Layout)
(Beispiel: Zusammenhangskomponenten besser visualisiert)
Zeile 89: Zeile 89:
{{Thumbnailbox|
{{Thumbnailbox|
INHALT={{#mermaid:graph LR
INHALT={{#mermaid:graph LR
subgraph acd["{A, C, D}"]
a((A))
a((A))
b((B))
c((C))
c((C))
d((D))
d((D))
end
subgraph be["{B, E}"]
b((B))
e((E))
e((E))
end
a -- 3 --- b
a -- 3 --- b
a -- 1 --- c
a -- 1 --- c
Zeile 107: Zeile 111:
style d stroke:red;
style d stroke:red;
style e stroke:green;
style e stroke:green;
style acd stroke:red, stroke-width: 3px;
style be stroke:green, stroke-width: 3px;
linkStyle default stroke:lightgray, fill:none;
linkStyle default stroke:lightgray, fill:none;
linkStyle 1 stroke:red, stroke-width: 3px;
linkStyle 1 stroke:red, stroke-width: 3px;
Zeile 118: Zeile 124:
{{Thumbnailbox|
{{Thumbnailbox|
INHALT={{#mermaid:graph LR
INHALT={{#mermaid:graph LR
subgraph acd["{A, C, D}"]
a((A))
a((A))
b((B))
c((C))
c((C))
d((D))
d((D))
end
subgraph be["{B, E}"]
b((B))
e((E))
e((E))
end
a -- 3 --- b
a -- 3 --- b
a -- 1 --- c
a -- 1 --- c
Zeile 136: Zeile 146:
style d stroke:red;
style d stroke:red;
style e stroke:green;
style e stroke:green;
style acd stroke:red, stroke-width: 3px;
style be stroke:green, stroke-width: 3px;
linkStyle default stroke:lightgray, fill:none;
linkStyle default stroke:lightgray, fill:none;
linkStyle 1 stroke:red, stroke-width: 3px;
linkStyle 1 stroke:red, stroke-width: 3px;
Zeile 148: Zeile 160:
{{Thumbnailbox|
{{Thumbnailbox|
INHALT={{#mermaid:graph LR
INHALT={{#mermaid:graph LR
subgraph abcde["{A, B, C, D, E}"]
a((A))
a((A))
b((B))
b((B))
Zeile 160: Zeile 173:
c -- 2 --- d
c -- 2 --- d
d -- 7 --- e
d -- 7 --- e
end
classDef default stroke:red, stroke-width: 3px;linkStyle default stroke:lightgray, fill:none;
classDef default stroke:red, stroke-width: 3px;linkStyle default stroke:lightgray, fill:none;
style abcde stroke:red, stroke-width: 3px;
linkStyle 1 stroke:red, stroke-width: 3px;
linkStyle 1 stroke:red, stroke-width: 3px;
linkStyle 4 stroke:red, stroke-width: 3px;
linkStyle 4 stroke:red, stroke-width: 3px;

Version vom 31. März 2023, 08:48 Uhr

Ein Beispielgraph

Der Borůvka-Algorithmus ist ein Algorithmus, der zu einem gegebenen gewichteten Graphen einen minimalen Spannbaum erzeugt.

Der Algorithmus wurde 1926 von Otakar Borůvka entworfen und arbeitet wie folgt:

  1. Gegeben sei ein Graph G.
  2. Erzeuge einen neuen Graphen T, der später der gesuchte Spannbaum wird.
  3. Füge alle Knoten, aber keine Kanten des Graphen G zu T hinzu.
  4. Wiederhole die folgenden Schritte, bis T zusammenhängend ist:
    1. Füge zu jeder Zusammenhangskomponente von T deren kleinste ausgehende Kante in G hinzu.

Beispiel

So erzeugt der Borůvka-Algorithmus aus dem Beispielgraphen einen MST:

Da nun zusammenhängend ist, terminiert der Algorithmus.