artigo grafo-heurística de inserção em grafos na resolução do problema do caixeiro...

10
Heurística de Inserção em Grafos na resolução do Problema do Caixeiro Viajante Critérios: mais próximo mais distante e randômico Implementação e Testes Diego Gomes Tomé* Francisca Fabiana Pereira da Silva** Francisco Bruno Filgueiras*** RESUMO Este trabalho tem como objetivo mostrar a resolução do problema caixeiro viajante através da heurística de inserção em grafos. O problema do caixeiro viajante consiste em determinar num grafo ponderado, um ciclo hamiltoniano de custo mínimo. Na implementação do algoritmo de inserção foram utilizados três critérios de escolha de vértices: mais próximo, mais distante e por escolha randômica. Palavras-chave: Caixeiro viajante. Algoritmo de inserção. Custo mínimo.

Upload: diego-gomes

Post on 08-Nov-2015

217 views

Category:

Documents


3 download

DESCRIPTION

Heurística de Inserção em Grafos na resolução do Problema do Caixeiro Viajante

TRANSCRIPT

Heurstica de Insero em Grafos na resoluo do Problema do Caixeiro Viajante Critrios: mais prximo mais distante e randmico Implementao e Testes

Diego Gomes Tom* Francisca Fabiana Pereira da Silva** Francisco Bruno Filgueiras***

RESUMOEste trabalho tem como objetivo mostrar a resoluo do problema caixeiro viajante atravs da heurstica de insero em grafos. O problema do caixeiro viajante consiste em determinar num grafo ponderado, um ciclo hamiltoniano de custo mnimo. Na implementao do algoritmo de insero foram utilizados trs critrios de escolha de vrtices: mais prximo, mais distante e por escolha randmica. Palavras-chave: Caixeiro viajante. Algoritmo de insero. Custo mnimo.

* Graduando em Cincia da Computao UECE, [email protected].** Graduando em Cincia da Computao UECE, [email protected].*** Graduando em Cincia da Computao UECE, [email protected] INDRODUOO Problema do Caixeiro Viajante (PCV) mais conhecido na literatura como Traveling Salesman Problem, teve sua primeira meno em 1934, devido a Hassler Whitney em um trabalho na Princeton University. um problema que consiste em percorrer um conjunto de cidades, dado as cidades e as distncias entre elas. O caixeiro tem que visitar todas as cidades sem repeti-las, partindo da primeira, chamada de origem, visitando as (n-1) cidades apenas uma nica vez e voltando para a cidade origem e que o trajeto percorrido seja o menor possvel. Em outras palavras, seja um grafo G= (V, E) onde V= {1,2,3...v} o conjunto de vrtices, e E={1,2,3...e} o conjunto de arestas de G, e custos Cij, associados com cada arestas ligando os vrtices i e j, o problema do caixeiro viajante consiste em localizar o menor ciclo hamiltoniano do grafo G (lvaro Nunes, 2006, p.4). O PCV tem larga aplicabilidade em situaes reais devido sua fcil compreenso e descrio, apesar de difcil resoluo, pois pertence classe de problemas NP-rduos, segundo Garey e Jonhson (1979). Os problemas de NP-rduos dificilmente sero apresentados algoritmos polinomiais que os solucionam, pois o esforo computacional para a resoluo do problema cresce exponencialmente com o tamanho do problema. O PCV um problema de otimizao combinatria. Os problemas de alocao, roteamento e programao de horrios so exemplos de problemas de otimizao. Os problemas de otimizao so de difcil resoluo, por isso pesquisadores de diversas reas buscam por solues desenvolvendo algoritmos cada vez mais eficientes. A programao inteira possui algoritmos exatos que garantem a obteno da soluo tima para o problema de otimizao combinatria. Segundo Dumitrescu e Stutzle (2003), os mtodos exatos na soluo de problemas de otimizao combinatria tem desvantagem em muitos problemas por ter custo computacional muito elevado, principalmente naqueles que crescem exponencialmente. Para compensar o custo computacional dos mtodos exatos, usam-se as heursticas. As heursticas so algoritmos que buscam uma soluo boa em um tempo adequado, mas no a garantia de uma soluo tima. Neste trabalho sero analisados e comparados os critrios de insero do vrtice mais prximo, mais distante e vrtice aleatrio da heurstica de insero aplicado ao problema do caixeiro viajante atravs de testes computacionais. Em seguida ser feito a concluso dos resultados obtidos.

1.1 Heurstica de InseroA heurstica de insero tambm conhecido como mtodo do guloso consiste em gerar um circuito vivel de vrtices partindo de um conjunto inicial de trs vrtices, e modificando esse conjunto aps adicionar um vrtice a cada iterao utilizando algum critrio de escolha.

1.2 Algoritmo de Insero para o PCVDado G = (V, E) um grafo completo e simtrico, e Cij o custo no negativo associado com cada aresta ligando os vrtices i e j do grafo. O algoritmo de insero dado por:a) Partir de um ciclo inicial de tamanho K=3 ou K=4, escolhido de forma aleatria. b) Encontre um vrtice v pertencente ao grafo e no pertencente ao ciclo, utilizando um dos critrios: Mais prxima do ciclo Mais distante do ciclo Aleatrio

c) Incluir o vrtice v no ciclo na posio que gere o menor custo, ou seja, encontre uma aresta (i, j) do ciclo que minimize {Civ + Cvj - Cij}

d) Insira o vrtice v entre i e j. Forme um novo ciclo com o vrtice incluso e retorne a etapa-b at K=V.Exemplo: 1.3 Heurstica de insero mais prximoSeja G = (V, E), um grafo completo como na figura 1:

