Sie sind auf Seite 1von 12

GRASP com VNS na Solução do Problema do Caixeiro Viajante Simétrico

Artur de Carvalho Alves


Universidade Federal do Rio Grande do Norte – DIMAp
Campus da Lagoa Nova – Natal - RN
artur_carvalhoalves@yahoo.com.br

Ciro Magnun Bezerra e Silva


Universidade Federal do Rio Grande do Norte – DIMAp
Campus da Lagoa Nova – Natal - RN
ciromagnun@gmail.com

Marco César Goldbarg


Universidade Federal do Rio Grande do Norte – DIMAp
Campus da Lagoa Nova – Natal - RN
gold@dimap.ufrn.br

Elizabeth Ferreira Gouvêa Goldbarg


Universidade Federal do Rio Grande do Norte – DIMAp
Campus da Lagoa Nova – Natal - RN
beth@dimap.ufrn.br

Resumo
O presente trabalho descreve uma heurística híbrida para o Problema do Caixeiro Viajante Simétrico.
A abordagem proposta utiliza um procedimento baseado na metaheurística VNS na fase de busca
local de um algoritmo GRASP. A heurística também se caracteriza por empregar uma variante da
vizinhança 2-opt na fase de busca local. Ao final um experimento computacional compara o
desempenho qualitativo da heurística com um algoritmo GRASP eficiente proposto previamente na
literatura.

Abstract
This paper presents a hybrid heuristic for the Symmetric Traveling Salesman Problem. The proposed
approach uses a procedure based on the metaheuristic VNS in the local search phase of a GRASP
algorithm. The heuristic is also characterized by employing a variant of the 2-opt neighborhood in
the local search phase. Finally, a computational experiment compares the qualitative performance of
the proposed heuristic with an efficient GRASP presented previously in the literature.

Palavras chave: Metaheurísticas. Caixeiro Viajante Simétrico. GRASP / VNS


Keywords: Metaheuristics, Symmetric Traveling Salesman, GRASP/VNS

1. Introdução

O problema do Caixeiro Viajante (PCV) é um dos clássicos problemas da otimização combinatória,


consistindo em determinar em um grafo ponderado G=(N, M) onde N={1,...,n} representa o conjunto
de vértices do grafo e M = {1,...,m} o conjunto de arestas, um ciclo hamiltoniano de menor custo. O
PCV é NP-Difícil (Garey & Johnson, 1979), sendo um dos problemas de otimização combinatória
mais intensamente pesquisados. A maior instância não trivial solucionada de forma exata evoluiu de
318 cidades na década de 80 (Crowder & Padberg, 1980), para 7397 cidades em meados dos anos 90
(Applegate et al., 1994) e 24978 cidades em 2004. A melhor marca foi obtida em abril de 2006 na
solução de uma instância de 85900 cidades (Applegate et al., 2006).

O problema admite também inúmeras aplicações práticas como na fabricação de chips para circuitos
VLSI (Korte, 1988) na cristalografia (Bland & Shallcross, 1989), mapa genético (Guyon et al.,
2003), seqüência de DNA (Gonnet et al., 2000) programação de rede de difusão (Yajima et al.,
2001), dentre outras.

Várias e aprofundadas revisões da literatura estão disponíveis para o problema, destacando-se as de


Lawler et al., (1985), Reinelt (1994), Jünger et al., (1994) e Gutin & Punnen, (2002). No aspecto da
análise do desempenho computacional dos métodos destaca-se o trabalho de Applegate et al., (2006).

Em que pese o avanço da competência dos métodos exatos, as abordagens heurísticas ainda são
fortemente privilegiadas pela literatura para o encaminhamento da solução do PCV, especialmente as
meteheurísticas. Alguns dos trabalhos que representam essa tendência são: Simulated Annealing
(Aarts, et al.,1988; Meer, 2007), Busca Tabu (Knox, 1994; Rego & Glover 2002) Algoritmos
Genéticos (Larrañaga et al., 1999; Katayama & Sakamoto, 2000; Baralia et al., 2001), Colônia de
Formigas (Gambardella & Dorigo, 1996; Bai et al., 2006 ), Redes Neurais (Gharizi & Osman, 2003),

Por outro lado o PCV simétrico, problema definido sobre um grafo não direcionado, é caracterizado
por possuir heurísticas clássicas extremamente eficientes como a proposta de Lin & Kernigham,
(1973) que foi implementada com grande sucesso por Helsgaun, (2000), ou como as heurísticas
construtivas examinadas em Glover et al., (2001). De fato, presentemente as duas mais eficientes
heurísticas de solução para o PCV simétrico pertencem a classe Lin & Kernigham e são,
respectivamente, a Tour Merge (Applegate et al , 2003), e a variante Nguyen-Yoshihara-Yamamori-
Yasunaga Iterated Lin-Kernighan – NYYY. Tais heurísticas, segundo Applegate et al., (2006) e
Marinakis (2005), sob os critérios sugeridos pelos autores, alcançaram conclusivamente os melhores
resultados na solução de instâncias simétricas do TSPLIB (TSPLIB, 2008).

