• Keine Ergebnisse gefunden

7.3 Minimale Spannb¨ aume

N/A
N/A
Protected

Academic year: 2021

Aktie "7.3 Minimale Spannb¨ aume"

Copied!
10
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

7.3 Minimale Spannb¨ aume

Sei G = (V, E) ein zusammenh¨ angender, ungerichteter Graph mit einer Gewichtsfunktion w : E → Q + . Das Gewicht eines

Teilgraphen G 0 = (V 0 , E 0 ) von G ist dann w(G 0 ) = P

e∈E

0

w(e).

Definition 213

Ein minimaler Spannbaum von G = (V, E) ist ein Spannbaum von G (also ein Baum (V, E 0 ) mit E 0 ⊆ E) mit minimalem Gewicht unter allen Spannb¨ aumen von G.

Anwendungen: Verdrahtungs- und Routingprobleme, Zuverl¨ assigkeit von Netzwerken

Info IV 7.3 Minimale Spannb¨aume 356/365

c

Ernst W. Mayr

(2)

Lemma 214 (rote Regel)

Sei G = (V, E), e ∈ E schwerste Kante auf einem Kreis C in G.

Dann gibt es einen minimalen Spannbaum von G, der e nicht enth¨ alt (d.h. dann ist jeder minimale Spannbaum von G − e auch minimaler Spannbaum von G). Ist e die einzige schwerste Kante auf einem Kreis C in G, dann ist e in keinem minimalen

Spannbaum von G enthalten.

(3)

Beweis:

Sei e schwerste Kante in C, und sei M ein minimaler Spannbaum von G, der e enth¨ alt. Durch Entfernen von e zerf¨ allt M in zwei Teilb¨ aume, die, da C ein Kreis ist, durch eine geeignete Kante f 6= e aus C wieder verbunden werden k¨ onnen. Der dadurch entstehende Spannbaum M 0 von G enth¨ alt e nicht und hat das Gewicht

w(M 0 ) = w(M ) − w(e) + w(f ) .

Falls e einzige schwerste Kante in C ist, w¨ are w(M 0 ) < w(M ) im Widerspruch zur Tatsache, dass M minimaler Spannbaum von G ist.

Info IV 7.3 Minimale Spannb¨aume 358/365

c

Ernst W. Mayr

(4)

Der Algorithmus Kruskal (V, E, w):

sortiere E aufsteigend: w(e 1 ) ≤ w(e 2 ) ≤ . . . ≤ w(e m ) initialisiere Union-Find-Struktur f¨ ur V

T := ∅

for i = 1 to m do

bestimme die Endpunkte v und w von e i

if Find(v) 6= Find(w) then T := T ∪ {e i }

Union(Find(v),Find(w))

return T

(5)

Satz 215

Kruskal’s Algorithmus bestimmt einen minimalen Spannbaum des zusammenh¨ angenden Graphen G = (V, E) in Zeit O(m log n).

Beweis:

Find(v) = Find(w) gdw die Kante (v, w) schwerste Kante auf einem Kreis in G ist. Die Korrektheit des Algorithmus folgt damit aus dem vorigen Lemma.

Die Laufzeit f¨ ur das Sortieren betr¨ agt O(m log n) (m ≥ n − 1, da G zusammenh¨ angend). Bei geeigneter Implementierung

(gewichtete Vereinigung) ist die Zeitkomplexit¨ at jeder Find-Operation O(log n).

Info IV 7.3 Minimale Spannb¨aume 360/365

c

Ernst W. Mayr

(6)

Lemma 216 (blaue Regel)

Sei G = (V, E), (W, V \ W ) ein Schnitt von G (d.h. ∅ 6= W 6= V ).

Sei ferner e eine leichteste Kante ∈ W × (V \ W ) ∩ E. Dann gibt

es einen minimalen Spannbaum von G, der e enth¨ alt. Ist e die

einzige leichteste Kante in dem Schnitt, dann ist e in jedem

minimalen Spannbaum von G enthalten.

(7)

Beweis:

