Steiner Bäume
Dipl.-Math. Maria KandybaLehrstuhl für Algorithm Engineering, LS11
12 VO 15. Januar 2007
Überblick Einführung
Definition und Motivation Komplexität
Approximationsalgorithmen Distanznetzwerk Heuristik Primal-Dualer Algorithmus
SteinerbaumUngerichteter G=(V,E), Terminalknoten NV. Kantengewichte c: E → ℝ+
Ein Steiner Baum TG(N)=(V‘,E‘) von G ist: Baum mit V‘V, E‘E NV‘Gewicht von Steinerbaum: c(TG(N))=e∈E‘ c(e)
Steinerbaum Problem:Finde den SteinerbaumTG
*(N)vom minimalen Gewicht
2
5
1
1 2
3
3 1
1
2
2
2
4
5
Geschichte & verschiedene Varianten
Pierre de Fermat (1601–1665)
Frage: Gegeben 3 Punkte in der Ebene, finde den vierten, so dass die die Summeder Distanzen zu den anderen drei ist minimal. Gelöst von Toricelli vor 1640
(Toricellipunkt)
Jacob Steiner (1796–1863)
Verallgemeinerung auf n Knoten (unter anderem):
Varianten & AnwendungVarianten: 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 ProblemAlgorithmen (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.html)
V. Vazirani: Approximation Algorithms. Springer Verlag 2003
D. S. Hochbaum (Hrsg.): Approximation Algorithms for NP-hard Problems. PWS Publishing Company 1997
DistanznetzwerkDistanznetzwerk DG(W)=(W, ED, cD) von G=(V,E): WV 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‘
5
Beispiel
g
a c f
e h
b d2
5
1
1 2
3
3 1
1
2
2
2
4
5
a
b g
4
5
5
a
e
b d2
1
1
3
g
Theorem: Güte von DNHFü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:
z4
z1 z2 z3
Betrachte TG*(N):• Verdoppele die Kanten
• Finde eine Eulertour L
• Nummeriere v∈Nauf 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)z4
z1 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 FE 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, SNN muss also gelten:
|F (S)| ≥1
ILP mit Hilfe von SchnittungleichungenKantenvariablenxe=1, falls e∈F
xe=0, sonst
Alternative Schreibweise für die Schnittungleichungen:
e∈(S)xe≥f(S) S V
wobei hier f(S)= 1 S: SNN und f(S)=0 sonst
min e∈Ecexe
e∈(S)xe≥1 S: SNN
xe ∈{0,1} e∈E
Primal-Dualer AlgorithmusFrüher:
primal-dualer Algorithmus für das polynonielleProblem MWPM in bipartiten GraphenEigenschaft des Algorithmus: Primaler und Dualerkomplementärer Schlupf erfüllt.
Goemann-Williamson (GW)-Algorithmus:primal-dual als Approximation fürdas NP-harte Steinerbaum Problem.Nur primaler Schlupf wird gefordert.
LP-Relaxierung und das DualePrimal:
min e∈Ecexe
e∈(S)xe≥1 S: SNN
xe≥0 e∈E Satz von komplementärem Schlupf:
Primal: xe 0 S:e∈(S) yS = ce
Dual: yS 0 e∈(S)xe=1
Dual:
max SVyS
S:e∈(S) yS ≤ ce e∈E
yS≥0 SV
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
KonkreterLö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}
DetailsFrage: 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 CiNN (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 1
1
31
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 diezugehörige duale Lösung y erfüllen primaleOptimalitä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 GWFür jede Instanz desSteinerbaum 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 sVys ≤ 2c(TG*(N))
1) 2sVys ≤ 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üte2) zeige e∈F‘ce≤ 2 SVyS
Primaler Schlupf ist für alle e∈F‘ erfüllt e∈F‘ ce = e∈F‘S:e∈(S) yS
= SV e ∈ (S)F‘ yS
= SV |(S) F‘|·yS
Also z. zg. SV |(S) F‘|·yS ≤ 2SVyS
Induktion über die Anzahl der Iterationen.Anfang: alle yS=0, also erfüllt.
Beweis der GüteSV |(S) F‘|·yS ≤ 2SVyS
Sei A = # aktiver Mengen Betrachte eine Iteration des AlgorithmusFür alle aktiven S erhöhe: yS+l.S. erhöht sich um: · S aktiv |(S)F‘|
r.S. erhöht sich um: 2··Azeige: ·S aktiv |(S)F‘| ≤ 2··Azeige: 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.
DiversesLaufzeit: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
Knoten aus N nur anbinden wenn „rentabel“ genug (Gewichte auch für Knoten)
Steinerwald 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.
Top Related