Você está na página 1de 9

Otimizao discreta por nuvem de partculas aplicada ao problema do caixeiro viajante

Dario Jos Aloise (UFRN) dario@dimap.ufrn.br Marilyn Cristine Serafim de Oliveira (UFRN) marilyn@ppgsc.ufrn.br Thales Lima Silva (UFRN) thales@engcomp.ufrn.br

Resumo: Particle Swarm Optimization (PSO) ou Otimizao por Nuvem de Partculas uma metaheurstica que surgiu da inteno de simular o comportamento de um conjunto de pssaros em vo, com seu movimento localmente aleatrio, mas globalmente determinado. Esta tcnica tem sido muito utilizada na resoluo de problemas contnuos no-lineares e pouco explorada em problemas discretos. Este artigo apresenta o funcionamento desta metaheurstica, com novas adaptaes, para sua aplicao em problemas de otimizao discreta. Ao final, so apresentados resultados de experimentos computacionais para algumas instncias do problema do caixeiro- viajante, disponibilizadas na TSPLIB, a fim de demonstrar a eficincia do mtodo na resoluo de problemas desta categoria. Palavras-chave: Nuvem de Partculas, Otimizao Global, Otimizao Combinatria. Abstract: Particle Swarm Optimization (PSO) is a metaheuristic that originated from the intention to simulate the behavior of a flock of birds in locally random, but globally determined movement. This technique has been widely used in the resolution of non-linear continuous problems and is still not explored enough for the resolution of discrete problems. This paper presents the performance of this metaheuristic with new adaptations for its application to discrete optimization problems. Results of computational experiments are presented for some instances of the travelling salesman problem chosen in the TSPLIB, to demonstrate the efficiency of the adapted method in the resolution of problems of this category. Keywords: Particle Swarm Optimization; Global Optimization; Combinatorial Optimization.

Recebido em : 00/00/06 Aprovado em : 00/00/06

Otimizao discreta por nuvem de partculas aplicada ao problema do caixeiro viajante

