Você está na página 1de 14

Implementao da Metaheurstica GRASP para o Problema do Caixeiro Viajante Simtrico

Ademir Roberto Freddo Robison Cris Brito

Universidade Federal do Paran Tpicos em Inteligncia Artificial Dr Aurora Pozo


Resumo
Este trabalho apresenta a metaheurstica GRASP para o problema do Caixeiro Viajante Simtrico. Prope-se a hibridizao do GRASP com um mtodo de busca local Hill-Climbing, com as metaheursticas Simulated Annealing e VNS Descendente. Essas hibridizaes geraram trs diferentes implementaes que foram testadas e avaliadas em uma srie de testes. O objetivo das implementaes e dos testes mostrar a importncia da hibridizao nas metaheursticas como componente de equilbrio na diversificao e intensificao da busca.

1. Introduo
Durante muitos anos tm-se estudado heursticas para resolver problemas de otimizao combinatria NP-difcil. As heursticas so mtodos de busca que tiram proveito de caractersticas e informaes do prprio problema a ser explorado, facilitando o encontro de um mnimo global no espao de busca [1]. As heursticas so limitadas e fornecem sempre a mesma soluo quando iniciadas de um mesmo ponto de partida. As metaheursticas vm suprir esta deficincia e tem como objetivo principal explorar um espao de pesquisa de forma inteligente, ou seja, encontrar solues de alta qualidade movendo-se para reas no exploradas quando necessrio. Metaheursticas so procedimentos de busca com capacidade de escapar de timos locais, focando na eficincia e uma maior explorao do espao de busca, destinados a resolver problemas de otimizao. As metaheursticas possuem algumas caractersticas, entre elas [1]: utiliza estratgias para guiar o processo de busca; explora de maneira eficiente o espao de busca, com o objetivo de encontrar uma soluo tima prxima ao ponto atual; utiliza tcnicas de buscas locais a complexos processos de aprendizagem; possui mecanismos que evitam o aprisionamento dos mesmos em reas restritas do espao de busca; faz uso de um domnio especfico de conhecimento com uma heurstica para estratgias de busca; armazena experincias de buscas, utilizando-as para guiar o algoritmo nos futuros processos de buscas. H diversos mtodos de metaheursticas. Alguns podem ser vistos como extenses de algoritmos de busca local que procuram sair de regies com poucas possibilidades de encontrar timas solues e ir para locais onde as melhores solues podem estar presentes. Isso proposto por algoritmos como Busca Tabu [2], Busca Local Iterativa (ILS Iterated Local Search) [3], Busca em

Estrutura de Vizinhana Varivel (VNS Variable Neighborhood Search) [4,5], Simulated Annealing [6] e GRASP (Greedy Randomized Adaptive Search Procedures) [7,8]. H tambm outras tcnicas inspiradas na capacidade da natureza de adaptao ao meio onde vivem, atravs da recombinao e mutao de indivduos, mais precisamente, recombinar solues atuais (solues pai) para melhorar futuras solues(solues filho). Nessa classe esto algoritmos de computao evolutiva, como os Algoritmos Genticos [9,10]. Outros algoritmos so inspirados no comportamento de indivduos ao meio, como Colnia de Formigas [11] e Nuvem de Partculas [12]. A Colnia de Formigas uma abordagem inspirada no comportamento das formigas para encontrar o menor caminho entre a origem do alimento e seu ninho, onde as mesmas depositam o feromnio para marcar a trajetria. A Nuvem de Partculas motivada pela simulao do comportamento social existentes na natureza. Para que uma metaheurstica explore um espao de busca de forma inteligente, obtenha solues de tima qualidade e consiga mover-se para reas no exploradas quando necessrio, os conceitos de intensificao e diversificao devem ser atingidos. A intensificao consiste em concentrar as buscas em regies promissoras em torno de boas solues. A diversificao corresponde em fazer buscas em regies ainda no exploradas. Toda metaheurstica deve possuir componentes de diversificao e intensificao. Esses dois componentes devem ser balanceados e bem utilizados. Para que isso ocorra, necessrio integrar metaheursticas realizando uma hibridizao. O resultado da hibridizao pode resultar em melhores resultados do que uma metaheurstica sozinha. Este trabalho est focado na utilizao da metaheurstica GRASP e na hibridizao de GRASP com outras metaheursticas como SA e VNS para aplicao no problema do Caixeiro Viajante Simtrico. O problema do Caixeiro Viajante um problema clssico de otimizao combinatria, possui variaes generalizaes e adaptaes para problemas semelhantes. Trata-se, portanto de um problema de grande importncia e interesse prtico, uma vez que resultados satisfatrios encontrados no problema assimtrico podem ser aplicados em outros problemas. Na Seo 2 apresentado o problema do Caixeiro Viajante e exemplos de aplicaes para o mesmo. A fundamentao das metaheursticas utilizadas para a resoluo do problema apresentada na Seo 3. A Seo 4 apresenta a metaheurstica GRASP, e suas hibridizaes. Na Seo 5 so apresentados os experimentos, detalhes de implementao da hibridizao e os resultados obtidos. Por ltimo, na Seo 6 so relatadas as concluses do trabalho.

