\documentclass[11pt]{article}
\usepackage{handout}
\usepackage{amsmath,amssymb,amsthm,epsfig}
\usepackage[ruled,vlined]{algorithm2e}
\begin{document}
\input{courseMacros}

\newtheorem{Theorem}{Theorem}
\newtheorem{Corollary}{Corollary}
\newtheorem{Lemma}{Lemma}
\newtheorem{Claim}{Claim}
\theoremstyle{definition}
\newtheorem{Definition}{Definition}
\newtheorem{problem}{Problem}
\newenvironment{Proof}{\noindent{\bf Proof: }}{\qed}
%\theoremstyle{remark}
\newtheorem{Remark}{Remark}

\thispagestyle{empty}
\thispagestyle{empty}
\setlength{\parindent}{0pt}
\setlength{\parskip}{1.8ex}


%%%  EDIT THE FOLLOWING TO UPDATE DATE AND LECTURE NUMBER

\head{CS G399}{Algorithmic Power Tools I}{Fall 2007}{Scribe: Hooman
Javaheri}{16 October 2007}


\newcommand{\p}{\mathcal{P}}
\newcommand{\U}{\mathcal{U}}
\newcommand{\coll}{\mathcal{S}}
\newcommand{\xpy}{x + \lambda y}
\newcommand{\Alg}{\mathcal{A}}
\newcommand{\opt}{\mbox{OPT}}
\newcommand{\eps}{\varepsilon}


\noindent {\bf Lecture Outline:}


%%% Itemized outline of the lecture
\begin{itemize}
  \item Generalized Steiner Network
  \item Jain's Algorithm (2-Approximation)
\end{itemize}


In this lecture, we will study a generalized form of Steiner network
problem. We will present Jain's Algorithm, a 2-approximation
algorithm for this problem.\\

\section{Generalized Steiner Network}
In the previous class we covered the Steiner Forest problem. A
generalization of this problem is the following:

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

{We can write the problem as the following linear program:}
\[ \min\sum c_{e}x_{e} \]
  \[ s.t. \sum_{e \in \delta(S)} x_e \geq f(S) \]
  \[ 0 \leq x_{e} \leq u_{e} \]
  where,
\[
f(S) = \mathop {\max }\limits_{\mathop {u,v}\limits_{u \in S,v \in
\bar S} } r_{uv}
\]

 $\delta(S)$ is the set of edges connecting $S$ to
  $\overline{S}$.



%% Section 1

