Vous êtes sur la page 1sur 21

CICLO HAMILTONIANO PROBLEMA NP-COMPLETO

Tiago Schenkel Mestrado em Cincia da Computao - UFPEL

Teoria dos Grafos

Introduo
A

Teoria dos Grafos surgiu com os trabalhos de L. Euler, G. Kirchhoff e A. Cayley. O problema das pontes de Knigsberg o primeiro e mais famoso problema em teoria dos grafos resolvido por Euler em 1736. O termo grafo foi criado pelo qumico E. Frankland e adotado em 1884. Ele vem da contrao de notao grfica.

Teoria dos Grafos

O Problema das pontes de Knigsberg


Na

cidade de Knigsberg (atual Kalimingrado), antiga capital da Prssia, existiam sete pontes que cruzavam o rio Preguel estabelecendo ligaes entre duas ilhas e entre as ilhas e as margens opostas do rio. O problema consistia em determinar se possvel ou no fazer um passeio pela cidade comeando e terminando no mesmo lugar, cruzando cada ponte exatamente uma nica vez.

Teoria dos Grafos

O Problema das pontes de Knigsberg


Em

1736 Euler escreveu um artigo, considerado o primeiro artigo da Teoria dos Grafos, onde demonstra a inexistncia de tal percurso. Euler no s resolveu o problema das pontes de Knigsberg, mas deu um processo geral para, fixadas algumas regies com seus rios e pontes, saber se existe ou no um percurso passando por todas as pontes, percorrendo cada ponte uma s vez.

Teoria dos Grafos

O que um grafo?

Um grafo um conjunto de pontos, chamados vrtices, conectados por linhas, chamadas de arestas.

Definio de grafo
Um grafo G consiste de um conjunto finito e no vazio de n ns, denotado por V(G), e m arestas, denotado por A(G). Cada aresta corresponde a um par no ordenado de ns.

Ciclo Euleriano

Ciclo Euleriano
Um Ciclo Euleriano um ciclo que percorre todas as arestas de um grafo exatamente uma vez e retorna ao vrtice inicial. utilizado para solucionar problemas de otimizao, onde procura-se encontrar um circuito que contenha todas arestas do grafo e cuja distncia total seja mnima.

Teorema

Um grafo G conexo possui ciclo euleriano se e somente se todo vrtice de G possuir grau par.

Ciclo Hamiltoniano

Histrico:
Em

1859, o matemtico irlands Sir Willian Hamilton introduziu um quebra-cabea com formato de dodecaedro, que uma figura slida com 12 faces pentagonais idnticas. Cada vrtice foi rotulado com o nome de uma cidade. A questo proposta por Hamilton foi comear em uma cidade e fazer um tour pelo mundo visitando cada cidade uma nica vez, voltando cidade original.

Ciclo Hamiltoniano

Soluo do problema de Hamilton:


O

quebra-cabea fcil de se resolver. Basta espichar as faces do dodecaedro para planific-lo.

Ciclo Hamiltoniano

Formulao do problema:
Dado

um grafo G, possvel achar um circuito de G em que cada vrtice aparea uma nica vez?

Ciclo Hamiltoniano

Definio:
Dado

um grafo G, um circuito (ou caminho) Hamiltoniano para G um circuito simples que inclui todos os vrtices de G. Ou seja, uma sequncia de vrtices adjacentes e arestas distintas em que cada vrtice aparece exatamente uma vez. Diz-se que G um grafo Hamiltoniano se G tem um Ciclo Hamiltoniano.

Ciclo Hamiltoniano

Questes em aberto:
Quando

um grafo possui um ciclo hamiltoniano? Como determinar se um grafo hamiltoniano? Existe um algoritmo eficiente que possa determinar se tal ciclo existe?

Ciclo Hamiltoniano

Apesar de terem sido estudados por vrios sculos, no h uma boa caracterizao dos grafos hamiltonianos. Existem famlias de grafos para os quais existe um circuito hamiltoniano, tambm possvel estabelecer certas condies que implicam na noexistncia de um circuito. No se conhece um algoritmo eficiente para verificar se um grafo hamiltoniano.

Ciclo Hamiltoniano

O problema do ciclo hamiltoniano pertence a classe de problemas NP-Completos.


A

soluo para este problema vale U$ 1 milho!

Ciclo Hamiltoniano

Soluo fora-bruta:
Se

existir um circuito hamiltoniano, ele corresponder a uma permutao circular dos vrtices, com a propriedade de que os vrtices consecutivos sejam ligados por um arco de grafo. Para verificar a existncia de um circuito hamiltoniano basta gerar todas as permutaes circulares dos vrtices e testar se uma delas corresponde a um percurso no grafo.

Ciclo Hamiltoniano

O algoritmo funciona para grafos de tamanho moderado:

Num grafo com 9 vrtices, o nmero de permutaes de 8! = 40.320 caminhos.

E grafos maiores?
Num grafo com 50 vrtices, o nmero de permutaes de 49! > 16 * 10^48 Considerando que um computador realize 200 milhes de operaes por segundo, se em cada operao ele conseguir testar um circuito, mesmo assim sero necessrios 8 * 10^42 segundos, o que corresponde a aproximadamente 2 * 10^35 anos.

Ciclo Hamiltoniano

Aplicaes:
Problema

do caixeiro viajante: consiste em encontrar um caminho que passe por todas cidades uma nica vez e retorne ao ponto de partida escolhendo para isso um caminho de custo mnimo. Criptografia: dado um grafo, difcil encontrar um circuito hamiltoniano (ou mostrar que no existe), mas fcil testar se uma sequncia de vrtices forma um circuito hamiltoniano.

Ciclo Hamiltoniano

O grafo abaixo Hamiltoniano?

Ciclo Hamiltoniano

No hamiltoniano!

Ciclo Hamiltoniano

O grafo abaixo Hamiltoniano?

Ciclo Hamiltoniano

hamiltoniano!

CICLO HAMILTONIANO Problema NP-Completo


Tiago Schenkel (tiago.tche@gmail.com) Mestrado em Cincia da Computao - UFPEL

Vous aimerez peut-être aussi