\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath,amsthm,mathtools}
\usepackage{amsfonts}
\usepackage{enumitem}
\usepackage{gensymb}
\newcounter{lecnum}
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage{float}
\usepackage{xurl}

\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}
}

\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{14}{March 2}{Rohit Gurjar}{Rohit Kumar Singh}
\section{Primal Dual for Approximation Algorithm}
The following two algorithms are 
can be viewed as primal-dual algorithms  in disguise:
\begin{itemize}
  \item Dijkstra's algorithm
  \item Kruskal's algorithm
 % \item Minimax theorem for zero-sum games
  
\end{itemize}
\section{Soap Bubbles}
\subsection{Experiment}
If two glass plates/thermacol with verticle toothpicks between them are dipped into soapy water, then a soap film will  form connecting all the toothpicks. 
%
Most of the times, this film is such that it minimizes total surface area, which corresponds to minimum energy configuration, while connecting all toothpicks.
% a Steiner tree film connects the toothpick, this being the minimum-energy configuration.
\subsection{Result}
\begin{figure}[!hbt]
    \centering
    \includegraphics[width=50mm,scale=0.8]{figure1.JPG}
    \caption{A Steiner tree connecting points.}
    \label{fig:graph}
\end{figure}
Given a set of points in the Euclidean plane, a (Euclidean) Steiner tree (Figure 1) is a collection of line segments of minimum total length connecting the points, where the segments can meet at vertices (called Steiner vertices) other than the given points themselves.

For $N = 3$ points, there are two possible cases: 
\begin{figure}[H]
    \centering
    \includegraphics[width=50mm,scale=0.8]{figure2.jpg}
    \caption{Steiner tree for 3 terminals [5]}
    \label{fig: n = 3 steiner}
\end{figure}
\begin{enumerate}[label=(\alph*)]
\item If the triangle formed by the given points has all angles less than 120\degree, then the solution is given by a Steiner point located in the middle of the triangle.

\item When one of the angles is more than 120\degree then the solution is given by the two sides of the triangle which meet this angle.
\end{enumerate}

For $N = 4$ points, there are two solutions, as shown here. One is just a rotation of the other by 90\degree.
\begin{figure}[H]
    \centering
    \includegraphics[width=50mm,scale=0.8]{steiner-4point.jpg}
    \caption{Steiner tree for 4 terminal [1]}
    \label{fig: n = 4 steiner}
\end{figure}
\begin{figure}[H]
    \centering
    \includegraphics[width=50mm,scale=0.9]{figure6.JPG}
    \caption{Alternate Steiner tree for 4 terminal [2]}
    \label{fig: n = 4 steiner}
\end{figure}
For a unit square, each of these networks is of length 1 + $\sqrt{3}$. A film forms comprised of plane sections meeting at angles of 120\degree.
% It can be seen that neither solution has the same degree of symmetry as the original square.\\
Soap films provide a local minimum configuration, but not always the global minimum.
For $N = 5$ points, the following figure shows an example of a Steiner tree.
\begin{figure}[H]
    \centering
    \includegraphics[width=50mm,scale=0.8]{steiner-5point.jpg}
    \caption{Steiner tree for 5 terminal [1]}
    \label{fig: n = 3 steiner}
\end{figure}
To find an Euclidean Steiner tree is known to be NP-hard.
%
This raises the following philosophical question: can NP-hard problems be solved in polynomial time using the resources of the physical universe, which is soap water in this case?

