Der Algorithmus von Kruskal

Werbung
4. Bäume und Minimalgerüste
Berechnung von Minimalgerüsten
4. Bäume und Minimalgerüste
Berechnung von Minimalgerüsten
Der Algorithmus von Kruskal
• Beim Algorithmus von Prim baut man ausgehend von einem Knoten
den Baum sukzessive auf.
• Beim Algorithmus von Kruskal beginnt man stattdessen mit den einzelnen Knoten. Diese stellen einen Wald dar.
• Man versucht nun, diese Wälder optimal zu einem Baum zusammenzusetzen.
• Hierzu sortiert man zunächst alle Kanten aufsteigend nach ihrer
Länge.
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
4. Bäume und Minimalgerüste
121
Berechnung von Minimalgerüsten
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
4. Bäume und Minimalgerüste
123
Berechnung von Minimalgerüsten
• Man beginnt, indem man die die k ¨urzeste Kante in den Wald aufnimmt. Der Wald hat jetzt eine ZHK weniger.
Algorithmus 4.2. [Kruskal] Vorraussetzungen, Ein- und Ausgabe wie
beim Algorithmus von Prim.
• In Iteration i: Falls die i-te Kante zu einem Kreis f ¨uhren w ¨urde, verwirft man sie. Andernfalls nimmt man sie in den Wald auf, wodurch
sich wiederum die Anzahl der ZHKs verringert.
B := ∅; ZHK := ∅; i := 0;
L := Liste der Kanten aufsteigend sortiert nach ihrer Länge;
for all v ∈ V do ZHK := ZHK ∪ {{v}};
while |ZHK| > 1 do
i := i + 1;
Es sei {v, w} das i-te Element von L;
if v und w gehören zu verschiedenen Komponenten K1 und K2 in ZHK then
ZHK := (ZHK \ {K1, K2}) ∪ {K1 ∪ K2};
B := B ∪ {v, w};
end
end
• Dies macht man solange, bis ein aufspannender Baum entstanden
ist.
• Dies ist genau dann der Fall, wenn man n − 1 Kanten aufgenommen
hat (vgl. Satz 1.4 und Satz 1.5).
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
122
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
124
4. Bäume und Minimalgerüste
Berechnung von Minimalgerüsten
b
9
v0=a
5
2
4. Bäume und Minimalgerüste
c
4
6
10
Minimalgerüste und TSP
Minimalgerüste und TSP
4
e
Beispiel 4.4. Wir betrachten
den Graphen:
d
13
f
1
3
26
4
5
18
g
i
2
h
2
Es ergibt sich in dieser Reihenfolge:
B = {{e, f}, {b, d}, {g, h}, {h, i}, {e, h}, {b, c}, {c, f}, {a, d}}
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
4. Bäume und Minimalgerüste
125
Berechnung von Minimalgerüsten
Satz 4.4. Algorithmus 4.2 berechnet ein Minimalgerüst in Zeit
O(|E| log |V|).
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
4. Bäume und Minimalgerüste
2
O(|E| log |E|) = O(|E| log |V| ) = O(|E| 2 log |V|) = O(|E| log |V|)
F ¨ur die effiziente Vereinigung der ZHKs und den vorangehenden
Test benutzt man Datenstrukturen f ¨ur das sogenannte Union-FindProblem. 2
Minimalgerüste und TSP
Satz 4.5. Es sei G = (V, E) ein vollständiger Graph mit Gewichtsfunktion w : E −→ IN. Weiterhin sei TSP eine optimale TSP-Tour und MST
sei ein Minimalgerüst. Dann gilt:
Beweis. Die Korrektheit des Algorithmus von Kruskal kann induktiv
durch wiederholte Anwendung von Lemma 4.2 gezeigt werden. Tafel
✎.
Zeitaufwand: Der dominierende Schritt ist die Sortierung. Der Aufwand
zur Sortierung der Kanten ist
127
w(MST ) ≤ w(TSP)
Beweis.
• Wenn man aus TSP eine beliebige Kante entfernt, erhält man einen
hamiltonschen Weg HP.
• Jeder hamiltonsche Weg ist ein Ger ¨ust.
• Also folgt w(TSP) ≥ w(HP) ≥ w(MST ).
2
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
126
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
128
4. Bäume und Minimalgerüste
Minimalgerüste und TSP
Satz 4.6. Es sei G = (V, E) ein vollständiger Graph mit Gewichtsfunktion w : E −→ IN, für die die Dreiecksungleichung gilt, d.h.
4. Bäume und Minimalgerüste
Minimalgerüste und TSP
Bemerkung 4.3.
w({i, k}) ≤ w({i, j}) + w({j, k}) ∀i, j, k ∈ V
• Das Verfahren aus Satz 4.6 liefert uns nicht nur eine obere Schranke
f ¨ur die Länge einer optimalen Tour,
Weiterhin sei TSP eine optimale TSP-Tour und MST sei ein Minimalgerüst. Dann gilt:
• sondern auch ein effizientes Konstruktionsverfahren f ¨ur eine Tour mit
Länge ≤ 2 w(TSP).
• Die Tour ergibt sich dabei direkt aus der DFS-Numerierung.
w(MST ) ≤ w(TSP) ≤ 2 w(MST )
• Alternative:
Beweis. Die linke Ungleichung folgt aus Satz 4.5.
– Jede Kante des MST wird durch zwei gerichtete Kanten ersetzt,
– mit dem Algorithmus von Hierholzer wird ein Eulerkreis berechnet
und
– die Knoten werden in der Reihenfolge wie im Eulerkreis “angefahren”.
F ¨ur den Beweis der rechten Ungleichung konstruieren wir mit Hilfe der
Tiefensuche eine Tour aus dem Minimalger ¨ust MST . Tafel ✎. 2
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
129
4. Bäume und Minimalgerüste
Minimalgerüste und TSP
Beispiel 4.5.
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
4. Bäume und Minimalgerüste
Minimalgerüste und TSP
Beispiel 4.6.
a
b
d
3
j
1
b
10
d
f
9
a
2
4
d
c
6
f
e
a
v
t(v)
a
1
b
2
c
3
d
4
e
5
f
6
i
c
e
c
131
g
8
5
7
f
b
h
Tour: a, b, c, d, e, f, a
e
v
t(v)
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
130
a
1
b
2
c
8
d
7
e
3
f
6
g
5
h
4
i
9
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
j
Tour: a, b, e, h, g, f, d, c, i, j, a
10
132
4. Bäume und Minimalgerüste
Minimalgerüste und TSP
• Anschließend können sogenannte Verbesserungsverfahren angewendet werden.
• Der Algorithmus 2-opt sucht beispielsweise nach zwei Kanten, die
gegen zwei andere Kanten ausgetausch werden können, so daß eine
k ¨urzere Tour entsteht.
• Im euklidischen Fall werden damit alle Kreuzungen eliminiert.
i
c
i
c
j
4. Bäume und Minimalgerüste
Anwendung von Minimalgerüsten
Clusteranalyse mit Minimalgerüsten
Beispiel 4.7. [Clusteranalyse]
Gegeben sei eine Menge von
Punkten z.B. im IR2, die gewisse
Häufungen aufweist.
Wie kann man diese Häufungen algorithmisch erkennen?
j
d
d
f
f
a
a
g
g
b
b
h
h
e
e
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
133
4. Bäume und Minimalgerüste
Minimalgerüste und TSP
• Analog sucht der Algorithmus 3-opt nach drei Kanten f ¨ur einen Austausch.
i
c
i
c
j
j
d
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
4. Bäume und Minimalgerüste
135
Anwendung von Minimalgerüsten
• In Häufungen liegen Knoten nahe zusammen.
• Ansatz: Wir legen zwischen zwei Knoten eine Kante, wenn sie nicht
zu weit voneinander entfernt sind (≤ α).
d
f
f
a
E := {{v, w}|d(v, w) ≤ α}
a
g
g
b
• Hierbei ist d(v, w) die Entfernung auf Basis einer Metrik d(·, ·) und α
ist die maximal erlaubte Entfernung.
b
h
h
e
e
i
c
j
d
f
• Der nächste 2-opt-Tausch liefert eine optimale Tour.
a
g
• Zur Berechnung dieser können wir den Algorithmus von Kruskal verwenden.
b
h
e
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
• Die Zusammenhangskomponenten des entsprechenden Graphen
sehen wir dann als Häufungen an.
134
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
136
4. Bäume und Minimalgerüste
Anwendung von Minimalgerüsten
• Berechnung eines Minimalger ¨ustes mit dem Algorithmus von Kruskal
und
• Elimination der Kanten mit Länge > α.
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
137
4. Bäume und Minimalgerüste
Anwendung von Minimalgerüsten
Die Benutzung des Algorithmus von Kruskal hat den Vorteil, daß die
Kanten aufsteigend nach Ihrer Länge selektiert werden.
Die Aufnahme einer Kante in den MST können wir als die Verschmelzung zweier Cluster ansehen.
Der Verlauf der Cluster-Verschmelzung wird mit einem sogenannten
Dendogramm visualisiert.
b
a
f
g
e
c
e
f
g
a
b
c
d
d
Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 04/05
138
Herunterladen