\section{Jain's algorithm for generalized steiner network problem}
Jain's algorithm is an 2-approximation algorithm for Generalized
Steiner Network. This algorithm use the following approach to solve
the problem: Solve LP, construct part of the solution by selecting
edges for which $x_e$ is large, and redefine a new LP and repeat
until the whole connectivity requirements are satisfied.

More formally, we can write the algorithm as Algorithm 1.
\begin{algorithm}\label{alg:jain}
\SetAlFnt{\small} \dontprintsemicolon
 $1.$ $F \leftarrow {\O}$ , Define $f$ according to $r_{uv}$s.
 $f' \leftarrow f$.\;
 $2.$  \hspace{0.1in}\Repeat{$f'(S) = 0$} {$2.1.$\hspace{0.1in} Solve LP for $f'$ to obtain a solution $x$ with desired property:
       \hspace{0.1in}$\exists e \hspace{0.1in}s.t. \hspace{0.1in}x_e \geq 1/2$\;
       $2.2.$\hspace{0.1in} Add $\lceil x_e \rceil$ copies of all $e$ s.t. $x_e \geq 1/2$ to $F$ \;
       $2.3.$\hspace{0.1in} Remove the above edges $e$ from $G$. \;
       $2.4.$\hspace{0.1in} $f'(S) \leftarrow \max(0,f(S) - \delta_F(S))$
       where, $\delta_F(S)$ is set of edges of $F$ crossing $S$. \;}
 $3.$ Return $F$

\caption{Jain's algorithm for generalized steiner network problem}
\end{algorithm}




This algorithm looks neat, but here are some issues:
\begin{itemize}
\item  How do we solve the LP efficiently? 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?

\item It might be the case that in some iteration the redefined
LP cannot be solved (infeasible).

\item How do we calculate $f^{'}(S)$ in poly-time? It's easy to see that
we have exponential number of the sets in each iteration.

\item Does the algorithm terminate? Is the termination time
polynomial?
\end{itemize}

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:
\begin{enumerate}
 \item LP can be solved in Poly-Time ,in fact, we will find an optimal BFS in each iteration.
 \item The algorithm is a 2-approximation assuming the desired property in
 state 2.1 is TRUE.
 \item Desired Property: for all BFSs,\hspace{0.1in} $\exists e \hspace{0.1in}s.t. \hspace{0.1in}x_e \geq
 1/2$ \hspace{0.1in} Actually, we will prove it for 1/3 rather than
 1/2. The approach for 1/2 is the similar, but requires some
 complicated case analysis for which we refer to the original paper.

\end{enumerate}


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 establishing the desired property (desired property).
 we will go through a complete proof.

\begin{Claim}
\label{claim:half} We can solve LP in poly-time.
\end{Claim}
\begin{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 {\bf Seperation Oracle Method.}

\begin{Theorem}
An LP \[  \min C^{T}x \]
\[s.t.\hspace{0.1in} x \in P \]
which has exponential number of constraints can be solved (and also
BFS can be yield) in Poly-Time if $\exists$ a Poly-Time procedure
(oracle) that determines for a given $x$, either $x \in P$ or gives
a hyperplane (e.g. violating constraint) which separate $x$ from
$P$.
\end{Theorem}

All we need to show is our LP has this property. Let's look at the
LP again.
\[ \min\sum C_{e}x_{e} \]
  \[ s.t. \sum_{e \in \delta(S)} (x_e) \geq f(S) \]
  \[ 0 \leq x_{e} \leq u_{e} \]
  where,
\[
f(S) = \mathop {\max }\limits_{\mathop {u,v}\limits_{u \in S,v \in
\bar S} } r_{uv}
\]

It's easy to see that any solution for LP satisfies all cut
constraints. 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 {\bf
MAX-FLOW} from $u$ to $v$. If flow $\leq r_{uv}$, return MIN-CUT
separating $u$ and $v$ which has $capacity < r_{uv}$. If $ \forall
u,v flow \geq r_{uv} $ say $x$ is feasible ($ x \in P$).

We know MAX-FLOW runs in Poly-time. To solve our LP we need
$O(n^{2})$ MAX-FLOW totally. (This number can be improved to $n-1$
using Gomory-Hutrees.)

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$. The second iteration
gives 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 is defined as before. If the
oracle confirms that $x' + F$ is feasible, we can make sure that in
each iteration our accumulative solution would be feasible for the
original problem.

We can solve this LP using the separated oracle method, which in
fact, yields an optimal BFS in poly-time.

\end{proof}



\begin{Theorem}
Jain's algorithm is a 2-approximation algorithm assuming we can
always find an optimal BFS satisfying desired property of part 3.
\end{Theorem}
\begin{proof}
 {\bf (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) = \sum_{e \in F , x_e \geq 1/2} {c_e .\lceil x_e \rceil} \]
    \[ \leq 2 \cdot \sum_{e \in F , x_e \geq 1/2} {c_e . x_e}  \]
    \[ \leq  \sum_{e \in F}{c_e . x_e} \]
    \[ = 2 LP_{\opt} \leq 2.\opt \]

Suppose for a given $f'$, our solution $F'$ is obtained in $t$
iterations and has $Cost \leq 2 . LP_{\opt}(f')$. We are solving the
problem for $f$. Suppose, in the first iteration, solution returned
is $x$.
\[ LP_{\opt} = \sum_e{c_e. x_e} \]
$F_1$ = edges picked in the first iteration ($\lceil x_e \rceil$
copies of each edge with $x_e \geq 1/2$)

\[f'(S) = f(S) - \delta_{F_1}(S)\]
Solving LP for $f'$, we get solution $F'$ and our final solution
will be $F_1 \bigcup F'$.
\[ Cost(F) \leq Cost(F_1) + Cost(F') \]

\[ \leq \sum_{e \in F , x_e \geq 1/2} {c_e .\lceil x_e \rceil} + 2
\cdot  LP_{\opt}(f') \]

we need to prove that \[Cost(f) \leq 2 \cdot LP_{\opt}(f) \] this
holds true if
\[ LP_{\opt}(f') \leq LP_{\opt}(f) - \sum_{e \in F , x_e \geq 1/2} {c_e . x_e
}\]

Define:

\[
\tilde x = \left\{ {\begin{array}{*{20}c}
   {\left\lceil {x_e } \right\rceil }  \\
   0  \\
\end{array}} \right.\begin{array}{*{20}c}
   {x_e  > 1/2}  \\
   {o/w}  \\
\end{array}
\]

\[
x - \tilde x = \left\{ {\begin{array}{*{20}c}
   {x_e  }  \\
   0  \\
\end{array}} \right.\begin{array}{*{20}c}
   {x_e  < 1/2}  \\
   {x_e \geq 1/2}  \\
\end{array}
\]


$x - \tilde x $ is a feasible solution for LP($f'$), so we can say
\[ LP_{\opt}(f') \leq LP_{\opt}(f) - \sum_{ e : x_e \geq 1/2} { c_e .
x_e} \]

and we are done.

\end{proof}
%% Section 2

\begin{Theorem}
For every BFS for the generalized steiner network problem's LP,
$\exists e \hspace{0.1in}s.t. \hspace{0.1in}x_e \geq
 1/2$.
\end{Theorem}

Note that this theorem has nothing to do with objective function and
only concerns the "Polytope" constructed by
set of constraints. \\
We will prove this theorem in two steps:
\begin{enumerate}
\item    \begin{Theorem}

         Further assume $x_e \in (0,1)$ (i.e. not including 0 and 1).
         Suppose there are $m$ such edges.
         There exist a set of $m$ "TIGHT" constraints that are
         independent and form a laminar family.
        \end{Theorem}
\item   if 1 then, $\exists e \hspace{0.1in}s.t. \hspace{0.1in}x_e \geq
 1/2$.

\end{enumerate}

By independent, we mean none of the constraints can be written as
linear combination of others.\\
A laminar family is defined as follows:\\\\
 {\bf Definition 1:} Two sets $S$ and
$T$ cross if $ S-T , T-S , S \cap T $ are all non-empty. Look at Figure \ref{fig:cross}. \\\\
 { \bf Definition 2:} A laminar family is a collection of sets no
two of which cross. Figure \ref{fig:laminar} shows an example of a
laminar family. In some sense, a laminar family looks like a
hierarchy of sets.(This observation helps us to prove the theorem
later on)

\begin{figure}
\center \epsfig{file=cross.eps, width =200px} \caption{Example of a
Laminar family} \label{fig:cross}
\end{figure}


\begin{figure}
\center \epsfig{file=laminar.eps, width =200px} \caption{Example of
a Laminar family} \label{fig:laminar}
\end{figure}

We will discuss more about laminar families and complete the proof
of part 3 in the next class.
%% ...
\end{document}