Ainda que mais eficientes, as heurísticas anteriores estão longe de vencer o desafio da solução do
PCV em instâncias de grande porte. As heurísticas da classe Lin & Kernigham, por exemplo,
normalmente produzem soluções sub-ótimas de ótima qualidade, todavia que dificilmente podem ser
melhoradas em tempo computacional eficiente através do uso de técnicas tradicionais de busca local.
Assim, uma alternativa viável para o aperfeiçoamento dessas soluções de alto grau de atração é, por
exemplo, compor-las com outras soluções de boa qualidade alcançadas por heurísticas de alguma
outra classe. Em certos casos o procedimento híbrido daí decorrente herda uma maior possibilidade
de escape de fortes mínimos locais (Goldbarg et al, 2007).

No sentido anteriormente proposto, as metaheurísticas se revelam fontes promissoras para o projeto


de algoritmos que tanto apresentem a capacidade de diversificar as estratégias clássicas, como
consigam examinar estruturas de vizinhança diferentes daquelas geradas nos procedimentos
clássicos. O presente trabalho se contextualiza na vertente do desenvolvimento de procedimentos
metaheurísticos eficientes não associados ao uso das vizinhanças da classe Lin & Kernigham.
2. Greedy Randomized Adaptive Search Procedure - GRASP

A metaheurística GRASP pertence à classe dos procedimentos de re-início aleatório. Foi proposta
nos trabalhos de Feo & Resende (1989) e Feo & Bard (1989), consistindo em um método de solução
que envolve duas fases.

Na primeira fase um procedimento construtivo semi-guloso adaptativo produz soluções para o


problema. O aspecto semi-guloso diz respeito ao fato de que as soluções são construídas com base
em um critério híbrido. Um critério guloso é responsável por formar uma lista de variáveis
candidatas a compor a solução ou lista restrita de candidatos – LRC. Um critério estocástico escolhe,
com base nessa lista, qual variável realmente vai entrar na solução. Assim o critério guloso é
amenizado pela escolha aleatória, e a diversificação da escolha estocástica é restrita pelo critério
guloso. Como uma dada escolha pode alterar a atratividade das variáveis remanescentes, o método
caracteriza também uma dimensão adaptativa. O comprimento da LRC é, via de regra, controlado por
um parâmetro denominado α que leva em conta o possível afastamento entre a pior solução
permitida pela LRC e a solução gulosa.

Na segunda fase a solução é submetida a um processo de busca local não especificado. Concluída a
busca local, o algoritmo pode ser reiniciado gerando-se nova solução final ou terminado. Em geral a
conclusão se dá por um número fixo de iterações, por um dado número de iterações sem melhoria ou
por tempo. Um típico pseudo-código GRASP está apresentado no Quadro1.

É comum que a metaheurística GRASP seja mesclada com outras metaheurísticas, especialmente
para desenvolver a segunda fase do método (Resende & Ribeiro 2003, Goldbarg et al., 2007).

Algoritmo GRASP
S*←∞
Enquanto regra de parada for falsa faça
S ← Solução_Semi_Gulosa ()
S1 ← Busca_Local (S)
Se f(S1)<f(S*) faça S*←S1
End_Enquanto
Retornar S*
Quadro 1: Algoritmo GRASP

3. Busca em Vizinhança Variável – VNS

A metaheurística, denominada na literatura inglesa de Variable Neighborhood Search – VNS, foi


introduzida por Nenad Mladenović (Hansen & Mladenović, 1997). Ela segue na mesma linha da
idéia de Garfinkel & Nemhauser (1972) que propunha usar uma vizinhança maior para escapar de um
mínimo local associado a uma vizinhança menor. Inicialmente definida como uma forma de
expansão sistemática de uma vizinhança, a técnica evoluiu rapidamente para incorporar um processo
de alteração sistemática da estrutura de vizinhança, não exclusivamente de crescimento de uma dada
estrutura. Presentemente a VNS pode ser entendida como um método de busca que se desenvolve em
duas fases.
Na primeira fase o método emprega um procedimento de reinicio não completamente especificado
denominada shaking. Essa fase corresponde a uma etapa de diversificação da busca.

Na segunda fase, a solução obtida inicialmente é submetida a um processo de busca local segundo
vizinhanças variáveis. Para tal são selecionadas diferentes vizinhanças do problema e um método de
varredura sistemática e hierárquica é projetado para examiná-las. A busca se inicia sempre por uma
dada estrutura de vizinhança. Quando o processo de busca falha em melhorar a solução corrente, a
estrutura de vizinhança é alterada e o processo da segunda fase é reinicializado. Enquanto a primeira
vizinhança de busca for competente para melhorar a solução ela é mantida. Sempre que uma
melhoria é obtida, seja qual for sua vizinhança associada, a primeira vizinhança é novamente
chamada para dirigir a busca. Normalmente o algoritmo é interrompido quando todas as vizinhanças
se mostram incapazes de melhorar a solução. Todavia pode ser interrompido tanto por tempo ou pelo
número total de iterações.

