\documentclass[11pt,epsf]{article}
\parindent 0in
\usepackage{latexsym}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{epsfig}

\newcommand{\handout}[5]{
   \noindent
   \begin{center}
   \framebox{
      \vbox{
    \hbox to 5.78in { {\bf 18.409 The Behavior of Algorithms in Practice} \hfill #2 }
       \vspace{4mm}
       \hbox to 5.78in { {\Large \hfill #5  \hfill} }
       \vspace{2mm}
       \hbox to 5.78in { {\it #3 \hfill #4} }
      }
   }
   \end{center}
   \vspace*{4mm}
}

\newcommand{\lecture}[4]{\handout{#1}{#2}{Lecturer: #3}{Scribe: #4}{Lecture #1}}

\newcommand{\Kappa}{\kappa}
\def\RR{{ I\!\!R}}
\newtheorem{theorem}{Theorem}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{observation}[theorem]{Observation}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{claim}[theorem]{Claim}
\newtheorem{fact}[theorem]{Fact}
\newtheorem{assumption}[theorem]{Assumption}

\setlength{\topmargin}{-0.50in}
\setlength{\textheight}{8.5in}
\setlength{\oddsidemargin}{0.0in}
\setlength{\evensidemargin}{-0.0in}
\setlength{\textwidth}{6in}
\addtolength{\parskip}{2pt}
\addtolength{\itemsep}{0.1in}
\parskip 1.5ex

\renewcommand{\baselinestretch}{1.25}

\begin{document}

\lecture{11}{March 19, 2002}{Dan Spielman}{Jos\'e Correa}

\section*{Linear Programming}

We now start with the study of smoothed analysis for linear
programming. In the forthcoming lectures we shall cover three methods for LP:
\begin{itemize}
\item[1.-] Elementary/Naive/Stupid methods (this lecture).
\item[2.-] Simplex method (part in this lecture).
\item[3.-] Interior point method.
\end{itemize}

\subsection*{Introduction}

Given $a_1,\ldots,a_n \in \RR^d$ and $c\in \RR^d$, Dan's favorite linear program
is the following
\begin{eqnarray*}
\mbox{[LP1] }\max &&\alpha\\
\mbox{s.t. }&& \alpha c \in {\rm ch}(a_1,\ldots,a_n),\\
&& \alpha\ge 0.
\end{eqnarray*}
where ${\rm ch}(a_1,\ldots,a_n)$ denotes the convex hull defined by the
vectors $a_1,\ldots,a_n$. We know that $c\in {\rm ch}(a_1,\ldots,a_n)$ if
and only if there exists $y_1,\ldots,y_n\ge 0$ such that 
$\sum_{i=1}^ny_i=1$ and $c=\sum_{i=1}^ny_ia_i$. Hence we can write [LP1] in an
equivalent form
\begin{eqnarray*}
\mbox{[LP2] }\max &&\alpha\\
\mbox{s.t. }&& \exists y_1\ldots y_n\ge0\\
&& \sum_{i=1}^ny_i=1,\, \sum_{i=1}^ny_ia_i=\alpha c.
\end{eqnarray*}
By letting $y'_i=\frac{y_i}{\alpha}$, we have that $y'_i\ge 0$, 
$\sum_{i=1}^ny'_i=\frac{1}{\alpha}$ and $c=\sum_{i=1}^ny'_ia_i$. Then, 
maximizing $\alpha$ is the same as minimizing $\sum_{i=1}^ny'_i$, and 
hence [LP2] becomes
\begin{eqnarray*}
\mbox{[LP3] }\min &&\sum_{i=1}^ny'_i\\
\mbox{s.t. }&& \sum_{i=1}^ny'_ia_i=c,\\
&& y_i'\ge 0.
\end{eqnarray*}

\subsection*{1.- Von Neumann's algorithm for LP}
We know see an elementary algorithm to solve [LP1]. The algorithm will use 
binary search on $\alpha$. And it will call a subroutine which decides 
whether a given $\alpha c$ belongs to ${\rm ch}(a_1,\ldots,a_n)$, 
this is called the {\em decision problem}.

To solve the decision problem Von Neumann's algorithm proceeds as
follows:\\[-5ex]
\begin{itemize}
\item Take $x_0\in {\rm ch}(a_1,\ldots,a_n)$, say 
$x_0=\frac{1}{n}\sum_{i=1}^n a_i$.\\[-5ex]
\item Choose $i$ maximizing $\langle(\alpha c-x_0),(a_i-x_0)\rangle$ 
($i=2$ in the figure below).\\[-5ex]
\item Find the point $x$ from $x_0$ to $a_i$ (i.e. $x\in{\rm ch}(x_0,a_i)$)
closest to $\alpha c$.\\[-5ex]
\item $x_0=x$ and repeat.\\[-5ex]
\end{itemize}

\begin{figure}[!ht]
\begin{center}
\scalebox{0.9}{\includegraphics{vonneumann.eps}}
\end{center}
\end{figure}

This procedure converges since whenever $\alpha c\in{\rm ch}(a_1,\ldots,a_n)$ we
have $\max_i\{\langle(\alpha c-x_0),(a_i-x_0)\rangle\}\ge 0$ for some $i$.
Otherwise, $\langle (\alpha c-x_0),(a_i-x_0)\rangle < 0$ for all $a_i$. This 
implies that there is an hyperplane separating $x_0$ form 
$\{a_1,\ldots,a_n\}$, from where $\alpha c \not\in{\rm ch}(a_1,\ldots,a_n)$.


\begin{theorem}[Dantzig]
Von Neumann's Algorithm obtains a point $x_0$ such that $||x_0-\alpha
c||<\epsilon$ in $$ \frac{4\max\{||\alpha c||,\max_i||a_i||\}}{\epsilon^2}$$
iterations.
\end{theorem}

\begin{theorem}[Freund-Epelman]
Von Neumann's Algorithm obtains a point $x_0$ such that $||x_0-\alpha
c||<\epsilon$ in $$ \frac{8\max\{||\alpha c||,\max_i||a_i||\}}{r^2} 
\log \left( \frac{||x_0-\alpha c||}{\epsilon}\right)$$
iterations. Where $r={\rm distance}(||\alpha c||, {\rm boundary}({\rm
ch}(a_1,\ldots a_n)))$. $r$ is a condition number of the linear program.
\end{theorem}

\subsection*{2.- The Simplex method}
Consider again the linear program [LP1]. A basic feasible solution of [LP1] is
collection of $d$ points, $B\subset \{a_1,\ldots,a_n\}$ ($|B|=d$) such that 
$\alpha c\in {\rm ch}(B)$ for some $\alpha \ge 0$.

\begin{figure}[!ht]
\begin{center}
\scalebox{0.9}{\includegraphics{simplex.eps}}
\end{center}
\end{figure}

The simplex method proceeds as follows:\\[-5ex]
\begin{itemize}
\item Find a Basic feasible solution $B$.\\[-5ex]
\item Find point, say $a$, in $\{a_1,\ldots,a_n\}$ above 
(with respect to $c$) the hyperplane ${\rm ch}(B)$.\\[-5ex]
\item Remove one point, $b$, from $B\cup\{a\}$ so that $B'=B\cup\{a\}\setminus
\{b\}$ is a basic feasible solution.\\[-5ex] 
\item $B=B\cup\{a\}\setminus\{b\}$ and repeat.\\[-5ex]
\end{itemize}

{\bf Initialization:} Plant a Basic feasible solution. i.e. put $d$ points very
close to the origin (say at distance $\epsilon$), so that they are not 
involved in an optimal solution. This is also known as the big $M$ method since, 
$\min\{\sum_{i=1}^ny_i:\,\sum_{i=1}^ny_ia_i=c,\,y_i\ge 0\}$ can be written as 
\begin{eqnarray*}
\mbox{[LP3] }\min &&\sum_{i=1}^ny_i+M\sum_{j=1}^dz_j\\
\mbox{s.t. }&& \sum_{i=1}^ny_ia_i+\sum z_je_j=c,\\
&& y_i\ge 0.
\end{eqnarray*}
Which again, by letting $M=1/\epsilon$, is equivalent to 
\begin{eqnarray*}
\mbox{[LP3] }\min &&\sum_{i=1}^ny_i+\sum_{j=1}^dz_j\\
\mbox{s.t. }&& \sum_{i=1}^ny_ia_i+\sum z_j(\epsilon e_j)=c,\\
&& y_i\ge 0,
\end{eqnarray*}
and this is exactly the initialization method described above.

{\bf Duality:} Another way of looking at Dan's linear program [LP1] is the
following. Find a plane $H$ and the minimum $\alpha$ such that, 
$\alpha c\in H$ and $\{a_1,\ldots, a_n\}$ are beneath $H$.

\begin{figure}[!ht]
\begin{center}
\scalebox{0.8}{\includegraphics{dual.eps}}
\end{center}
\end{figure}

Since $H_x=\{a:\,\langle a,x \rangle =1\}$ is the plane normal to a given 
vector $x$. The above problem, know as the {\em dual}, can be stated as 
\begin{eqnarray*}
\mbox{[Dual-LP1] }\min &&\alpha \\
\mbox{s.t. }&& \langle \alpha c,x \rangle=1\\
&&\langle a_i,x \rangle\le 1 \mbox{ for all }i.
\end{eqnarray*}
Now $\langle c,x \rangle=1/\alpha$, hence the problem is simply
\begin{eqnarray*}
\mbox{[Dual-LP3] }\max && \langle c,x \rangle\\
\mbox{s.t. }&& \langle a_i,x \rangle\le 1 \mbox{ for all }i.
\end{eqnarray*}

We can conclude the following result.
\begin{theorem}
If primal [LP1] has a solution, then the dual [Dual-LP1] has the same solution.
\end{theorem}
\end{document}