2. Descrio do Problema Caixeiro Viajante


Suponha que um caixeiro tenha de visitar n cidades diferentes, iniciando e encerrando sua viagem na primeira cidade. A ordem de visita s cidades no importa e cada uma delas pode ir diretamente a qualquer outra. O problema do caixeiro viajante consiste em descobrir a rota que torna mnima a viagem total. Para exemplificar, tm-se quatro cidades A, B, C e D, uma rota que o caixeiro deve considerar poderia ser: saia de A e da v para B, dessa v para C, e da v para D e ento volte a A. Esta uma possibilidade, mas existem outras seis rotas, citadas a seguir: ABCDA, ABDCA, ACBDA, ACDBA, ADBCA, ADCBA. Em [13] h vrias aplicaes para o problema do caixeiro viajante. Um exemplo o processo de perfurao de placas de circuitos impressos em sua confeco. Uma placa de circuito impresso pode conter centenas ou milhares de furos para soldagem de componentes eletrnicos. Como os furos podem ser de tamanhos diferentes, necessria a troca da ferramenta. Essa troca de ferramenta um processo lento. Para que a ferramenta no seja trocada vrias vezes, necessria uma

otimizao perfurando primeiro todos os furos de mesmo dimetro. Assim, esse processo pode ser visto como um problema do caixeiro viajante. Percorrendo-se o melhor caminho possvel, economiza-se tempo, aumentando a produtividade do processo [14]. Uma segunda aplicao a que ocorre na anlise de estruturas de cristais na cristalografia por raios-x. A cristalografia analisa a disposio dos tomos em slidos. Para isso um difratmetro obtm informaes da estrutura de um material cristalino medindo a intensidade dos raios-x refletidos do material, saindo de vrias posies. Em alguns experimentos, o difratmetro deve realizar at 30.000 deslocamentos para fazer as medidas. Isso significa que pode haver um percurso com at 30.000 pontos de medida. Para minimizar o tempo gasto na mensurao, deve-se escolher um percurso mnimo entre os pontos de medida, o qual pode ser modelado atravs do problema do caixeiro viajante [14].

3. Fundamentao Terica
Nesta seo so fundamentadas as tecnologias utilizadas no desenvolvimento do trabalho. Entre as tecnologias esto: mtodo de busca local, metaheursticas e estruturas de vizinhana utilizadas.

3.1 Hill Climbing


O mtodo de busca local Hill Climbing (HC), a base de muitos mtodos heursticos para problemas de otimizao combinatria. Isoladamente, ele um simples mtodo iterativo de encontrar por boas solues. Considerado um algoritmo bsico de busca local, o mesmo inicia com uma soluo arbitrria e termina em um mnimo local onde no mais possvel qualquer tipo de melhoramento. Pode-se utilizar a busca local de melhor movimento que substitui a soluo corrente por uma soluo que melhora o custo aps a busca em toda a vizinhana e a outra possibilidade a busca local de primeira melhora, o qual aceita a primeira melhor soluo quando ela encontrada. A complexidade computacional do HC depende do tamanho da vizinhana e tambm do tempo necessrio para avaliar uma movimentao. Os mnimos locais so os principais problemas na busca local. Entretanto estas solues podem ser de boa qualidade, mas no necessariamente timas. Alm disso, se a busca local acha um mnimo local no existe uma maneira obvia de melhorar a soluo. As metaheursticas esto tentando contornar isso atravs de critrios de diversificao.

3.2 Simulated Annealing


O Simulated Annealing (SA) [6] uma metaheurstica que simula um sistema de resfriamento aceitando movimentos de piora, segundo uma funo probabilstica. O processo de busca da metaheurstica SA o resultado da combinao de duas etapas: caminhos aleatrios e melhoramento iterativo. Na primeira etapa, a tendncia de melhorar o resultado baixa, entretanto, faz com que o espao de busca seja amplamente explorado. Esse comportamento alterado, juntamente com a temperatura, fazendo o resultado convergir no final do processamento do algoritmo a um mnimo local. A escolha de um estado pior depende de duas variveis: a diferena de custo entre o estado atual e o prximo estado e, a temperatura atual. Quanto maior a diferena de custo entre o estado atual e o prximo estado, menor a possibilidade dele ser selecionado, e quanto maior a temperatura, maior a possibilidade de um estado pior ser escolhido [15,16].

3.2.1 Algoritmo Na Figura 1 apresento o algoritmo do SA.