Sei (W, V \ W ) ein Schnitt in G und e leichteste Kante in diesem Schnitt. Sei ferner M ein minimaler Spannbaum von G, der e nicht enth¨ alt. Durch Hinzuf¨ ugen von e zu M entsteht (genau) ein Kreis, der, da M ein Spannbaum ist, mindestens eine weitere Kante f aus dem Schnitt (W, V \ W ) enth¨ alt. Entfernt man nun f , so entsteht wieder ein Spannbaum M 0 , mit dem Gewicht

w(M 0 ) = w(M ) − w(f ) + w(e) . Falls e einzige leichteste Kante im Schnitt ist, w¨ are

w(M 0 ) < w(M) im Widerspruch zur Tatsache, dass M minimaler Spannbaum von G ist.

Info IV 7.3 Minimale Spannb¨aume 362/365

c

Ernst W. Mayr

(8)

Der Algorithmus Prim (V, E, w):

W := {s} f¨ ur ein beliebiges s ∈ V ; T := ∅

initialisiere Priority-Queue-Struktur R f¨ ur V , Schl¨ ussel ρ(v) von v gleich

ρ(v) :=

 

 

0 falls v = s d(s, v) falls v ∈ Γ(s)

∞ sonst

pred[v] :=

( s falls v ∈ Γ(s) nil sonst

while W 6= V do x := ExtractMin(R)

W := W ∪ {x}; T := T ∪ {x, pred[x]}

for all v ∈ Γ(x) ∩ (V \ W ) do

if ρ(v) > w(x, v) then

(9)

Satz 217

Prim’s Algorithmus bestimmt einen minimalen Spannbaum des zusammenh¨ angenden Graphen G = (V, E) in Zeit O(m + n log n) (bei Verwendung von Fibonacci-Heaps).

Beweis:

Betrachte in jeder Iteration den Schnitt (W, V \ W ). Die

Korrektheit des Algorithmus folgt damit aus dem vorigen Lemma.

Der Algorithmus ben¨ otigt i.W. ≤ m DecreaseKey-Operationen und n − 1 ExtractMin-Operationen einer Priority-Queue. Damit ergibt sich die behauptete Zeitkomplexit¨ at.

Info IV 7.3 Minimale Spannb¨aume 364/365

c

Ernst W. Mayr

(10)

Kapitel IV Komplexit¨ atstheorie

1. Definitionen

Definition 218

Sei M eine deterministische Turingmaschine und Σ = {0, 1}.

1

TIME M (x) := Anzahl der Schritte, die M bei Eingabe x ∈ Σ durchf¨ uhrt

2

DTIME(f ) := Menge aller Sprachen, f¨ ur die es eine deterministische Mehrband-Turingmaschine M gibt mit TIME M (x) ≤ f (|x|) f¨ ur alle x ∈ Σ

3

P = [

p Polynom

DTIME(p)

Referenzen

ÄHNLICHE DOKUMENTE

Gibt es mehrere Kanten, die einen noch nicht enthaltenen Knoten mit dem Baum verbinden, k¨ onnen nur die mit minimalem Gewicht gew¨ ahlt werden. Es reicht, jeweils nur eine solche

C4.1 Minimale Spannb¨ aume C4.2 Generischer Algorithmus C4.3 Graphenrepr¨ asentation C4.4 Kruskals Algorithmus C4.5 Prims Algorithmus... Minimale Spannb¨ aume Minimale

Read Electrical Skew Adjustment (NRZI-Featured Tape Units). Read/Write Head Card Removal/Replacement. Read/Write Head Degaussing. or Right Reel. ) Reel-Alignment Tool

Der gesamte Körper ist bewusst neben das Skelett gestellt, um klar zu machen, dass die Knochen nur ein Teil des Körpers sind, z. ist der Schädel nur der Knochenanteil am Kopf

Verdopplungsszeit am Beispiel Zinsen. a) Verdoppeln bedeutet

Invariante: Es gibt stets einen minimalen Spannbaum, der alle gewählten und keine der verworfenen Kanten enthält.. Wenn die beiden Regeln die Invariante erhalten, dann ist

MCM 171E / C776 Farbbildschirm Color monitor Moniteur couleur Monitor de color Monitor a colori

[r]