problema do caixeiro viajante elisabete longo isabel branco
TRANSCRIPT
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