\documentclass[10pt]{article}
\usepackage{times,graphicx,epstopdf,fancyhdr,amsfonts,amsthm,amsmath,url,algorithm,algorithmic,xspace}
\usepackage[left=.75in,top=.75in,right=.75in,bottom=.75in]{geometry}


\textwidth 7in
\textheight 9.5in

\pagestyle{fancy}

\begin{document}

\newtheorem{claim}{Claim}
\newtheorem{definition}{Definition}
\newtheorem{theorem}{Theorem}
\newtheorem{lemma}{Lemma}
\newtheorem{observation}{Observation}
\newtheorem{question}{Question}


% Comment out for single spacing
%\baselineskip 20pt

\lhead{Williams College}
\chead{Homework 9}
\rhead{Brent Heeringa}
\cfoot{Algorithm Design and Analysis - CS 256}
\rfoot{\thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\headwidth}{\textwidth}
\renewcommand{\footrulewidth}{0.4pt}

We will revisit several themes from the course --- graphs, induction, greedy algorithms, matchings --- by focusing on a classic problem in computer science:  the {\em traveling salesperson problem} (TSP).  TSP has no known polynomial time solution.  At present, there is an $O(n^{2}2^{n})$ dynamic programming algorithm for TSP which improved the brute-force $n!$ solution that considers all permutations of the cities.  At present, this dynamic programming procedure is the most efficient algorithm for solving TSP {\em exactly}\footnote{Actually, four years ago there was a slight improvement which was the first progress in over 20 years}.  However, there are several well-known polynomial-time algorithms for solving TSP {\em approximately}.  That is, finding a solution that is not necessarily optimal, but provably within some constant, say $\alpha$, of optimal.  Here we will develop a 3/2-approximation due to Christofedes.  Given any instance of TSP where the distances obey the triangle inequality, Christofedes' algorithm returns a solution with cost at most $3/2 \cdot OPT$ where $OPT$ is the cost of an optimal, minimum cost cycle.

\begin{question}
Given a complete, undirected graph $G=(V,E)$ with non-negative and real-valued edges costs $c: E \rightarrow \mathbb{R}$, the goal of TSP is to find a minimum cost cycle that visits every vertex in $V$ exactly once.  The cost of the cycle is the sum of the costs of the edges in the cycle.  {\em Metric TSP} refers to a class of TSP instances where the edge costs obey the triangle inequality.  This means that shortcuts between two cities don't exist; it's always best to take the direct route.  Formally the triangle inequality means that
\[
c(u,v) \leq c(u,w) + c(w,v)\qquad\mbox{for all $u,v,w \in V$}.
\]
We will develop a polynomial-time 3/2-approximation for Metric TSP.  In all parts, $G=(V,E)$ is the complete, undirected input graph.  $V$ is the set of nodes and $E$ is the set of edges where $|V|=n$ and $|E|=m$.  The function $c$ gives the real-valued edge costs that obey the triangle inequality.  Sometimes we extend $c$ to a set of edges $E' \subseteq E$ so that $c(E') = \sum_{e \in E'} c(e)$.  Please answer the following questions clearly and concisely.  If you get stuck on a particular part, move on --- you can assume previous results and still make progress.

\begin{itemize}
	\item [(a)]  Let $C^{*}$ be the cost of the minimum cost cycle in $G$.  Let $T$ be a minimum spanning tree in $G$ with cost $c(T)$.  Show that $c(T) \leq C^{*}$.

	\item [(b)]  Use induction to show that all trees have an even number of odd-degree nodes.

\end{itemize}

An undirected multigraph $H$ is an undirected graph with parallel edges.  That is, pairs of nodes may have multiple edges between them.  An {\em Euler tour} of a connected, undirected multigraph $H=(V',E')$ is a cycle that traverses each edge of $H$ exactly once, although it may visit a vertex more than once.  We denote a cycle as a list of vertices, $u_{0} \ldots u_{m'}$ where $u_{0}=u_{m'}$ and for all $0 \leq i < m'$, $(u_{i},u_{i+1})$ is an edge in $E'$.  Note that an Euler tour has length $m'=|E'|$. 

\begin{itemize}

	\item [(c)]	Earlier in the semester you showed that a graph has an Euler tour if and only if the degree of every vertex in the graph is even.  Quickly argue why your analysis also holds for multi graphs.  
	
	\item [(d)] Similarly, quickly argue that your linear time algorithm for finding Euler tours in graphs extends without alteration to multigraphs. 

\end{itemize}

A minimum weight perfect matching in a graph $G'$ with $n$ nodes and non-negative edge costs is a matching $M$ of size $n/2$ with minimum cost $c(M)$.  Edmonds showed in the 60's how to find a minimum weight perfect matching of a graph in $O(n^{4})$ time.  Gabow recently improved this running time to $O(n(m+n\log n))$.  

\begin{itemize}	
	
	\item [(e)]   Use parts (a) and (b) along with Gabow's algorithm as a black box, to produce first, a minimum weight perfect matching $M$, and second, a multigraph $H=(V,E')$ where all the nodes in $V$ have even degree.  Note that $V$ refers to the same set of nodes as the input graph.  
	
	\item [(f)] Show that $c(M) \leq 1/2 \cdot C^{*}$.  Using part (a), conclude that $c(E') \leq 3/2 \cdot C^{*}$.

	\item [(g)] Use parts (c) and (d) along with the multigraph $H$ (and the fact that $c$ obeys the triangle inequality) to produce a cycle $v_{0}v_{1} \ldots v_{n}$ that visits every vertex in $V$ exactly once.   Conclude that this cycle is a 3/2-approximation for the metric TSP problem.
	
\end{itemize}
\end{question}

\vspace{5mm}

\begin{question}
I found this homework: 
\end{question}


\end{document}