1. INTRODUO
XII SIMPEP Simpsio de Engenharia de Produo
As tcnicas de computao evolucionria (programao evolucionria (FOGEL, 1994), algoritmos genticos (GOLDBERG, 1989), estratgias evolucionrias (KOZA, 1992) e programao gentica (RECHEMBERG, 1994) so motivadas pela evoluo da natureza. Uma populao de indivduos, os quais representam as possveis solues para o problema, so manipulados, de acordo com as regras de sobrevivncia, que melhor se adaptam aos operadores genticos, tais como mutao, cruzamento e reproduo. A melhor soluo evolui atravs das geraes. Essas tcnicas tm sido aplicadas com sucesso em muitas reas do conhecimento e, mais especificamente, em problemas de Otimizao. Baseando-se nas tcnicas evolucionrias, Eberhart e Kennedy desenvolveram um algoritmo diferente, denominado de Particle Swarm Optimization (PSO) ou Otimizao por Nuvem de Partculas, inspirado na simulao do comportamento social de um bando de pssaros em revoada, com movimento localmente aleatrio, mas globalmente determinado (EBERHART et al.,1996; EBERHART, KENNEDY, 1995; KENNEDY, 1997). No PSO, assim como em outros algoritmos, existe uma populao de indivduos, chamados de nuvem (ou enxame) de partculas, que em vez de utilizar operadores genticos, evoluem atravs da cooperao e competio, entre si, por diversas geraes. As partculas se beneficiam de sua prpria experincia e da experincia de outros membros do enxame durante a busca de uma melhor fitness (alvo: comida, local para pouso, proteo de predadores, etc).

2. ESTRUTURA DO ALGORITMO
Em sua verso original, o PSO muito similar a algumas tcnicas da computao evolucionria, como os algoritmos genticos (GA), onde o sistema inicializado com uma populao de solues randmicas. Entretanto, difere dessas outras tcnicas populacionais, pois nenhum operador inspirado pelos procedimentos de DNA, aplicado na populao, para obter uma nova gerao de indivduos. Em vez de mutao, so utilizadas partculas, movendo-se em um espao de busca n-dimensional, sendo cada uma delas uma soluo potencial para o problema. Cada partcula possui tambm uma velocidade randmica, para que possa percorrer o espao de solues do problema. A i-sima partcula representada por: Xi = (Xi1, Xi2,, Xid) (1)

A melhor posio prvia, ou seja, a posio que d o melhor valor de aptido da i-sima partcula, registrada e representada por: Pi = (Pi1, Pi2,, Pid) (2)

O ndice da melhor partcula entre todas as partculas na populao, representado pelo smbolo g. A taxa da mudana de posio, que chamada de velocidade, para partcula i, representada definida por Vi = (Vi1, Vi2,, Vid) (3)

A movimentao de cada partcula baseada em trs parmetros: fator de sociabilidade que determina a atrao das partculas para a melhor posio descoberta por qualquer elemento do enxame; fator de individualidade que determina a atrao da partcula com sua melhor posio e a velocidade mxima, que delimita o movimento, uma vez que esse direcional e determinado. As partculas so ento manipuladas de acordo com as seguintes equaes:

88

Otimizao discreta por nuvem de partculas aplicada ao problema do caixeiro viajante

Vid = W* Vid + c1 * rand(.) * (PidXid) + c2 * Rand(.) * (Pgd Xid) Xid = Xid + Vid

(4) (5)

Onde: c1 e c2: so duas constantes positivas que correspondem s componentes cognitivas e sociais. rand(.) e Rand(.) - so duas funes aleatrias no intervalo [0,1]. W: o fator de inrcia que determina a diversificao ou intensificao das partculas. A Equao (4) usada para calcular a nova velocidade da partcula, de acordo com sua velocidade anterior e as distncias entre sua posio atual, sua melhor posio, e a melhor posio do grupo. A partir da, a partcula voa para uma nova posio de acordo com a equao (5). O desempenho de cada partcula medido de acordo com uma funo de aptido pr-definida que relacionada ao problema a ser resolvido. O fator de inrcia W empregado para controlar o impacto da velocidade anterior na velocidade atual, influenciando assim, as habilidades de explorao global e local, das partculas. Um fator de inrcia maior facilita explorao global, ou seja, a procura por novas reas dentro do espao, enquanto um fator de inrcia menor tende a facilitar explorao local para refinar a rea de procura atual. A seleo satisfatria do fator de inrcia W pode prover um equilbrio entre habilidades de explorao global e local, podendo dessa forma requerer menos repeties, em mdia, para encontrar o valor timo. Cada partcula mantm o rastro de suas coordenadas no espao-problema, que esto associadas melhor soluo (fitness) que ela tenha encontrado at ento. O valor do fitness tambm armazenado. Esse valor chamado pbest. Outro valor que rastreado pela verso global do Particle Swarm Optimization o melhor sobre todos os valores, e sua posio, obtido por qualquer partcula na populao. Esse valor chamado de gbest. O conceito do PSO consiste a cada passo, em mudana de velocidade (acelerao) as partculas alcancem suas posies de pbest e gbest. O processo original para implementao da verso global do PSO realizado de acordo com a Figura 1:

Passo 0 (Definio das variveis): P o tamanho da populao do PSO. PSO[i] a posio da i-sima partcula da populao do PSO, que representa uma soluo candidata para o problema. fitness[i] o custo da funo da i-sima partcula. V[i] a velocidade da partcula. Gbest um ndice para a melhor posio global. Pbest[i] a posio de melhor localizao da i-sima partcula. Pbest_fitness[i] o melhor fitness local visitado pela i-sima partcula. Passo 1 (Inicializao): Para cada partcula i na populao: Passo 1.1: Inicialize o PSO[i] randomicamente. Passo 1.2: Inicialize V[i] randomicamente. Passo 1.3: Avalie o fitness[i]. Passo 1.4: Inicialize Gbest. Passo 1.5: Inicialize Pbest[i] com uma cpia de PSO[i] i P.

GEPROS Ano 1, n 2, abr/2006, p. 87-95


89

Otimizao discreta por nuvem de partculas aplicada ao problema do caixeiro viajante

XII SIMPEP Simpsio de Engenharia de Produo

Passo 2: Repita at que um critrio de parada seja satisfeito Passo 2.1: Encontre o Gbest tal que fitness[Gbest] fitness[i] i P. Passo 2.2: Para cada partcula i: Pbest[i] = PSO[i] se fitness[i] > Pbest_fitness[i] i P. Passo 2.3: Para cada particular i: Atualize V[i] e PSO[i] de acordo com as equaes 1 e 2. Passo 2.4: Avalie o fitness[i] i P FIGURA 1 Algoritmo PSO Clssico O funcionamento do algoritmo resume-se em: 1. Inicializao de uma populao de partculas com posies e velocidades aleatrias em um espao de busca d-dimensional. 2. Para cada partcula, avalia-se a funo de fitness encontrado e a otimizao desejada em d variveis. 3. Compara-se o fitness e o pbest da partcula. Se o valor atual for melhor que o pbest ento, o valor do pbest substitudo pelo valor do fitness encontrado, e a posio do pbest pela posio atual no espao d-dimensional. 4. O valor do fitness comparado com os melhores valores encontrados em toda a populao. Se o valor atual for melhor que o gbest, ento o gbest modificado para o ndice e valor da partcula atual. 5. Modifica-se ento a velocidade e posio da partcula de acordo com as equaes (4) e (5) respectivamente. 6. Executa-se um loop para o passo 2 at que um critrio seja encontrado: normalmente, um fIbom o suficiente ou um nmero mximo de iteraes pr-estabelecido.

3. PSO DISCRETO
As modificaes propostas para o PSO discreto podem ser ditas de certa forma, elegantes, pois elas preservaram toda a estrutura do algoritmo PSO original e, alm disso, inseriu o PSO discreto em uma nova classe de problemas. As mudanas sugeridas foram: Os vetores de posio atual e melhor posio foram substitudos por valores discretos, e o vetor velocidade, por probabilidades onde um valor discreto em particular, modificar uma determinada iterao.

3.1. POPULAO INICIAL


As partculas no PSO discreto so representadas atravs de arestas/ns, sendo cada um destes elementos uma dimenso, representadas em um vetor posio.

3.2. OPERADORES DISCRETOS


3.2.1. Velocidade
No espao discreto, a velocidade no mais somente um nmero. Ela deve ser um operador que, quando aplicado a uma posio, d outra posio. Sendo assim, a velocidade definida como uma lista de 90

Otimizao discreta por nuvem de partculas aplicada ao problema do caixeiro viajante

N transposies: velocidade = {(i1,j1),(i2,j2), ... (iN,jN)}, que significa a troca dos vrtices de ndices i1 e j1, i2 e j2, etc. at a troca dos vrtices iN e jN. A velocidade pode ser dita equivalente, ou seja, velocidade v1 = v2, se ns aplicarmos v1 ou v2 em uma posio e obtivermos o mesmo resultado. Uma velocidade nula uma lista vazia, . |v| denota o tamanho da velocidade v, que igual ao nmero de transposies em v.

3.2.2. Movimentao (Posio + Velocidade)


Seja P uma posio e v uma velocidade, logo, P ser uma nova posio, onde P = P + v, onde devem ser aplicadas todas as transposies pertencentes a v. Por exemplo, seja P=[2,3,4,5,1], v = {(1,2), (2,4)}, a operao realizada da seguinte forma: Aplique a transposio (1,2), ou seja, troque o contedo da 1 clula e da 2 clula em P, onde teremos P1=[3,2,4,5,1]. Em seguida, aplique a transposio (2,4), ficando P2=[3,5,4,2,1]. Como a ltima transposio foi alcanada, uma nova posio P obtida: P=P2=[3,5,4,2,1].

3.2.3. Obteno da Velocidade (Posio Posio)


Sejam P1 e P2 duas posies. A diferena P1-P2 definida como sendo a velocidade v, onde o sinal de possui um novo significado. Atravs dessa diferena, obteremos a lista de transposies, resultando na seguinte equao: P2 = P1 + v. Como podemos verificar no exemplo logo abaixo: Exemplo: Dadas duas posies P1= [1 2 3 4 5] e P2= [2 3 1 5 4]: P1[1] = P2[3] = 1, logo a primeira transposio ser (1,3), ento teremos um P2=P2 + S(1,3). Portanto, P2 = [1 3 2 5 4] P1[2] = P2[3] = 2, logo a segunda transposio ser (2,3), ento teremos P2= P2 + S(2,3). Portanto, P2 = [1 2 3 5 4] Seguindo na seqncia, o terceiro operador ser (4,5), logo teremos a lista de transposio (v), que ser igual a P1 P2 = {(S(1,3), S(2,3), S(4,5))}.

3.3. ADIO ENTRE VELOCIDADES (VELOCIDADE - VELOCIDADE)


A adio entre duas velocidades consiste na concatenao de listas de transposies. Resultando uma nova lista.

3.4. MULTIPLICAO (COEFICIENTE * VELOCIDADE)


Seja c um coeficiente e v uma velocidade. Ento so possveis quatro casos, dependendo do valor de c: i) ii) iii) iv) c = 0, teremos c*v = ; c [0,1], truncamos v por (1-c) *|v|; c > 1, aplicamos v, c vezes para a parte inteira e aplicamos (ii) para a parte fracionria; c < 0, no definido pra este tipo de implementao.

