\documentclass[11pt]{article}
\include{lecture}


\begin{document}
\lecture{2}{1/31/02}{TSP - M\'{e}trico}{Carlos Alexandre}
%\draft % put this here only if you want to indicate this is a draft

\section{Tr\^{e}s Problemas em Grafos}

\begin{enumerate}
\item  Ciclo Hamiltoniano (HC): NP-Completo.

\item  Problema do Caixeiro Viajante (TSP): NP-Completo.

\item  Tour Euleriano (ET): Resolv\'{i}vel em tempo Polinomial
\end{enumerate}

$G=(V,E)$ \'{e} um grafo. Um \emph{Ciclo Hamiltoniano} \'{e} um tour (ciclo)
em $G$ passando atrav\'{e}s de todo o v\'{e}rtice exatamente uma vez.

\begin{itemize}
\item  HC: $G=(V,E)$ contem um ciclo Hamiltoniano?
\end{itemize}

\bigskip Agora $G=(V,E)$ \'{e} um grafo completo tal que todo arco $e\in\ E$
tem um custo, $c(e)$. O custo de um conjunto de arcos $E^{^{\prime}}\leq\ E $
\'{e} o custo de custo $E^{^{\prime}}=%
%TCIMACRO{\dsum _{e\in E^{\prime}}}%
%BeginExpansion
{\displaystyle\sum_{e\in E^{\prime}}}
%EndExpansion
c(e)$. O custo de um ciclo Hamiltoniano $T$ \'{e} $c(T)$, a soma dos custos de
todos os seus arcos .

\begin{itemize}
\item  TSP: Encontre um ciclo Hamiltoniano, $T$, com custo minimal entre todos
os ciclos.
\end{itemize}

Considere novamente um grafo $G=(V,E)$ qualquer. Desta vez nos somos podemos
repetir n\'{o}s. Um tour Euleriano \'{e} um caminho no grafo onde cada arco
\'{e} utilizado exatamente uma vez.

\begin{itemize}
\item \bigskip ET: $G=(V,E)$ contem um tour Euleriano?
\end{itemize}

Tal tour existe se e somente se o grau de cada v\'{e}rtice \'{e} par. Neste
caso um tour pode ser encontrado em tempo polinomial, $O(|V|+|E|)$.

\section{TSP - M\'{e}trico}

Um grafo $G$ com custo $c(.)$ satisfaz a desigualdade triangular se para todos
os v\'{e}rtices $u,v,w\in V$:\qquad\qquad%
\begin{equation}
c(u,w)\leq\ c(u,v)+c(v,w)
\end{equation}

Um grafo com a desigualdade triangular \'{e} chamado de \emph{Grafo
M\'{e}trico}.

Estrat\'{e}gia: Encontrar ciclo gerador e fazer \ ``Short-cuts'' (atalhos).

\begin{algorithm}
\bigskip TSP M\'{e}trico (Rosenkrantz, Stearns e Lewis 77)

\begin{enumerate}
\item  Encontre uma \'{A}rvore Geradora M\'{i}nima $T^{^{\prime}}$ de $G$.

\item  Duplique todo arco em $T^{^{\prime}}$ de modo a obter um novo grafo
$G^{^{\prime}}$.

\item  Encontre um Tour (ciclo) Euleriano $\mathcal{T}^{^{\prime}}$ de
$G^{^{\prime}}$.

\item  A sa\'{i}da s\~{a}o os v\'{e}rtices de $G$ na ordem em que eles
primeiro aparecem em $\mathcal{T}^{^{\prime}}$ . $T$ \'{e} o ciclo (circuito)
Hamiltoniano assim criado.
\end{enumerate}
\end{algorithm}

\begin{center}
\bigskip

(Figuras)
\end{center}

\begin{theorem}
TSP m\'{e}trico \'{e} um algoritmo $2$-aproxima\c{c}\~{a}o para o problema TSP
sob Grafos M\'{e}tricos. Adicionalmente, este executa em tempo polinomial no
tamanho do grafo.
\end{theorem}

\begin{lemma}
\begin{proof} 
\begin{itemize}
\item $c(T^{^{\prime}})\leq\ OPT(G)$ desde que remover um arco de qualquer
ciclo Hamiltoniano cria \'{a}rvore e toda \'{a}rvore em $G$ tem custo
$\geq\ c(T^{^{\prime}})$.

\item $c(\mathcal{T}^{^{\prime}})=\ 2c(T^{^{\prime}})$

\item $c(T)\leq\ c(\mathcal{T}^{^{\prime}})$ da desigualdade triangular.
\end{itemize}

Combinando estes tr\^{e}s fatos n\'{o}s temos:
\begin{equation}
c(T)\leq\ 2c(\mathcal{T}^{^{\prime}})\leq2OPT(G)
\end{equation}
Infelizmente, $\mathcal{T}^{^{\prime}}$ geralmente n\~{a}o \'{e} um tour, uma
vez que este visita alguns v\'{e}rtices mais de uma vez. No entanto, pela
desigualdade triangular n\'{o}s podemos remover uma visita a qualquer
v\'{e}rtice de $T$ que o custo n\~{a}o decrescer\'{a}. Aplicando esta
opera\c{c}\~{a}o repetidas vezes, n\'{o}s podemos remover de $T$ todas as
visitas com exce\c{c}\~{a}o da primeira visita a cada v\'{e}rtice. O que prova
o nosso lema.
\end{proof}
\end{lemma}

\subsection{Um Resultado Negativo}

\begin{lemma}
Se, para qualquer $p\geq\ 1$, existe um algoritmo $p$-aproxima\c{c}\~{a}o de
tempo polinomial para TSP, ent\~{a}o existe um algoritmo de tempo polinomial
para o problema do ciclo Hamiltoniano.
\end{lemma}

\begin{proof}
Suponha que exista um algoritmo $p$-aproxima\c{c}\~{a}o $A$ para o TSP.
$G=(V,E)$ \'{e} qualquer inst\^{a}ncia do ciclo Hamiltoniano. $G^{^{\prime}}$
\'{e} o grafo completo com o mesmo conjunto de v\'{e}rtices que $G$ e com:
\begin{equation}
c(u,v)=\left\{
\begin{tabular}
[c]{ll}%
$1$ & if $\ (u,v)\in\ E$\\
\ $p|V|+1$ & caso contr\'{a}rio
\end{tabular}
\right.
\end{equation}
$G^{^{\prime}}$ e $c(.)$ podem ser construidos em tempo polinomial no tamanho
de $G$.

Se $G$ tem um ciclo Hamiltoniano ent\~{a}o todos os arcos $e\in\ T$ t\^{e}m
$c(e)=1$ assim $T$ \'{e} um tour de custo m\'{i}nimo em $G^{^{\prime}}$ e
$OPT(G^{^{\prime}})=|V|$. Assim $A(G^{^{\prime}})\leq\ pOPT(G^{^{\prime}%
})=p|V|$.

Se $G$ n\~{a}o tem um ciclo Hamiltoniano ent\~{a}o \emph{todo} ciclo
Hamiltoniano $T$, em $G^{^{\prime}}$ contem pelo menos um arco $e\notin\ E$
assim $c(e)=p|V|+1$ e$\qquad$%
\begin{equation}
c(T)\geq\ c(e)+|V|-1=p|V|+1+|V|-1>p|V|
\end{equation}

Logo:
\begin{equation}
A(G^{^{\prime}})\geq\ OPT(G^{^{\prime}})>p|V|
\end{equation}
Portanto, $G$ tem um ciclo Hamiltoniano se e somente se $A(G^{^{\prime}}%
)\leq\ p|V|$.

Um algoritmo de tempo polinomial para resolver o problema do ciclo
Hamiltoniano pode ser facilmente construido, uma vez que para qualquer $G$
n\'{o}s podemos simplesmente ( i ) construir $G^{^{\prime}}$ e $c(.)$ e ( ii )
executar $A$ sob $G^{^{\prime}}$ e checar se $A(G^{^{\prime}})\leq\ p|V|$ ou n\~{a}o.
\end{proof}

\begin{corollary}
Se, para qualquer $p\geq\ 1$, existe um algoritmo $p$-aproxima\c{c}\~{a}o de
tempo linear para TSP, ent\~{a}o $P=NP$.
\end{corollary}
\end{document}