Algoritmo VNS

Selecione vizinhanças Nk, k=1,...,kmax


S ← Solução_Inicial ()
Enquanto regra de parada for falsa faça
k ←1
Enquanto k ≤ kmax
S1 ← Shaking ( Nk(S ) )
S2 ← Busca_Local (Nk(S1) ) // ou Melhoria_Local (S1) //
Se f(S2)<f(S) faça S←S2 e k ←1
Caso contrário faça k←k+1
Fim_enquanto
Fim_enquanto
Quadro 2: Busca em Vizinhança Variável Clássica

A VNS está aberta a ser mesclada com outros métodos (Villa et al., 2006), especialmente através da
fase inicial ou Shaking. Denominando por Nk a vizinhança k do problema examinado, a
metaheurística VNS pode admitir a forma de implementação constante do Quadro 2. O quadro
ressalta a possibilidade da substituição da etapa de busca local por qualquer estratégia de melhoria de
solução - Melhoria_Local (S1).

4. Heurística Expanding Neighborhood GRASP

A conjugação das metaheurísticas GRASP e VNS foi proposta para vários problemas, entre os quais
podem ser destacados o problema do Fluxo em Redes Capacitadas (Holmqvist et al.,1997) e o
Problema Quadrático de Alocação (Pardalos et al., 1995).

Em recente trabalho Marinakis et al., (2005) propõem uma heurística híbrida para a solução do PCV,
denominada presentemente de Expanding Neighborhood GRASP (EN_GRASP) com inovações tanto
no método de construção das soluções do algoritmo como na forma de explorar as vizinhanças da
busca.

A Expanding Neighborhood GRASP emprega um método construtivo híbrido que ordena as arestas
passíveis de inclusão na solução por peso e escolhe aleatoriamente, no intervalo entre 30 e 150 das
melhores arestas, uma aresta para a inclusão. Cada saída da lista restrita de candidatos – LRC é
compensada por uma nova inclusão de aresta mantendo constante o tamanho da LRC. A aresta
escolhida para a inclusão é incorporada ao ciclo através da aplicação de uma versão modificada do
nearest merger algorithm de Kruskal (Lawler et al., 1985).

Algoritmo EN_GRASP
S*←∞
Enquanto o número de iterações for menor que h faça
S ← Solução_Semi_Gulosa ( )
S1← Busca_em_Vizinhança_Variável (S)
Se f(S1)<f(S*) faça S*←S1
End_Enquanto
Retornar S*
Busca_em_Vizinhança_Variável (S)
Seja Nk, k=1 – vizinhança 2-opt; k=2 – vizinhança 3-opt
k ←1
S1 ← S
Enquanto k ≤ 2
S1 ← Busca_Local (Nk(S1) )
Se f(S1)<f(S) faça S←S1 e k ←1
Caso contrário faça k←k+1
Fim_enquanto
Quadro 3: Algoritmo EN_GRASP

A segunda fase do método busca melhorar o ciclo obtido na primeira através de uma busca local que
compõe duas vizinhanças reconhecidamente qualitativamente eficientes: as vizinhanças 2-ótima e a
3-ótima (Lawler et al., 1985). A partir de um ciclo C, usando-se movimentos k-opt (2-opt ou 3-opt)
soluções vizinhas a C podem ser geradas pela exclusão de k arestas de C e pela reconstrução do ciclo
através da conexão de caminhos com k novas arestas. A primeira vizinhança escolhida para a busca é
a 2-ótima. A vizinhança 3-ótima é designada ao índice 2. Assim cada interação do algoritmo A
Expanding Neighborhood GRASP expande a busca local 2-opt considerando obrigatoriamente
movimentos 3-opt. O Quadro 3 resume, de uma forma geral, a estratégia da heurística Expanding
Neighborhood GRASP.

O resultado final é a melhor solução obtida em todas as iterações do algoritmo. O algoritmo executa
h=10 iterações para as instâncias de teste que são exibidas na Tabela 1. A tabela relata o afastamento
percentual entre a solução final do algoritmo e a solução ótima do caso teste e consta do trabalho de
Marinakis et al., (2005). As colunas Junger referem-se aos algoritmos testados em Junger et al.,
(1995) e que são abreviados pelas mesmas siglas.

As siglas LK referem-se a heurísticas da classe Lin-Kernighan descritas no trabalho citado. O tempo


de execução dos experimentos do algoritmo EN_GRASP não é informado, limitando-se o artigo a
avaliar o potencial da contribuição qualitativa da heurística proposta. A única informação sobre a
eficiência em tempo diz respeito ao tempo computacional consumido no exame de cada vizinhança.
Segundo os autores a busca na vizinhança 3-opt consome entre 90% e 99,8% do tempo de
processamento computacional do algoritmo. O algoritmo proposto foi implementado em Fortran 90 e
compilado com Linux VAST/ f90 em um Pentium III 667 MHz, sendo executado no sistema
operacional Suse Linux 6.3.

