23.10.2014 Aufrufe

4 B¨aume und Minimalger ¨uste Minimalger ¨ust Anzahl an Ger ¨usten

4 B¨aume und Minimalger ¨uste Minimalger ¨ust Anzahl an Ger ¨usten

4 B¨aume und Minimalger ¨uste Minimalger ¨ust Anzahl an Ger ¨usten

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4. Bäume <strong>und</strong> Wälder Charakterisierung von <strong>Minimalger</strong>üsten<br />

4 Bäume <strong>und</strong> <strong>Minimalger</strong>üste<br />

Definition 4.1.<br />

Es ein G = (V, E) ein zusammenhängender Graph.<br />

H = (V, E ′ ) heißt <strong>Ger</strong>üst von G gdw. wenn H ein Baum ist <strong>und</strong> E ′ ⊆ E<br />

gilt.<br />

Bemerkung 4.1. Ein <strong>Ger</strong>üst ist also ein zusammenhängender, zykleinfreier,<br />

aufsp<strong>an</strong>nender Untergraph von G.<br />

Beispiel 4.1.<br />

<strong>Ger</strong> üste f ür das Haus vom Nikolaus:<br />

c<br />

c<br />

c<br />

4. Bäume <strong>und</strong> Wälder Charakterisierung von <strong>Minimalger</strong>üsten<br />

<strong>Anzahl</strong> <strong>an</strong> <strong>Ger</strong>üsten<br />

Satz 4.1. [Cayley] Es gibt n n−2 verschiedene <strong>Ger</strong>üste für den<br />

vollständigen Graphen K n (mit n Knoten).<br />

Bemerkung 4.2. Verschieden bedeutet hier wirklich verschieden <strong>und</strong><br />

nicht “nichtisomorph”.<br />

2<br />

2<br />

2<br />

b<br />

d<br />

b<br />

d<br />

b<br />

d<br />

Beweis.<br />

1<br />

3 1<br />

3 1<br />

3<br />

a<br />

e<br />

a<br />

e<br />

a<br />

e<br />

• Idee: Prinzip der doppelten Abzählung: In jeder Matrix ist die Summe<br />

der Zeilensummen gleich der Summe der Spaltensummen.<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 110<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 112<br />

4. Bäume <strong>und</strong> Wälder Charakterisierung von <strong>Minimalger</strong>üsten<br />

<strong>Minimalger</strong>üst<br />

Definition 4.2. Es sei G = (V, E) ein zusammenhängender Graph mit<br />

einer K<strong>an</strong>tengewichtsfunktion w : E → IR.<br />

• F ür F ⊆ E heißt<br />

das Gewicht der K<strong>an</strong>tenmenge F.<br />

w(F) := ∑ e∈F<br />

w(e)<br />

• Es sei H = (V, F) ein <strong>Ger</strong> üst von G. D<strong>an</strong>n ist w(H) := w(F) das<br />

Gewicht des <strong>Ger</strong>üstes H.<br />

4. Bäume <strong>und</strong> Wälder Charakterisierung von <strong>Minimalger</strong>üsten<br />

• Sei t(n, k) die <strong>Anzahl</strong> der Bäume auf V = {1, . . . , n}, in denen der<br />

Knoten 1 den Grad k hat.<br />

• Es wird eine Formel f ür t(n, k) bestimmt. Das Ergebnis erfolgt durch<br />

Aufsummieren über alle k.<br />

• B sei ein Baum mit deg(1) = k − 1, C sei ein Baum mit deg(1) =<br />

k. (B, C) heißt verw<strong>an</strong>dtes Paar gdw. C aus B entsteht, indem eine<br />

K<strong>an</strong>te {x, y} entfernt <strong>und</strong> eine K<strong>an</strong>te {1, y} eingef ügt wird.<br />

1<br />

x<br />

y<br />

1<br />

x<br />

y<br />

• Ein <strong>Ger</strong> üst H von G heißt <strong>Minimalger</strong>üst von G gdw. w(H) ≤ w(H ′ )<br />

f ür alle <strong>Ger</strong> üste H ′ von G.<br />

• Es seien B 1 , B 2 , . . . , B t(n,k−1)<br />

B<br />

C<br />

die Bäume mit deg(1) = k − 1 <strong>und</strong><br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 111<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 113


4. Bäume <strong>und</strong> Wälder Charakterisierung von <strong>Minimalger</strong>üsten<br />

C 1 , C 2 , . . . , C t(n,k) die Bäume mit deg(1) = k.<br />

