\documentclass[12pt]{article}

%%%%%%%%%%%%%%%%%

\usepackage{fullpage}
\usepackage{latexsym}
\usepackage{amssymb}
\usepackage{approx-header}

\catcode`\@=11
\def\@@dotheorem#1{\trivlist\item[\hskip\labelsep{\bf #1.}]\hskip
1ex\ignorespaces}
\def\@begintheorem#1#2{\@@dotheorem{#1\ #2}}
\def\@opargbegintheorem#1#2#3{\@@dotheorem{#1\ #2\ (#3)}}
\catcode`\@=12

\newtheorem{notation}{Notation}
\newtheorem{definition}{Definition}
\newtheorem{lemma}{Lemma}
\newtheorem{fact}[lemma]{Fact}
\newtheorem{claim}[lemma]{Claim}
\newtheorem{observation}[lemma]{Observation}
\newtheorem{conjecture}[lemma]{Conjecture}
\newtheorem{theorem}[lemma]{Theorem}
\newtheorem{corollary}[lemma]{Corollary}
\newtheorem{proposition}[lemma]{Proposition}

%\newenvironment{definition}{\underline{\bf Definition:}}{}
\newenvironment{proof}{\par \smallskip{\bf Proof:}}{\par\stopproof}

\def\stopproof{\qquad\square}
\def\square{\vbox{\hrule height.2pt\hbox{\vrule width.2pt height5pt \kern5pt \vrule width.2pt} \hrule height.2pt}}
\def\qed{\stopproof}
\def\QED{\qed}
\def\proof{{\noindent {\bf Proof: }}}
\def\proofof#1{{\noindent {\bf Proof of #1: }}}
\def\sketch{{\noindent {\bf Proof sketch: }}}
\def\remark{{\noindent {\bf Remark: }}}
\newcommand{\half}{\frac{1}{2}}

\def\eps{\epsilon}
\def\E{E}

\newcommand{\NN}{{\mathbb{N}}}
\newcommand{\RR}{{\mathbb{R}}}
\newcommand{\QQ}{{\mathbb{Q}}}
\newcommand{\ZZ}{{\mathbb{Z}}}

\newcommand{\sset}{\mathcal{S}}
\newcommand{\tset}{\mathcal{T}}

