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