Download presentation
Presentation is loading. Please wait.
Published byJennifer Duffy Modified over 11 years ago
1
The Primal-Dual Method: Steiner Forest TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A AA A A A AA A A
2
Network Design Input: undirected graph G=(V,E) cost function: c:E ! R + connectivity requirements Output: minimum cost subgraph satisfying connectivity requirements Example: minimum spanning tree: minimum cost subgraph connecting all vertices
3
Steiner Tree Input: set of terminals T = { t 1, …, t k } µ V Output: minimum cost subgraph connecting T NP-complete Algorithm: define complete graph H on T c(t i, t j ) = shortest path in G from t i to t j find a minimum spanning tree F in H replace each edge in F by the corresponding path in G (delete cycles)
4
Steiner Tree: Analysis F * - optimal Steiner tree in G duplicate each edge in F * - all degrees are even open up F* into a (Euler) cycle Z c(Z) =2c(F*) Z can be transformed into a spanning tree in H: for any t,t 2 T: c Z (t,t ) ¸ c H (t,t ) Approximation factor = 2
5
Constrained Steiner Forest Problem Requirement function f: S ! {0,1} 8 S ½ V f(S) =1 if there is a set T i split between S and V-S f(S) =0 otherwise Note: f(S)=f(V-S), f is a function on cuts Input: undirected graph G=(V,E) cost function: c:E ! R + disjoint sets T 1, …, T k ½ V Output: minimum cost subgraph H such that each set T i belongs to a connected component of H S
6
Examples of Requirement Functions Steiner tree: for any cut S separating terminals, f(S)=1 shortest path between s and t: for any cut S separating s and t, f(S)=1 minimum weight perfect matching: f(S) =1 iff |S| is odd (At least one vertex is matched outside S)
7
δ(S) S Linear Programming Formulation Covering LP Packing LP
8
Integrality Gap Example Minimum spanning tree: all cuts are covered Graph: cycle on n vertices, unit cost edges Optimal integral solution: cost is n-1 Optimal fractional solution: for each edge e, x(e)=1/2 all cuts are covered cost is n/2 Gap is 2-1/n
9
Primal-Dual Algorithm y à 0 A à ; (x à 0) While A is not a feasible solution C - set of connected components S 2 (V,A) such that f(S)=1 increase y S for all S 2 C until dual constraint for new e 2 E becomes tight A à A [ {e} Remove unnecessary edges from A
10
Primal-Dual Algorithm y à 0 A à ; (x à 0) While A is not a feasible solution C - set of connected components S 2 (V,A) such that f(S)=1 increase y S for all S 2 C until dual constraint for new e 2 E becomes tight A à A [ {e} Remove unnecessary edges from A A – final solution
11
Demo of Primal-Dual Algorithm
12
Analysis (1) Lemma: The primal solution generated by the algorithm satisfies the requirement constraints Proof: The `while loop continues till we get a feasible solution Lemma: The dual solution generated by the algorithm is feasible Proof: Whenever an edge becomes tight, no more cuts are packed into it
13
Analysis (2) Why is it important that we delete redundant edges at the end? Otherwise, we cannot charge tight primal edges to a single dual variable (the ball) – too many such edges! Goal: charge the increase in primal cost in each iteration to the increase in dual cost
14
Analysis (3):
15
Analysis (4):
16
Summary: key ideas synchronizing dual update: all dual variables (of active sets) increase together complementary slackness: dual variable > 0 ! tight primal constraint primal variable > 0 ! tight dual constraint the primal-dual algorithm relaxes comp. slackness: if x e >0 (i.e., x e =1 ), then If y S >0, not necessarily ratio of primal and dual increase · 2 on average, not per constraint
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.