• Nenhum resultado encontrado

Particle Swarm Optimization (PSO) ´e uma t´ecnica de computa¸c˜ao evolucion´aria desenvolvida por Kennedy e Eberhart em 1995. O PSO consiste em um m´etodo de otimiza¸c˜ao que visa simular um modelo social simplificado inspirado no comportamento da revoada de bando de p´assaros e no movimento de cardume de peixes (EBERHART; KENNEDY, 1995a).

A inten¸c˜ao inicial na concep¸c˜ao da t´ecnica era o de simular a coreografia da revoada de bandos de p´assaros e, todavia, em algum ponto do desenvolvimento do m´etodo foi obser- vado potencial de aplicabilidade do modelo como uma t´ecnica de otimiza¸c˜ao (EBERHART; KENNEDY, 1995b). A abordagem PSO ´e inicializada de forma aleat´oria, no espa¸co de busca do problema, com uma popula¸c˜ao de potenciais solu¸c˜oes denominadas part´ıculas. A cada part´ıcula ´e atribu´ıda uma velocidade tamb´em inicializada de forma aleat´oria.

Eberhart e Kennedy (1995a) apresentam duas vers˜oes de Particle Swarm Opti- mization. A primeira ´e o modelo da proposta original denominado Global (gbest) que adota o conjunto de todas as part´ıculas da popula¸c˜ao como vizinhan¸ca e a segunda ´e o modelo denominado Local (lbest) que adota subconjuntos de vizinhan¸cas de part´ıculas da popula¸c˜ao total.

Em sua vers˜ao global o PSO armazena para cada part´ıcula o registro de suas coordenadas ou posi¸c˜ao no espa¸co de busca do problema. O melhor valor, calculado em

fun¸c˜ao da posi¸c˜ao da part´ıcula no espa¸co de busca, obtido por cada part´ıcula at´e o momento recebe a denomina¸c˜ao de pbest. Outra posi¸c˜ao armazenada pelo PSO ´e o melhor valor global obtido at´e o momento por qualquer part´ıcula da popula¸c˜ao. Esse valor recebe a denomina¸c˜ao de gbest.

O modelo global da Particle Swarm Optimization segue a execu¸c˜ao das seguintes etapas:

1. Inicializar uma popula¸c˜ao P de part´ıculas com suas posi¸c˜oes pi e velocidades vi

definidas de forma aleat´oria nas dimens˜oes d no espa¸co do problema.

2. Para cada part´ıcula pi, calcule sua fun¸c˜ao de aptid˜ao (f itness) nas dimens˜oes d.

3. Compare a fun¸c˜ao de aptid˜ao da part´ıcula pi com seu valor pbesti. Se o valor da

fun¸c˜ao de aptid˜ao for melhor que pbesti, ent˜ao defina o novo valor do pbesti para

o valor atual obtido pela fun¸c˜ao de aptid˜ao, e a localiza¸c˜ao do pbesti igual a atual

localiza¸c˜ao definida nas dimens˜oes d do espa¸co.

4. Compare a fun¸c˜ao de aptid˜ao com o melhor global da popula¸c˜ao (gbest) definido. Se o valor da fun¸c˜ao de aptid˜ao for melhor do que a determinada por gbest redefina o valor de gbest para o valor obtido pela fun¸c˜ao de aptid˜ao.

5. Atualize a velocidade e a posi¸c˜ao das part´ıculas de acordo com as equa¸c˜oes (5) e (6), respectivamente:

vid= w ∗ vid+ c1∗ rand() ∗ (pbestid− xid) + c2∗ rand() ∗ (gbestd− xid). (5)

xid= xid + vid. (6)

6. Se um crit´erio de parada n˜ao for atendido, geralmente associado a um bom valor para a fun¸c˜ao de aptid˜ao ou a um n´umero m´aximo de itera¸c˜oes, o processo deve ser repetido a partir da segunda etapa.

A velocidade vid das part´ıculas nas dimens˜oes do problema s˜ao limitadas a uma

velocidade m´axima vmax definida pelo desenvolvedor:

if (vid> vmax){ vid= vmax }.

A velocidade m´axima consiste em um parˆametro importante, a defini¸c˜ao de um valor alto para vmax possibilita com que as part´ıculas explorem boas solu¸c˜oes e por outro

lado a defini¸c˜ao de um valor baixo restringem o alcance de explora¸c˜ao das part´ıculas, podendo delimitar a busca a ´otimos locais no espa¸co do problema.

As constantes de acelera¸c˜ao c1 e c2 da equa¸c˜ao 5 representam os coeficientes dos

termos de acelera¸c˜ao que direciona cada part´ıcula `as posi¸c˜oes pbest e gbest. O ajuste destas constantes altera a quantidade de tens˜ao no sistema. Em Eberhart e Yuhui (2001), os autores definem para as constante c1 e c2 o valor 2.0 para a maioria das aplica¸c˜oes

desenvolvidas.

A figura8 apresenta uma diagrama indicando o fluxo de execu¸c˜ao das principais etapas definidas anteriormente do algoritmo PSO em seu modelo global.

Inicializar população e

velocidades.

Calcular

aptidão.

Definir os guias

pBest e gbest.

Atualizar velocidade e

posição.

Critério

de

parada.

Fim.

Início.

Sim

Não

Figura 8 – Diagrama de blocos indicando o fluxo de execu¸c˜ao das principais etapas do algoritmo PSO em seu modelo global.

No modelo local de Particle Swarm Optimization, as part´ıculas tˆem a informa¸c˜ao de seu pbest e a melhor solu¸c˜ao obtida por seus vizinhos mais pr´oximos recebe a denomina¸c˜ao de lbest opondo-se nesta quest˜ao ao modelo global, o qual as part´ıculas compartilham a melhor solu¸c˜ao obtida com toda a popula¸c˜ao de part´ıculas.

2.3.1

Binary Particle Swarm Optimization

A t´ecnica Particle Swarm Optimization foi proposta para a resolu¸c˜ao de problemas de otimiza¸c˜ao que ocorrem em espa¸co de busca real. Todavia, muitos problemas de otimiza¸c˜ao s˜ao caracterizados por ocorrerem em um espa¸co de busca discreto, ou bin´ario, como por exemplo o problema de detec¸c˜ao de clusters espaciais. Diante disso, Kennedy e Eberhart (1997) desenvolveram a Binary Particle Swarm Optimization (BPSO) uma adapta¸c˜ao do PSO voltada para a aplica¸c˜ao em problemas cujo espa¸co de busca ´e discreto. Nesta vers˜ao a equa¸c˜ao (5) de atualiza¸c˜ao da velocidade ainda ´e utilizada, em que xid, pbestid, gbestd, est˜ao restritos a 0 ou 1. A velocidade nesta implementa¸c˜ao aponta a

probabilidade de o elemento da posi¸c˜ao correspondente assumir o valor 1. Na atualiza¸c˜ao da posi¸c˜ao das part´ıculas uma fun¸c˜ao sigmoide (7) ´e introduzida para converter vid para o

intervalo (0, 1).

A equa¸c˜ao (8) ´e utilizada para a atualiza¸c˜ao da posi¸c˜ao de cada part´ıcula da popula¸c˜ao: s(vid) = 1 1 + exp−vid (7) vid=    1, rand() < s(vid).

0, caso contr´ario.

(8)

Em que rand() ´e um gerador de n´umeros aleat´orios uniformes no intervalo [0.0, 1.0]. E vid a nova posi¸c˜ao assumida pela part´ıcula no espa¸co.

Documentos relacionados