\section{Steiner Tree on graph}
Given an undirected graph with non-negative edge costs and a subset of vertices, usually referred to as terminals T $\subseteq V$, the Steiner tree problem in graphs requires a tree of minimum cost that contains all terminals (but may include additional vertices). Steiner tree problem is NP-hard.
%\subsection{Observation}
%\begin{itemize}
 % \item The Steiner tree problem in graphs requires a tree of minimum weight/cost that should contains all terminals (but may include additional vertices). 
  \begin{figure}[H]
    \centering
    \includegraphics[]{figure5.JPG}
    \caption{a) represents a minimum spanning tree, b) is an \href{https://en.wikipedia.org/wiki/Steiner_tree_problem\#Euclidean_Steiner_tree}{Euclidian Steiner tree} and c) is a \href{https://en.wikipedia.org/wiki/Steiner_tree_problem\#Rectilinear_Steiner_tree}{Rectilinear Steiner tree}. [4]}
    \label{fig: n = 6 steiner}
\end{figure}
 
 As opposed to minimum spanning trees (figure 6: a) where all paths go through the vertices themselves, Steiner trees (figures 6: b and 6: c) allow you to have extra mediating vertices (Steiner points) resulting in a shorter cumulative cost/length. This, however, also makes the problem hard since it is difficult to find out which extra mediating point should be there.
  
% Total cost of pairwise shortest path is not equal to Minimum cost spanning tree. 

There is more general version of this problem called Steiner forest, where we are given a collection of subsets of vertices and the goal is ensure that each subset in the collection is connected within (using additional vertices).


\section{Linear Programming Formulation via hitting-sets}
The first step towards designing an approximation algorithm is to express the Steiner tree/forest problem as an integer linear program. To do that we will first write a hitting set formulation. 

\paragraph{Hitting Set:} 
Let $E$ be a set with each element having a cost and $S_1, S_2, .., S_m \subseteq E$ be its subsets.
%
The hitting set problem asks for the minimum cost subset $X \subseteq E$
such that $X$ intersects $S_i$ for
each $1\leq i \leq m$.
%
It can be expressed as the following linear program.

\begin{eqnarray*}
\min & \sum_{e\in E} x_e & \text{s.t.}\\
\text{for each } e \in E & x_e\geq 0 & \\
\text{for each } 1 \leq i \leq m&
\sum_{e \in S_i} x_e \geq 1&
\end{eqnarray*}

\begin{itemize}
\item The vertex cover problem is a special instance of hitting set problem: think of each edge as a subset of (two) vertices. 
%
\item Moreover, the set cover problem is equivalent to the hitting-set problem. 
%
\end{itemize}

This can be seen by observing that an instance of set covering can be viewed as an arbitrary bipartite graph, with sets represented by vertices on the left, the universe represented by vertices on the right, and edges representing the inclusion of elements in sets. The task is then to find a minimum cost subset of left-vertices which covers all of the right-vertices.
%
 In the hitting set problem, the objective is to cover the left-vertices using a minimum subset of the right vertices. 
%
\begin{itemize}
\item Thus, the edge cover problem also reduces to hitting set problem. 
\end{itemize}

\paragraph{Homework Question.} Can we express the Steiner tree problem as a hitting set problem?


\section{Extra Reading Materials \& References}
\begin{enumerate}
\item \url{https://thatsmaths.com/2015/01/29/the-steiner-minimal-tree} 
 \item  \url{https://en.wikipedia.org/wiki/Steiner_tree_problem}
\item  \url{http://theory.cs.uni-bonn.de/info5/steinerkompendium/netcompendium.pdf} 

\item  \url{https://www.science.ku.dk/english/press/news/2014/the-steiner-tree-research-at-diku-experiences-a-revival}

\item \url{http://images.math.cnrs.fr/}
\end{enumerate}
\end{document}

The minimum weighted set cover problem can be formulated as the following integer linear program (ILP).
In weighted set cover, the sets are assigned weights. Denote the weight of set \({\displaystyle S \in {\mathcal {S}}}\) by \({\displaystyle w_{S}}\). \\
The objective function is to \\
minimize \({\displaystyle \sum _{S\in {\mathcal {S}}}w_{S}x_{S}}\) \\
subject to	\({\displaystyle \sum _{S\colon e\in S}x_{S}\ge 1}\)	for all \({\displaystyle e\in {\mathcal {U}}}\)	(cover every element of the universe)\\
\({\displaystyle x_{S}\ge 0}\)	for all \({\displaystyle S\in {\mathcal {S}}}\).	(every set is either in the set cover or not)

\section{Hitting set formulation} (Reduce set cover to covering problem.)\\
Set covering is equivalent to the hitting set problem. 
\begin{itemize}
  \item Hitting set is an equivalent reformulation of Set Cover.
  \item Vertex cover is a special case of Hitting Set.
  \item Edge cover is a special case of Set Cover.
\end{itemize}