• Die t(n, k − 1) × t(n, k) Matrix A = (a ij ) sei definiert durch:<br />

{<br />

1 falls (Bi , C<br />

a ij :=<br />

j ) verw<strong>an</strong>dtes Paar<br />

0 sonst<br />

• Aus B i k<strong>an</strong>n jede der n − 1 K<strong>an</strong>ten entfernt werden, ausgenommen<br />

die k − 1 mit 1 inzidenten K<strong>an</strong>ten.<br />

In der i-ten Zeile von A stehen so viele Einsen, wie es verw<strong>an</strong>dte<br />

Paare (B i , C) gibt, also genau (n − 1) − (k − 1) = n − k.<br />

Summe der Zeilensummen von A = t(n, k − 1)(n − k).<br />

• In der j-ten Spalte von A stehen so viele Einsen, wie es verw<strong>an</strong>dte<br />

Paare (B, C j ) gibt.<br />

4. Bäume <strong>und</strong> Wälder Charakterisierung von <strong>Minimalger</strong>üsten<br />

• Es gibt also genau (n − 1 − n 1 ) + · · · + (n − 1 − n k ) = (k − 1)(n − 1)<br />

Einsen in der j-ten Spalte von A.<br />

Summe der Spaltensummen von A = t(n, k)(k − 1)(n − 1).<br />

• Das Prinzip der doppelten Abzählung liefert<br />

bzw.<br />

t(n, k − 1)(n − k) = t(n, k)(k − 1)(n − 1)<br />

t(n, k − 1) = (n − 1) k − 1 t(n, k)<br />

n − k<br />

• Ausgehend von t(n, n − 1) = 1 ergibt sich durch Induktion<br />

t(n, n − i) = (n − 1) i−1 (<br />

n − 2<br />

i − 1<br />

)<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 114<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 116<br />

4. Bäume <strong>und</strong> Wälder Charakterisierung von <strong>Minimalger</strong>üsten<br />

• Die in C j mit 1 verb<strong>und</strong>enen Knoten seien y 1 , . . . , y r .<br />

y1<br />

1<br />

y2<br />

y4<br />

• Entfernt m<strong>an</strong> eine der K<strong>an</strong>ten {1, y r }, so entsteht ein Graph mit zwei<br />

ZHKs. V r sei die ZHK, die y r enthält <strong>und</strong> n r := |V r |.<br />

C<br />

y3<br />

4. Bäume <strong>und</strong> Wälder Charakterisierung von <strong>Minimalger</strong>üsten<br />

• F ür die <strong>Anzahl</strong> t(n) aller Bäume ergibt sich somit<br />

t(n) =<br />

=<br />

=<br />

∑n−1<br />

t(n, n − i)<br />

i=1<br />

∑n−1<br />

(<br />

n − 2<br />

(n − 1) i−1 i − 1<br />

i=1<br />

∑n−2<br />

(<br />

n − 2<br />

(n − 1) i i<br />

i=0<br />

)<br />

= ((n − 1) + 1) n−2 = n n−2<br />

)<br />

• Ein verw<strong>an</strong>dtes Paar (B, C j ) entsteht genau d<strong>an</strong>n, wenn B = (C j \<br />

{{1, y r }})∪{{x, y r }} gilt, wobei x einer der n−1−n r Knoten in V\({1}∪V r )<br />

ist.<br />

✷<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 115<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 117


4. Bäume <strong>und</strong> Wälder Berechnung von <strong>Minimalger</strong>üsten<br />

Berechnung von <strong>Minimalger</strong>üsten<br />

Lemma 4.2. Es sei G = (V, E) ein zusammenhängender Graph mit<br />

einer K<strong>an</strong>tengewichtsfunktion w : E → IR. Weiterhin sei U ⊆ V <strong>und</strong> e 0<br />

eine K<strong>an</strong>te zwischen U <strong>und</strong> V \ U mit minimalem Gewicht.<br />

D<strong>an</strong>n existiert ein <strong>Minimalger</strong>üst für G, das die K<strong>an</strong>te e 0 enthält.<br />

Beweis. Falls ein <strong>Minimalger</strong> üst T 0 die K<strong>an</strong>te e 0 nicht enthält, so nehmen<br />

wir e 0 zu T 0 <strong>und</strong> entfernen eine K<strong>an</strong>te e 1 , die U <strong>und</strong> V \U verbindet.<br />

Wegen der Minimalitätseigenschaft von e 0 erhöhen wir damit nicht das<br />

Gewicht des <strong>Ger</strong> üstes. ✷<br />

4. Bäume <strong>und</strong> Wälder Berechnung von <strong>Minimalger</strong>üsten<br />

Algorithmus 4.1. [Prim] Es sei G = (V, E) ein zusammenhängender<br />

Graph mit V = {1, . . . , n} <strong>und</strong> K<strong>an</strong>tengewichtsfunktion w. Es gelte<br />

w({i, j}) = ∞, falls {i, j} /∈ E. Der Algorithmus berechnet ein <strong>Minimalger</strong><br />

üst in B.<br />

U := {1};<br />

for i := 2 to n do d u (i) := w({1, i});<br />

while U ≠ V do<br />

bestimme Knoten u mit d U (u) = min{d U (v) : v ∈ V \ U}; (*)<br />

bestimme K<strong>an</strong>te e := {x, u} mit w(e) = d U (u) <strong>und</strong> x ∈ U; (*)<br />

B := B ∪ {e};<br />

U := U ∪ {u};<br />

for all v ∈ V \ U do d U (v) := min{d U (v), w({u, v}); (**)<br />

end<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 118<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 120<br />

4. Bäume <strong>und</strong> Wälder Berechnung von <strong>Minimalger</strong>üsten<br />

Der Algorithmus von Prim<br />

4. Bäume <strong>und</strong> Wälder Berechnung von <strong>Minimalger</strong>üsten<br />

c<br />

9<br />

b 4<br />

v0=a<br />

• Wir beginnen mit einem beliebigen Knoten v, d.h. U := {v}.<br />

• In einem Iterationsschritt berechnen wir f ür alle v ∈ V \ U den Knoten<br />

w, der am nächsten zu einem Knoten in U liegt.<br />

• Dieser Knoten w wird selektiert, die entsprechenden K<strong>an</strong>te wird in<br />

den Baum aufgenommen <strong>und</strong> w wird in U aufgenommen.<br />

• Dies setzen wir fort, bis alle Knoten in U sind.<br />

Beispiel 4.2. Wir betrachten<br />

den Graphen:<br />

Es ergibt sich in dieser Reihenfolge:<br />

5 2<br />

d<br />

26<br />

g<br />

10<br />

e<br />

13 1<br />

3<br />

18<br />

5<br />

6 4<br />

f<br />

4<br />

i<br />

2 2<br />

h<br />

B = {{a, d}, {b, d}, {b, c}, {c, f}, {e, f}, {e, h}, {g, h}, {h, i}}<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 119<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 121


4. Bäume <strong>und</strong> Wälder Berechnung von <strong>Minimalger</strong>üsten<br />

Beispiel 4.3.<br />

b<br />

m<br />

12<br />

f<br />

12<br />

4 4<br />

l<br />

7<br />

10<br />

11<br />

a<br />

c<br />

k<br />

20<br />

5<br />

7<br />

10<br />

17<br />

3<br />

13<br />

8<br />

4. Bäume <strong>und</strong> Wälder Berechnung von <strong>Minimalger</strong>üsten<br />

Der Algorithmus von Kruskal<br />

• Beim Algorithmus von Prim baut m<strong>an</strong> ausgehend von einem Knoten<br />

den Baum sukzessive auf.<br />

• Beim Algorithmus von Kruskal beginnt m<strong>an</strong> stattdessen mit den einzelnen<br />

Knoten. Diese stellen einen Wald dar.<br />

d<br />

g<br />

3 20<br />

e<br />

i<br />

16<br />

j<br />

• M<strong>an</strong> versucht nun, diese Wälder optimal zu einem Baum zusammenzusetzen.<br />

8<br />

h<br />

9<br />

• Hierzu sortiert m<strong>an</strong> zunächst alle K<strong>an</strong>ten aufsteigend nach ihrer<br />

Länge.<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 122<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 124<br />

4. Bäume <strong>und</strong> Wälder Berechnung von <strong>Minimalger</strong>üsten<br />

Satz 4.3. Algorithmus 4.1 berechnet ein <strong>Minimalger</strong>üst in Zeit O(|V| 2 ).<br />

Beweis. Es sind zwei Dinge zu beweisen:<br />

• Korrektheit des Algorithmus<br />

Wir zeigen induktiv: Nach jeder Ausf ührung von (*) (bzw. nach (**))<br />

gibt d U (v) f ür alle v ∈ V \ U den Abst<strong>an</strong>d zu einem nächstgelegenen<br />

Knoten u ∈ U <strong>an</strong>.<br />

Korrektheit des Algorithmus folgt d<strong>an</strong>n mit Lemma 4.2. Tafel ✎.<br />

• Laufzeit<br />

– Die dominieren Schritte innerhalb der While-Schleife: (*) <strong>und</strong> (**).<br />

– Die While-Schleife wird |V|-mal durchlaufen.<br />

– Schritte (*) <strong>und</strong> (**) können in O(|V|) ausgef ührt werden.<br />

4. Bäume <strong>und</strong> Wälder Berechnung von <strong>Minimalger</strong>üsten<br />

• M<strong>an</strong> beginnt, in dem m<strong>an</strong> die die k ürzeste K<strong>an</strong>te in den Wald aufnimmt.<br />

Der Wald hat jetzt eine ZHK weniger.<br />

• In Iteration i: Falls die i-te K<strong>an</strong>te zu einem Kreis f ühren w ürde, verwirft<br />

m<strong>an</strong> sie. Andernfalls nimmt m<strong>an</strong> sie in den Wald auf, wodurch<br />

sich wiederum die <strong>Anzahl</strong> der ZHKs verringert.<br />

• Dies macht m<strong>an</strong> sol<strong>an</strong>ge, bis ein aufsp<strong>an</strong>nender Baum entst<strong>an</strong>den<br />

ist.<br />

• Dies ist genau d<strong>an</strong>n der Fall, wenn m<strong>an</strong> n − 1 K<strong>an</strong>ten aufgenommen<br />

hat (vgl. Satz 1.4 <strong>und</strong> Satz 1.5).<br />

✷<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 123<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 125


4. Bäume <strong>und</strong> Wälder Berechnung von <strong>Minimalger</strong>üsten<br />

4. Bäume <strong>und</strong> Wälder Berechnung von <strong>Minimalger</strong>üsten<br />

c<br />

9<br />

b 4<br />

v0=a<br />

5 2<br />

10<br />

6 4<br />

Beispiel 4.4. Wir betrachten<br />

den Graphen:<br />

d<br />

e<br />

13 1<br />

f<br />

26<br />

18<br />

3<br />

5<br />

4<br />

Es ergibt sich in dieser Reihenfolge:<br />

g<br />

2 2<br />

h<br />

i<br />

B = {{e, f}, {b, d}, {g, h}, {h, i}, {e, h}, {b, c}, {c, f}, {a, d}}<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 126<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 128<br />

4. Bäume <strong>und</strong> Wälder Berechnung von <strong>Minimalger</strong>üsten<br />

Algorithmus 4.2. [Kruskal]<br />

beim Algorithmus von Prim.<br />

Vorraussetzungen, Ein- <strong>und</strong> Ausgabe wie<br />

B := ∅; ZHK := ∅; i := 0;<br />

L := Liste der K<strong>an</strong>ten aufsteigend sortiert nach ihrer Länge;<br />

for all v ∈ V do ZHK := ZHK ∪ {{v}};<br />

while |ZHK| > 1 do<br />

i := i + 1;<br />

Es sei {v, w} das i-te Element von L;<br />

if v <strong>und</strong> w gehören zu verschiedenen Komponenten K 1 <strong>und</strong> K 2 in ZHK then<br />

ZHK := (ZHK \ {K 1 , K 2 }) ∪ {K 1 ∪ K 2 };<br />

B := B ∪ {v, w};<br />

end<br />

end<br />

4. Bäume <strong>und</strong> Wälder Berechnung von <strong>Minimalger</strong>üsten<br />

Satz 4.4. Algorithmus 4.2 berechnet ein <strong>Minimalger</strong>üst in Zeit<br />

O(|E| log |V|).<br />

Beweis. Die Korrektheit des Algorithmus von Kruskal k<strong>an</strong>n induktiv<br />

durch wiederholte Anwendung von Lemma 4.2 gezeigt werden. Tafel<br />

✎.<br />

Zeitaufw<strong>an</strong>d: Der dominierende Schritt ist die Sortierung. Der Aufw<strong>an</strong>d<br />

zur Sortierung der K<strong>an</strong>ten ist<br />

O(|E| log |E|) = O(|E| log |V| 2 ) = O(|E| 2 log |V|) = O(|E| log |V|)<br />

F ür die effiziente Vereinigung der ZHKs <strong>und</strong> den vor<strong>an</strong>gehenden<br />

Test benutzt m<strong>an</strong> Datenstrukturen f ür das sogen<strong>an</strong>nte Union-Find-<br />

Problem. ✷<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 127<br />

Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 129

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!