Professional Documents
Culture Documents
Carteiro Chins
Prof. Gilbert Azevedo
Referencias Bibliogrficas
Mrcia Aguiar Rabuske Editora da UFSC Goodrich e Tamassia Bookman Prof. Andr L. Maitelli UFRN Prof. Robinson L. S. Alves IFRN
Materiais Didticos
Contexto
Carteiro Chins
Caixeiro Viajante
Algoritmo de Floyd
Algoritmo de Dijkstra Algoritmo de Lin-Alderson
Carteiro Chins
Determinar o custo do menor caminho partindo de um vrtice inicial, passando por todas as aresta e retornado ao ponto de partida Situao 01
Se o grafo for Euleriano (conexo e todos os vrtices de grau par), aplicar o algoritmo de Fleury Se o grafo no for Euleriano, aplicar o algoritmo de Christofides A idia do algoritmo transformar o grafo em um grafo Euleriano
Situao 02
Algoritmo de Christofides
P1: Determinar os vrtices de grau mpar P2: Construir a matriz de distncia D, apenas com os vrtices de grau mpar (Floyd/Dijkstra) P3: Determinar o par de vrtices com o menor caminho atravs da matriz P4: Construir um caminho artificial de vi para vj com o custo encontrado em P3 P5: Eliminar de D as colunas e linhas correspondentes vi e vj P6: Se houver linhas e colunas em D, voltar para P3 P7: Achar o caminho de Euler, utilizando o algoritmo de Fleury P8: O custo ser igual soma dos custos de todas as arestas acrescida dos custos das arestas encontradas em P3
Exemplo
Encontrar o caminho fechado de custo mnimo passando em todas as arestas do grafo G pelo menos uma vez Vrtices de grau mpar: V2 e V3 Caminho: V1-V2-V4-V3-V2-V3-V1 Custo: 5+2+3+1+1+(1) = 13
D 2 V2 V3 V2 V3 0 1 1 0
5
v 1 1 1
v 2
2 v 4 v 1
5
1 1
v 2 1
2 v 4 3
v 3
v 3
Exerccio
Encontrar o caminho fechado de custo mnimo passando em todas as arestas do grafo G pelo menos uma vez, utilizando o algoritmo do carteiro chins
1 v 1 2 3 5 v 2 4 v 6 3 v 3 2 2 v 7 v 4 2 v 8
v 5
Exerccio
18 2 0 2 9 0 3
13
0 9 16 19 14 12 10 1 1 1 0 3 0 8 17 0 1
0 4
4
20
19 0 7
1 2 18 0 6 3 11
7
20 0 5
Implementao
Implementar o algoritmo do carteiro chins para grafos no orientados, encontrando o o caminho fechado de custo mnimo passando em todas as arestas do grafo G pelo menos uma vez, partindo de um determinado vrtice.