Parmetros: T0 (temperatura inicial), Tf (temperatura final), L(numero de iteracoes), (reduo de temperatura) T T0 ; (temperatura atual recebe temperatura inicial) S0 gera soluo inicial; S S0; (soluo atual) S* S0; (melhor soluo obtida at o momento) enquanto T > Tf faa (temperatura alta) para cont 1 at L(T) faa (iteraes para equilbrio) S seleciona uma soluo vizinha de S custo custo(S) -custo(S); se custo < 0 S S; seno Numero_Random Rand[0..1]; se Numero_Random < exp(-custo/T) S S; se (S < S*) S* S (guardar o melhor estado) fim para T T (reduz a temperatura) fim-enquanto Retorne S (melhor soluo)

Figura 1 Algoritmo SA

O algoritmo apresenta como valores iniciais os seguintes parmetros: temperatura inicial, temperatura final, nmero de iteraes para equilbrio da temperatura e, taxa de reduo de temperatura. A taxa de reduo aplicada temperatura corrente aps um nmero de iteraes, ou seja, atingindo o equilbrio na temperatura, aplica-se uma taxa de reduo. A escolha dos valores inicias como parmetros so cruciais para o sucesso desse algoritmo. Essa escolha feita atravs de testes de tentativa e erro observando-se o rendimento e comportamento do algoritmo. Se os valores iniciais esto bem calibrados aumentam as chances de localizar um estado timo global. Aps a configurao dos valores iniciais, o algoritmo gera um estado inicial (randomicamente ou heuristicamente construdo). O mtodo inicia a partir de uma soluo inicial e com temperatura alta, a qual diminuda gradativamente at que alcance uma temperatura final baixa. A cada reduo de temperatura realizado um nmero fixo de iteraes, que representa o nmero de iteraes necessrias para o sistema atingir o equilbrio trmico em uma determinada temperatura. Assim, a cada nmero de iteraes a temperatura deve diminuir e uma soluo S vizinha a soluo corrente S deve ser gerada e avaliada pelo valor da variao da funo objetivo seguinte:

