College of Computer & Information Science Fall 2007 Northeastern University Handout 16 October 2007 CS G399: Algorithmic Power Tools I Scribe: Hooman Javaheri

Lecture Outline:

• Generalized Steiner Network

• Jain’s Algorithm (2-Approximation)

In this lecture, we will go through the generalized form of Steiner network problem. We will prove Jain’s Algorithm, A 2-Approximation algorithms for this form.

1 Generalized Steiner Network

in the previous classes we went through the steiner forest problem. A generalized form of this problem can be viewed as following:

Problem 1. Given a graph G(V, E), a cost function C : E → Z^{+}, and the connecting requirement r_{uv} for each pair (u, v), find min-cost subgraph of G connectivity requierment for all (u, v) where u_{e} is maximum number of copies you can pick for edge e

We can write the problem down as following liner program:

min ∑ C_{e}x_{e}

s.t. ∑_{e∈δ(S)} x_{e} ≥ f(S)

0 ≤ x_{e} ≤ u_{e}

where,

f(S) = max_{u,v_{u∈S,v∈S̄}} r_{uv}

δ(S) is set of edges connecting S to \overline{S}.

2 Jain’s algorithm for generalized steiner network problem

Jain’s algorithm is an 2-approximation algorithm for generalized steiner network. This algortihm use this approach to solve the problem: Solving LP, construct part of the solution and redefine a new LP until the whole connectivity requirements get satisfied.

More formally, we can write the algorithm as Algorithm 1.

This algorithm looks neat, but here are some issues:

Algorithm 1: Jain’s algorithm for generalized steiner network problem

1. F ← Ø , Define f according to r_{uv}s. f′ ← f.

2. repeat 2.1. Solve LP for f′ to obtain S with desired property: ∃e s.t. x_{e} ≥ 1/2 2.2. Add ⌈x_{e}⌉ copies of all e s.t. x_{e} ≥ 1/2 to F 2.3. Remove e from G. 2.4. f′(S) ← max(0, f(S) − δ_{F} (S)) where, δ_{F} (S) is set of edges of F crossing S.

until f′(S) = 0

3. Return F

• How to solve LP? Looking at the definition, the number of the constraints in the LP is exponential. To obtain a poly-time algorithm we need to solve LP in poly-time. Can we do that?

• There might be the case that in some iteration the redefined LP cannot be solved (infeasible).

• How to calculate f′(S) in poly-time. It’s easy to see that we have exponential number of the sets in each iteration.

• Does the algorithm terminate? Is the termination time polynomial?

In order to prove that this algorithm is a 2-approximation algorithm, we need to answer above questions. Our approach to answer the questions is as following. We want to prove that:

1. LP can be solved in Poly-Time and we can also find BFS in each itteration.

2. Algorithm is 2-approximation assuming desired property in state 2.1 is TRUE.

3. Desired Property: for all BFSs, ∃e s.t. x_{e} ≥ 1/2 Actually, we will prove it for 1/3 rather than 1/2. The approach for 1/2 would be the similar plus some complicated case analysis which is not in our class scope.

These proofs can answer the issues we faced. Part 1 answers the issue about solving LP. Part 1 and 2 together prove the termination of the algorithm. Looking at step 2.3 in algorithm, we can easily see if we find BFS with desired property, at least one edge will be removed from our graph. so the termination time of the algorithm will be Poly(E). The most important part of the proof is part C (desired property). we will go through a complete proof.

Claim 1. We can solve LP in Poly-time.

Proof. We know our LP has exponential number of constraints, therefore it is impossible to solve this LP going through all constraints. Our proof is based on Seperation Oracle Method.

Theorem 1. An LP

min C^{T} x
s.t. x ∈ P

which has exponential number of constraints can be solved (and also BFS can be yield) in Poly-Time if ∃ a Poly-Time procedure (oracle) that determines for a given x, either x ∈ P or gives a hyperplane (e.g. violating constraint) which separate x from P.

All we need to show is our LP has this property. Let’s look at the LP again.

min ∑ C_{e}x_{e}

s.t. ∑_{e∈δ(S)}(x_{e}) ≥ f(S)

0 ≤ x_{e} ≤ u_{e}

where,

f(S) = max_{u,v_{u∈S,v∈S̄}} r_{uv}

It’s easy to see that any solution for LP satisfies all cut constraints (Look at definition of f(S) again). That means x allows a flow of size r_{uv} from u to v. Now we can define our Poly-Time oracle.

