3. minimale spannb aume - · 3. minimale spannb aume sei g= (v;e) ein einfacher ungerichteter...
TRANSCRIPT
![Page 1: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/1.jpg)
3. Minimale Spannbaume
Sei G = (V,E) ein einfacher ungerichteter Graph, der o.B.d.A.zusammenhangend ist. Sei weiter w : E → R eineGewichtsfunktion auf den Kanten von G.Wir setzen
E′ ⊆ E: w(E′) =∑
e∈E′ w(e),
T = (V ′, E′) ein Teilgraph von G: w(T ) = w(E′).
Definition 99T heißt minimaler Spannbaum (MSB, MST) von G, falls TSpannbaum von G ist und gilt:
w(T ) ≤ w(T ′) fur alle Spannbaume T ′ von G.
EADS 3.0 BFS-Algorithmus 433/600©Ernst W. Mayr
![Page 2: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/2.jpg)
Beispiel 100
8 3
5
67
1
2
4minimaler
Spannbaum
Anwendungen:
Telekom: Verbindungen der Telefonvermittlungen
Leiterplatinen
EADS 3.0 BFS-Algorithmus 434/600©Ernst W. Mayr
![Page 3: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/3.jpg)
3.1 Konstruktion von minimalen Spannbaumen
Es gibt zwei Prinzipien fur die Konstruktion von minimalenSpannbaumen (Tarjan):
”blaue“ Regel
”rote“ Regel
EADS 3.1 Konstruktion von minimalen Spannbaumen 435/600©Ernst W. Mayr
![Page 4: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/4.jpg)
Satz 101Sei G = (V,E) ein zusammenhangender ungerichteter Graph,w : E → R eine Gewichtsfunktion, C = (V1, V2) ein Schnitt (d.h.V = V1 ∪ V2, V1 ∩ V2 = ∅, V1 6= ∅ 6= V2). Sei weiterEC = E ∩ (V1 × V2) die Menge der Kanten
”uber den Schnitt
hinweg“. Dann gilt: (”
blaue“ Regel)
1 Ist e ∈ EC die einzige Kante minimalen Gewichts (uber alleKanten in EC), dann ist e in jedem minimalen Spannbaum fur(G,w) enthalten.
2 Hat e ∈ EC minimales Gewicht (uber alle Kanten in EC),dann gibt es einen minimalen Spannbaum von (G,w), der eenthalt.
EADS 3.1 Konstruktion von minimalen Spannbaumen 436/600©Ernst W. Mayr
![Page 5: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/5.jpg)
Beweis:[durch Widerspruch]
1 Sei T ein minimaler Spannbaum von (G,w), sei e ∈ EC dieminimale Kante. Annahme: e /∈ T . Da T Spannbaum⇒ T ∩ EC 6= ∅.Sei T ∩ EC = e1, e2, . . . , ek, k ≥ 1. Dann enthalt T ∪ eeinen eindeutig bestimmten Kreis (den sogenannten durch ebzgl. T bestimmten Fundamentalkreis). Dieser Kreis mussmindestens eine Kante ∈ EC ∩ T enthalten, da die beidenEndpunkte von e auf verschiedenen Seiten des Schnitts Cliegen.
EADS 3.1 Konstruktion von minimalen Spannbaumen 437/600©Ernst W. Mayr
![Page 6: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/6.jpg)
Beweis (Forts.):
e
e′
V1 V2
e
T
e′
Sei e′ ∈ EC ∩ T . Dann gilt nach Voraussetzung w(e′) > w(e). Alsoist T ′ := T − e′ ∪ e ein Spannbaum von G, der echt kleineresGewicht als T hat, Widerspruch zu
”T ist minimaler
Spannbaum“.
EADS 3.1 Konstruktion von minimalen Spannbaumen 438/600©Ernst W. Mayr
![Page 7: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/7.jpg)
Beweis (Forts.):
2 Sei e ∈ EC minimal. Annahme: e kommt in keinem minimalenSpannbaum vor. Sei T ein beliebiger minimaler Spannbaumvon (G,w).
e
V1 V2
e /∈ T ∩ Ec 6= ∅
e /∈ T ∩EC 6= ∅. Sei e′ ∈ EC ∩ T eine Kante auf dem durch ebezuglich T erzeugten Fundamentalkreis. Dann istT ′ = T − e′ ∪ e wieder ein Spannbaum von G, und es istw(T ′) ≤ w(T ). Also ist T ′ minimaler Spannbaum und e ∈ T ′.
EADS 3.1 Konstruktion von minimalen Spannbaumen 439/600©Ernst W. Mayr
![Page 8: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/8.jpg)
Satz 102Sei G = (V,E) ein ungerichteter, gewichteter,zusammenhangender Graph mit Gewichtsfunktion w : E → R.Dann gilt: (
”rote“ Regel)
1 Gibt es zu e ∈ E einen Kreis C in G, der e enthalt undw(e) > w(e′) fur alle e′ ∈ C \ e erfullt, dann kommt e inkeinem minimalen Spannbaum vor.
2 Ist C1 = e1, . . . , ek ein Kreis in G undw(ei) = maxw(ej); 1 ≤ j ≤ k, dann gibt es einenminimalen Spannbaum, der ei nicht enthalt.
EADS 3.1 Konstruktion von minimalen Spannbaumen 440/600©Ernst W. Mayr
![Page 9: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/9.jpg)
Beweis:
1 Nehmen wir an, dass es einen minimalen Spannbaum T gibt,der e = v1, v2 enthalt. Wenn wir e aus T entfernen, sozerfallt T in zwei nicht zusammenhangende Teilbaume T1 undT2 mit vi ∈ Ti, i = 1, 2. Da aber e auf einem Kreis in G liegt,muss es einen Weg von v1 nach v2 geben, der e nicht benutzt.Mithin gibt es eine Kante e 6= e auf diesem Weg, die einenKnoten in T1 mit T2 verbindet. Verbinden wir T1 und T2
entlang e, so erhalten wir einen von T verschiedenenSpannbaum T . Wegen w(e) < w(e) folgt w(T ) < w(T ), imWiderspruch zur Minimalitat von T .
EADS 3.1 Konstruktion von minimalen Spannbaumen 441/600©Ernst W. Mayr
![Page 10: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/10.jpg)
Beweis (Forts.):
2 Wir nehmen an, ei liege in jedem minimalen Spannbaum(MSB) von G, und zeigen die Behauptung durch Widerspruch.
Sei T ein beliebiger MSB von G. Entfernen wir ei aus T , sozerfallt T in zwei nicht zusammenhangende Teilbaume T1 undT2. Da ei auf einem Kreis C1 = e1, . . . , ek in G liegt, konnenwir wie zuvor ei durch eine Kante ej des Kreises C1 ersetzen,die T1 und T2 verbindet. Dadurch erhalten wir einen von Tverschiedenen Spannbaum T , der ei nicht enthalt. Da nachVoraussetzung w(ej) ≤ w(ei) gilt, folgt w(T ) ≤ w(T ) (undsogar w(T ) = w(T ), da T nach Annahme ein MSB ist). Alsoist T ein MSB von G, der ei nicht enthalt, im Widerspruchzur Annahme, ei liege in jedem MSB von G.
EADS 3.1 Konstruktion von minimalen Spannbaumen 442/600©Ernst W. Mayr
![Page 11: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/11.jpg)
Literatur
Robert E. Tarjan:Data Structures and Network AlgorithmsSIAM CBMS-NSF Regional Conference Series in AppliedMathematics Bd. 44 (1983)
EADS 3.1 Konstruktion von minimalen Spannbaumen 443/600©Ernst W. Mayr
![Page 12: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/12.jpg)
3.2 Generischer minimaler Spannbaum-Algorithmus
Initialisiere Wald F von Baumen, jeder Baum ist ein singularerKnoten(jedes v ∈ V bildet einen Baum)while Wald F mehr als einen Baum enthalt do
wahle einen Baum T ∈ F ausbestimme eine leichteste Kante e = v, w aus T heraussei v ∈ T , w ∈ T ′vereinige T und T ′, fuge e zum minimalen Spannbaum hinzu
od
EADS 3.2 Generischer minimaler Spannbaum-Algorithmus 444/600©Ernst W. Mayr
![Page 13: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/13.jpg)
Generischer MST-Algorithmus
T T ′
T ′′ T ′′′
V1 V2
Wald F
EADS 3.2 Generischer minimaler Spannbaum-Algorithmus 445/600©Ernst W. Mayr
![Page 14: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/14.jpg)
3.3 Kruskal’s Algorithmus
algorithm Kruskal (G,w) :=sortiere die Kanten nach aufsteigendem Gewicht in eine Liste Linitialisiere Wald F = Ti, i = 1, . . . , n, mit Ti = viMSB:=∅for i := 1 to length(L) dov, w := Lix := Baum ∈ F , der v enthalt; co x :=Find(v) ocy := Baum ∈ F , der w enthalt; co y :=Find(w) ocif x 6= y then
MSB:=MSB ∪ v, wUnion(x, y) co gewichtete Vereinigung oc
fiod
EADS 3.3 Kruskal’s Algorithmus 446/600©Ernst W. Mayr
![Page 15: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/15.jpg)
Korrektheit: Falls die Gewichte eindeutig sind (w(·) injektiv), folgtdie Korrektheit direkt mit Hilfe der “blauen“ und “roten“ Regel.Ansonsten Induktion uber die Anzahl |V | der Knoten:Ind. Anfang: |V | klein:
√
Sei r ∈ R, Er := e ∈ E;w(e) < r.Es genugt zu zeigen:Sei T1, . . . , Tk ein minimaler Spannwald fur Gr := V,Er (d.h.,wir betrachten nur Kanten mit Gewicht < r). Sei weiter T einMSB von G, dann gilt die
Hilfsbehauptung: Die Knotenmenge eines jeden Ti induziert in Teinen zusammenhangenden Teilbaum, dessen Kanten alle Gewicht< r haben.
EADS 3.3 Kruskal’s Algorithmus 447/600©Ernst W. Mayr
![Page 16: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/16.jpg)
Beweis der Hilfsbehauptung:
Sei Ti =: (Vi, Ei). Wir mussen zeigen, dass Vi in T einenzusammenhangenden Teilbaum induziert. Seien u, v ∈ Vi zweiKnoten, die in Ti durch eine Kante e verbunden sind. Falls derPfad in T zwischen u und v auch Knoten 6∈ Vi enthalt (also dervon Vi induzierte Teilgraph von T nicht zusammenhangend ist),dann enthalt der in T durch Hinzufugen der Kante e entstehendeFundamentalkreis notwendigerweise auch Kanten aus E \ Er undist damit gemaß der “roten“ Regel nicht minimal! Da Tizusammenhangend ist, folgt damit, dass je zwei Knoten aus Vi inT immer durch einen Pfad verbunden sind, der nur Kanten aus Erenthalt.
EADS 3.3 Kruskal’s Algorithmus 448/600©Ernst W. Mayr
![Page 17: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/17.jpg)
Zeitkomplexitat: (mit n = |V |,m = |E|)
Sortieren m logm = O(m log n)
O(m) Find-Operationen O(m)
n− 1 Unions O(n log n)
Satz 103Kruskal’s MSB-Algorithmus hat die ZeitkomplexitatO((m+ n) log n).
Beweis:s.o.
EADS 3.3 Kruskal’s Algorithmus 449/600©Ernst W. Mayr
![Page 18: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/18.jpg)
Beispiel 104 (Kruskals Algorithmus)
1 2
10
9
78
4
8
117 6
2
414
1
2
3
4 5
6
8
7
⇓ minimaler (nicht eindeutiger)Spannbaum
1 2
10
9
78
4
8
117 6
2
414
EADS 3.3 Kruskal’s Algorithmus 450/600©Ernst W. Mayr
![Page 19: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/19.jpg)
3.4 Prim’s Algorithmus
algorithm PRIM-MSB (G,w) :=initialisiere Priority Queue PQ mit Knotenmenge V und
Schlussel +∞, ∀v ∈ Vwahle Knoten r als Wurzel (beliebig)Schlussel k[r] := 0Vorganger[r] := nilwhile PQ 6= ∅ do
u := ExtractMin(PQ)for alle Knoten v, die in G zu u benachbart sind do
if v ∈ PQ and w(u, v) < k[v] thenVorganger[v] := uk[v] := w(u, v)
fiod
od
EADS 3.4 Prim’s Algorithmus 451/600©Ernst W. Mayr
![Page 20: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/20.jpg)
Beispiel 105 (Prim’s Algorithmus)
1 2
10
9
78
4
8
117 6
2
414
Ausgangszustand:alle Schlussel = +∞aktueller Knoten u:Startknoten: r (= v0)
2
0
+∞ +∞ +∞
+∞
+∞+∞+∞
+∞v0
v1 v2 v3
v4
v5v6v7
v8
EADS 452/600©Ernst W. Mayr
![Page 21: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/21.jpg)
Beispiel 105 (Prim’s Algorithmus)
1 2
10
9
78
4
8
117 6
2
414
Ausgangszustand:alle Schlussel = +∞aktueller Knoten u:Startknoten: r (= v0)
2
0
+∞ +∞ +∞
+∞
+∞+∞+∞
+∞v0
v1 v2 v3
v4
v5v6v7
v8
1 2
10
9
78
4
8
117 6
2
414
suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:(v1 = 8, v7 = 4)
8 +∞ +∞
+∞
+∞+∞4
+∞
2
v0
v1 v2 v3
v4
v5v6v7
v8
EADS 452/600©Ernst W. Mayr
![Page 22: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/22.jpg)
Beispiel 105 (Prim’s Algorithmus)
1 2
10
9
78
4
8
117 6
2
414
suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:(v1 = 8, v7 = 4)
8 +∞ +∞
+∞
+∞+∞4
+∞
2
v0
v1 v2 v3
v4
v5v6v7
v8
1 2
10
9
78
8
117 6
2
414
1 suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:(v6 = 8)
8 +∞ +∞
+∞
+∞8
+∞
2
v0
v1 v2 v3
v4
v5v6v7
v8
EADS 452/600©Ernst W. Mayr
![Page 23: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/23.jpg)
Beispiel 105 (Prim’s Algorithmus)
1 2
10
9
78
8
117 6
2
414
1 suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:(v6 = 8)
8 +∞ +∞
+∞
+∞8
+∞
2
v0
v1 v2 v3
v4
v5v6v7
v8
1 2
10
9
7
8
117 6
2
414
1
2
suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:(v3 = 4, v5 = 7, v8 = 2)
8 +∞ 4
+∞
7
2
2
v0
v1 v2 v3
v4
v5v6v7
v8
EADS 452/600©Ernst W. Mayr
![Page 24: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/24.jpg)
Beispiel 105 (Prim’s Algorithmus)
1 2
10
9
7
8
117 6
2
414
1
2
suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:(v3 = 4, v5 = 7, v8 = 2)
8 +∞ 4
+∞
7
2
2
v0
v1 v2 v3
v4
v5v6v7
v8
1 2
10
9
7
8
117 6
414
1
2
3 suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:(v1 = 7, v2 = 6)
7 6 4
+∞
7
2
v0
v1 v2 v3
v4
v5v6v7
v8
EADS 452/600©Ernst W. Mayr
![Page 25: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/25.jpg)
Beispiel 105 (Prim’s Algorithmus)
1 2
10
9
7
8
117 6
414
1
2
3 suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:(v1 = 7, v2 = 6)
7 6 4
+∞
7
2
v0
v1 v2 v3
v4
v5v6v7
v8
1 2
10
9
7
8
117 6
14
1
2
3
4
suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:(v2 = 2, v4 = 10)
7 2
10
7
v0
v1 v2 v3
v4
v5v6v7
v8
EADS 452/600©Ernst W. Mayr
![Page 26: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/26.jpg)
Beispiel 105 (Prim’s Algorithmus)
1 2
10
9
7
8
117 6
14
1
2
3
4
suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:(v2 = 2, v4 = 10)
7 2
10
7
v0
v1 v2 v3
v4
v5v6v7
v8
1
10
9
7
8
117 6
14
1
2
3
4
5
suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:(v1 = 1)
1
10
7
v0
v1 v2 v3
v4
v5v6v7
v8
EADS 452/600©Ernst W. Mayr
![Page 27: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/27.jpg)
Beispiel 105 (Prim’s Algorithmus)
1
10
9
7
8
117 6
14
1
2
3
4
5
suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:(v1 = 1)
1
10
7
v0
v1 v2 v3
v4
v5v6v7
v8
10
9
7
8
117 6
14
1
2
3
4
56
suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:solche Nachbarn existierennicht
10
7
v0
v1 v2 v3
v4
v5v6v7
v8
EADS 452/600©Ernst W. Mayr
![Page 28: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/28.jpg)
Beispiel 105 (Prim’s Algorithmus)
10
9
7
8
117 6
14
1
2
3
4
56
suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:solche Nachbarn existierennicht
10
7
v0
v1 v2 v3
v4
v5v6v7
v8
10
9
8
117 6
14
1
2
3
4
56
7
suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:(v4 = 9)
9v0
v1 v2 v3
v4
v5v6v7
v8
EADS 452/600©Ernst W. Mayr
![Page 29: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/29.jpg)
Beispiel 105 (Prim’s Algorithmus)
10
9
8
117 6
14
1
2
3
4
56
7
suche u := FindMin(PQ)und entferne u aus PQsetze Schlussel der Nach-barn in PQ mitw(u, v) < Schlussel[v]:(v4 = 9)
9v0
v1 v2 v3
v4
v5v6v7
v8
108
117 6
14
1
2
3
4
56
7
8 Endzustand:suche u := FindMin(PQ)und entferne u aus PQ,damit ist PQ leer und derAlgorithmus beendet
v0
v1 v2 v3
v4
v5v6v7
v8
EADS 3.4 Prim’s Algorithmus 452/600©Ernst W. Mayr
![Page 30: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/30.jpg)
Korrektheit: ist klar.
Zeitkomplexitat:
n ExtractMin
O(m) sonstige Operationen inclusive DecreaseKey
Implementierung der Priority Queue mittels Fibonacci-Heaps:
Initialisierung O(n)
ExtractMins O(n log n) (≤ n Stuck)
DecreaseKeys O(m) (≤ m Stuck)
Sonstiger Overhead O(m)
EADS 3.4 Prim’s Algorithmus 453/600©Ernst W. Mayr
![Page 31: 3. Minimale Spannb aume - · 3. Minimale Spannb aume Sei G= (V;E) ein einfacher ungerichteter Graph, der o.B.d.A. zusammenh angend ist. Sei weiter w: E!R eine Gewichtsfunktion auf](https://reader030.vdocuments.pub/reader030/viewer/2022040711/5e1454ca26af5523ac673cd2/html5/thumbnails/31.jpg)
Satz 106Sei G = (V,E) ein ungerichteter Graph (zusammenhangend,einfach) mit Kantengewichten w. Prim’s Algorithmus berechnet,wenn mit Fibonacci-Heaps implementiert, einen minimalenSpannbaum von (G,w) in Zeit O(m+ n log n) (wobein = |V |, m = |E|). Dies ist fur m = Ω(n log n) asymptotischoptimal.
Beweis:s.o.
EADS 3.4 Prim’s Algorithmus 454/600©Ernst W. Mayr