= f (S ' ) f (S )
Caso o movimento seja de melhora, ento a soluo S torna-se a soluo corrente. Caso contrrio (delta <= 0) a soluo S possui um custo maior. Essa soluo S pode ser aceita atravs de um critrio de probabilidade, onde T a temperatura corrente:

p (E ) = e E / T
Essa probabilidade permite movimentos ruins em altas temperaturas. A medida que a temperatura diminui, os movimentos ruins so reduzidos. A temperatura T diminuda a cada iterao do processo de busca, por isso, no incio do processamento a possibilidade de serem escolhidos estados posteriores piores que o atual grande,

no andamento da busca, as possibilidades vo diminuindo, com a tendncia de terminar com buscas locais. Para o ndice de resfriamento, so aconselhados valores entre 0 e 1, entretanto, os valores ideais para o ndice pode modificar durante o processo de busca, com o objetivo de balancear entre a diversificao e a intensificao. Por exemplo, no inicio da busca, a Temperatura pode ser linearmente ou constantemente reduzido, convergindo para um mnimo local at o final da busca. A metaheurstica SA possui variantes que utilizam processos distintos de resfriamento e reaquecimento da temperatura, bem como a utilizao de outras estruturas de vizinhana possibilitando constantes alternncias entre diversificao e intensificao.

3.3 VNS
O VNS (Variable Neighborhood Search) [4,5] conhecido como mtodo de busca em vizinhana varivel consiste de uma metaheurstica para resolver problemas de otimizao global e combinatorial cuja idia bsica troca sistemtica da vizinhana dentro de uma busca local. O mtodo procura explorar vizinhanas gradativamente mais distantes da soluo corrente, priorizando a busca para uma nova soluo somente se um movimento de melhora realizado. O VNS no segue uma trajetria como os mtodos de busca local, mas explora estruturas de vizinhanas a partir da soluo corrente. O VNS possui alguns princpios bsicos, entre eles: Um timo local com relao a uma vizinhana no necessariamente corresponde a um timo local com relao a outra vizinhana; Um timo global corresponde a um timo local para todas as estruturas de vizinhana; Para muitos problemas, timos locais com relao a uma vizinhana so relativamente prximos. O VNS pode ser utilizado de trs diferentes maneiras: determinstico, estocstico e, ambos determinstico e estocstico. Nesse trabalho utilizo-se a verso determinstica do VNS.

3.3.1 Determinstico
A maneira determinstica do VNS conhecida como Mtodo de Descida em Vizinhana Varivel (VND Variable Neighborhood Descent). O VND um mtodo que explora o espao de solues atravs da troca sistemtica de estruturas de vizinhana, aceitando apenas solues de melhora da soluo atual e retornando a primeira estrutura de quando uma soluo melhor encontrada. A Figura 2 apresenta o algoritmo para o VND.
s0 - uma soluo inicial r - o nmero de estruturas diferentes de vizinhana; s s0; {Soluo corrente} k 1; {Tipo de estrutura de vizinhana} repita at nenhuma melhora enquanto (k r) faa Encontre o melhor vizinho s 5 N(k)(s); se f(s) < f(s) ento s s; k 1; seno k k + 1; fim-se; fim-enquanto; fim-repita; Retorne s; Fim VND;

Figura 2 Algoritmo VND

O algoritmo inicia-se a partir de uma soluo inicial completa e um nmero de estruturas de vizinhana possvel. Para cada estrutura de vizinhana procurado o melhor vizinho. Se a soluo encontrada for melhor a anterior, ento o processo retorna a busca na primeira estrutura. Esse processo interrompido quando for atingida a ltima estrutura de vizinhana e nenhuma melhora da soluo corrente for possvel. 3.4 Estruturas de Vizinhana Uma estrutura de vizinhana pode ser definida pelos movimentos entre os componentes da soluo, ou seja, as diferentes estruturas de vizinhana so obtidas a partir de uma operao chamada movimento. Seja Nk, (k= 1, ....., kmax), um conjunto finito de estruturas de vizinhanas e Nk(x) o conjunto de solues na k-sima vizinhana da soluo corrente x. Um mtodo que utiliza estruturas de vizinhana inicializa com uma soluo qualquer e a cada iterao gera um vizinho x que obtido a partir de uma operao chamada movimento. Geralmente a busca local utiliza apenas uma estrutura de vizinhana (kmax = 1). Utilizando estruturas de vizinhana maiores que um, aumentam as chances de encontrar um local mnimo, do que utilizando apenas uma nica estrutura. A heurstica k-opt [17] consiste na remoo de k-arcos de uma rota e substitu-los por outros k arcos, de modo a formar uma nova rota, com a finalidade de reduzir uma funo objetivo (reduzir os custos). Movimentos k-opt somente so realizados se as novas ligaes entre as cidades possurem custo menor do que as removidas. Uma rota k-tima se no for mais possvel efetuar trocas para melhorar a distncia total viajada. Essa estrutura de vizinhana foi escolhida por ser indicada em problemas em que se deseja diminuir os custos em roteiros ou caminhos existentes e por ser popular na resoluo do problema do caixeiro viajante. As Figuras 3 e 4, exemplificam respectivamente as heursitcas 2-opt e 3-opt.

Figura 3 Heurstica 2-opt

Figura 4 - Heurstica 3-opt

De forma resumida, para k=2, o mtodo testa trocas possveis entre pares de arcos, refazendo as conexes quando houver uma melhoria na rota (Figura 3). A medida que aumenta o K, aumenta tambm o custo computacional. A Figura 5 mostra a aplicao do mtodo 2-opt em uma soluo inicial.
Soluo Inicial: 1-6-4-2-3-5-1 Custo inicial = 20 Selecionar aresta: (4,2) Solues vizinhas 2-opt criadas: 1-) 1-6-4-3-2-5-1 (resulta da remoo das arestas (4,2) e (3,5) e da incluso das arestas (3,4) e (2,5)) Custo = 19 2-) 1-4-2-6-3-2-5-1 (resulta da remoo das arestas (4,2) e (1,6) e da incluso das arestas (1,4) e (2,5)) Custo = 19 3-) 1-6-4-5-3-2-1 (resulta da remoo das arestas (4,2) e (1,5) e da incluso das arestas (4,5) e (1,2)) Custo = 20 Selecionar a soluo criada com menor custo (soluo 1 ou 2) e continuar o processo escolhendo outras arestas at esgotar todas as possibilidades ....

Figura 5 Exemplo da heurstica 2-opt

4. GRASP
O GRASP (Greedy Randomized Adaptive Search Procedures) uma metaheurstica constituda por heursticas construtivas e busca local [7,8]. Consiste de mltiplas aplicaes de busca local, cada uma iniciando de uma soluo diferente. As solues iniciais so geradas por algum tipo de construo randmica gulosa ou algum esquema de perturbao. A Figura 6 apresenta o algoritmo bsico do GRASP. Observa-se no algoritmo que h duas fases: construo da soluo e aplicao da busca local na soluo construda. Alm disso, o algoritmo armazena a melhor ou as melhores solues encontradas. Essa memria com as melhores solues pode ser utilizada para encontrar outras solues utilizando outras metaheursticas como: path-relink [18] ou ILS.
Enquanto condioTerminoNoEncontrada faa s construoSoluo(); aplicaBuscaLocal(s); s memorizaMelhorSoluoEncontrada() fim enquanto

Figura 6 Algoritmo bsico GRASP

