\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{subfig}
\usepackage{amssymb}
\usepackage{amsmath,amsthm}
\usepackage{graphicx}
\newcounter{lecnum}

\newcommand{\lecture}[4]{
   \newpage
   \setcounter{lecnum}{#1}
   \noindent

   \begin{center}
   \framebox{
      \vbox{\vspace{2mm}
    \hbox to 16cm { {\bf CS602 Applied Algorithms
                        \hfill 2019-20 Sem II} }
       \vspace{4mm}
       \hbox to 16cm { {\Large \hfill Lecture #1: #2  \hfill} }
       \vspace{2mm}
       \hbox to 16cm { {\it Scribe: #4  \hfill  Lecturer: #3} }
      \vspace{2mm}}
   }
   \end{center}
   \vspace*{4mm}
}

\newcommand{\R}{\mathbb{R}}
\newcommand{\transpose}{\mathtt{T}}

\newtheorem{theorem}{Theorem}[lecnum]
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{claim}[theorem]{Claim}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{definition}[theorem]{Definition}




\begin{document}

%\lecture{**LECTURE-NUMBER**}{**DATE**}{**LECTURER**}{**SCRIBE**}
\lecture{15}{March 05}{Rohit Gurjar}{Dibyangshu M}


\paragraph*{Steiner Tree Problem:}
Given a graph $G=(V,E)$ with edge costs and a set of terminals $T{\subseteq}V$, find the minimum cost subgraph $G'=(V,F)$ where $F\,{\subseteq}\,E$, such that $T$ is connected in $G'$. 

\paragraph*{Steiner Forest Problem:}
Given a graph $G=(V,E)$ and sets of terminals $T_i\,{\subseteq}\,V$, $1\,{\leq}\,i\,{\leq}k$, find the minimum cost subgraph $G'=(V,F)$ where $F\,{\subseteq}\,E$, such that for $1\,{\leq}\,i\,{\leq}k$, $T_i$ is connected in $G'$.\newline

In the last lecture we looked at the Euclidean Steiner Tree problem where the cost of every edge is the Euclidean distance between its endpoints.
\paragraph{Algorithm  A for the Steiner Tree problem:}~\\\\
Input : Graph $G$ and a set of terminals $T$,\\

\indent Build a complete graph $H=(T,F)$ such that $\forall$ $(t_1,t_2)$ $\in$ $F$, $w(t_1,t_2)$ = $d_G(t_1,t_2)$.\\
\indent$w(t_1,t_2)$ = weight of the edge $(t_1,t_2)$,\\
\indent$d_G(t_1,t_2)$ = distance between $t_1$ and $t_2$ in $G$.\\\\
\indent Compute a minimum spanning tree  in $H$.\\\\
\indent For each edge in the tree, take the corresponding path in $G$ and output the union of all such paths.\\\\
Output: A Steiner tree.\\
\begin{claim}[Homework]
The above algorithm is 2-approximation algorithm for graphical and Euclidean Steiner tree.
\end{claim}
\begin{claim}
Let $c_{opt}$ be the cost of the optimal solution for the Euclidean Steiner tree problem, and let $c_{alg}$ be the cost of the solution given by the above algorithm. Then: $\frac{c_{alg}}{c_{opt}}$=$\frac{2}{\sqrt{3}}$
%$c_{opt}$/$c_{alg}$=2/3.
\end{claim}

 It is interesting to note that despite earlier claims of a proof, Claim 15.2 remains an open conjecture till date. The best widely accepted upper bound for the problem is $1.2134$, by Chung \& Graham (1985).\\\\

\begin{figure}[!hbt]
    \centering
    \subfloat[Euclidean Steiner tree]{{\includegraphics[height=4cm]{img1.png} }}%
    \qquad
    \subfloat[Not a good approximate solution]{{\includegraphics[width=8cm]{img2.png} }}%
    \caption{The optimal solution and the algorithm A's solution. % using shortest paths and spanning trees/forests.
    (a) The first example is that of Euclidean Steiner tree with three nodes, where the optimal solution is a 3-star with a Steiner node in the center.
    On the other hand the algorithm A's output will be $2$ edges of the triangle. The ratio in their lengths is $2/\sqrt{3}$.
    (b) The second example is that of Graphical Steiner forest. Our sets of terminals are $\{T_1, T_2\}, \{T_3, T_4\}, \dots, \{T_{11}, T_{12}\} $.
    Using the shortest path lengths as weights and then computing the Steiner forest on the graph with only terminals as vertices 
    will give us cost $6$. 
    While the optimal Steiner forest uses the zero cost edges and the edge with cost 2. The ratio in the costs is 3, and can be made arbitrary high.}
    \label{fig:example}
\end{figure}

While this algorithm gives a good approximation for Steiner tree, it does not do that for the 
Steiner forest problem (see Figure~\ref{fig:example}).
Now we shall use LP-duality theory to design approximations algorithms
 that will solve both Steiner tree and Steiner Forest problems,
and in fact, can work for more general problems.
For this, we will first try to express Steiner Tree/Forest as a hitting-set for a family of sets, 
which are going to be some interesting cut-sets.
And then write an integer program accordingly.

\begin{definition}[Cut and cut-set]
A cut is a non-empty subset of vertices. 
For a cut $S \subseteq V$, the corresponding cut-set is the set of edges 
$$ \delta(S) = \{ (u,v) \in E \mid  u \in S, \; v \not\in S \}.$$
\end{definition}

\begin{definition}[Interesting Cuts for Steiner Trees] Let $G=(V,E)$, 
and $T\,{\subseteq}\, V$ a set of terminals. 
A cut $S\,{\subseteq}\,V$ is \emph{interesting} (for $T$) 
%if $\forall$ $S$ such that: 
if $S$ splits $T$, that is, $S\,{\cap}\,T\,{\neq}\, {\emptyset}$ and $S\,{\cap}\, T\,{\neq}\,T$.
% we have: $|F\,{\cap}\, {\delta}(S)|$$\,{\geq}\, 1$.\\
%where $\delta}(S)$:set of all edges from $S$ to $\overline{S}$.\\
\end{definition}

The motivation for this definition is the observation that every Steiner tree $F\subseteq E$
will have $\delta(S) \cap F \neq \emptyset$ for every interesting cut $S \subseteq V$.
Similarly, we can define interesting cuts for Steiner forests.

\begin{definition}[Interesting Cuts for Steiner Forests] 
\label{def:intFor}
Let $G=(V,E)$ and $T_i\,{\subseteq}\,V$ for $1\,{\leq}\,i\,{\leq}k$ be the sets of terminals. 
A cut $S \subseteq V$ is interesting if $\exists$ $1\,{\leq}\,i\,{\leq}k$
%$\forall$ $S\,{\subseteq}\,V$ 
such that: $S\,{\cap}\,T_i\,{\neq}\, {\emptyset}$ and $\overline{S}\,{\cap}\, T_i\,{\neq}\,{\emptyset}$.
\end{definition}
Again observe that, for any Steiner forest $F \subseteq E$ that connects each $T_i$,
we have $\delta(S) \cap F \neq \emptyset$ for every interesting cut $S \subseteq V$.


\begin{claim}
For a graph $G=(V,E)$ and $F \subseteq E$, if every cut-set $\delta(S)$ intersects with $F$, then $G=(V,F)$ is connected.
\end{claim}
\begin{proof}
 If a subgraph of a connected graph is disconnected then there must be  one cut $S$
  for which all the cut-edges in $\delta(S)$
 are missing. 
 %cone of its cut edges is missing for some cut. 
% Since $F$ contains all the cut edges, $G=(V,F)$ is connected. 
\end{proof}
\begin{claim}[Homework]
For a graph $G=(V,E)$ with a set of terminals $T$, if $F \subseteq E$ is such that 
$F \cap \delta(S) \neq \emptyset$ for each interesting cut $S \subseteq V$ (Definition~\ref{def:intFor}), 
 then all terminals $T$ are connected in $F$.
\end{claim}

%\begin{proof}
%Follows from Claim 15.5.
%\end{proof}

Using this hitting-set criterion, we can write
 the following Integer Program for the Steiner Tree Problem.
\begin{eqnarray*}
\min & \sum_{e \in E} w_e x_e & \text{s.t.}  \\
\text{ for each } e \in E, & x_e \in \{0,1\} &\\
\text{ for each interesting cut }  S \subseteq V , & \sum_{e \in \delta(S)}  x_e \geq 1 & 
\end{eqnarray*}

After relaxation of the integral constraints we get the following LP:

\begin{eqnarray*}
\min & \sum_{e \in E} w_e x_e & \text{s.t.}  \\
\text{ for each } e \in E, & x_e \geq 0 &\\
\text{ for each interesting cut }  S \subseteq V , & \sum_{e \in \delta(S)}  x_e \geq 1 & 
\end{eqnarray*}
Note that the constraint $x_e \leq 1$ would be redundant.
Now, the corresponding Dual LP would be:
\begin{eqnarray*}
\max  & \displaystyle\sum_{\substack{ S \subset V \\ S \text{ is interesting}}} y_S  & \text{s.t.} \\
\text{for each interesting } S \subseteq V & y_S \geq 0, \\
\text{and for each } e \in E, & \displaystyle\sum_{ \substack{ S  \subseteq V \\
S  \text{ is interesting } \\ \text{and } e \in \delta(S)}}  y_S \leq w_e &
\end{eqnarray*}


In the next lecture we look at the Primal-Dual algorithm for the Steiner-Tree Problem.

 
\end{document}