GEPROS Ano 1, n 2, abr/2006, p. 87-95


91

Otimizao discreta por nuvem de partculas aplicada ao problema do caixeiro viajante

4. APLICAO AO PROBLEMA DO CAIXEIRO VIAJANTE


XII SIMPEP Simpsio de Engenharia de Produo
O Problema do Caixeiro-Viajante (PCV) descrito por um conjunto de n cidades e uma matriz de distncia entre elas, tendo o seguinte objetivo: o caixeiro-viajante deve sair de uma cidade chamada origem, visitar cada uma das n - 1 cidades restantes, apenas uma nica vez e retornar cidade origem percorrendo a menor distncia possvel. Em outras palavras, deve ser encontrada uma rota fechada (ciclo hamiltoniano) de comprimento (ou custo) mnimo que passe exatamente uma nica vez por cada cidade (LAPORTE, MARTELLO, 1990), (LAWER et al., 1985). A ordem da visita das cidades pode ser escolhida pelo caixeiro. Entretanto, caso o caixeiro deseje economizar tempo e energia, ele dever procurar o menor caminho de forma que todas as cidades sejam visitadas uma nica vez e ento retornar sua cidade de origem.

FIGURA 2 Possvel representao para o Problema do Caixeiro Viajante. O algoritmo PSO Discreto, em sua verso clssica, no apresentou resultados satisfatrios para o Problema do Caixeiro viajante, ento, neste trabalho, foram desenvolvidas e implementadas outras estratgias para melhorar os resultados obtidos. A 1 estratgia experimentada foi incrementar o PSO clssico com a insero de uma busca local, evitando assim, que as partculas cassem em timos locais e ali permanecessem at o final da execuo. O procedimento para realizao da busca local foi o First Improvement. Alm da busca local, foi inserido tambm, na 1 estratgia o conceito de vizinhana por bairros. As partculas foram agrupadas de 10 em 10 elementos, chamados de bairros. Esses bairros se comunicam, atravs de pontos de interseo, onde uma determinada partcula pode pertencer a vrios bairros ao mesmo tempo. Em cada bairro, eleita uma partcula de melhor posio e essas melhores partculas, devido aos pontos de interseo, se comunicam, passando suas posies para as outras partculas dos outros bairros. A 2 estratgia desenvolvida foi a diviso das partculas em bairros separados, sem pontos de interseco. Neste procedimento, selecionada a melhor partcula de cada bairro (populao) e a estas partculas so permitidas 100 execues do algoritmo, separadamente de seus bairros, para que elas possam melhorar os resultados encontrados. Aps isso, cada partcula volta para seu bairro de origem, passando as outras o melhor resultado encontrado que passa a ser o gbest. O procedimento de busca local foi mantido na 2 e na 3 estratgia. Na 3 estratgia foi mantida a estrutura de bairros separados da estratgia 2, sendo adicionada a ela algumas partculas soltas. Estas partculas no tero sua orientao baseada nos vetores de melhor posio da partcula e melhor posio global; ao invs disso, o vetor com a melhor posio da partcula substitudo por um vetor de posies aleatrias, que levam a partcula em direo ao gbest, de forma indireta. O principal objetivo aqui fazer com que as partculas no caiam em timos locais, alm de permitir uma maior variabilidade s posies das partculas.