Instância Vértices Junger Junger Junger Junger Junger EN_GRASP


2-opt 3-opt LK1 LK2 ILK
Lin105 105 8,42 0,0 7,0 0,00 0,00 0,00
Pr107 107 3,74 2,05 1,53 0,81 0,00 0,00
Pr124 124 2,58 1,15 2,54 0,39 0,00 0,00
Pr136 136 10,71 6,14 0,55 0,78 0,38 0,00
Pr144 144 3,79 0,39 0,56 0,06 0,00 0,00
Pr152 152 2,93 1,85 0,00 0,19 0,00 0,00
Rat195 195 6,46 3,01 1,55 1,55 0,47 0,34
D198 198 3,85 6,12 0,63 1,51 0,16 0,05
Pr226 226 13,17 1,72 0,72 0,49 0,00 0,05
Gil262 262 10,62 3,07 1,18 2,44 0,55 0,29
Pr264 264 4,39 6,04 0,12 0,01 0,49 0,00
Pr299 299 10,46 4,37 1,55 1,36 0,15 0,09
Rd400 400 5,01 3,42 2,34 1,41 0,75 0,68
Pr439 439 6,52 3,61 2,73 2,68 0,38 0,17
Pcb442 442 8,74 3,01 1,41 1,94 0,90 0,33
D493 493 9,37 3,32 2,23 1,47 0,84 0,71
Rat575 575 7,93 4,46 2,48 1,68 1,03 1,32
P654 654 14,89 0,62 4,14 2,95 0,03 0,18
D657 657 7,57 3,52 3,10 1,65 0,74 1,26
Rat 783 783 9,07 4,22 1,94 1,77 0,91 1,03

Tabela 1: Resultados parciais do algoritmo Expanding Neighborhood GRASP

5. Heurística GRASP com VNS - GRASP_2-Opt_Jump

O presente trabalho propõe uma heurística baseada na composição do GRASP e VNS para a solução
do PCV, denominada GRASP_2-Opt_Jump. A estratégia geral da pesquisa ora relatada foi a de
buscar o projeto de um algoritmo eficiente na dimensão do consumo de tempo computacional e que
permitisse posteriores refinamentos qualitativos sem prejuízo dessa eficiência. Por outro lado o
projeto visou explorar o potencial da composição de estruturas de vizinhança diferentes daquelas que
utilizam as classes associadas à heurística de Lin & Kernigham. Por motivo semelhante foram
evitados procedimentos construtivos ou variantes de procedimentos construtivos reconhecidamente
eficientes.

A principal razão da proposta evitar o emprego dos procedimentos anteriormente citados, abrindo
mão de suas comprovadas vantagens, é permitir que soluções de boa qualidade e não associadas aos
mínimos locais das vizinhanças clássicas sejam alcançadas pela busca. Esse fato descortina a
possibilidade do desenvolvimento futuro de algoritmos híbridos capazes de solucionar eficientemente
instâncias do Caixeiro Viajante Simétrico de diferentes características.

Para alcançar a possibilidade de explorar estruturas de vizinhanças (o conceito de vizinhança de


busca presentemente adotado é funcional e segue a definição de Deineko & Woeginger, 2000)
complementares às estruturas clássicas anteriormente citadas, o algoritmo explora o potencial da
VNS propondo uma forma de exploração estocástica da vizinhança 2-opt, denominada 2-opt_jump.
Basicamente a idéia é substituir a exploração de uma vizinhança 2-opt completa pela exploração de k
vizinhanças associadas a distintas partições – blocos de vértices – de uma solução S de n vértices.
Cada conjunto de vértices constituirá um delimitador para a aplicação da busca 2-opt, possuindo um
comprimento de n/k vértices. A Figura 1 (b) exemplifica a determinação do ponto inicial para a
constituição dos k blocos de vértice que darão origem às k vizinhanças, considerada a solução S da
Figura 1 (a). As partições são obtidas a partir de uma cidade sorteada aleatoriamente na configuração
de n vértices, contando-se a constituição dos blocos de forma circular como exemplifica a Figura 1
(c). A vizinhança k=1 é constituída pela busca 2-opt desenvolvida exclusivamente considerando os
primeiros n/k vértices da solução S. A vizinhança k=2 é formada pela busca 2-opt aplicada sobre o
segundo bloco de n/k vértices e assim por diante. A posição dos vértices que se encontram fora de
um k-ésimo bloco delimitado é mantida inalterada durante a busca que forma a k-ésima vizinhança.
Cada vez que uma nova melhor solução é encontrada, as partições são re-organizadas pelo sorteio de
um novo ponto base para a constituição dos blocos. O sentido da contagem das cidades que formam
o bloco é arbitrado eleatoriamente.

Ponto Sorteado Cidade não incluída em qualquer bloco

3 4 2 1 6 10 8 9 7 5 3 4 2 1 6 10 8 9 7 5 3 4 2 1 6 10 8 9 7 5

1o bloco 2o bloco 3o bloco

