\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 go through the generalized form of Steiner
network problem. We will prove Jain's Algorithm, A 2-Approximation
algorithms for this form.\\

\section{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:

{\bf Problem 1.}{ Given a graph $G(V,E)$, a cost function $C:E \to
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\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 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 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.
\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 S 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 $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 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?

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

\item How to 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 and we can also find BFS in
 each itteration.
 \item Algorithm is 2-approximation assuming 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 would be the similar plus some
 complicated case analysis which is not in our class scope.

\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 part C (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 (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 {\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 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.

\end{proof}



\begin{Theorem}
Jain's algorithm is 2-Approximation algorithm assuming we can always
find 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 . \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 silving 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 .
LP_{\opt}(f') \]

we need to prove that \[Cost(f) \leq 2 . 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 all BFS for generalized steiner network problem LP,$\exists e
\hspace{0.1in}s.t. \hspace{0.1in}x_e \geq
 1/2$.
\end{Theorem}

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:
\begin{enumerate}
\item    \begin{Theorem}
         Suppose $x$ is a BFS of following LP
         \[ \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} \]
         Further assume $x_e \in (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.
        \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
combination of others.\\
 Moreover, One may ask this question about
laminar family. Here is the
definition of Laminar family: \\\\
 {\bf Definition 1:} Two sets $S$ and
$T$ crossed if $ S-T , T-S , S \bigcap 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 fact help 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 =250px} \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}