92

Otimizao discreta por nuvem de partculas aplicada ao problema do caixeiro viajante

5. RESULTADOS COMPUTACIONAIS
Os testes foram realizados com 10 instncias da TSPLIB, para problemas simtricos e assimtricos. O tempo de execuo variou de 0.5 a 30 minutos ,no pior caso. Os piores e os melhores resultados obtidos, assim como a mdia das execues, podem ser visualizados nas tabelas 1,2 e 3. TABELA 1 Comparao, entre diferentes abordagens para o problema, das piores solues obtidas. Estratgia / Instncia br17 ftv35 swiss42 p43 brasil58 ftv70 kro124 ftv170 rbg323 rbg403 PSO Clssico 53 3554 3640 11710 109109 8232 119486 19587 5863 7378 Estratgia 1 (Bairros Ligados e Busca Local) 49 1835 1604 6597 33983 3227 57366 7113 1644 3010 Estratgia 2 Estratgia 3 (Bairros Separados (Bairros Separados e Busca Local) e Partculas Soltas) 39 1844 1548 5670 32615 3153 55601 6960 1624 2876 39 1826 1581 5681 34290 3199 57904 7117 1631 2691 timo 39 1473 1273 5620 23395 1950 36230 2755 1326 2465

TABELA 2 Comparao entre diferentes abordagens para o problema, das melhores solues obtidas. Estratgia / Instncia br17 ftv35 swiss42 p43 brasil58 ftv70 kro124 ftv170 rbg323 rbg403 PSO Clssico 53 3253.5 3307.6 6429.5 90636.2 7813.0 112087 17403.8 5715.5 7146.6 Estratgia 1 (Bairros Ligados e Busca Local) 44.3 1710.3 1455.4 5667.3 30291.3 2822.1 52940.5 6623.0 1581.1 2945.7 Estratgia 2 Estratgia 1 (Bairros Separados (Bairros Separados e Busca Local) e Partculas Soltas) 39.0 1657.4 1417.0 5641.6 29352.0 2874.7 50716.4 6355.4 1564.2 2762.0 39.039 1685.8 1422.7 5647.5 29764.5 2873.4 51029.6 6408.6 1579.9 2636.2 timo 39 1473 1273 5620 23395 1950 36230 2755 1326 2465