O ciclo inicial : C = {1, 3, 4, 1} com custo inicial Custo(C) = 22.Iterao 1:

Vrtice mais prximo do ciclo : 5.

Temos 3 inseres possveis: Insero 1: entre os vrtices 1 e 3C51 + C53 C13 = 3 + 6 7 = 2

Insero 2: entre os vrtices 1 e 4C51 + C54 C14 = 3 + 10 10 = 3

Insero 3: entre os vrtices 3 e 4C53 + C54 C34 = 6 + 10 5 = 11

Insira o vrtice 5 entre os vrtices 1 e 3.O novo ciclo C = {1, 5, 3, 4, 1} com o custo mnimo Custo(C) = 24

Iterao 2: Inserir o vertice 2 no ciclo C = {1, 5, 3, 4, 1}Temos 4 inseres possveis: Insero 1: entre os vrtices 1 e 5C21 + C25 C15 = 13 + 11 3 = 21

Insero 2: entre os vrtices 5 e 3C25 + C23 C53 = 11 + 8 6 = 13

Insero 3: entre os vrtices 3 e 4C23 + C24 C34 = 8 + 15 5 = 18

Insero 4: entre os vrtices 4 e 1C24 + C21 C41 = 15 + 13 10 = 18Insira o vrtice 2 entre os vrtices 5 e 3.O novo ciclo C = {1, 5, 2, 3, 4, 1} com o custo mnimo Custo(C) = 37

Fim da insero do mais prximo. Formou-se um ciclo Hamiltoniano que passa por todos os ns de um grafo G.

1.4 Heurstica de insero mais distanteIdntica heurstica do mais prximo, exceto no passo b onde se escolhe o vrtice v no pertencente ao ciclo, mais distante de qualquer vrtice do ciclo.1.5 Heurstica de insero aleatriaIdntica heurstica do mais prximo e do mais distante, exceto no passo b onde se escolhe o vrtice v no pertencente ao ciclo, de forma randmica de qualquer vrtice do ciclo.2 TESTES E RESULTADOS COMPUTACIONAISA Heurstica de insero foi implementada em Netbeans 7.3 (Java). Os testes computacionais foram realizados em um notebook com processador Intel(R) I5, 2,50 GHz e 8GB de RAM. Foram utilizados dados dos arquivos enviados pelo nosso orientador (Valdisio Viana). Os resultados obtidos foram comparados entre si com os trs critrios de insero. Os resultados foram encontrados executando cada instncia trs vezes. O resultado mostrado nas tabelas 1 e 2 abaixo: Tabela 1: Resultados obtidos PCVInstancias ComparativasSoluoSoluo ObtidaAproximao

NRefernciasntimaInicialTempo(s)MelhorGap

1kroC1001002074921515.550.00921515.551.037

2a28028025792997.830.0592898.221.124

3ali5355352023,392336.25 0.1922198.531.086

4fl140014002012723045.681.70121649.741.076

Mdias das aproximaes com resultados obtidos1.081

Tabela 2: Resultados obtidos PCVNRefernciasnInicialMximaMdiaMelhorTempo(s)

5Tsp10710746793.1452775.8948251.3545185.030.011

6Tsp15915949083.4152214.5249642.4147629.300.022

7Tsp2252254408.524690.234444.954236.110.043

8Tsp1379137970267.3870708.1768259.8763804.071.648

3 CONCLUSESNeste trabalho foram realizados testes com a Heursticas de Insero. Os testes foram feitos para os trs critrios de insero do vrtice mais prximo do ciclo, do mais distante do ciclo e do vrtice escolhido com distncia aleatrio ao ciclo. Em relao comparao de desempenho entre as Heursticas e o valor timo de cada instncia, observa-se na primeira tabela que os valores obtidos do custo do melhor ciclo bastante prximos do valor timo. Na segunda tabela no se usa o valor timo das instancias para comparar os valores obtidos, no entanto, o valor mdio encontrado teve pouco desvio padro dos valores mximos e melhores, dando a ideia que a heurstica de insero atingiu seu objetivo de encontrar um ciclo mnimo prximo do timo.

4 REFERNCIAS

Universidade Federal de Minas Gerais. Departamento de Cincia da Computao. Luciano Bertini, 16 de Junho de 2003. Site:http://homepages.dcc.ufmg.br/~nivio/cursos/pa03/tp2/tp22/tp22.html Universidade Federal do Rio Grande do Norte. Departamento de Informtica e Matemtica Aplicada. Uma Analise Experimental de Abordagens Heursticas Aplicadas ao Problema do Caixeiro Viajante. lvaro Nunes Prestes. Site: ftp://ftp.ufrn.br/pub/biblioteca/ext/bdtd/AlvaroNP.pdf Universidade Federal de Ouro Preto. Departamento de Computao. Heursticas Construtivas. Transparncias adaptadas do professor Marcone Jamilson Freitas Souza. Site: http://wwwusr.inf.ufsm.br/~andrezc/ia/heuristicas_construtivas_transparencias.pdf Faculdade de Informtica da UNOESTE. Algoritmos Heursticos Construtivos Aplicados ao Problema do Caixeiro Viajante para a Definio de Rotas Otimizadas. Gabriel Altafini Neves da Silva et. Al., 2013. Endereo eletrnico: http://revistas.unoeste.br/revistas/ojs/index.php/ce/article/viewFile/939/995 Universidade Estadual de Campinas. Departamento de Engenharia de Sistemas. Faculdade de Engenharia Eltrica e de Computao. Mtodos de Resoluo em Otimizao Combinatria. Vincius Amaral Armentano. Endereo eletrnico: http://www.densis.fee.unicamp.br/~franca/EA043/Transpa-Cap-3a.pdf