Você está na página 1de 15

MODELOS DE GRAFOS

O Problema do Caixeiro Viajante


Qual o percurso mais barato para visitar cinco localidades?
Na tabela seguinte estão indicados, em euros, custos das
portagens de autoestradas entre cinco localidades
portuguesas: Porto, Mangualde, Lisboa, Évora e Paderne.

Suponha que pretendia partir de Mangualde, visitar as


restantes 4 cidades e regressar ao sítio de onde partiu.
Qual o percurso mais económico, sabendo que não quer
repetir nenhuma das localidades?
Nota: Comece por modelar a situação por um grafo.
O Problema do Caixeiro Viajante
Pa Év Ma 9,50 + 31,35 + 19,9 + 22,40 + 33,80 = 116,95
Lx Év Pa Ma 9,50 + 31,35 + 8,50 + 22,40 + 45,20 = 116,95
Lx Év Ma 9,50 + 42,60 + 19,90 + 8,50 + 33,80 = 114,3
Po Pa Év Lx Ma 9,50 + 42,60 + 22,40 + 8,50 + 30,35 = 113,35
Lx Pa Ma 9,50 + 31,20 + 8,50 + 19,90 + 45,20 = 114,3
Év Pa Lx Ma 9,50 + 31,20 + 22,40 + 19,90 + 30,35 = 113,35
Po 9,50
Ma Pa Év Ma 30,35 + 31,35 + 42,60 + 22,40 + 33,80 = 160,5
35
Po Év Pa Ma 30,35 + 31,35 + 42,60 + 22,40 + 33,80 = 160,5
30, Po Év Ma
42,6

30,35 + 19,90 + 42,60 + 31,20 + 33,80 = 157,85


Pa
33,
Lx
,35

Év Po Ma Igual ao 6.º
0

80
31

31,
2
Pa Po Ma 30,35 + 8,50 + 31,20 + 42,60 + 45,20 = 157,85
0
Év Po Pa Ma Igual ao 4.º
8,50
Ma
Lx Po Év Ma 45,20 + 42,60 + 31,35 + 8,50 + 33,80 = 161,45

Lx Év Év Po Ma Igual ao 11.º
0

19
45,2

,90
22
,4 0
Pa Po Lx Év Ma 45,20 + 19,90 + 31,35 + 31,20 + 33,80 = 161,45
Év Lx Ma Igual ao 5.º
Év Lx Po Ma Igual ao 8.º
Po Lx Ma Igual ao 2.º
Pa Lx Po Pa Ma Igual ao 15.º
Pa Po Ma Igual ao 9.º
Év Po Lx Pa Ma Igual ao 13.º
Pa Lx Ma Igual ao 3.º
Pa Lx Po Ma Igual ao 7.º
Po Lx Ma Igual ao 1.º

? Qual o melhor percurso?


R: Clique no rato para ver todas as hipóteses a partir de Mangualde (Ma).
O Problema do Caixeiro Viajante
Rapidamente o problema se torna demasiado complexo para poder ser resolvido
por exaustão (encontrar todas as hipóteses possíveis.)
Há que recorrer a algoritmos.

O que é um algoritmo?!
Algoritmo é um conjunto de procedimentos mecânicos que,
quando aplicados corretamente, levam à resposta de um
determinado problema.
Algoritmo do Vizinho Mais Próximo Algoritmo das Arestas Ordenadas
O Problema do Caixeiro Viajante
Algoritmo do Vizinho Mais Próximo
1. Escolher um vértice para ponto de partida.
2. A partir deste vértice escolher uma aresta com o menor peso possível que ligue a
um dos vértices adjacentes ainda não visitados (se houver mais do que uma
hipótese escolher aleatoriamente).
3. Continuar a construir o ciclo, partindo de cada vértice para um vértice não
visitado segundo a aresta com menor peso.
4. Do último vértice não visitado regressar ao ponto de partida.
O Problema do Caixeiro Viajante
Algoritmo do Vizinho Mais Próximo
1. Escolher um vértice para ponto de partida.
2. A partir deste vértice escolher uma aresta com o menor peso possível que ligue a
um dos vértices adjacentes ainda não visitados (se houver mais do que uma
hipótese escolher aleatoriamente).
3. Continuar a construir o ciclo, partindo de cada vértice para um vértice não
visitado segundo a aresta com menor peso.
4. Do último vértice não visitado regressar ao ponto de partida.
Po Ma
9,50

35
30,
42,6

33,
0

80
,35
31

31,
2 0

8,50

Lx 19
Év
,9
0

0
45,2

,4 0
22

Pa
O Problema do Caixeiro Viajante
Algoritmo do Vizinho Mais Próximo
1. Escolher um vértice para ponto de partida.
2. A partir deste vértice escolher uma aresta com o menor peso possível que ligue a
um dos vértices adjacentes ainda não visitados (se houver mais do que uma
hipótese escolher aleatoriamente).
3. Continuar a construir o ciclo, partindo de cada vértice para um vértice não
visitado segundo a aresta com menor peso.
4. Do último vértice não visitado regressar ao ponto de partida.
Po Ma
9,50

35
30,
42,6

33,
0

80
,35
31

31,
2 0

8,50

Lx 19
Év
,9
0

0
45,2

,4 0
22

