Borůvka-Algorithmus: Unterschied zwischen den Versionen
Aus KGS-Wiki
Sn (Diskussion | Beiträge) (Beispiel: Zusammenhangskomponenten besser visualisiert) |
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 40: | Zeile 40: | ||
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 66: | Zeile 66: | ||
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 79: | Zeile 79: | ||
style e stroke:orange; | style e stroke:orange; | ||
linkStyle default stroke:lightgray, fill:none; | linkStyle default stroke:lightgray, fill:none; | ||
linkStyle | linkStyle 2 stroke:red, stroke-width: 3px; | ||
linkStyle 4 stroke:green, stroke-width: 3px; | linkStyle 4 stroke:green, stroke-width: 3px; | ||
linkStyle 5 stroke:purple, stroke-width: 3px; | linkStyle 5 stroke:purple, stroke-width: 3px; | ||
Zeile 99: | Zeile 99: | ||
end | end | ||
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 114: | Zeile 114: | ||
style be stroke:green, stroke-width: 3px; | style be stroke:green, stroke-width: 3px; | ||
linkStyle default stroke:lightgray, fill:none; | linkStyle default stroke:lightgray, fill:none; | ||
linkStyle | linkStyle 2 stroke:red, stroke-width: 3px; | ||
linkStyle 4 stroke:green, stroke-width: 3px; | linkStyle 4 stroke:green, stroke-width: 3px; | ||
linkStyle 5 stroke:red, stroke-width: 3px; | linkStyle 5 stroke:red, stroke-width: 3px; | ||
Zeile 134: | Zeile 134: | ||
end | end | ||
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 149: | Zeile 149: | ||
style be stroke:green, stroke-width: 3px; | style be stroke:green, stroke-width: 3px; | ||
linkStyle default stroke:lightgray, fill:none; | linkStyle default stroke:lightgray, fill:none; | ||
linkStyle | linkStyle 2 stroke:red, stroke-width: 3px; | ||
linkStyle 4 stroke:green, stroke-width: 3px; | linkStyle 4 stroke:green, stroke-width: 3px; | ||
linkStyle 5 stroke:red, stroke-width: 3px; | linkStyle 5 stroke:red, stroke-width: 3px; | ||
Zeile 167: | Zeile 167: | ||
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 176: | Zeile 176: | ||
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; | style abcde stroke:red, stroke-width: 3px; | ||
linkStyle | linkStyle 2 stroke:red, stroke-width: 3px; | ||
linkStyle 4 stroke:red, stroke-width: 3px; | linkStyle 4 stroke:red, stroke-width: 3px; | ||
linkStyle 5 stroke:red, stroke-width: 3px; | linkStyle 5 stroke:red, stroke-width: 3px; |
Version vom 31. März 2023, 11:27 Uhr
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:
- Gegeben sei ein Graph
G
. - Erzeuge einen neuen Graphen
T
, der später der gesuchte Spannbaum wird. - Füge alle Knoten, aber keine Kanten des Graphen
G
zuT
hinzu. - Wiederhole die folgenden Schritte, bis
T
zusammenhängend ist:- Füge zu jeder Zusammenhangskomponente von
T
deren kleinste ausgehende Kante inG
hinzu.
- Füge zu jeder Zusammenhangskomponente von
Beispiel
So erzeugt der Borůvka-Algorithmus aus dem Beispielgraphen einen MST:
Da nun zusammenhängend ist, terminiert der Algorithmus.