Você está na página 1de 9

PROBLEMA DO CAIXEIRO VIAJANTE

PROBLEMA DO CAIXEIRO VIAJANTE

Um caixeiro viajante tem de visitar um determinado número de cidades e cada


deslocação entre duas cidades envolve um certo custo. Qual será a volta mais
económica, visitando cada uma das cidades uma única vez e regressando aquela
de onde partiu?

A solução ótima para este tipo de problema consiste em encontrar um circuito de


Hamilton de comprimento mínimo.

Circuito de Hamilton (ou hamiltoniano)


É um caminho que começa e acaba no mesmo vértice percorrendo todos os vértices
uma só vez (exceto o último que também é o primeiro).
PROBLEMA DO CAIXEIRO VIAJANTE

O Gustavo precisa de visitar alguns clientes para entregar encomendas. O grafo


seguinte traduz os pontos da região onde se encontram os clientes, bem como as
A
distâncias (em km) entre eles:
15

4 12 B
7 14

E 20

8 10

16

C
9
D
Determine qual é o melhor percurso (percurso mínimo), que o Gustavo deve
escolher.
PROBLEMA DO CAIXEIRO VIAJANTE

Para encontrar percursos mínimos que ajudem a resolver problemas do tipo


do Caixeiro Viajante, temos dois algoritmos:

▪ algoritmo dos mínimos sucessivos ou algoritmo do vizinho mais próximo;

▪ algoritmo por ordenação dos pesos das arestas ou algoritmo das arestas
classificadas.
PROBLEMA DO CAIXEIRO VIAJANTE

Algoritmo dos mínimos sucessivos

Começa-se o percurso numa das cidades e segue-se sempre para a cidade mais próxima
ainda não visitada.
A

A E C D B A <56 km> 15
4 8 9 20 15
4 12 B
B C E A D B <49 km> 7 14
10 8 4 7 20

C E A D B C <49 km> E 20
8 4 7 20 10

D A E C B D <49 km> 8 10
7 4 8 10 20

E A D C B E <44 km> 16
4 7 9 10 14

C
9
D
O menor percurso, com um total de 44 km, começa e acaba na cidade E.
PROBLEMA DO CAIXEIRO VIAJANTE

Algoritmo por ordenação dos pesos das arestas


A

15

A E; A D; C E ;C D; 4 12 B
4 7 8 9 7 14
B C; A C; B E;
10 12 14 E 20

A B; D E; 10
15 16 8

B D; 16
20

C
9
Escolhem-se sucessivamente as arestas com o peso D

mais baixo mas:

• nunca escolhendo 3 arestas concorrentes no mesmo vértice;

• nunca fechando um circuito quando ainda há vértices por visitar.


PROBLEMA DO CAIXEIRO VIAJANTE

Algoritmo por ordenação dos pesos das arestas A

B
Escolhemos a aresta A E para começar
4
e juntamos a seguir A D e C E.
7 8

A aresta C D não pode ser acrescentada


9 E
pois fecharia o circuito.

Acrescenta-se B C e as arestas,
10
D
A C, B E, A B e D E, C
12 14 15 16

serão eliminadas pois fariam com que


concorressem no mesmo vértice três arestas.
PROBLEMA DO CAIXEIRO VIAJANTE

A
Algoritmo por ordenação dos pesos das arestas

B
Acrescenta-se a aresta B D (última), 4
20
que fecha o circuito. 7

E 20
10
8

D C

O percurso tem um comprimento de 4 + 7 + 8 + 10 + 20 = 49 km.


PROBLEMA DO CAIXEIRO VIAJANTE

Algoritmo dos mínimos sucessivos B


4 7

Percurso mínimo de 44 km 14
E
10

9
D C
Algoritmo por ordenação dos pesos das arestas
A

B
4
7
E 20
Percurso mínimo de 49 km
8 10

D C

Você também pode gostar