Pa
O Problema do Caixeiro Viajante
Algoritmo do Vizinho Mais Próximo
1. Escolher um vértice para ponto de partida.
2. A partir deste vértice escolher uma aresta com o menor peso possível que ligue a
um dos vértices adjacentes ainda não visitados (se houver mais do que uma
hipótese escolher aleatoriamente).
3. Continuar a construir o ciclo, partindo de cada vértice para um vértice não
visitado segundo a aresta com menor peso.
4. Do último vértice não visitado regressar ao ponto de partida.
Po Ma
9,50

35
30,
42,6

33,
0

80
,35
31

31,
2 0

8,50

Lx 19
Év
0

,9
45,2

0 0
,4
22

Pa
O Problema do Caixeiro Viajante
Algoritmo do Vizinho Mais Próximo
1. Escolher um vértice para ponto de partida.
2. A partir deste vértice escolher uma aresta com o menor peso possível que ligue a
um dos vértices adjacentes ainda não visitados (se houver mais do que uma
hipótese escolher aleatoriamente).
3. Continuar a construir o ciclo, partindo de cada vértice para um vértice não
visitado segundo a aresta com menor peso.
4. Do último vértice não visitado regressar ao ponto de partida.
Po Ma
9,50

35
30,
42,6

33,
0

80
,35
31

31,
2 0

8,50

Lx 19
Év
0

,9
45,2

0 0
,4
22

Pa Total: 9,50 + 31,20 + 8,50 + 19,90 + 45,20 = 114,30


O Problema do Caixeiro Viajante
Algoritmo das Arestas Ordenadas
1. Escolher a aresta (ou uma das arestas) com menor peso.
2. Escolher de entre as arestas que restam a de menor peso, tendo em conta
as seguintes restrições:
> não permitir que 3 arestas incidam num mesmo vértice;
> não permitir que se formem quaisquer ciclos que não incluam todos os vértices.
3. Repetir o passo anterior até que todos os vértices estejam incluídos.
4. Fechar o ciclo.
O Problema do Caixeiro Viajante
Algoritmo das Arestas Ordenadas
1. Escolher a aresta (ou uma das arestas) com menor peso.
2. Escolher de entre as arestas que restam a de menor peso, tendo em conta
as seguintes restrições:
> não permitir que 3 arestas incidam num mesmo vértice;
> não permitir que se formem quaisquer ciclos que não incluam todos os vértices.
3. Repetir o passo anterior até que todos os vértices estejam incluídos.
4. Fechar o ciclo.
Po 9,50
Ma
35
30,
42,6

33,
5

0
,3

80
31

31,
2 0
8,50

Lx Év
0

19
45,2

,9 0 ,4 0
22

Pa 8,50 9,50 19,90 22,40 30,35 31,20 31,35 33,80 42,60 45,20
O Problema do Caixeiro Viajante
Algoritmo das Arestas Ordenadas
1. Escolher a aresta (ou uma das arestas) com menor peso.
2. Escolher de entre as arestas que restam a de menor peso, tendo em conta
as seguintes restrições:
> não permitir que 3 arestas incidam num mesmo vértice;
> não permitir que se formem quaisquer ciclos que não incluam todos os vértices.
3. Repetir o passo anterior até que todos os vértices estejam incluídos.
4. Fechar o ciclo.
Po 9,50
Ma
35
30,
42,6

33,
5

0
,3

80


31

31,
2 0
8,50 

Lx Év 
0

19
45,2

,9 0
0 ,4
22

Pa 9,50 19,90 22,40 30,35 31,20 31,35 33,80 42,60 45,20


O Problema do Caixeiro Viajante
Algoritmo das Arestas Ordenadas
1. Escolher a aresta (ou uma das arestas) com menor peso.
2. Escolher de entre as arestas que restam a de menor peso, tendo em conta
as seguintes restrições:
> não permitir que 3 arestas incidam num mesmo vértice;
> não permitir que se formem quaisquer ciclos que não incluam todos os vértices.
3. Repetir o passo anterior até que todos os vértices estejam incluídos.
4. Fechar o ciclo.
Po 9,50
Ma
35
30,
42,6


33,
5

0
,3

80

 
31

31,
2 0
3 arestas a partir do
8,50  
mesmo vértice   
Lx 0
Év   
0

19
45,2

 
,9 0 4
2 ,
2

Forma um ciclo
Pa 19,90 22,40 30,35 31,20 31,35 33,80 42,60 45,20
O Problema do Caixeiro Viajante
Algoritmo das Arestas Ordenadas
1. Escolher a aresta (ou uma das arestas) com menor peso.
2. Escolher de entre as arestas que restam a de menor peso, tendo em conta
as seguintes restrições:
> não permitir que 3 arestas incidam num mesmo vértice;
> não permitir que se formem quaisquer ciclos que não incluam todos os vértices.
3. Repetir o passo anterior até que todos os vértices estejam incluídos.
4. Fechar o ciclo.
Po 9,50
Ma
35
30,
42,6

33,
5

0
,3


31

31,
2 0
8,50   
  
Lx Év 
0

19
45,2

 
,9 0
22
,4 0

Pa

Total: 9,50 + 31,20 + 8,50 + 19,90 + 45,20 = 114,30


MODELOS DE GRAFOS

Você também pode gostar