06. Vorlesung (20.05.2014)

Werbung
1
Algorithmische Graphentheorie
Sommersemester 2014
6. Vorlesung
Wurzelspannbäume
Dr. Joachim Spoerhase
Prof. Dr. Alexander Wolff
2
Wurzelbäume
Def.
Ein gerichteter Graph T = (V , E ) mit Knoten s ∈ V
heißt s -Wurzelbaum, wenn
T enthält keinen
T azyklisch,
(gerichteten) Kreis
indeg(s ) = 0 und
indeg(v ) = 1 für jeden Knoten v ∈ V − s .
a)
s
b)
s
c)
?
s
3
Wurzelspannbäume
Def.
Sei G = (V , E ) ein gerichteter (Multi-) Graph mit
Knoten s ∈ V . Ein Teilgraph T von G mit
Knotenmenge V heißt s -Wurzelspannbaum von G ,
wenn T ein s -Wurzelbaum ist.
s
4
Existenz von Wurzelspannbäumen
Beob. Sei G ein gerichteter (Multi-) Graph mit Knoten s .
G besitzt genau dann einen s -Wurzelspannbaum,
wenn jeder Knoten v ∈ V von s in G erreichbar ist.
es existiert ein
s -v -Pfad in G
Beweis.
Siehe Übungsblatt.
Bemerkung.
DFS(s ) liefert s -Wurzelspannbaum (sofern einer existiert).
5
Minimale Wurzelspannbäume
Gegeben: gerichteter (Multi-) Graph G = (V , E ) mit
s ∈ V und Kantenkosten c : E → R≥0 .
Def.
Gesucht: s -Wurzelspannbaum T = (V , ET ) von G
(sofern existent)
mit
minimalen
Kosten
P
c (ET ) = e ∈ET c (e ).
Motivation:
s
1
2
2
2
3
3
Broadcast (Versenden von Information von s an alle Knoten) in
einem Kommunikationsnetzwerk.
4
Übungsaufgabe:
Kruskal und Jarnı́k-Prim
schlagen i.A. fehl!
6
Kostenmodifikation
Für jedes v 6= s setze c0 (v ) := min{ c (u , v ) | (u , v ) ∈ E }
O.B.d.A. indeg(v ) ≥ 1 für jedes v 6= s .
Für jede Kante (u , v ) setze c 0 (u , v ) := c (u , v ) − c0 (v ).
⇒ Jeder Knoten v 6= s hat eingehende 0-Kante.
2
3
4
v
2
1
0
2
v
1
c0 (v ) = 2
7
Validität der Kostenmodifikation
Lem1 . Ein s -Wurzelspannbaum von G ist genau dann
optimal bezüglich c , wenn er optimal bezüglich c 0 ist.
Beweis.
Für jeden s -Wurzelspannbaum T = (V , ET ) gilt
X
(c (u , v ) − c0 (v ))
c 0 ( ET ) =
indegT (v ) = 1 für alle v 6= s
(u ,v )∈ET
=
X
(u ,v )∈ET
und indegT (s ) = 0
c (u , v ) −
X
v ∈ V −s
c0 (v )
8
Ein Versuch
Wähle für jedes v 6= s eine eingehende 0-Kante
Teilgraph F = (V , EF ) von G
Falls F azyklisch ⇒ F ist s -Wurzelspannbaum von G !
Beachte: F ist optimal bzgl. c 0 (und somit auch bzgl. c ),
da c 0 (F ) = 0.
Problem: Was tun, wenn F Kreis K enthält?
s
s
F
F
K
9
Kontraktion
Betrachte gerichteten (Multi-) Graphen G = (V , E ) und
U ⊆ V mit Kantenkosten c : E → R≥0 .
Kontraktion von U : Ersetze G [U ] durch neuen Knoten vU .
Kantenkosten werden auf G /U vererbt.
U
vU
G
G /U
≡
vU
G /U
10-4
Expansion
Lem2 . Sei K Kreis in F und T̃ s -Wurzelspannbaum von G /K .
Dann gibt es einen s -Wurzelspannbaum T von G mit
c 0 (T ) ≤ c 0 (T̃ ).
s
Beweis.
Jede Kante in T̃ korrespondiert zu Kante in G .
u
vK
Teilgraph H von G mit Knotenmenge V .
Füge Kreis K zu H hinzu.
v
K
H
10-9
Expansion
Lem2 . Sei K Kreis in F und T̃ s -Wurzelspannbaum von G /K .
Dann gibt es einen s -Wurzelspannbaum T von G mit
c 0 (T ) ≤ c 0 (T̃ ).
s
Beweis.
Jede Kante in T̃ korrespondiert zu Kante in G .
u
vK
Teilgraph H von G mit Knotenmenge V .
0
0
Füge Kreis K zu H hinzu. ⇒ c (H ) = c (T̃ ).
v
K
Jeder Knoten in V ist in H von s erreichbar.
Ermittle (bel.) s -Wurzelspannbaum T von H .
T ist s -Wurzelspannbaum von G .
H
11
Algorithmus
[Edmonds 1967]
Berechne modifizierte Kantenkosten c 0
Bestimme Teilgraph F
Falls F ein s -Wurzelbaum, gib F zurück
Ansonsten ermittle Kreis K in F
Berechne Graph G /K
Wende Algorithmus rekursiv auf (G /K , c 0 ) an
s -Wurzelspannbaum T̃ für G /K
Expandiere T̃ zu s -Wurzelspannbaum T von G gemäß
Lemma2
Gib T zurück
12
Laufzeit
Algorithmus terminiert spätestens, wenn |V | ≤ 2.
In jeder Rekursionsstufe verringert sich Knotenanzahl um
mindestens 1. ⇒ O (V ) rekursive Aufrufe.
Kostenmodifikation, Kreisbestimmung, Kontraktion und
Expansion dauern jeweils O (E ) Zeit.
Satz.
Edmonds’ Algorithmus terminiert in O (V E ) Zeit.
13
Optimalität
Lem3 . Sei K Kreis in F und T s -Wurzelspannbaum von G .
Dann gibt es einen s -Wurzelspannbaum T̃ von G /K
mit c 0 (T̃ ) ≤ c 0 (T ).
s
Beweis. Setze H := T /K .
H
H ist Teilgraph von G /K mit c 0 (H ) ≤ c 0 (T ).
– Jeder s -v -Weg (v ∈ V \ K ) in T wird zu
– (nicht notwendigerweise einfachem) s -v -Weg in H .
vK
– Jeder s -u -Weg (u ∈ K ) in T wird zu s -vK -Weg in H .
v
⇒ Jeder Knoten in G /K ist in H von s erreichbar.
Betrachte (beliebigen) s -Wurzelspannbaum T̃ von H .
⇒ T̃ ist auch s -Wurzelspannbaum von G /K
und es gilt c 0 (T̃ ) ≤ c 0 (H ) ≤ c 0 (T ).
14
Optimalität
Satz.
Edmonds’ Algorithmus berechnet einen minimalen
s -Wurzelspannbaum.
Beweis.
Per Induktion über Knotenzahl.
Falls F azyklisch, ist Algorithmus korrekt.
Sei T ? minimaler s -Wurzelspannbaum von G und K Kreis in F .
Lemma3 ⇒ exist. s -WSB T̃ von G /K mit c 0 (T̃ ) ≤ c 0 (T ? ).
=: OPT0
Induktionsannahme ⇒
Algorithmus liefert s -WSB T̂ von G /K mit c 0 (T̂ ) ≤ c 0 (T̃ ).
Lemma2 liefert s -WSB T von G mit c 0 (T ) ≤ c 0 (T̂ ) ≤ c 0 (T ? ).
0
⇒ T ist optimal bzgl. c und somit bzgl. c .
= OPT0
Herunterladen