• Keine Ergebnisse gefunden

Kapitel IV Minimale Spannb¨ aume

N/A
N/A
Protected

Academic year: 2021

Aktie "Kapitel IV Minimale Spannb¨ aume"

Copied!
30
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Kapitel IV Minimale Spannb¨ aume

1. Grundlagen

Ein Graph G = (V, E) besteht aus einer Menge V von Knoten und einer Menge E von Kanten. Wir werden nur endliche Knoten- (und damit auch Kanten-) Mengen betrachten. Die Anzahl der Knoten bezeichnen wir mit n (|V | = n), die Anzahl der Kanten mit m (|E| = m). Eine gerichtete Kante mit den Endknoten u und v wird mit (u, v), eine ungerichtete mit {u, v} notiert. Eine Kante

(v, v) ∈ E (bzw. {v, v}) heißt Schlinge. Falls E eine Multimenge ist, spricht man von Mehrfachkanten. Kanten (u, v) und (v, u) heißen antiparallel. Graphen ohne Schlingen und Mehrfachkanten heißen einfache Graphen (engl. simple). F¨ ur einfache ungerichtete Graphen gilt daher:

E ⊆ V

2

:= {X ⊆ V, |X| = 2}

EADS 1 Grundlagen 414/530

ľErnst W. Mayr

(2)

Graphische Darstellung:

t

t t

t

t

v

1

v

2

v

3

v

4

v

5

K

5

J J J J J J

D D D D D D D D D D

`` `` `` `` ``

Z

Z Z

Z Z

Z Z

Z P P

P P P P

A A

A A

t t t

t t t

v

1

v

2

v

3

v

4

v

5

v

6

H

H H H H

H H H H H

H H H H

H H

@

@

@

@

@

@

@

@ K

3,3

EADS 1 Grundlagen 415/530

ľErnst W. Mayr

(3)

Ist E ⊆ V × V , dann heißt G gerichteter Graph (engl. digraph).

ss - s

u v

Der zu G geh¨ orige ungerichtete Graph ist G

0

= (V, E

0

). E

0

erh¨ alt man, indem man in E die Richtungen wegl¨ asst und

Mehrfachkanten beseitigt.

Sei v ∈ V . Unter der Nachbarschaft

N(v) := {w; (v, w) oder (w, v) ∈ E} eines Knotens v versteht man die Menge der direkten Nachbarn von v. Der Grad eines Knotens ist definiert als:

deg(v) =