\newcommand{\floor}[1]{\left \lfloor #1\right \rfloor}
\newcommand{\ceil}[1]{\left \lceil #1\right \rceil}

\def\eps{\epsilon}

%%%%%%%%%%%%%%%%%%%%%%

\Lecturer{Yuval Rabani}
\LectureNumber{1}
\LectureDate{Sept 1, 2003}

\begin{document}
\MakeScribeTop

\section{Introduction}

This course deals with problems in {\em combinatorial optimization}. What we mean
by this term is that we are given, implicitly, a finite set of weighted objects
(for example, the set of all spanning trees of a weighted graph), and we want to
find an object of minimum or maximum weight (for example, a minimum cost spanning
tree). Such an object is an {\em optimum} of the function mapping objects to their
weights, and the process of finding an optimum is called {\em optimization}. Thus,
an instance of a combinatorial optimization problem is defined by a finite structure
that induces a finite set of objects (or {\em feasible solutions}), an implicit function
that maps feasible solutions to their weights, and an optimization criterion (minimum
or maximum). Let $F$ denote the finite structure, let ${\cal S}$ denote the induced
set of feasible solutions, and let $w$ denote the weight function. In dealing with
computational problems, we need to place restrictions on the representation of these
items. Firstly, we require that the size of each $S\in{\cal S}$ is polynomially bounded
in the size of $F$. Next, we require that there be a polynomial time algorithm that on
input $S,F$ decides if indeed $S\in{\cal S}$. Finally, we require that there be a polynomial
time algorithm that on input $S,F$, where $S\in{\cal S}$, computes $w(S)$. Such problems
are called NP optimization problems, because their corresponding decision problems
(is there an object with weight below/above a given threshold?) are in NP.

For some combinatorial optimization problems there are polynomial time algorithms that
find an optimum. This is more the exception than the rule. Most interesting problems
are NP-hard (usually, their decision versions are NP-complete). In particular, this
usually implies the absence of good characterizations for the optimum. In this course,
we study one approach to tackling such problems, both structurally and computationally.
This approach calls for the design and analysis of {\em approximation algorithms}, i.e.,
polynomial time algorithms that find a solution whose weight is close to optimum. In fact,
finding such approximately optimal solutions is often NP-hard too. Thus, much of the
work in this field is devoted to the exploration and discovery of the boundaries of
polynomial time computation. We want to find out the best approximation guarantees that
are possible under the assumption that P$\ne$NP.

The secret to designing approximation algorithms is the discovery of a polynomially time
computable lower bound (in the case of minimization problems) or upper bound (in the case
of maximization problems) on the optimum. We hope to avoid the complexity of characterizing
the optimum itself by bounding it imprecisely. The tightness of the bound will determine
the quality of the approximation derived from this bound. In fact, we know that unless
P$=$NP, the gap between the bound that we get and the optimum must vary from instance to
instance, otherwise we could compute the value of the optimum. Thus, when our bound is
far from the optimum, our approximation will actually yield a solution close to optimum,
and when our bound is close to optimum, our approximation will deviate from it more
significantly.

\section{Examples}

Consider an NP-optimization problem and a proposed (approximation) algorithm ${\cal A}$ for
that problem. Let $S^* = S^*(F)$ denote an optimal solution for input $F$, and let $S = S(F)$ 
denote the output of ${\cal A}$ for the same input. For minimization problems, we say that
${\cal A}$ is a $c$-approximation algorithm iff this for all $F$, $w(S) / w(S^*)\le c$. For
maximization problems, the condition is $w(S) / w(S^*)\ge c$.

\paragraph{The traveling salesperson problem (TSP).}
In this problem we are given a weighted complete graph on $n$ nodes. Our goal is to find
a tour, i.e. a simple cycle that spans all the nodes, of minimum total edge weight.
The following theorem is easy
\begin{theorem}[Sahni and Gonzalez~\cite{SG76}]
For any bound $B > 0$, the existence of a polynomial time $B$-approximation
algorithm for TSP implies that P$=$NP.
\end{theorem}

\proof
The proof is by reduction from {\sc Hamiltonian Tour}.
Consider an instance $G=(V,E)$ to Hamiltonian Tour. Construct a TSP instance as follows:
Put $n = |V|$. For every $ij$, put $w(ij) = 1$ if $ij\in E$ and $w(ij) = nB$ otherwise.
Now, $G$ is Hamiltonian iff there is TSP tour of weight $n$, and $G$ is not Hamiltonian
iff every TSP tour has weight more than $nB$. (Both conditions are necessary and sufficient.)
Thus, a $B$-approximation algorithm for TSP can decide hamiltonicity.
\qed

\paragraph{Metric TSP.}
A useful restriction on the TSP problem is to require that the weights form a metric. Formally,
we require the triangle inequality: For all $i,j,k$, $w(ij) + w(jk) \ge w(ik)$. (Notice that the 
weight function is defined on unordered pairs.) This restricted problem is called {\sc Metric TSP}. 
Despite the restriction, it is still NP-hard. A simple lower bound on the cost of an optimal 
solution is the cost of a minimum spanning tree (MST). This is because an optimal solution is 
a simple cycle, so it contains a path. This leads to the following approximation algorithm: 
Compute a minimum spanning tree. Double each edge. The resulting graph is Eulerian, as all the 
degrees are even. Take an Euler tour and use the triangle inequality to shortcut the tour whenever
a node is revisited. Let OT denote the cost of the tour we find, and let ET denote the cost of the 
Euler tour in the doubled tree. We have
$$\hbox{OT}\le\hbox{ET}\le 2\cdot\hbox{MST}\le 2\cdot\hbox{TSP}.$$
Thus, we have designed a $2$-approximation algorithm for metric TSP. This result is due
to Rosenkrantz, Stearns, and Lewis~\cite{RSL77}.
Christofides~\cite{Chr76} proposed the following improvement:
\begin{theorem}[Christofides~\cite{Chr76}]
There is a polynomial time $\frac 3 2$-approximation algorithm for metric TSP.
\end{theorem}

\proof
Instead of doubling
the edges of the MST, add a minimum cost matching MM for the odd-degree nodes of the tree. Adding
MM also creates an Eulerian graph, and we can take the Euler tour and shortcut it as before. To
analyze this algorithm we will need another lower bound. Firstly, notice that an optimal TSP tour
on a subset of the input nodes cannot be longer than the optimum on the entire node set. Secondly,
notice that every tour on an even number of nodes decomposes into two perfect matchings, and therefore 
the minimum cost matching on the same node set has weight at most half the weight of the TSP tour.
Combining these observations, using subTSP to denote the cost of an optimal TSP tour on the
subset of nodes that participate in MM, and using CT to denote the cost of the tour output by the
algorithm, we get
$$\hbox{CT}\le\hbox{MST} + \hbox{MM}\le\hbox{TSP} + \frac 1 2\hbox{subTSP}\le\frac 3 2\hbox{TSP}.
\quad\quad
\qed$$


\begin{thebibliography}{MM}

\bibitem{Chr76}
N.~Christofides.
\newblock Worst-case analysis of a new heuristic for the
traveling salesman problem.
\newblock Technical report no. 388, Graduate School of Industrial
Administration, Carnegie-Mellon University, 1976.

\bibitem{RSL77}
D.J.~Rosenkrantz, R.E.~Stearns, and P.M.~Lewis.
\newblock An analysis of several heuristics for the traveling
salesman problem.
\newblock {\em SIAM J. Comput.}, 6:563--581, 1977.

\bibitem{SG76}
S.~Sahni and T.~Gonzalez.
\newblock P-complete approximation problems.
\newblock {\em J. Assoc. Comput. Mach.}, 23:555--565, 1976.

\end{thebibliography}

 
\end{document}