b) Ponto inicial para


a) Solução S com n=10
constituição dos blocos de (c) Bloco final 7-5-3
vértices
busca com k=3

Figura 1: Exemplo de constituição dos blocos que darão origem às vizinhanças jump.

A busca 2-opt_Jump confunde-se com a busca 2-opt se k=1. Para k>1 a busca 2-opt-Jump é menos
intensiva que a 2-opt, considerada a aplicação sobre uma mesma solução S. Assim, para uma dada
solução S, a busca 2-opt_Jump examina menos configurações que a busca 2-opt sendo, portanto,
mais eficiente em tempo de processamento.

Supostamente abrir mão da aplicação integral da busca 2-opt é admitir um desempenho para a etapa
de busca local ainda pior que o sugerido na coluna Junger 2-opt da Tabela 1. Observe-se que esse
desempenho é bastante insatisfatório e encontra-se severamente afastado do estado-da-arte. E
acrescente-se ao fato que o citado potencial da busca 2-opt está consolidado na literatura.

Todavia quando se faz possível utilizar uma estratégia de busca iterativa, como no caso da VNS, uma
melhoria alcançada durante o processo pode ser imediatamente incorporada e explorada pela busca,
não sendo necessário aguardar que a vizinhança completa seja percorrida.

Adicionalmente a eficiência de uma heurística depende de um bom equilíbrio entre a parcela de


esforço dedicado a aprofundar a busca local, versus o esforço empenhado na diversificação das
posições de busca. No caso do algoritmo GRASP_2-opt-Jump eventuais ganhos obtidos pela
eficiência em tempo da busca local são empregados na etapa construtiva do GRASP, O exame de
novas soluções, de per si, aumenta a chance de que se alcance melhores soluções. Finalmente, a
forma estocástica de divisão do espaço de busca também auxilia no desempenho da busca local.
Com o objetivo de permitir uma melhor visão do potencial da busca local empregando a vizinhança
2-opt_Jump o procedimento construtivo da primeira fase do GRASP não utiliza qualquer estratégia
especializada para aumentar a qualidade das soluções. Por exemplo, um caminho alternativo para
obter soluções construtivas iniciais de boa qualidade seria utilizar a própria estratégia da versão
modificada do nearest merger algorithm de Kruskal proposta por Marinakis et al., (2005), uma vez
que seus autores comprovam sua eficácia. Optou-se por deixar tal melhoria como uma possibilidade
futura, utilizando-se no algoritmo exclusivamente a etapa construtiva clássica do GRASP. A
estrutura geral da heurística GRASP_2-opt_Jump é descrita no Quadro 4.

Algoritmo GRASP_2-Opt_Jump
S*←∞
Enquanto o número de iterações for menor que h Faça
S ← Solução_Semi_Gulosa ( )
S1← Busca_em_Vizinhança_Variável (S)
Se f(S1)<f(S*) faça S*←S1
End_Enquanto
Retornar S*
Busca_em_Vizinhança_Variável (S)
Seja Nk, k=1,2,..,r blocos de busca para vizinhança 2-opt;
k ←1
S1 ← S
Enquanto k ≤ r
S1 ← Busca_2-opt (Nk(S1) )
Se f(S1)<f(S) faça S←S1
constitua novos Nk, k=1,2,..,r blocos de busca
k ←1
Caso contrário faça k←k+1
Fim_enquanto
Quadro 4: Algoritmo GRASP_2-Opt_Jump

6. Experimento computacional com a heurística GRASP_2-Opt_Jump

A fim de testar o potencial da heurística GRASP_2-Opt_Jump em providenciar soluções de boa


qualidade para o problema do Caixeiro Viajante Simétrico com um tempo aceitável de
processamento, a heurística foi implementada e testada sobre o conjunto de instâncias proposto com
essa finalidade por Marinakis et al., (2005).

Complementarmente à proposta de Marinakis et al., (2005), o presente experimento relata, além dos
melhores resultados, os resultados médios alcançados por 10 execuções independentes do algoritmo,
com exceção das linhas marcadas na tabela com asterisco (*), onde o algoritmo é executado apenas
uma vez. Observe-se que o trabalho de Marinakis et al., (2005) relata a melhor solução dentre 100
execuções realizadas. Com a metodologia presentemente adotada, reduz-se a possibilidade da
atribuição do desempenho qualitativo à sorte ou ao benefício de um grande número de execuções.

O algoritmo proposto foi implementado com o Borland C++ Builder 6 e executado no sistema
Windows XP com um Pentium IV 2.0 GMHz. Na implementação adotou-se como regra de parada
100 iterações e o valor de k=5. Em nenhum caso o algoritmo é interrompido quando o valor ótimo é
alcançado. O procedimento construtivo da fase GRASP empregou uma lista restrita de candidatos
composta por arestas. O procedimento construtivo inclui uma aresta em cada iteração. A lista restrita
de arestas candidatas possui comprimento variável. A lista contém todas as arestas que incidem no
vértice da extremidade do ciclo em construção que sejam até 50% maiores que a menor aresta
incidente nessa mesma cidade. A escolha da aresta que será incluída na solução é realizada através de
um sorteio em roleta, onde a probabilidade da escolha da aresta é diretamente proporcional ao
beneficio de sua inclusão na solução.