( |N (v)| ; falls G ungerichtet und indeg(v) + outdeg(v) ; falls G gerichtet.

Dabei ist indeg(v) die Anzahl aller Kanten, die v als Endknoten, und outdeg(v) die Anzahl aller Kanten, die v als Anfangsknoten haben.

EADS 1 Grundlagen 416/530

ľErnst W. Mayr

(4)

Beobachtung: F¨ ur einfache (gerichtete oder ungerichtete) Graphen gilt

X

v∈V

deg(v) = 2|E| .

Korollar 94

In jedem (einfachen) Graphen ist die Anzahl der Knoten mit ungeradem Grad eine gerade Zahl.

EADS 1 Grundlagen 417/530

ľErnst W. Mayr

(5)

Das Komplement G ¯ = (V,

V2

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollst¨ andigen Graphen ohne die Kantenmenge E.

Ein Graph H = (V

0

, E

0

) heißt Teilgraph (aka. Subgraph) von G = (V, E), falls V

0

⊆ V und E

0

⊆ E. H heißt (knoten-) induzierter Teilgraph, falls H Teilgraph von G ist und

E

0

= E ∩ V

0

2

.

EADS 1 Grundlagen 418/530

ľErnst W. Mayr

(6)

Ein Kantenzug (oder Pfad) ist eine Folge

e

1

:= {v

0

, v

1

}, . . . , e

l

:= {v

l−1

, v

l

}. v

0

und v

l

sind die Endknoten, l ist die L¨ ange des Kantenzuges. Sind bei einem Pfad alle v

i

(und damit erst recht alle e

i

) verschieden, so sprechen wir von einem einfachen Pfad. Ein Kantenzug mit v

l

= v

0

heißt Zykel oder Kreis.

Ein Kreis, in dem alle v

i

verschieden sind, heißt einfacher Kreis.

Ein (ungerichteter) Graph G heißt zusammenh¨ angend, wenn es f¨ ur alle u, v ∈ V einen Pfad gibt, der u und v verbindet. Ein

(knoten-)maximaler induzierter zusammenh¨ angender Teilgraph heißt (Zusammenhangs-)Komponente.

EADS 1 Grundlagen 419/530

ľErnst W. Mayr

(7)

s

s s

s s

s

s s

s s

A A A A

'

&

$

% '

&

$

% K

1

K

2

K

3

K

4

Ein Graph G heißt azyklisch, wenn er keinen Kreis enth¨ alt. Wir bezeichnen einen solchen ungerichteten Graphen dann als Wald. Ist dieser auch zusammenh¨ angend, so sprechen wir von einem Baum.

Ist der Teilgraph T = (V, E

0

) ⊆ G = (V, E) ein Baum, dann heißt T ein Spannbaum von G.

EADS 1 Grundlagen 420/530

ľErnst W. Mayr

(8)

Satz 95

Ist T = (V, E) ein Baum, dann ist |E| = |V | − 1.

Beweis:

Induktion ¨ uber die Anzahl n der Knoten:

n = 0, 1: klar.

n → n + 1: Sei |V | = n + 1. Da T zusammenh¨ angend ist, ist deg(v) ≥ 1 f¨ ur alle v ∈ V . T muss einen Knoten v mit deg(v) = 1 enthalten, denn ansonsten w¨ urde, wie wiederum eine einfache Induktion zeigt, T einen Kreis enthalten. Wende nun die

Induktionsannahme auf den durch V − {v} induzierten Teilgraphen an.

Korollar 96

Ein (ungerichteter) Graph G ist zusammenh¨ angend, gdw G einen Spannbaum hat.

EADS 1 Grundlagen 421/530

ľErnst W. Mayr

(9)

2. Traversierung von Graphen

Sei G = (V, E) ein ungerichteter Graph. Anhand eines Beipiels betrachten wir die zwei Algorithmen DFS (Tiefensuche) und BFS (Breitensuche).

EADS 2 Traversierung von Graphen 422/530

ľErnst W. Mayr

(10)

2.1 DFS-Algorithmus

while ∃ unvisited v do

r := pick (random) unvisited node push r onto stack

while stack 6= ∅ do v := pop top element if v unvisited then

mark v visited

push all neighbours of v onto stack perform operations DFS Ops(v) fi

od od

EADS 2.1 DFS-Algorithmus 423/530

ľErnst W. Mayr

(11)

Beispiel 97

A A

A

A @

@

@

@

A

A A

A @

@

@

@

A A

A A

U -

6

@

@

@

@ I

? * 1 g

2 g

3 g

4 g 5 g 6 g

7 g

8 g

9 g 1 t

2 t

3 t

4 t 5 t

t 6 t 7 8 t

9 t B

B B

B B

B Q

Q Q

Q Q

Q B

B B

B B

B Q

Q Q

Q Q

Q

H H H H

EADS 2.1 DFS-Algorithmus 424/530

ľErnst W. Mayr

(12)

Beobachtung: Die markierten Kanten bilden einen Spannbaum:

A A

A

A @

@

@

@

A A

A

A @

@

@

@

A A

A A

U -

6

@

@

@

@ I

? * 1 g

2 g

3 g

4 g 5 g 6 g

7 g

8 g

9 g 1 t

2 t

3 t

4 t 5 t

t 6 t 7 8 t

9 t B

B B

B B

B Q

Q Q

Q Q

Q B

B B

B B

B Q

Q Q

Q Q

Q H H H H

R¨ uckw¨ artskante

9 g 8 g 6 g 7 g

5 g 4 g 3 g 2 g

1 g

@

@

s s

s s

s s s s s

EADS 2.1 DFS-Algorithmus 425/530

ľErnst W. Mayr

(13)

Folge der Stackzust¨ ande

1 2

8 7

3 9 8 1 8 7

4 9 2 9 8 1 8 7

5 3 9 2 9 8 1 8 7

9 8 6 4 3 9 2 9 8 1 8 7

2 3 5 8 6 4 3 9 2 9 8 pp ppppp 1

7 6 5 2 1 6 4 3 9 2 9 pp ppppp 8

6 8 1 6 5 2 1 6 4 3 9 pp ppppp 2

7 8 5 8 1 6 5 2 1 6 4 pp ppppp 3 h h

h

h h h h h h h h h h h h 6 6

h

? ? ? ? ? ? ? ? ? visited visited

Stack:

: oberstes Stackelement : schon besuchte Knoten

: Nachbarn Zustand:

a) b) c) d) e) f)

g)

h) i) j)

