The Primal-Dual Method: Steiner Forest TexPoint fonts used in EMF. Read the TexPoint manual before...

Preview:

Citation preview

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 !!

Recommended