2. 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
3. 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
distâncias (em km) entre eles:
Determine qual é o melhor percurso (percurso mínimo), que o Gustavo deve
escolher.
A
B
C
D
E
15
14
20
10
9
8
12
16
7
4
PROBLEMA DO CAIXEIRO VIAJANTE
4. algoritmo dos mínimos sucessivos ou algoritmo do vizinho mais próximo;
Para encontrar percursos mínimos que ajudem a resolver problemas do tipo
do Caixeiro Viajante, temos dois algoritmos:
algoritmo por ordenação dos pesos das arestas ou algoritmo das arestas
classificadas.
PROBLEMA DO CAIXEIRO VIAJANTE
5. 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
B
C
D
E
O menor percurso, com um total de 44 km, começa e acaba na cidade E.
15
14
20
10
9
8
12
16
7
4
A B
D
C
E <56 km>
4 8 9 20
A
15
B D
A
E
C <49 km>
10 8 4 7
B
20
C B
D
A
E <49 km>
8 4 7 20
C
10
D B
C
E
A <49 km>
7 4 8 10
D
20
E B
C
D
A <44 km>
4 7 9 10
E
14
PROBLEMA DO CAIXEIRO VIAJANTE
6. Algoritmo por ordenação dos pesos das arestas
A
B
C
D
E
Escolhem-se sucessivamente as arestas com o peso
mais baixo mas:
15
14
20
10
9
8
12
16
7
4
A E ;
4
A D ;
7
C E ;
8
C D ;
9
B C ;
10
A C ;
12
B E ;
14
A B ;
15
D E ;
16
B D;
20
• nunca escolhendo 3 arestas concorrentes no mesmo vértice;
• nunca fechando um circuito quando ainda há vértices por visitar.
PROBLEMA DO CAIXEIRO VIAJANTE
7. Algoritmo por ordenação dos pesos das arestas
C
D
A E
4
A D
7
C E.
8
C D
9
B C
10
A C,
12
B E,
14
A B
15
D E,
16
Escolhemos a aresta para começar
A
E
e juntamos a seguir e
A aresta não pode ser acrescentada
pois fecharia o circuito.
Acrescenta-se e as arestas,
e
serão eliminadas pois fariam com que
concorressem no mesmo vértice três arestas.
B
PROBLEMA DO CAIXEIRO VIAJANTE
8. Algoritmo por ordenação dos pesos das arestas
B D
20
Acrescenta-se a aresta (última),
que fecha o circuito.
O percurso tem um comprimento de 4
8
7
4
C
D
A
E
B
10
+ 7+ 8 + 10 + 20 = 49 km.
20
PROBLEMA DO CAIXEIRO VIAJANTE
9. Algoritmo por ordenação dos pesos das arestas
8
7
4
C
D
A
E
B
10
20
Algoritmo dos mínimos sucessivos
Percurso mínimo de 49 km
Percurso mínimo de 44 km
7
4
C
D
A
E
B
10
14
9
PROBLEMA DO CAIXEIRO VIAJANTE