Given x, set the x_{e} to be capacity of edge e. Run MAX-FLOW from u to v. If flow ≤ r_{uv}, return MIN-CUT separating u and v which has capacity < r_{uv}. If ∀u, vflow ≥ r_{uv} say x is feasible (x ∈ P).

We know MAX-FLOW runs in Poly-time. To solve our LP we need O(n^{2}) MAX-FLOW totally. (This number could be degraded to n − 1 using Gomory-Hutrets method.)

so in the first iteration we can solve our LP in poly-time.

Now Suppose we are in the second iteration. We have already selected some edges and added them to our solution F. second iteration give us x′ as a new solution according to f′. We can solve LP defined by f′ by running O(n^{2}) MAX-FLOW computation on the graph given by x′ + F. The oracle performs as before. If oracle confirm that x′ + F is feasible, we can make sure that in each iteration our accumulative solution would be feasible for the original problem.

All things considered, we can solve this LP and also yield BFS in Poly-Time.

Theorem 2. Jain’s algorithm is 2-Approximation algorithm assuming we can always find BFS satisfying desired property of part 3.

Proof. (Proof by induction on number of iterations) Base case: Suppose we have only one iteration in our algorithm. (i.e. the algorithm give the final solution after one iteration.)

Cost(F) = ∑_{e∈F,x_{e}≥1/2} c_{e}.⌈x_{e}⌉

≤ 2. ∑_{e∈F,x_{e}≥1/2} c_{e}.x_{e}

≤ ∑_{e∈F} c_{e}.x_{e}

= 2LPOPT ≤ 2.OPT

Suppose for a given f′, our solution F′ is obtained in t iterations and has Cost ≤ 2.LPOPT(f′). We are silving the problem for f. Suppose, in the first iteration, solution returned is x.

LPOPT = ∑_{e} c_{e}.x_{e}

F_{1} = edges picked in the first iteration (⌈x_{e}⌉ copies of each edge with x_{e} ≥ 1/2)

f′(S) = f(S) − δ_{F_{1}}(S)

Solving LP for f′, we get solution F′ and our final solution will be F_{1} ⋃ F′.

Cost(F) ≤ Cost(F_{1}) + Cost(F′)

≤ ∑_{e∈F,x_{e}≥1/2} c_{e}.⌈x_{e}⌉ + 2.LPOPT(f′)

we need to prove that

Cost(f) ≤ 2.LPOPT(f)

this holds true if

LPOPT(f′) ≤ LPOPT(f) − ∑_{e∈F,x_{e}≥1/2} c_{e}.x_{e}

Define:

x̃ = \{ \begin{matrix}⌈ & x_{e} & ⌉ \\ 0 \end{matrix} \begin{matrix}x_{e} > 1/2 \\ o/w \end{matrix}

x − x̃ = \{ \begin{matrix}x_{e} \\ 0 \end{matrix} \begin{matrix}x_{e} < 1/2 \\ x_{e} ≥ 1/2 \end{matrix}

x − x̃ is a feasible solution for LP(f′), so we can say

LPOPT(f′) ≤ LPOPT(f) − ∑_{e:x_{e}≥1/2} c_{e}.x_{e}

and we are done.

Theorem 3. For all BFS for generalized steiner network problem LP,∃e s.t. x_{e} ≥ 1/2.

Figure 1: Example of a Laminar family

As a side note you might have noticed this theorem has nothing to do with objective function and is only about ”Polytope” constructed by set of constraints. We will proof this theorem in two steps:

1.

Theorem 4. Suppose x is a BFS of following LP

min ∑ C_{e}x_{e}

s.t. ∑_{e∈δ(S)} x_{e} ≥ f(S)

0 ≤ x_{e} ≤ u_{e}

Further assume x_{e} ∈ (0, 1) not including 0 and 1. Suppose there are m such edges. There exist a set of m ”TIGHT” constraints S that are independent and form a laminar family.

2. if 1 then, ∃e s.t. x_{e} ≥ 1/2.

By independent, we mean none of the constraints can be written as combination of others. Moreover, One may ask this question about laminar family. Here is the definition of Laminar family:

Definition 1: Two sets S and T crossed if S −T, T −S, S ⋂ T are all non-empty. Look at Figure 1.

Definition 2: A Laminar Family is a collection of sets no two of which cross. Figure 2 shows an example of a laminar family. In some sense, a laminar family looks like a hierarchy of sets (This fact help us to prove the theorem later on).

We will discuss more about laminar families and complete the proof of part 3 in the next class.

Figure 2: Example of a Laminar family 6