Sei sulla pagina 1di 24

Grafos Hamiltonianos e o Problema do Caixeiro Viajante

Prof. Ademir Constantino Departamento de Informtica Universidade Estadual de Maring

Grafo Hamiltoniano
Definio: Um circuito hamiltoniano em um grafo conexo G definido como um caminho simples, fechado passando em cada vrtice de G exatamente uma vez. Um grafo que admite um circuito hamiltoniano um grafo hamiltoniano.

Propriedades
Teorema de Ore. Uma condio suficiente (mas no necessria) para que um grafo G seja hamiltoniano que a soma dos graus de cada par de vrtices no adjacentes seja no mnimo n. Teorema de Dirac: Uma condio suficiente (mas no necessria) para que um grafo simples G possua um ciclo hamiltoniano, que o grau de cada vrtice em G seja pelo menos igual a n/2, onde n o nmero de vrtices em G.

Algoritmos
No se conhece algoritmo exato de complexidade polinomial para encontrar caminhos hamiltonianos.

Prob. do Caixeiro Viajante


Dado um grafo G=(V,E) conexo com pesos nas arestas, o objetivo do Problema do Caixeiro Viajante encontrar um caminho fechado de peso mnimo passando por cada vrtices pelo menos uma vez.

Algoritmos para o PCV


Por que o PCC pode ser resolvido em tempo polinomial e o PCV no? Alternativa para obteno de soluo vivel para o PCV.
Algoritmos heursticos
No h provas que o este tipo de algoritmo obtem a soluo tima para o problema, porm, so algoritmos de complexidade polinomial e relativamente fceis de implementar.

Heursticas para o PCV


Construtivas
Vizinho mais prximo; Insero mais prxima; Insero mais distante; Insero mais barata; Algoritmos das Economias (Clark-Wright). K-opt ou K-melhoramento; Simulated Annealing; Algoritmos Genticos; Busca Tabu.

Melhorativas

Exemplo
Considere a seguinte matriz de custo para o grafo:

C=

0 1 2 7 5

1 0 3 4 3

2 3 0 5 2

7 4 5 0 3

5 3 2 3 0

Vizinho Mais Prximo


a) Iniciar com um vrtice v qualquer e inicie um roteiro. b) Escolher um vrtice mais prximo do ltimo vrtice inserido no roteiro. c) Se todos os vrtices j foram inseridos, pare, caso contrrio, volte ao passo b.

Vizinho Mais Prximo

Insero do Mais Prxima


Iniciar com um ciclo [v1, v2, v3] com 3 vrtices. a) Encontrar um vrtice vk no pertencente ao ciclo, mais prximo de qualquer vrtice do ciclo. b) Encontrar uma aresta, digamos (vi, vi+1) do ciclo tal que: (ci,k+ck,i+1-ci,i+1) seja mnimo. c) Inserir o vrtice vk entre (vi, vi+1). Se todos os vrtices j foram inseridos, pare, caso contrrio, voltar ao passo b.

Insero do Mais Prxima

Insero Mais Distante


Difere do algoritmo anterior por, alnea b, escolher o vrtice mais distante.

Insero Mais Distante

Insero Mais Barata


Os passos b e c do algoritmo de Insero Mais Prxima so substituidos por: encontrar um vrtice vk no pertencente ao ciclo e uma aresta do ciclo, digamos (vi, vi+1), tal que: (ci,k+ck,i+1-ci,i+1) seja mnimo.

Insero Mais Barata

Algoritmos das Economias (Clark-Wright).


Passo 1: Calcule as economias si,j = cv0, i + cv0, j ci, j para todos os pares de vrtices (i, j), v0 o vrtice escolhido como inicial. Passo 2: Ordene as enconomias si,j em ordem no crescente (lista de economias). Passo 3: Percorrer sequencialmente a lista de economias, inciando com a primeira. Tentar a ligao correspondente do primeiro par de vrtices (i, j) da lista. Se a insero da aresta (i, j) resultar num novo ciclo iniciando em v0, ento eliminar si,j . Caso contrrio, tentar a ligao do prximo da lista. Repetir at atingir o fim da lista.

Algoritmos das Economias (Clark-Wright).

Algoritmos das Economias (Clark-Wright).


Complexidade final: O(n2 logn) Porm, se o procedimento for repetido tomando cada vrtice como inicial, ento a complexidade passa para O(n3 logn)

Melhoria: k-Opt
Seja H o ciclo encontrado por um algoritmo contrutivo. Passos do Algoritmo: a) Remover k arestas da soluo H obtendo uma soluo H. b) Construir todas as solues viveis contendo H. c) Escolher a melhor solues dentre as encontradas e guardar. d) Escolher outro conjunto de k arestas ainda no selecionado e retornar ao passo a, caso contrrio, pare.

Melhoria: 2-Opt
Exemplo: removendo duas arestas, surge apenas uma possibilidade de recominaes

Melhoria: 2-Opt

Melhoria: 3-Opt
Exemplo: removendo trs arestas, surgem quarto possibilidades de recominaes

Concluses
As experincias tem mostrado que a heurstica de Insero Mais Distante ofecere um excelente resultado. Em geral quanto maior o valor de K maiores sero as chances de se obter a soluo tima com o procedimento K-Opt. Entretanto, o nmero de operaes cresse rapidamente. As experincias computacionais tem mostrado que K=2 e K=3 oferecem excelentes resultados.

Potrebbero piacerti anche