4.1 Fase de Construo Nessa fase uma soluo construda elemento a elemento. Inicialmente o elemento est em uma lista de candidatos (LC). Atravs de um fator (alfa) criada uma lista restrita de candidatos LCR que possui os melhores elementos de LC. O tamanho de LCR determinado por:

CardinalidadeLCR = * CardinalidadeLC
Aps a definio da LCR, seleciona-se um elemento da mesma para compor a soluo. A seleo do elemento pode ser realizada aleatoriamente ou atravs de um critrio guloso. Esses dois tipos de selees provocam duas variaes do GRASP conforme construo da soluo: aleatrio ou guloso. Aps a adio do elemento na soluo, o processo continua com a atualizao de ambas as listas LC e LCR. O processo de construo finalizado quando a cardinalidade de LC possuir valor zero.

O valor de

influencia na qualidade e diversidade da soluo gerada na fase de construo. Valores baixos para geram solues gulosas de boa qualidade mas com pouca diversidade. Um valor alto para , prximo a cardinalidade de LC leva a uma grande diversidade com solues de

qualidade inferior. Isso tambm influencia o processo de busca local, pois solues de qualidade inferior tornam o processo de busca local mais lento [8]. Por exemplo com valendo um, o melhor elemento da LCR seria adicionado, assim a fase de construo uma heurstica gulosa. Quando o valor de superior a 1 a construo randmica. O valor de pode ser constante, mas pode sofrer tambm alteraes a cada iterao ou por meio de uma esquema aleatrio ou adaptativo. A Figura 7 apresenta o algoritmo para a fase de construo da soluo inicial.
s % s que representa uma soluo parcial nesse caso determinaTamanhoListaCandidatos enquanto SoluoNoCompleta faa RCL gerarListaCandidatosRestritos(s) selecionarElementoAleatrio(RCL) x s s {x} atualizaFunoGulosa(s) % atualiza valores da heurstica fim enquanto

Figura 7 Construo de Soluo Randmica Gulosa

O algoritmo mostra que: a soluo inicial um conjunto vazio; o parmetro determina o tamanho da lista de candidatos; novos elementos so agregados a soluo inicial; uma funo gulosa avalia os elementos belo benefcio imediato; melhores elementos formam uma lista de candidatos restritos em quantidade fixa ou de acordo com algum parmetro (aleatrio ou guloso); um elemento da lista escolhido aleatoriamente; a funo gulosa adaptada de acordo com a soluo parcial; termina com uma soluo aceitvel ao problema.

4.2 Fase de Busca Local A segunda fase do GRASP ou fase de busca local consiste em refinar a soluo encontrada na primeira fase aplicando um mtodo de busca local. Isso corresponde a uma intensificao na soluo encontrada explorando regies vizinhas atravs da busca local para encontrar um timo local. A busca local pode ser sofisticada, entretanto no se deve esquecer do diferencial do GRASP que amostrar o espao com geraes rpidas. Quanto melhor for a qualidade da soluo gerada na primeira fase, maior ser a velocidade para encontrar um timo local pela fase de busca local. Os algoritmos a serem utilizados nesta segunda fase podem ser bsicos como o Hill-Climbing ou metaheursticas mais avanadas como Tabu, SA e VND. importante salientar que o GRASP no faz uso de histricos no processo de busca. possvel armazenar uma ou vrias solues sendo as melhores at o momento. Entretanto, o GRASP simples, rpido e pode ser facilmente integrado com outras tcnicas de busca.

5. Experimentos e Resultados Obtidos

Neste captulo apresenta-se as implementaes do GRASP e resultados obtidos na resoluo do problema do Caixeiro Viajante Simtrico. 5.1 Detalhes de Implementao O GRASP uma metaheurstica com duas fases. Na primeira fase as solues so construdas utilizando um procedimento aleatrio guloso. Para a primeira fase possvel determinar a utilizao de um procedimento mais aleatrio ou guloso na gerao das solues iniciais determinando o tamanho da LCR e o parmetro . A implementao realizada possibilita a escolha do parmetro que influencia diretamente na LCR. O tamanho da LC foi determinado pelo nmero de cidades existentes na instncia. Por exemplo na instancia dantzig42 h 42 cidades conectadas, portanto a LC possui tamanho 42. Na segunda fase o GRASP procura refinar a soluo inicialmente construda na primeira fase aplicando algum mtodo de busca local. Assim o GRASP sofreu diversas hibridizaes nesta fase, entre elas: GRASP com Hill-Climbing (GRASP/HC), GRASP com Simulated Annealing (GRAS/SA), e GRASP com VNS Descendente (GRASP/VND). Para as duas primeiras hibridizaes (GRASP/HC e GRASP/SA) foi utilizada uma nica estrutura de vizinhana atravs de trocas aleatrias (troca de cidades atravs de inseres e remoes aleatrias). Essa estrutura foi composta por movimentos aleatrios entre as cidades. Para a verso de hibridizao do GRASP com VNS Descendente (GRASP/VND), utilizou-se duas outras estruturas de vizinhana denominadas de 2-opt e 3-opt, devido ao fato do VNS realizar trocas sistemticas de vizinhana, 5.2 Instncias utilizadas no experimentos Para validar os mtodos, foram utilizadas quatro instncias encontradas e disponveis em [19]. Essas instncias correspondem a tabelas com distncia simtrica entre as cidades. As instncias so nomeadas na seqncia: Dantzig42 (42 cidades); Fri26 (26 cidades); gr48 (48 cidades) e hk48 (48 cidades). As melhores solues para cada soluo so: 699 para Dantzig42, 937 para Fri26, 5046 para gr48 e 11461 para hk48. Esses custos foram utilizados para comparar os resultados dos experimentos realizados com as diversas hibridizaes. 5.3 Determinao dos parmetros O nico parmetro que deve ser calibrado no GRASP o valor . Esse valor foi calibrado buscando aplicar ao GRASP duas caractersticas na primeira fase: puramente guloso ou aleatrio. No puramente guloso o

