Steiner Bäume

Werbung
Steiner Bäume
Dipl.-Math. Maria Kandyba
Lehrstuhl für Algorithm Engineering, LS11
12 VO
15. Januar 2007
Überblick
Einführung
Definition und Motivation
Komplexität
Approximationsalgorithmen
Distanznetzwerk Heuristik
Primal-Dualer Algorithmus
Steinerbaum
Ungerichteter G=(V,E), Terminalknoten N ⊆V.
Kantengewichte c: E → ℝ+
Ein Steiner Baum TG(N)=(V‘,E‘) von G ist:
Baum mit V‘⊆V, E‘⊆E
N⊆V‘
2
Gewicht von Steinerbaum:
1
4
c(TG(N))=Σe∈E‘ c(e)
5
Steinerbaum Problem:
Finde den Steinerbaum
TG*(N)
vom minimalen Gewicht
5
3
1
1
1
2
2
2
2
3
Geschichte & verschiedene Varianten
Pierre de Fermat (1601–1665)
Frage: Gegeben 3 Punkte in der Ebene,
finde den vierten, so dass die die Summe
der Distanzen zu den anderen drei ist
minimal. Gelöst von Toricelli vor 1640
(Toricellipunkt)
Verallgemeinerung auf n Knoten (unter anderem):
Jacob Steiner
(1796–1863)
Varianten & Anwendung
Varianten:
Geometrisches SBP
euklidisch
rektilinear
SBP in Netzwerken
Anwendungen:
VLSI-Design
Netzwerk Design
Komplexität
Steinerbaum Problem ist NP-hart auch wenn
c(e)=1 für alle e∈E
Polynomielle Spezialfälle
|N|=2 Lösung ist der kürzester Weg
zwischen den Kundenknoten (Dijkstra)
N=V Lösung ist minimal spannender Baum
(Kruskal oder Prim)
Algorithmen für Steiner Baum
Problem
Algorithmen (Auswahl):
Approximationsalgorithmen
Distanznetzwerk Heuristik
Approximation von Zelikovski (1993)
Primal-Duale Approximation (Goemann,
Williamson 1995)
Exakte Verfahren
Dynamische Programmierung (Dreyfus &
Wagner 1971)
Branch & Cut (exponentiell, gut in Praxis)
Literatur:
J. Cheriyan, R. Ravi: Approximation algorithms
for network problems. Lecture Notes, 1998.
(citeseer.ist.psu.edu/cheriyan98approximation.ht
ml)
V. Vazirani: Approximation Algorithms. Springer
Verlag 2003
D. S. Hochbaum (Hrsg.): Approximation
Algorithms for NP-hard Problems. PWS Publishing
Company 1997
Distanznetzwerk
Distanznetzwerk DG(W)=(W, ED, cD) von G=(V,E):
W⊆V
ED={(u,v)| u,v ∈ W}
Kantengewichte cD(u,v)=Länge des kürzesten
Pfades von u nach v in G
Eigenschaften von DG(W):
Distanzgraph ist vollständig
Für (u,v)∈ED: (u,v)∈E ⇒ cD(u,v) ≤ c(u,v)
cD erfüllt Dreiecksungleichung
Distanznetzwerk Heuristik (DNH)
Berechne Distanznetzwerk DG(N)
Berechne minimal spannenden Baum (MST)
TD(N) in DG(N)
Transformiere TD(N) ⊆ DG(N) in ein G‘⊆G:
ersetze jede (u,v)∈TD(N) durch einen kürzesten
(u,v)-Pfad in G. G‘ ist i.A. kein Baum
Berechne MST TDNH auf G‘
Beispiel
5
3
e
1
a
1
1
2
2
a
2
3
5
4
h
2
c
g
g
d
1
4
b
5
2
b
5
f
2
b
d
1
3
e
1
a
5
g
Theorem: Güte von DNH
Für jede Instanz des Steinerbaum Problems (G,N,c)
gilt für die Lösung TDNH der Distanzwerkheuristik
c(TDNH) ≤(2-2/|N|)c(TG*(N)).
Beweisskizze:
Betrachte TG*(N):
• Verdoppele die Kanten
z1
z2
z3
• Finde eine Eulertour L
z4
• Nummeriere v∈N
auf L in der Ablaufreihenfolge:
z1,…,z|N|,z|N|+1, wobei z|N|+1=z1
Beweisskizze:
c(L)=2c(TG(N)) (*)
∃ i, s.d. L(zi,zi+1) mit
c(L(zi,zi+1)) ≥ c(L)/|N| (**)
o.B.d.A i=|N|
Betrachte
L‘=L \ L(z|N|,z|N|+1)
z1
z4
z2
z3
Wegen (*) und (**) gilt c(L‘)≤(2-2/|N|)c(TN(G))
Zeige: c(TDNH) ≤ c(L‘):
Kanten (zi,zi+1) mit cD(zi,zi+1) ≤ c(L‘(zi,zi+1)) für
1≤ i ≤|N|-1 formen spannenden Baum T in DG(N)
c(TDNH) ≤ c(T) ≤c(L‘) ≤(2-2/|N|)c(TN(G))
Laufzeit von DNH
O(|N|—(|E|+|V|log|V|))
Variante von Mehlhorn (1988)
Besitzt denselben Approximationsfaktor
Benötigt O(|E|+|V|log|V|)
Siehe:
K. Mehlhorn, A faster approximation algorithm
for the Steiner problem in Graphs, Information
Processin Letters 27(3) (1988), pp. 573-577
Formulierung als Lineares Programm
Lösung des Steinerbaum Problems
ist eine Kantenmenge F⊆E
In einem Steinerbaum T=(V(F),F) muss gelten:
N ⊆ V(F)
T zshgd: Für u,v∈N muss mind. ein Pfad von u
nach v existieren.
∀S ⊂ V, ∅≠S∩N≠N
muss also gelten:
|F ∩ δ(S)| ≥1
ILP mit Hilfe von Schnittungleichungen
Kantenvariablen
xe=1, falls e∈F
xe=0, sonst
min Σe∈Ecexe
Σe∈δ(S)xe≥1 ∀S: ∅≠S∩N≠N
xe ∈{0,1} ∀e∈E
Alternative Schreibweise für die
Schnittungleichungen:
Σe∈δ(S)xe≥f(S) ∀S⊆ V
wobei hier f(S)= 1 ∀S: ∅≠S∩N≠N und f(S)=0 sonst
Primal-Dualer Algorithmus
Früher:
primal-dualer Algorithmus für das polynonielle
Problem MWPM in bipartiten Graphen
Eigenschaft des Algorithmus: Primaler und Dualer
komplementärer Schlupf erfüllt.
Goemann-Williamson (GW)-Algorithmus:
primal-dual als Approximation für
das NP-harte Steinerbaum Problem.
Nur primaler Schlupf wird gefordert.
LP-Relaxierung und das Duale
Primal:
Dual:
min Σe∈Ecexe
max ΣS⊆VyS
Σe∈δ(S)xe≥1 ∀S: ∅≠S∩N≠N ΣS:e∈δ(S) yS ≤ ce ∀e∈E
xe≥0 ∀e∈E
yS≥0 ∀S⊆V
Satz von komplementärem Schlupf:
Primal:
xe > 0
⇒ ΣS:e∈δ(S) yS = ce
Dual:
yS > 0
⇒ Σe∈δ(S)xe=1
Idee der Vorgehensweise
Starte mit einer zulässigen dualen Lösung
Konstruiere daraus eine primale, die primalen
komplementären Schlupf erfüllt.
Diese primale Lösung nicht unbedingt zulässig Wenn nicht, gibt eine Möglichkeit die duale
Lösung zu verbessern.
Sobald primale Lösung zulässig STOP
Konkreter
Lösung x von (P) induziert eine Kantenmenge F⊆E
Gesucht: F*⊆E s.d. G‘=(V(F*), F*) Steinerbaum
Zulässige Lösung von (D) liefert:
F = { e∈E | ΣS:e∈δ(S) yS = ce }
F unzulässig ∃ (ggf. mehrere) S‘ mit |δ(S‘)∩F|=0
und f(S‘)=1, also Schnittungleichung verletzt
Idee: Solange F unzulässig:
Erhöhe gleichzeitig und zulässig alle yS‘ um ε>0,
s.d. für eine Kante e∈E\F die duale Ungleichung
mit „=“ erfüllt ist
Augmentiere F=F∪{e}
Details
Frage: Wie findet man die von aktuellem F verletzte
Mengen S?
Betrachte: G‘=(V, F)
Zshgskomponenten von G‘:
C1, …,Cn
Ci heißt aktive Menge, falls
∅≠Ci∩N≠N (f(Ci)=1)
Ci liefert also einen
verletzten Schnitt
Bemerkung: Keine echte Teilmenge von Ci verletzt
die Schnittbedingungen
Postprocessing
Nach den Iterationen:
F zulässig für (P)
F kann enhält u.U. redundante Kanten
Finde redundante Kanten (Kanten, die den
Zusammenhang zersören würden) und entferne
sie
Beispiel:
1 1
3
1
1
1
Zusammenfassung: GW-Algorithmus
Start: yS=0 ⇒ F=∅ Γ={{v}: v∈V}
Für alle v∈V d(v):=0
While ∃ C∈Γ aktiv
Für jede e=(v,w), wobei v∈C(v), w∈C(w), C(v)≠C(w)
berechne ε(v,w):
ε(v,w) = (c(v,w)-d(v)-d(w))/2 , falls C(v) und C(w)
aktiv
ε(v,w) = (c(v,w)-d(v)-d(w)) , falls nur C(v) oder nur
C(w) aktiv
Wähle e*=(i,j) mit minimalem ε=ε(i,j)
Für alle Knoten der aktiven Komponenten d(v):=d(v)+ ε
F:=F ∪{e*}, Γ:=Γ\{C(i),C(j)}∪{C(i)∪C(j)}
Postprocessing
Wie gut ist die Lösung?
Die endgültige Lösung x (F‘⊆E) und die
zugehörige duale Lösung y erfüllen primale
Optimalitätsbedingung. Die entsprechende duale:
yS > 0 ⇒ Σe∈δ(S)xe=1 ist nicht erfüllt.
Da y aber zulässig, gilt:
yS > 0 ⇒ |F‘ ∩δ(S)| ≥ 1
Kann man |F‘ ∩δ(S)| nach oben abschätzen und
dadurch eine Approximationsgüte ableiten?
Lemma: Güte des Algorithmus GW
Für jede Instanz des
Steinerbaum Problems (G,N,c) gilt für die
Lösung TGW=(V(F‘),F‘) des primal-dualen
Algorithmus c(TGW) ≤ 2c(TG*(N)).
Beweis:
Zeige: Σe∈F‘ ce ≤ 2 Σs⊆Vys ≤ 2c(TG*(N))
1)
2Σs⊆Vys ≤ 2c(TG*(N)) gilt wegen der schwachen
Dualität. Zulässige duale Lösung ist untere
Schranke für das primale Optimum.
Beweis der Güte
2) zeige Σe∈F‘ce ≤ 2 ΣS⊆VyS
Primaler Schlupf ist für alle e∈F‘ erfüllt
Σe∈F‘ ce = Σe∈F‘ΣS:e∈δ(S) yS
= ΣS⊆V Σe ∈ δ(S)∩F‘ yS
= ΣS⊆V |δ(S) ∩ F‘|—yS
Also z. zg. ΣS⊆V |δ(S) ∩ F‘|—yS ≤ 2ΣS⊆VyS
Induktion über die Anzahl der Iterationen.
Anfang: alle yS=0, also erfüllt.
Beweis der Güte
ΣS⊆V |δ(S) ∩ F‘|—yS ≤ 2ΣS⊆VyS
Sei A = # aktiver Mengen
Betrachte eine Iteration des Algorithmus
Für alle aktiven S erhöhe: yS+ε
l.S. erhöht sich um: ε—Σ S aktiv |δ(S)∩F‘|
r.S. erhöht sich um: 2—ε—A
zeige: ε—ΣS aktiv |δ(S)∩F‘| ≤ 2—ε—A
zeige: ΣS aktiv |δ(S)∩F‘| ≤ 2A
Beweis der Güte:
Also zu zeigen:
die durchschnittliche
Anzahl der
Lösungskanten im
Schnitt einer aktiven
Menge ist höchstens 2
Wir konstruieren einen Graphen H aus TGW:
Die Knoten, die in dieser Iteration in einer
Zusammenhangskomponente liegen, zu einem
Knoten verschmelzen.
H ist ein Baum Durchschnittlicher Grad aller
Knoten ist kleiner als 2.
Diverses
Laufzeit:
O(|V|2 log|V|) mit Union-Find
Beweis in der Übung
Spezialfälle (zum Nachdenken…):
GW-Algorithmus funktioniert wie…
N=V: Kruskal
|N|=2: Bidirektionaler Dijkstra-Algorithmus
Verwandte Probleme
Prize-Collecting Steinerbaum
Steinerwald
Knoten aus N nur anbinden wenn „rentabel“
genug (Gewichte auch für Knoten)
Mehrere Mengen N1,…,Np. Knoten aus
derselben Menge müssen verbunden sein. Die
anderen dürfen.
Diverse Netzwerkdesign Probleme
z.B. Knoten aus N zweizusammenhängend
anbinden, etc.
Herunterladen