A Tabela 2 sumariza o experimento computacional. Os valores em negrito representam os


afastamentos em relação à solução ótima que são maiores que os afastamentos relatados no
procedimento de Marinakis et al., (2005). Os demais valores são inferiores aos da heurística
EN_GRASP. A coluna tempo informa Hora:Minuto:Segundo:Centésimos.

Melhor Resultado
Valor Menor Tempo
Instância EN_GRASP Resultado Médio
Ótimo Tempo Médio
Valor Afast Valor Afast
Lin105 0,00 14379 14379 0,00 14379 0,00 00:00:00.62 00:00:01.27
Pr107 0,00 44303 44303 0,00 44303 0,00 00:00:00.70 00:00:14.50
Pr124 0,00 2323 2323 0,00 2324,7 0,07 00:00:10.51 00:11:58.55
Pr136 0,00 96772 96772 0,00 96772 0,00 00:00:08.09 00:01:50.16
Pr144 0,00 58537 58537 0,00 58537 0,00 00:00:01.75 00:00:05.59
Pr152 0,00 73682 73682 0,00 73682 0,00 00:00:02.12 00:00:24.01
Rat195 0,34 2323 2323 0,00 2325,8 0,12 00:00:31.75 00:13:19.88
D198 0,05 15780 15780 0,00 15780,4 0,00 00:02:28.12 00:14:07.66
Pr226 0,05 80369 80369 0,00 80374,2 0,01 00:05:59.53 00:14:35.67
Gil262 0,29 2378 2378 0,00 2378,3 0,01 00:00:29.82 00:25:59.93
Pr264 0,00 49135 49135 0,00 49135 0,00 00:00:51.45 00:03:24.46
Pr299 0,09 48191 48196 0,01 48211,9 0,04 00:41:34.32 00:47:42.28
Rd400 0,68 15281 15353 0,47 15353 0,47 03:24:53.96 03:24:53.96
Pr439 0,17 1072217 107257 0,04 107303,2 0,08 02:45:57.48 02:50:08.31
Pcb442 0,33 50778 50978 0,39 50978 0,39 05:46:12.75 05:46:12.75
D493 * 0,71 35002 35096 0,27 35096 0,27 08:51:31.75 08:51:31.75
Rat575* 1,32 6773 6841 0,99 6841 0,99 07:35:05.25 07:35:05.25
P654 * 0,18 34643 34732 0,26 34732 0,26 12:25:41.36 12:25:41.36
D657 * 1,26 48912 49280 0,75 49280 0,75 13:29:20.75 13:29:20.75
Rat 783* 1,03 8806 8900 1,06 8900 1,06 24:20:18.04 24:20:18.04

Tabela 1: Resultados do algoritmo GRASP_2-Opt_Jump

Observa-se que o procedimento GRASP_2-opt-Jump obtém, no conjunto de 20 instâncias proposto


por Marinakis et al., (2005), 16 resultados cuja média de desempenho é superior ao melhor resultado
do trabalho de referência e 17 instâncias em que o melhor resultado de GRASP_2-opt-Jump é
superior ao melhor resultado da heurística EN_GRASP. De fato em 11 instâncias todas as execuções
de GRASP_2-opt-Jump superam a melhor solução relatada em Marinakis et al., (2005).
As colunas de tempo são reportadas para complementar a informação do experimento, uma vez que o
trabalho de referência não relata tempos absolutos.

7. Conclusões

A obtenção de algoritmos de bom desempenho que não sejam baseados nos procedimentos clássicos
de Lin & Kernigham (Helsgaun, 2000) e de ejeção de cadeias (Applegate et al, 2003) possui um bom
potencial para contribuir nas próximas evoluções das estratégias de solução do PCV Simétrico.

Nessa linha de pesquisa e, atualmente, o procedimento de melhor desempenho qualitativo do estado-


da-arte é relatado no trabalho de Marinakis et al., (2005). Observe-se que o algoritmo citado é,
inclusive, significativamente superior a algoritmos não Lin & Kernigham mais recentes como o de
Shi et al., 2007, constituindo-se em uma boa ancoragem de benchmarking. De fato o procedimento
faz uso de outras estratégias de reconhecido bom desempenho como o nearest merger algorithm de
Kruskal e a busca 3-opt. Contudo dispensa as estratégias clássicas anteriormente citadas.

A heurística GRASP_2-opt-Jump, presentemente relatada, se enquadra na classe de algoritmos que


seguem na linha da proposta de Marinakis et al., (2005), contudo concentrando seu foco em explorar
a capacidade de diversificação oferecida pela fase construtiva do GRASP, bem como tirando partido
de uma busca estocástica eficiente do tipo VNS. Assim, o procedimento emprega exclusivamente
uma variante da vizinhança 2-opt, uma vizinhança de busca simples e, supostamente, não tão
promissora como mostra, conclusivamente, a coluna Junker 2-opt do Quadro 1.