recebeu valor 1. No aleatrio o valor de utilizado corresponde a 40% do tamanho da LC. A LC corresponde ao nmero mximo de cidades (conexes entre as cidades). O

foi utilizado apenas para determinar o tamanho da LCR. Na segunda fase h a definio de parmetros quando da utilizao do mtodo de busca local SA. Os parmetros de SA foram definidos atravs de vrias execues e verificando qual o melhor valor para: temperatura inicial, temperatura final, nmero de iteraes para equilbrio da temperatura e taxa de reduo da temperatura. Os seguintes valores para o SA foram utilizados: Temperatura Inicial: 30; Temperatura Final: 0.1; Taxa de Reduo de Temperatura: 0,2%; Nmero de iteraes para equilbrio da temperatura: 40% do tamanho da matriz da instncia. Outro parmetro utilizado nos teste foi o nmero de iteraes ou nmero de execues do GRASP. Esse parmetro indica o nmero de solues construdas e aplicao da busca local nas solues.

Nesse trabalho foi utilizado o nmero de iteraes como o nmero de cidades existentes nas instncias. A justificativa foi construir n solues cada uma iniciando com uma cidade diferente. Por exemplo, para a instncia dantzig42 com 42 cidades conectadas, o GRASP executou 42 vezes para cada verso de hibridizao e com dois valores distintos para alfa (aleatrio ou puramente guloso). 5.4 Metodologia de Testes Nos testes o objetivo foi tornar a fase inicial do GRASP puramente gulosa ou aleatria. Essa primeira fase possui portanto 2 variaes. Na segunda fase o GRASP recebeu diferentes mtodos de busca local. Esses mtodos deram origem a 3 diferentes hibridizao: GRASP/HC, GRASP/SA, GRASP/VND. Para cada hibridizao o GRASP gerou n cidades, onde n corresponde ao nmero de cidades da instncia. Portanto foram executados os seguintes testes para as 4 instncias: GRASP/HC puramente guloso, GRASP/HC Aleatrio, GRASP/SA puramente guloso, GRASP/SA aleatrio, GRASP/VND puramente guloso e GRASP/VND aleatrio. Nesses testes foram calculados a mdia dos custos e tempo encontrados. Alm disso, o melhor resultado foi comparado aos melhores resultados obtidos em [19].

5.5 Resultados obtidos


A seguir a apresentao dos resultados obtidos e comparao dos mesmos. A Tabela 1 apresenta os mnimos locais para cada instncia. Esses valores foram retirados de [19] e so utilizados para comparao com os resultados obtidos.
Instncias dantzig42 fri26 Melhor Custo 699 937

gr48 5046 hk48 11461 Tabela 1 Mnimos Locais (Fonte: [19]).

A Tabela 2 apresenta os melhores custos encontrados na execuo das 3 hibridizaes onde a fase de construo da soluo do GRASP foi totalmente gulosa ( = 1). A hibridizao GRASP/VND conseguiu os melhores custos para dantzig42 e fri26. Para as demais instncias os resultados ficaram prximos ao timo local. GRASP/HC e GRASP/SA obtiveram resultados semelhantes, porm, a Tabela 3, que apresenta o tempo (em segundos) para obteno dos resultados, mostrou que GRASP/SA possui uma complexidade computacional muito superior as outras hibridizaes. Instncias Dantzig 42 fri26 gr48 hk48 GRASP/HC 863 955 5781 12110 GRASP/SA 863 955 5779 12006 GRASP/VND 699 937 5093 11470

Tabela 2 Melhores custos com fase de construo gulosa para o GRASP

Instncias dantzig42 fri26 gr48 hk48

