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
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