Upload
internet
View
109
Download
5
Embed Size (px)
Citation preview
Problema do caixeiro viajante
Elisabete Longo
Isabel Branco
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
distâncias (em km) entre eles:
Determine qual é o melhor percurso (percurso mínimo), que o Gustavo deve
escolher.
A
B
CD
E
15
14
20
10
9
8
12
16
74
Problema do caixeiro viajante
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
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
CD
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
74
A BDCE <56 km>4 8 9 20
A15
B DAEC <49 km>10 8 4 7
B20
C BDAE <49 km>8 4 7 20
C10
D BCEA <49 km>7 4 8 10
D20
E BCDA <44 km>4 7 9 10
E14
Problema do caixeiro viajante
Algoritmo por ordenação dos pesos das arestas A
B
CD
E
Escolhem-se sucessivamente as arestas com o peso
mais baixo mas:
15
14
20
10
9
8
12
16
74A E ;
4A D ;
7C E ;
8C 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
Algoritmo por ordenação dos pesos das arestas
CD
A E4
A D7
C E.8
C D9
B C10
A C, 12
B E, 14
A B15
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
Algoritmo por ordenação dos pesos das arestas
B D20
Acrescenta-se a aresta (última),
que fecha o circuito.
O percurso tem um comprimento de 4
8
7
4
CD
A
E
B
10
+ 7 + 8 + 10 + 20 = 49 km.
20
Problema do caixeiro viajante
Algoritmo por ordenação dos pesos das arestas
8
7
4
CD
A
E
B
1020
Algoritmo dos mínimos sucessivos
Percurso mínimo de 49 km
Percurso mínimo de 44 km
74
CD
A
E
B
10
14
9