GRASP/HC 0,01 0,001 0,01 0,02

GRASP/SA 1,94 2,65 12,52 36,40

GRASP/VND 1,42 0,10 2,85 1,60

Tabela 3 Tempo em segundos com fase de construo puramente gulosa

Atravs da Tabela 3, observa-se tambm, que GRASP/HC foi a hibridizao que atingiu o resultado mais rapidamente. Inclusive seus resultados so muito semelhantes ao GRASP/SA e um pouco inferiores a GRASP/VND. Lembrando que para cada iterao, o GRASP iniciou com diferentes cidades, a Tabela 4 apresenta a mdia dos custos encontrados em todas as execues. Mesmo iniciando com diferentes cidades, GRASP/VND conseguiu atingir os melhores custos em vrias execues. A mdia para todas as instncias ficou muito prxima aos melhores custos. Instncias Dantzig42 Fri26 Gr48 Hk48 GRASP/HC 918 1057 6228 13263 GRASP/SA 916 1059 6211 12116 GRASP/VND 710 954 5147 11571

Tabela 4 Mdia dos custos com fase de construo puramente gulosa

A Tabela 5 mostra os resultados onde a fase de construo do GRASP parcialmente aleatria, utilizando 40% das melhores opes de cidades da LCR. Em comparao com a Tabela 2, o GRASP/VND conseguiu o mesmo desempenho. Inclusive nesse caso, obteve os melhores custos para 3 instncias e a quarta instncia ficou muito prximo do timo global. GRASP/HC e GRASP/SA obtiveram resultados inferiores em relao aos testes anteriores onde a fase de construo do GRASP puramente gulosa. Instncias Dantzig42 Fri26 Gr48 Hk48 GRASP/HC 1027 1345 7828 17012 GRASP/SA 938 1341 6712 16504 GRASP/VND 699 937 5046 11470

Tabela 5 Melhores custos com fase de construo aleatria

Na Tabela 6 so apresentados os tempos para obteno dos melhores resultados. Novamente o GRASP/SA teve o pior custo computacional e GRASP/HC a menor complexidade computacional. Instncias GRASP/HC GRASP/SA GRASP/VND Dantzig 42 0,001 3,30 2,94 fri26 0,001 1,81 0,17 gr48 0,01 32,60 6,24 hk48 0,01 52,34 5,34 Tabela 6 Tempo em segundos com fase de construo aleatria A Tabela 7 apresenta a mdia de todas as execues realizadas para a fase de construo gulosa no GRASP. GRASP/VND manteve o bom desempenho encontrando em vrias execues os melhores custos globais.

GRASP/HC Dantzig 42 Fri26 Gr48 Hk48 1919 1765 13771 30164

GRASP/SA 1892 1862 11920 28658

GRASP/VND 714 958 5151 11785

Tabela 7 Mdia dos custos com fase de construo aleatria

A Tabela 8 apresenta um resumo e uma comparao dos melhores custos encontrados para cada instncia, comparando com a fase de construo do GRASP (Guloso/Aleatrio). Para cada melhor resultado foi calculada a porcentagem de proximidade com o melhor custo. GRASP/VND conseguiu os melhores custos para trs instncias e para a instncia hk48 ficou muito prximo (0,08%). A Tabela 8 tambm apresenta uma proximidade entre GRASP/HC e GRASP/AS, porm os melhores resultados so obtidos onde a primeira fase do GRASP gulosa. A Tabela 9 apresenta as mesmas informaes apresentadas anteriormente, porm utilizando os valores mdios
GRASP/HC Custo Dantzig 42 fri26 gr48 hk48 863 955 5781 12110 % 23,46% 1,92% 14,57% GRASP Custo G G G 863 955 5779 GRASP/SA % 23,46% 1,92% 14,53% GRASP G G G Custo 699 937 5046 GRASP/VND % 0,00% 0,00% 0,00% 0,08% GRASP G G A G/A

5,66% G 12006 4,76% G 11470 Tabela 8 Comparativo com melhores resultados GRASP/HC GRASP/SA % GRASP Custo % GRASP 31,33% 12,81% G G 916 1059 31,04% 13,02% G G

Custo Dantzig 42 fri26 gr48 hk48 918 1057 6228 13263

Custo 710 954

GRASP/VND % GRASP 1,57% 1,81% 2,00% 0,96% G G G G

23,42% G 6211 23,09% G 5147 15,72% G 12116 5,72% G 11571 Tabel 9 Comparativo com valores mdios de cada execuo