GEPROS Ano 1, n 2, abr/2006, p. 87-95


93

Otimizao discreta por nuvem de partculas aplicada ao problema do caixeiro viajante

TABELA 3 Comparao entre as mdias das solues obtidas das diferentes abordagens.

XII SIMPEP Simpsio de Engenharia de Produo

Estratgia / Instncia br17 ftv35 swiss42 p43 brasil58 ftv70 kro124 ftv170 rbg323 rbg403

PSO Clssico 41 3099 3106 6118 84872 7431 105832 16580 5641 7031

Estratgia 1 (Bairros Ligados e Busca Local) 39 1644 1374 5655 30270 2797 50034 6267 1549 2733

Estratgia 1 Estratgia 1 (Bairros Separados (Bairros Separados e Busca Local) e Partculas Soltas) 39 1542 1284 5624 27551 2730 48385 5995 1517 2692 39 1606 1372 5637 27387 2665 49089 5960 1549 2617

timo 39 1473 1273 5620 23395 1950 36230 2755 1326 2465

6. CONCLUSES
O PSO pertence a uma classe de algoritmos, baseado na natureza, que tem apresentado bons resultados em Problemas Contnuos de Otimizao Combinatria, mas ainda pouco utilizado em problemas discretos. Neste artigo, foram apresentadas algumas estratgias na Otimizao Discreta por Nuvem de Partculas (PSO) aplicada ao Problema do Caixeiro-Viajante, onde demonstrou ser bastante eficiente na busca de bons resultados. Ainda h muito a ser estudado sobre o PSO Discreto. As tcnicas de busca local utilizadas neste trabalho, apresentaram resultados satisfatrios, porm, em alguns testes, o tempo de execuo ficou um pouco elevado (30 min), o que pode inviabilizar a sua aplicao a instncias muito grandes do problema. A implementao de tcnicas que possibilitem resultados satisfatrios, em um tempo de execuo vivel para instncias maiores do Problema do Caixeiro-Viajante, so as prioridades para continuidade da pesquisa. Esta idia, dentre outras, est alm deste artigo, mas so reas que esto sendo exploradas.

