the primal-dual method: steiner forest texpoint fonts used in emf. read the texpoint manual before...
TRANSCRIPT
The Primal-Dual Method:
Steiner Forest
Network Design
OPT(I )ALG(I )
¸ ®
a+ bX
i
ai
a+ ba+ b
• 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
Steiner Tree
OPT(I )ALG(I )
¸ ®
a+ bX
i
ai
a+ ba+ b
• Input:
• set of terminals T = {t1, …, tk} µ V
• Output:
• minimum cost subgraph connecting T
• NP-complete
• Algorithm:
• define complete graph H on T
• c(ti, tj) = shortest path in G from ti to tj
• find a minimum spanning tree F in H
• replace each edge in F by the corresponding path in G
(delete cycles)
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: cZ(t,t’) ¸ cH(t,t’)
• Approximation factor = 2
Constrained Steiner Forest Problem
Requirement function f: S ! {0,1} 8 S ½ V
f(S) =1 if there is a set Ti 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 T1, … ,Tk ½ V
• Output:
• minimum cost subgraph H such that each set
Ti belongs to a connected component of H
S
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)
δ(S)
S
Linear Programming Formulation
minimizeX
e2E
cexe
subject to:X
eje2±(S)
x(e) ¸ f (S) S ½V
xe ¸ 0
maximizeX
S½V
f (S)yS
subject to:X
Sje2±(S)
yS · ce e2 E
yS ¸ 0
Covering LP Packing
LP
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
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 yS for all S 2 C until dual constraint for
new e 2 E becomes tight
• A Ã A [ {e}
• Remove unnecessary edges from A
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 yS 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
15
9
5
10
76
40
Pd-demo.ps
Demo of Primal-Dual Algorithm
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
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
)X
e2A 0
ce · 2X
S½V
yS
Analysis (3): X
e2A 0
ce · 2¢X
S½V
yS
Since every picked edge is tight,
X
e2A 0
ce =X
e2A 0
0
@X
Sje2±(S)
yS
1
A
Changing order of summation,
X
e2A 0
ce =X
S½V
0
@X
Sje2±(S)\ A 0
yS
1
A =X
S½V
degA 0(S) ¢yS
Need to show X
S½V
degA 0(S) ¢yS · 2¢X
S½V
yS
Analysis (4): X
S½V
degA 0(S) ¢yS · 2¢X
S½V
yS
consider an iteration in which active balls grew by ¢ . Need to show:
¢ £
ÃX
S½V
degA 0(S)¢
!
· 2¢ £ (# of active sets)
that is, ÃX
S½V
degA 0(S)
!
· 2£ (# of active sets)
A0 is a forest and each active set has non-zero degree.
in a tree, average degree · 2 !!