6. Concluses
O objetivo deste trabalho foi implementar o GRASP e hibridizar o mesmo com outras metaheursticas na resoluo do problema do caixeiro viajante simtrico. Conclui-se que a hibridizao um excelente mecanismo para equilibrar os componentes de diversificao e intensificao. Esse equilbrio torna a metaheurstica inteligente para conseguir explorar regies ainda no visitadas e tambm para melhorar a pesquisa prxima a um timo local. Os resultados obtidos mostraram que a hibridizao do GRASP obteve timos resultados principalmente na utilizao do VND devido ao mesmo utilizar estruturas de vizinhana k-opt (2opt e 3-op) adequadas para a resoluo do problema do caixeiro viajante. Alm disso, o GRASP mostrou que a primeira fase muito importante, pois mesmo o mtodo HC obteve bons resultados a partir de solues de qualidade encontradas na primeira fase quando a mesma gulosa. Portanto, a primeira fase do GRASP deve ser capaz de testar regies mais promissoras do espao de busca.

Alm da importncia apresentada pela hibridizao das metaheursticas, relata-se a resoluo do problema do caixeiro viajante que apesar de ser um problema simples comparado a outros, muito utilizado em variaes para a resoluo de outros problemas que se assemelham ao caixeiro viajante.

Referncias
[1] Blum C.; Roli A. (2003) Metaheuristics in combinatorial optimization: Overview and conceptual comparison. ACM Comput. Surv., Vol 35, N. 3, September , pp. 268-308. [2] Glover. F. (1996) Tabu search and adaptive memory programing Advances, applications and challenges. In R.S. Barr, R.V. Helgason, and J.L. Kennington, editors, Interfaces in Computer Science and Operations Research, pages 175. Kluwer. [3] Loureno H.R.; Martin O.C. and T. Stutzle. (2002) Iterated Local Search. In F. Glover and G. Kochenberger, editors, Handbook of Metaheuristics, pages 321353. Kluwer, Boston. [4] Mladenovic N. and Hansen. P. (1997) Variable neighborhood search. Computers &Operations Research, 24:10971100. [5] Hansen P. and Mladenovic N. (1999) An introduction to variable neighborhood search.In S. Voss, S. Martello, I. H. Osman, and C. Roucairol, editors, Meta-Heuristics: Advances and Trends in Local Search Paradigms for Optimization, pages 433 458. Kluwer Academic Publishers, Boston, MA. [6] Kirkpatrick, S., C. D. Gelatt Jr., M. P. Vecchi. (1983) Optimization by Simulated Annealing,Science, 220, 4598, 671-680. [7] Feo T.A. and Resende M.G.C. (1989) A probabilistic heuristic for a computationally difficult set covering problem. Operations Research Letters, 8:6771. [8] Feo T.A. and Resende M.G.C. (1995) Greedy randomized adaptive search procedures. Journal of Global Optimization, 6:109133. [9] Holland, J. H. (1975) Adaption in natural and artificial systems. The University of Michigan Press, Ann Harbor, MI. [10] Goldberg, D. E. (1989) Genetic Algorithms in Search, Optimization and Machine Learning. Addison Wesley, Reading, MA. [11] Dorigo, M. (1992) Optimization, learning and natural algorithms (in italian). Ph.D. thesis, DEI, Politecnico di Milano, Italy. pp. 140. [12] Kennedy, J.; Eberhart, R. C. (1995). Particle swarm optimization. Proceedings of the IEEE InternationalConference on Neural Networks IV, Perth, Australia, pp. 1942-1948. [13] Reinelt, G. (1994) The Traveling Salesman: Computational Solutions for TSP Applications, Lecture Notes in Computer Science, 840, Springer-Verlag. [14] Bertini, L. Segundo Trabalho Prtico de PAA: O Problema do Caixeiro Viajante. Disponvel em: http://homepages.dcc.ufmg.br/~nivio/cursos/pa03/tp2/tp22/tp22.html. Acesso em: 30/05/2007. [15] Aarts E. e Korst J. (1993) Simulated Annealing and BoltzmannMachine, John Wiley, 1989. DOWSLAND, K.A. Simulated Annealing, In Reeves, C.R. (ed), Modern Heuristic Techniques for Combinatorial Problems, Blackwell Scientific Publications, 20-69. [16] Cerny, V. (1985) Thermodynamical Approach to the Traveling Salesman Problem: An Efficient Simulation Algorithm", J. Opt. Theory Appl., 45, 1, 41-51.

[17] Lin, S. e B. W. Kernighan (1973) An Effective Heuristic Algorithm for the Traveling Salesman Problem.Operations Research, v. 21, p. 498-516. [18] Resende M.G.C and Ribeiro C.C. (2005) GRASP with path-relinking: Recent advances and applications. In T. Ibaraki, K. Nonobe, and M. Yagiura, editors, Metaheuristics: Progress as Real Problem Solvers, pages 2963. Springer. [19] TSPLIB. Disponvel em: http://elib.zib.de/pub/mp-testdata/tsp/tsplib/tsplib.html.Acesso em: 29/05/2007.

Você também pode gostar