\begin{center}
\htmladdnormallink{TSLIB: site sobre problemas NP-completo}
{http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/}
\end{center}
Segundo Trabalho Pr\'{a}tico - 27/05/03
\begin{enumerate}
\item Apresente pelo menos um exemplo pr\'atico (e n\~ao mais do que tr\^es)
que possa ser modelado atrav\'es dos seguintes problemas:
\begin{list}{\alph{cont2})}{\usecounter{cont2}}
\item {\em Bin packing}
\item Cobertura de v\'ertices ({\em vertex cover})
\item Mochila ({\em knapsack})
\item {\em Subset sum}
\item Problema do caixeiro viajante
\end{list}
\bigskip
\item
{\bf Problema}:
Dados um conjunto de cidades $C=\{c_1, c_2, \cdots, c_n\}$ e uma
dist\^ancia $d(c_i,c_j)$ para cada par de cidades $c_i, c_j \in C$,
encontre o ``roteiro'' para todas as cidades em $C$
cujo comprimento total seja o menor poss\'{\i}vel.
Este problema \'e conhecido na literatura como o problema do caixeiro viajante (PCV).
%Uma vers\~ao um pouco diferente \'e o {\em problema do caixeiro viajante assim\'etrico (PCVA)},
%o qual pode ser descrito como: dados um conjunto de $n$ cidades e dist\^ancias para cada
%par de cidades, encontre um roteiro de comprimento m\'{\i}nimo visitando cada cidade
%exatamente uma vez. No caso do PCVA, a dist\^ancia da cidade $i$ para a cidade $j$
%e a dist\^ancia da cidade $j$ para a cidade $i$ podem ser diferentes.
\noindent
{\bf O que fazer}
\begin{list}{\alph{cont2})}{\usecounter{cont2}}
\item
Prove que este problema \'e $\cal NP$-Completo.
\item
Implemente um algoritmo capaz de obter a solu\c{c}\~ao \'otima para este
problema.
Informe o tamanho do maior problema que voc\^e conseguiu obter
a solu\c{c}\~ao \'otima.
Comente o resultado indicando o motivo da limita\c{c}\~ao e faca uma
estimativa do tempo necess\'ario no caso de termos uma entrada 10 vezes maior
que a do maior problema que voce resolveu.
\item
Implemente uma heur\'{\i}stica (ou aproxima\c{c}\~ao) que resolva
este problema eficientemente e produza ``boas'' solu\c{c}\~oes sob o
ponto de vista pr\'atico.
Apresente uma an\'alise de complexidade de tempo da sua heur\'{\i}stica.
\htmladdnormallink{Use a matriz dispon\'{\i}vel aqui.}{matriz-de-entrada}
Imprima o caminho obtido e seu custo.
As melhores solu\c{c}\~{o}es v\~{a}o ser premiadas com pontos extras. Mais
especificamente, as 5 melhores solu\c{c}\~{o}es que sejam at\'{e}
10\% piores (em termos do custo do caminho encontrado) que a melhor obtida.
\item Apresente uma an\'alise indicando o quanto a solu\c{c}\~ao
heur\'{\i}stica fornecida aproxima-se do resultado \'otimo (voce pode
explicar resultados encontrados na literatura ou ainda apresentar sua
pr\'opria demonstra\c{c}\~ao).
\item Realize testes com entradas escolhidas aleatoriamente e
compare os resultados com a an\'alise de efici\^encia apresentada no item
anterior. Comente os resultados obtidos e discuta o qu\~ao pr\'oxima a
an\'alise te\'orica est\'a da realidade.
\item Submeta eletronicamente a implementa\c{c}\~ao da solu\c{c}\~ao \'otima
utilizando como entrada de dados a seguinte matriz:
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
- & 3 & 5 & 48 & 48 & 8 & 8 \\ \hline
3 & - & 3 & 48 & 48 & 8 & 8 \\ \hline
5 & 3 & - & 72 & 72 & 48 & 48 \\ \hline
48 &48 & 72 & - & O & 6 & 6 \\ \hline
48 &48 & 72 & O & - & 6 & 6 \\ \hline
8 & 8 & 48 & 6 & 6 & - & O \\ \hline
8 & 8 & 48 & 6 & 6 & O & - \\ \hline
\end{tabular}
\end{center}
\item Apresente a documenta\c{c}\~ao das implementa\c{c}\~oes realizadas
(veja aqui maiores detalhes sobre
\htmladdnormallink{instru\c{c}\~oes para a entrega de trabalhos praticos).}{../entrega}
\end{list}
\end{enumerate}
\bigskip\noindent
{\bf Refer\^encias\/:}
[CLR], [HS], [GJ], [L], [S], [Z]
\end{document}