EADS 2.1 DFS-Algorithmus 426/530

ľErnst W. Mayr

(14)

Wir betrachten den Stackzustand:

Im Zustand g) sind die Elemente 2, 3 und 5 als visited markiert (siehe Zust¨ ande b), c) und e)). Deswegen werden sie aus dem Stack entfernt, und das Element 8 wird zum obersten

Stackelement. Im Zustand j) sind alle Elemente markiert, so dass eins nach dem anderen aus dem Stack entfernt wird.

EADS 2.1 DFS-Algorithmus 427/530

ľErnst W. Mayr

(15)

2.2 BFS-Algorithmus

while ∃ unvisited v do

r := pick (random) unvisited node push r into (end of) queue

while queue 6= ∅ do

v := remove front element of queue if v unvisited then

mark v visited

append all neighbours of v to end of queue perform operations BFS Ops(v)

fi od od

EADS 2.2 BFS-Algorithmus 428/530

ľErnst W. Mayr

(16)

Beispiel 98

B B

B B

B B A

A A

A

B B

B B

B B Q

Q Q

Q Q

Q

H H H H

B B

B B

B B A

A A

A

B B

B B

B B Q

Q Q

Q Q

Q

H H H H

B B

B B

B B N A

A A

A

U ?

B B

B B

B B N Q

Q Q

Q Q

Q s H H

H H j 1 g

2 g

6 g

9 g g

8 5 g

3 g

4 g

7 g 1 t

2 t

3 t

4 t 5 t

t 6 t 7 8 t

9 t Q

Q Q

Q Q

Q

@

@

@

@

EADS 2.2 BFS-Algorithmus 429/530

ľErnst W. Mayr

(17)

Beobachtung: Die markierten Kanten bilden einen Spannbaum:

B B

B B

B B A

A A

A

B B

B B

B B Q

Q Q

Q Q

Q

H H H H

B B

B B

B B A

A A

A

B B

B B

B B Q

Q Q

Q Q

Q

H H H H

B B

B B

B B N A

A A

A

U ?

B B

B B

B B N Q

Q Q

Q Q

Q s H

H H H j 1 g

2 g

6 g

9 g g

8 5 g

3 g

4 g

7 g 1 t

2 t

3 t

4 t 5 t

t 6 t 7 8 t

9 t Q

Q Q

Q Q

Q

@

@

@

@

pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp

ppppppppppppppppppppppppppppppppppp

pppppp pppppp pppppp pppppp pppppppppppppppppppppppp pppp pppp pppp H H

Y R¨ uckw¨ artskanten

1 g

2 g 3 g 4 g

5 g 6 g

7 g 8 g

9 g

B B

B H

H H H H

H

J J

J J

J J

J J

J s

s s s

s

s s s

s

EADS 2.2 BFS-Algorithmus 430/530

ľErnst W. Mayr

(18)

Folge der Queuezust¨ ande

1 2 8 7 8 7 1 8 9 3 7 1 8 9 3 1 2 6 7 5 1 8 9 3 1 2 6 7 5 1 8 6 3 1 2 6 7 5 1 8 6 5 3 2 1 2 6 7 5 1 8 6 5 3 2 4 9 2 7 5 1 8 6 5 3 2 4 9 2 7 8 5 1 8 6 5 3 2 4 9 2 7 8 5 6 8 9 4

9 2 7 8 5 6 8 9 4 5 3

j j

j j j

j j j j j j

j j j j j j j j j j j visited

visited visited visited

visited

Zustand:

Queue:

(a (b (c (d (e (f (g (h (i (j

EADS 2.2 BFS-Algorithmus 431/530

ľErnst W. Mayr

(19)

Wir betrachten die Folge der Queuezust¨ ande. Wiederum bedeutet die Notation:

i : vorderstes Queue-Element : schon besuchte Knoten

: Nachbarn

Im Zustand e) sind die Elemente 1 und 8 als visited markiert (siehe Zust¨ ande a) und c)). Deswegen werden sie aus der Queue entfernt, und so wird das Element 9 das vorderste Queueelement. Das gleiche passiert in den Zust¨ anden g), h) und i). Im Zustand j) sind alle Elemente markiert, so dass sie eins nach dem anderen aus der Queue entfernt werden.

EADS 2.2 BFS-Algorithmus 432/530

ľErnst W. Mayr

(20)

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 den Kanten von G.

Wir setzen

E

0

⊆ E: w(E

0

) = P

e∈E0

w(e),

T = (V

0

, E

0

) ein Teilgraph von G: w(T ) = w(E

0

).

Definition 99

T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

w(T ) ≤ w(T

0

) f¨ ur alle Spannb¨ aume T

0

von G.

EADS 3.0 BFS-Algorithmus 433/530

ľErnst W. Mayr

(21)

Beispiel 100

q q

q q q q

@

@ @

@

@ @

8 3

5 6 7

1 2

4 minimaler - Spannbaum

q q

q q q q

Anwendungen:

Telekom: Verbindungen der Telefonvermittlungen Leiterplatinen

EADS 3.0 BFS-Algorithmus 434/530

ľErnst W. Mayr

(22)

3.1 Konstruktion von minimalen Spannb¨ aumen

Es gibt zwei Prinzipien f¨ ur die Konstruktion von minimalen Spannb¨ aumen (Tarjan):

” blaue“ Regel

” rote“ Regel

EADS 3.1 Konstruktion von minimalen Spannb¨aumen 435/530

ľErnst W. Mayr

(23)

Satz 101

Sei G = (V, E) ein zusammenh¨ angender ungerichteter Graph, w : E → R eine Gewichtsfunktion, C = (V

1

, V

2

) ein Schnitt (d.h.

V = V

1

∪ V

2

, V

1

∩ V

2

= ∅, V

1

6= ∅ 6= V

2

). Sei weiter E

C

= E ∩ (V

1

× V

2

) die Menge der Kanten

” ¨ uber den Schnitt hinweg“. Dann gilt: (

” blaue“ Regel)

1

Ist e ∈ E

C

die einzige Kante minimalen Gewichts (¨ uber alle Kanten in E

C

), dann ist e in jedem minimalen Spannbaum f¨ ur (G,w) enthalten.

2

Hat e ∈ E

C

minimales Gewicht (¨ uber alle Kanten in E

C

), dann gibt es einen minimalen Spannbaum von (G,w), der e enth¨ alt.

EADS 3.1 Konstruktion von minimalen Spannb¨aumen 436/530

ľErnst W. Mayr

(24)

Beweis:

[durch Widerspruch]

1

Sei T ein minimaler Spannbaum von (G, w), sei e ∈ E

C

die minimale Kante. Annahme: e / ∈ T . Da T Spannbaum

⇒ T ∩ E

C

6= ∅.

Sei T ∩ E

C

= {e

1

, e

2

, . . . , e

k

}, k ≥ 1. Dann enth¨ alt T ∪ {e}

einen eindeutig bestimmten Kreis (den sogenannten durch e bzgl. T bestimmten Fundamentalkreis). Dieser Kreis muss mindestens eine Kante ∈ E

C

∩ T enthalten, da die beiden Endpunkte von e auf verschiedenen Seiten des Schnitts C liegen.

EADS 3.1 Konstruktion von minimalen Spannb¨aumen 437/530

ľErnst W. Mayr

(25)

Beweis (Forts.):

r r r A A

A A A A

r r r j j

j e

e

0

V

1

V

2

@ @ r

H H H

H H H

@ @ H H H

r

@ @ r

r

r r A A

A A

A A A A

r r

j j

e T

e

0

Sei e

0

∈ E

C

∩ T . Dann gilt nach Voraussetzung w(e

0

) > w(e). Also ist T

0

:= T − {e

0

} ∪ {e} ein Spannbaum von G, der echt kleineres Gewicht als T hat, Widerspruch zu

” T ist minimaler Spannbaum“.

EADS 3.1 Konstruktion von minimalen Spannb¨aumen 438/530

ľErnst W. Mayr

(26)

Beweis (Forts.):

2

Sei e ∈ E

C

minimal. Annahme: e kommt in keinem minimalen Spannbaum vor. Sei T ein beliebiger minimaler Spannbaum von (G, w).

r r r

j r

j j

j r

r e

V

1

V

2

e / ∈ T ∩ E

c

6= ∅

e / ∈ T ∩ E

C

6= ∅. Sei e

0

∈ E

C

∩ T eine Kante auf dem durch e bez¨ uglich T erzeugten Fundamentalkreis. Dann ist

T

0

= T − {e

0

} ∪ {e} wieder ein Spannbaum von G, und es ist w(T

0

) ≤ w(T ). Also ist T

0

minimaler Spannbaum und e ∈ T

0

.

EADS 3.1 Konstruktion von minimalen Spannb¨aumen 439/530

ľErnst W. Mayr

(27)

Satz 102

Sei G = (V, E) ein ungerichteter, gewichteter,

zusammenh¨ angender Graph mit Gewichtsfunktion w : E → R . Dann gilt: (

” rote“ Regel)

1

Gibt es zu e ∈ E einen Kreis C in G, der e enth¨ alt und w(e) > w(e

0

) f¨ ur alle e

0

∈ C \ {e} erf¨ ullt, dann kommt e in keinem minimalen Spannbaum vor.

2

Ist C

1

= e

1

, . . . , e

k

ein Kreis in G und

w(e

i

) = max{w(e

j

); 1 ≤ j ≤ k}, dann gibt es einen minimalen Spannbaum, der e

i

nicht enth¨ alt.

EADS 3.1 Konstruktion von minimalen Spannb¨aumen 440/530

ľErnst W. Mayr

(28)

Beweis:

1

Nehmen wir an, dass es einen minimalen Spannbaum T gibt, der e = {v

1

, v

2

} enth¨ alt. Wenn wir e aus T entfernen, so zerf¨ allt T in zwei nicht zusammenh¨ angende Teilb¨ aume T

1

und T

2

mit v

i

∈ T

i

, i = 1, 2. Da aber e auf einem Kreis in G liegt, muss es einen Weg von v

1

nach v

2

geben, der e nicht ben¨ utzt.

Mithin gibt es eine Kante e ˆ 6= e auf diesem Weg, die einen Knoten in T

1

mit T

2

verbindet. Verbinden wir T

1

und T

2

entlang ˆ e, so erhalten wir einen von T verschiedenen Spannbaum T ˆ . Wegen w(ˆ e) < w(e) folgt w( ˆ T ) < w(T ), im Widerspruch zur Minimalit¨ at von T .

EADS 3.1 Konstruktion von minimalen Spannb¨aumen 441/530

ľErnst W. Mayr

(29)

Beweis (Forts.):

2

Wir nehmen an, e

i

liege in jedem minimalen Spannbaum (MSB) von G, und zeigen die Behauptung durch Widerspruch.

Sei T ein beliebiger MSB von G. Entfernen wir e

i

aus T , so zerf¨ allt T in zwei nicht zusammenh¨ angende Teilb¨ aume T

1

und T

2

. Da e

i

auf einem Kreis C

1

= e

1

, . . . , e

k

in G liegt, k¨ onnen wir wie zuvor e

i

durch eine Kante e

j

des Kreises C

1

ersetzen, die T

1

und T

2

verbindet. Dadurch erhalten wir einen von T verschiedenen Spannbaum T ˜ , der e

i

nicht enth¨ alt. Da nach Voraussetzung w(e

j

) ≤ w(e

i

) gilt, folgt w( ˜ T ) ≤ w(T ) (und sogar w( ˜ T ) = w(T ), da T nach Annahme ein MSB ist). Also ist T ˜ ein MSB von G, der e

i

nicht enth¨ alt, im Widerspruch zur Annahme, e

i

liege in jedem MSB von G.

EADS 3.1 Konstruktion von minimalen Spannb¨aumen 442/530

ľErnst W. Mayr

(30)

Literatur

Robert E. Tarjan:

Data Structures and Network Algorithms

SIAM CBMS-NSF Regional Conference Series in Applied Mathematics Bd. 44 (1983)

EADS 3.1 Konstruktion von minimalen Spannb¨aumen 443/530

ľErnst W. Mayr

Referenzen

ÄHNLICHE DOKUMENTE

ľ Ernst W.. Wir betrachten die Folge der Queuezust¨ ande. Deswegen werden sie aus der Queue entfernt, und so wird das Element 9 das vorderste Queueelement. Im Zustand j) sind

fi od od.. Wir betrachten die Folge der Queuezust¨ ande. Deswegen werden sie aus der Queue entfernt, und so wird das Element 9 das vorderste Queueelement. Im Zustand j) sind

ľ Ernst W.. Wir betrachten die Folge der Queuezust¨ ande. Deswegen werden sie aus der Queue entfernt, und so wird das Element 9 das vorderste Queueelement. Im Zustand j) sind

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.c. Bei

Ein Funktionenraum wird h¨ aufig mit einer Norm versehen, so dass ein normierter Raum oder sogar ein Banach-Raum

1 Manchmal ist die Satire direkt, so wenn Butler sagt, die Puritaner landen sich mit Sünden ab, für die sie passioniert seien, verdammten da- gegen andere, für die sie keine

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

sofort abzulesen, dass das ursprüngliche Polynom höchstens