Algorithmische Graphentheorie

Werbung
1
Algorithmische Graphentheorie
Sommersemester 2017
6. Vorlesung
Wurzelspannbäume
Dr. Joachim Spoerhase
Prof. Dr. Alexander Wolff
Minimiere
Wiederholung letzte Vorlesung
unter den NB.
X
uv
∈E
X
cuv xuv
xuv = 1
2 - 12
u ∈A∪B
uv ∈E
xuv ≥ 0
xuv ∈ {0, 1}
uv ∈ E
Kostenminimale perfekte Matchings in bipartiten Graphen.
• Wir stellen ein ganzzahliges lineares Programm (ILP) auf
(mit einer Variable xe ∈ {0, 1} für jede Kante e ).
• Betrachte die Relaxierung (xe ≥ 0). Dies ist ein LP!
Wir können es also (im Ggs. zum ILP) effizient lösen.
F
Pür LP-LösungPx und ILP-Lösung y gilt:
e ∈ E c e xe ≤
e ∈E ce ye , d.h. x ist nicht teurer als y.
Leider enthält x i.A. fraktionale Variable
(e ∈ E mit 0 < xe < 1).
• Jeder Knoten ist zu 0 oder ≥ 2 fraktionalen Kanten inzident.
⇒ Falls x 6∈ {0, 1}|E | , so gibt es einen fraktionalen Kreis K .
Da Graph bipartit, hat K gerade Länge, d.h. K = M1 ∪ M2 .
⇒ K lässt sich in zwei Matchings M1 und M2 zerlegen.
3 - 11
Forts. Wiederholung
• OBdA. c (M1 ) > c (M2 ) = e ∈M ce . Sei ε = mine ∈M1 xe .
2
− +
Für e ∈ M1 : setze xe0 = xe − ε.
+
−
0
Für e ∈ M2 : setze xe = xe + ε.
K
−
+
0
Für e ∈ E \ K : setze xe = xe .
+
−
⇒ x0 ist zulässige LP-Lösung und nicht teurer als x.
Mindestens eine Kante e in M1 hat xe = ε und xe0 = 0.
D.h. x0 hat mehr ganzzahlige Variable als x.
• Wiederhole die Suche nach franktionalen Kreisen.
Runde wie oben, bis alle Variable ganzzahlig sind.
P
• Die resultierende ganzzahlige Lösung x(k ) ist
– nicht teurer als x0 ,
– also nicht teurer als x,
– also nicht teurer als y, also optimal.
4-3
Wurzelbäume
Def.
a)
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 }.
s
b)
?
s
c)
?
s
5-2
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
6-4
Existenz von Wurzelspannbäumen
Beob. Sei G ein gerichteter (Multi-) Graph mit Knoten s .
G besitzt einen s -Wurzelspannbaum
⇔ jeder Knoten v ∈ V ist von s in G erreichbar.
Es existiert ein
s -v -Pfad in G .
Beweis.
Siehe Übungsblatt.
Bemerkung.
DFS(s ) liefert s -Wurzelspannbaum (sofern einer existiert).
7-7
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!
8-4
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
0
1
v
1
c0 (v ) = 2
2
9-8
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
und indegT (s ) = 0
c (u , v ) −
c0 (v )
v ∈ V −s
(u ,v )∈ET
= c ( ET ) −
X
X
c0 (v )
v ∈ V −s
unabhängig von T !
10 - 5
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
11 - 5
Kontraktion
Betrachte gerichteten (Multi-) Graphen G = (V , E ) mit
Kantenkosten c : E → R≥0 . Sei U ⊆ V .
Kontraktion von U : Ersetze G [U ] durch neuen Knoten vU .
Kantenkosten werden auf G /U vererbt.
U
vU
G
G /U
≡
vU
G /U
12 - 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 .
Teilgraph H von G mit Knotenmenge V .
vK
v
Füge Kreis K zu H hinzu.
u
K
H
12 - 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 .
Teilgraph H von G mit Knotenmenge V .
vK
v
Füge Kreis K zu H hinzu. ⇒ c 0 (H ) = c 0 (T̃ ).
K
Jeder Knoten in V ist in H von s erreichbar.
Ermittle s -Wurzelspannbaum T
(= H − uv )
u
von H .
T ist s -Wurzelspannbaum von G .
H
13 - 12
Algorithmus
[Edmonds 1967]
• Berechne modifizierte Kantenkosten c 0 .
• Bestimme Teilgraph F .
• Falls F azyklisch, gib F zurück.
• Ansonsten ermittle Kreis K in F .
• Kontrahiere G zu G /K .
0
2
0
0
• Wende Algorithmus rekursiv auf (G /K , c ) an
s -Wurzelspannbaum T̃ für G /K .
0
s
0
3 1
2
4
0
0
• Expandiere T̃ zu s -Wurzelspannbaum T von G
[gemäß Lem2 ]. kontrahiere K
• Gib T zurück.
2
1
Jack R. Edmonds
*1934
expandiere T̃
0
0
0
0
0
0
s
1
0
K
0
G
F
0 T
0
2
3 10 3
2
4 0
vK
0
0
G/K
FG/K
T̃
1
0
0
14 - 5
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.
15 - 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 ).
16 - 16
Optimalität
Satz.
Edmonds’ Algorithmus berechnet einen minimalen
s -Wurzelspannbaum.
Beweis. Falls F azyklisch ist, so ist der Algorithmus korrekt. X
Ansonsten: Vollständige Induktion über Knotenzahl n.
Anfang (n = 1): V = {s }, G azyklisch.
X
Schritt (n > 1):
Annahme: Algo. korrekt für alle Graphen mit k < n Knoten.
Sei K Kreis in F und T ? min. s -Wurzelspannbaum von G .
Lem.3 ⇒ exist. s -WSB T̃ von G /K mit c 0 (T̃ ) ≤ c 0 (T ? ) =: OPT0
IA ⇒ Algorithmus liefert optimalen s -WSB T̂ von G /K .
⇒ c 0 (T̂ ) ≤ c 0 (T̃ ).
Lem.2 liefert s -WSB T von G mit c 0 (T ) ≤ c 0 (T̂ ) ≤ OPT0 .
⇒ T ist optimal bzgl. c 0 und somit bzgl. c . X
Herunterladen