No experimento computacional desenvolvido, a heurística GRASP_2-Opt_Jump demonstra, para o


primeiro conjunto de instâncias proposto no trabalho de Marinakis et al., (2005), um desempenho
qualitativamente superior ao do trabalho de referência.

Comparações entre os dois algoritmos centradas na eficiência em tempo ficaram prejudicadas,


principalmente, pelo artigo de referência estar focado em desenvolver a contribuição qualitativa.

Em que pese o fato anterior, o tempo de processamento demandado por GRASP_2-Opt_Jump não
sugere comportamento exponencial. Os resultados permitem sustentar que o processamento
empenhado pela heurística não é tão intensivo a ponto de tornar inviável sua composição com outras
heurísticas.

Finalmente pode-se concluir que a estratégia desenvolvida pela heurística GRASP_2-Opt_Jump é, no


conjunto de instâncias examinadas, pelo menos tão promissora quanto a proposta no trabalho de
Marinakis et al., (2005).

BIBILOGRAFIA CITADA

(1) Aarts, E.H.L, Korst J.H.M. & Laarhoven P.J.M., 1988. A Quantitative Analysis of the Simulated
Annealing Algorithm: A Case Study for the Traveling Salesman Problem, J. Stats. Phys. 50, 189-
206
(2) Applegate, D., Bixby, R., Chvátal, V. & Cook, W., 2003. Chained Lin-Kernighan for large
traveling salesman problems, Informs Journal on Computing 15(1):82-92.
(3) Applegate, D. L. Bixby, R. E., Chvátal, V. & Cook, W. J., 2006, The Traveling Salesman
Problem: A Computational Study, Princeton University Press.
(4) Applegate, D., Bixby, R., Chvátal, V. & Cook, W., 1994, Finding cuts in the TSP: a preliminary
report distributed at The Mathematical Programming Symposium, Ann Arbor, Michigan.
(5) Bai Y., Zhang, W. & Jin, W, 2006, An new self-organizing maps strategy for solving the
traveling salesman problem, Chaos, Solitons and Fractals 28(4), 1082–1089
(6) Baralia, R., Hildago, J.I. & Perego, R., 2001, A hybrid heuristic for the traveling salesman
problem,” IEEE Transactions on Evolutionary Computation 5(6), 1-41.
(7) Bland, R.G., & Shalcross, D.F., 1989, Large traveling salesman problems arising from
experiments in x-ray crystallography: A preliminary report on computation, Operations
Research Letters 8, 125-128.
(8) Boudia, M., Louly, M.A.O. & Prins, C. (2007). A reactive GRASP and path relinking for a
combined production–distribution problem, Computers & Operations Research 34, 3402-3419.
(9) Crowder, H. & Padberg, M. W., 1980. Solving large scale symmetric traveling salesman
problems to optimality, Management Science 26, 495-509.
(10) Deineko, V. G., & Woeginger, G. J. (2000). A study of exponential neighbourhoods for the
traveling salesman problem and the quadratic assignment problem. Math. Program., Ser. A, 87,
519–542.
(11) Feo, T. A., & Bard, J., 1989, Flight scheduling and maintenance base planning. Management
Science 35(12):1415–1432.
(12) Feo, T.A., & Resende, M.G.C., 1989, A probabilistic heuristic for a computationally difficult
set covering problem, Operations Research Letters 8, 67–71.
(13) Gambardella, L. M., & Dorigo, M., 1996, Solving symmetric and asymmetric TSPs by ant
colonies, in Proceedings of the 1996 IEEE International Conference on Evolutionary
Computation (ICEC'96), 622-627.
(14) Garey, M. R. & Johnson, D. S., 1979. Computers and interactability: a guide to the theory of
NP-completeness. Freeman San Francisco.
(15) Garfinkel R, & Nemhauser, G., (1972). Integer Programming, Wiley and Sons.
(16) Gharizi, H., e Osman, I. H. (2003), A neural network algorithm for the traveling salesman
problem with backhauls, Computers and Industrial Engineering 44(2), 67-281.
(17) 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, 1–75. Kluwer.
(18) Glover, F., Gutin, G., Yeo, A. & Zverovich, A., 2001, Construction heuristics for the
asymmetric TSP, European Journal of Operational Research 129, 55-568
(19) Goldbarg, E. F. G., Goldbarg, M. C. & Farias, J. P. F., 2007, Grasp with Path-Relinking for the
TSP, in Operations Research / Computer Science Interfaces 39, 137-152
(20) Gonnet, G., Korotensky, C., & Benner, S., 2000, Evaluation measures of multiple sequence
alignments, Journal of Computational Biology 7(1-2): 261-276.
(21) Gutin, G., & Punnen, A.P., 2002, Traveling Salesman Problem and Its Variations, Kluwer
Academic Publishers, Dordrecht.
(22) Guyon, R., Lorentzen, T. D., Hitte, C., Kim, L., Cadieu, E., Parker, H. G., Quignon, P., et al.,
2003, A 1-Mb resolution radiation hybrid map of the canine genome, Proceedings of the
National Academy of Sciences of the United States of America 100(9), 296-5301.
(23) Jünger, M., Reinhelt, G. & Rinaldi, G., 1995, The traveling salesman problem, in Networks
Models, Handbooks in OR and MS, M. Ball et al. (Eds.), Elsevier Science B.7, 225–330.
(24) Jünger, M., Reinelt, G. & Rinaldi, G., 1994, The Traveling Salesman Problem, in Ball,
Magnanti, Monma and Nemhauser (eds.) , Handbook on Operations Research and the
Management Sciences North Holland Press, 225-330.
(25) Hansen P., & Mladenović, N., 2001, Variable neighborhood search: Principles and applications,
European Journal of Operational Research 130, 449–467.
(26) Helsgaun, K., 2000, An effective implementation of the Lin-Kernighan traveling salesman
heuristic, European Journal of Operational Research 126,106–130.
(27) Holmqvist, K., Migdalas, A. & Pardalos, P.M., 1997, Parallelized heuristics for combinatorial
search, in Parallel Computing in Optimization, A. Migdalas, P.M. Pardalos, and S. Storøy
(Eds.), Kluwer Academic Publishers, 269–294.
(28) Katayama, K. & Sakamoto, H., 2000, The Efficiency of Hybrid Mutation Genetic Algorithm for
the Traveling Salesman Problem, in Mathematical and Computer Modelling 31, 197-203.
(29) Knox, J., 1994, Tabu Search Performance on the Symmetric Traveling Salesman Problem,
Computers & Operations Research 21(8), 867-876
(30) Korte, B. H., 1989, Applications of combinatorial cptimization, in: Mathematical
Programming: Recent Developments and Applications, M. Iri and K. Tanabe, Eds., Kluwer,
Dordrecht, 1-55.
(31) Laguna, M., & Martı, R., 1999, GRASP and path relinking for 2-layer straight line crossing
minimization. INFORMS Journal on Computing, 11, 44–52.
(32) Larrañaga, P., Kuijpers, C. M. H., Murga, R. H., Inza, I., & S. Dizdarevic, 1999, Genetic
algorithms for the travelling salesman problem: A review of representations and operators,
Articial Intelligence Review 13, 129-170.
(33) Lawler, E. L., Lenstra, J. K., Rinnooy Kan, A. G. G. &. Shmoys, D. B., 1985, eds, The
Traveling Salesman Problem, John Wiley, Chichester.
(34) Lin, S., Kernighan, B., 1973, An effective heuristic algorithm for the traveling-salesman
problem, Operations Research 21, 498-516.
(35) Marinakis, Y., Migdalas, A., & Pardalos, P. M., 2005, Expanding Neighborhood GRASP for
the Traveling Salesman Problem, (2005), Computational Optimization and Applications 32,
231–257.
(36) Meer K., 2007, Simulated Annealing versus Metropolis for a TSP instance, Information
Processing Letters 104, 216–219
(37) Pardalos, P. M., Pitsoulis, L., Mavridou, T. & Resende, M. G. C., 1995, Parallel search for
combinatorial optimization: Genetic algorithms, simulated annealing, tabu search and GRASP,
in Solving Irregular Problems in Parallel - State of the Art, A. Ferreira and J. Rolim (Eds.),
Kluwer Academic Publishers Dordrecht, 317–331.
(38) Rego, C. & Glover, F., 2002, Local search and metaheuristics, in the Traveling Salesman
Problem and Its Variations, G. Gutin and A. Punnen (Eds.), Kluwer Academic Publishers
Dordrecht, 2002, 309–367.
(39) Reinelt, G., 1994, The Traveling Salesman: Computational Solutions for TSP Applications,
Springer-Verlag, Berlin.
(40) Resende, M.G.C., & Ribeiro, C.C., 2003, Greedy randomized adaptive search procedures, in:
Handbook of Metaheuristics, Glover, F. and Kochenberger, G., Eds., Kluwer Publishers, 219-
249.
(41) Shi, X. H., Liang, Y. C., Lee, H. P., Lu, C. & Wang, Q. X. (2007). Particle swarm optimization-
based algorithms for TSP and generalized TSP, Information Processing Letters 103, 169–176
(42) TSPLIB, 2008. - http://elib.zib.de/pub/mp-testdata/tsp/tsplib/tsplib.html
(43) Villa, G., Lozano, S., Jacero, J. & Canca, D., 2006, A Hybrid VNS / Tabu Search
Algorithm for Apportioning the European Parliament, Lecture Notes in Computer
Science 3906, 284-292.
(44) Yajima, E., Hara, T., Tsukamoto, M., and Nishio, S., 2001, Scheduling and caching
Strategies for correlated data in push-based information systems, ACM SIGAPP
Applied Computing Review 9(1), 22-28.

Das könnte Ihnen auch gefallen