7. REFERNCIAS BIBLIOGRFICAS
EBERHART, R. C., KENNEDY, J. A., New Optimmizer Using Particles Swarm Theory. Proc. Sixth International Symposium on Micro Machine and Human Science. IEEE Service Center, Piscataway, NJ, 39-43, Nagoya, Japan, 1995. EBERHART, R. C. Computational Intelligence PC Tools. Boston: Academic Press, 1996. FOGEL, L. J. Evolutionary Programming in Perspective: the Top-down View. In Computational Intelligence: Imitating Life. J. M. ZURADA, R. J. Marks II, and C.J. Robinson, Eds., IEEE Press, Piscataway, NJ, 1994. GOLDBERG, D. E. Genetic Algorithms in Search, Optimization, and Machine Learning. Reading MA: Addison-Welsey, 1989. 94

Otimizao discreta por nuvem de partculas aplicada ao problema do caixeiro viajante

KENNEDY, J. The Particle Swarm: Social Adaptation of Knowledge, Proc. IEEE International Conference on Evolutionary Computation, IEEE Service Center, Piscataway, NJ, 303-308, Indianapolis, Indiana, 1997. KENNEDY, J., EBERHART, R.C. Particle Swarm Optimization. Proc. IEEE International Conference on Neural Networks, IEEE Service Center, Piscataway, NJ, IV: 1942-1948, Perth, Australia, 1995. KOZA, J.R. Genetic Programming: On the Programming of Computers by Means of Natural Selection. Cambridge, MA: MIT Press, 1992. LAPORTE, G. & MARTELLO, S. (1990). The selective traveling salesman problem. Discrete Applied Mathematics, 26, 193-207. LAWER, E.L.; LENSTRA, J.K; RINOOY KAN; A.H.G., SHMOYS, D.B. The Traveling Salesman Problem. John Wiley and Sons, Chichester, 1985. RECHEMBERG, I. Evolution Strategy. In Computational Intelligence: Imitating Life. J. M. Zurada, R.J. Marks II, and C. Robinson, Eds., IEEE Press, Piscataway, NJ, 1994.

GEPROS Ano 1, n 2, abr/2006, p. 87-95


95

Você também pode gostar