• Nenhum resultado encontrado

2.3 INTELIG ˆ ENCIA DO ENXAME

2.3.1 Nuvem de Part´ıculas

O algoritmo PSO -Particle Swarm Optimization, ou “Nuvem de Part´ıculas” ´e um algoritmo de busca baseado em populac¸ ˜ao que simula o comportamento social de p ´assaros num bando.

Segundo Kennedy e Eberhart (1995), o intuito inicial do algoritmo foi o de “simular graficamente a graciosa e imprevis´ıvel coreografia de um bando de p ´assaros” e segundo Engelbrecht (2007), a t ´ecnica PSO se transformou numa t ´ecnica de otimizac¸ ˜ao considerada simples e eficiente.

No PSO os indiv´ıduos da populac¸ ˜ao, tamb ´em chamados de part´ıculas, “voam” pelo hiper-espac¸o de busca, sendo que sua posic¸ ˜ao representa uma soluc¸ ˜ao. As mudanc¸as de posic¸ ˜ao das part´ıculas no espac¸o de busca s ˜ao baseadas na tend ˆencia comportamental psicossocial de indiv´ıduos de imitar o sucesso de outros indiv´ıduos. Isso significa que as mudanc¸as de uma part´ıcula na nuvem ´e influenciada pela experi ˆencia ou conhecimento de seus vizinhos.

Para Engelbrecht (2007), o PSO ´e um tipo de algoritmo cooperativo simbi ´otico e isso ocasiona o fen ˆomeno de que as part´ıculas estocasticamente retornam a regi ˜oes de “sucesso”

alcanc¸adas anteriormente por causa dessa influ ˆencia dos vizinhos (comportamento social).

Princ´ıpios Fundamentais

Segundo Engelbrecht (2007), a caracter´ıstica que guia o PSO ´e a interac¸ ˜ao social entre as part´ıculas. Os indiv´ıduos do bando aprendem dos mais pr ´oximos e, ent ˜ao, se movem para posic¸ ˜oes mais pr ´oximas aos seus melhores vizinhos. Kennedy (1999) descreve algumas topologias usadas em PSO para a interac¸ ˜ao das part´ıculas com seus vizinhos:

Topologia Estrela: cada part´ıcula pode se comunicar com todas as outras, formando uma rede social totalmente conectada, como ´e poss´ıvel ver na Figura 9(a). Uma con-sequ ˆencia dessa conectividade total ´e que todas as part´ıculas tentar ˜ao imitar a melhor do enxame. Esta topologia foi utilizada na primeira vers ˜ao do algoritmo PSO, conhecido comogbest;

Topologia Anel: cada part´ıcula se comunica com seusnvizinhos imediatos, no caso de n=2, tem-se o caso da Figura 9(b). Uma consequ ˆencia dessa topologia ´e a de que cada part´ıcula tenta se mover para perto do seu melhor vizinho. Esta vers ˜ao de topologia ´e utilizada na vers ˜ao do algoritmo PSO conhecida comolbest;

Topologia Roda: nesta estrutura os indiv´ıduos numa vizinhanc¸a s ˜ao isolados dos

in-div´ıduos numa outra vizinhanc¸a e entre si. Apenas um indiv´ıduo da vizinhanc¸a serve como ponto focal, o qual compara as posic¸ ˜oes de todas as part´ıculas a ele conectadas e ajusta sua posic¸ ˜ao em direc¸ ˜ao a melhor delas, esta topologia est ´a mostrada na Figura 9(c);

Topologia Pir ˆamide: estrutura social que tem forma de arame tri-dimensional, aparen-temente sem uma padronizac¸ ˜ao espec´ıfica, como ´e poss´ıvel ver na Figura 9(d);

(a) Estrela (b) Anel (c) Roda

(d) Pir ˆamide (e) Grupos (f) Von Neumann

FIGURA9: Topologias para o Algoritmo PSO

Topologia com Quatro Grupos: nesta estrutura, quatro grupos s ˜ao formados com duas conex ˜oes entre os grupos. As part´ıculas dentro de um grupo s ˜ao conectadas a cinco vizinhos (Figura 9(e));

Topologia de Von Neumann: nesta estrutura social as part´ıculas s ˜ao conectadas em forma de grade tri-dimensional (Figura 9(f)).

Vale observar que, em geral, o tipo de vizinhanc¸a ´e determinado com base no ´ındice

num ´erico designado a uma part´ıcula e n ˜ao em medidas geom ´etricas, como por exemplo, a posic¸ ˜ao ou a dist ˆancia euclidiana. Embora desencorajada pelo aumento exponencial do custo computacional, alguns pesquisadores propuseram vizinhanc¸as baseadas em dist ˆancia euclidi-ana, como ´e o caso de Suganthan (1999).

Modelos de Algoritmos

Um enxame consiste num conjunto de part´ıculas no qual cada part´ıcula representa uma soluc¸ ˜ao em potencial. Isso significa dizer que as part´ıculas “voam” pelo hiperespac¸o de soluc¸ ˜oes no qual a posic¸ ˜ao de cada part´ıcula muda de acordo com sua experi ˆencia e de seus vizinhos.

Sejaxi(t)a posic¸ ˜ao da part´ıculaPi no hiperespac¸o no tempot−1. Ent ˜ao, a posic¸ ˜ao de Pi

´e alterada adicionando-se uma velocidadevi(t) `a sua atual posic¸ ˜ao, ou seja,

xi(t) =xi(t−1) +vi(t). (2.18) O vetor de velocidade guia o processo de otimizac¸ ˜ao e resume a informac¸ ˜ao social trocada at ´e o momento. Em Engelbrecht (2007), Kennedy e Eberhart (1995) e Abraham, Guo e Liu (2006) ´e poss´ıvel encontrar os dois algoritmos a seguir, os quais diferem apenas na amplitude da informac¸ ˜ao social trocada entre as part´ıculas. Vale notar que estes algoritmos resumem os algoritmos PSO cl ´assicos.

Melhor Global

No algoritmo para essa vers ˜ao, mostrado na Figura 10, cada indiv´ıduo compara sua posic¸ ˜ao atual com a melhor posic¸ ˜ao encontrada dentre todas as part´ıculas do enxame (xgbest).

Isso quer dizer que a estrutura social ´e a conhecida como “estrela”. Al ´em disso, as part´ıculas tamb ´em usam informac¸ ˜oes sobre a melhor posic¸ ˜ao j ´a ocupada por elas mesmas (xpbest).

Vale salientar que o termo xpbesti−xi(t)

´e conhecido como Componente Cognitivo e, por sua vez, o termo xgbesti−xi(t)

´e conhecido como Componente Social, ambos referentes `a modificac¸ ˜ao da posic¸ ˜ao da part´ıcula.

Os coeficientesρ12s ˜ao definidos comoρ1=r1c1j2=r2c2, comr1,r2 uniformes, ou seja,r1,r2∼U(0,1), ec1,c2sendo constantes de acelerac¸ ˜ao positiva. Kennedy (1998) estudou os efeitos deρ12 na trajet ´oria das part´ıculas e afirmou que sec1+c2>4, a velocidade e a posic¸ ˜ao das part´ıculas explodem em direc¸ ˜ao ao infinito.

1. Inicialize o enxame com part´ıculas de posic¸ ˜oes aleat ´oriasxt e fac¸at=0;

2. Avalie o desempenhoFde cada part´ıcula com relac¸ ˜ao `a func¸ ˜ao objetivo utilizando sua posic¸ ˜ao atualxt;

3. Compare o desempenho de cada indiv´ıduo com seu melhor desempenho pbest at ´e o momento:

seF(xt)<pbestient ˜ao pbesti=F(xt) xpbesti=xi(t);

4. Compare o desempenho de cada indiv´ıduo com o melhor desempenho entre todas as part´ıculas at ´e o momento:

seF(xt)<gbestient ˜ao gbesti=F(xt) xgbesti=xi(t);

5. Mude o vetor de velocidade para cada part´ıcula usando:

vi(t) =vi(t−1) +ρ1· xpbesti−xi(t)

2· xgbesti−xi(t) 6. Mova cada part´ıcula para uma nova posic¸ ˜ao:

xi(t) =xi(t−1) +vi(t)et=t+1

7. Volte ao Passo 2 at ´e que ocorra converg ˆencia.

FIGURA10: Algoritmogbest - melhor indiv´ıduo

Melhor Local

Nessa vers ˜ao, mostrada na Figura 11, cada indiv´ıduo compara sua posic¸ ˜ao atual com a

melhor posic¸ ˜ao encontrada dentre seus vizinhos. Obrigatoriamente, a topologia utilizada aqui

´e a de grupos (Clusters). Al ´em disso, as part´ıculas tamb ´em usam informac¸ ˜oes sobre a melhor posic¸ ˜ao j ´a ocupada por elas mesmas.

1. Inicialize o enxame com part´ıculas de posic¸ ˜oes aleat ´oriasxt e fac¸at=0;

2. Avalie o desempenhoFde cada part´ıcula com relac¸ ˜ao `a func¸ ˜ao objetivo utilizando sua posic¸ ˜ao atualxt;

3. Compare o desempenho de cada indiv´ıduo com seu melhor desempenho pbest at ´e o momento:

seF(xt)<pbestient ˜ao pbesti=F(xt) xpbesti=xi(t);

4. Compare o desempenho de cada indiv´ıduo com o melhor desempenho entre seus vizinhos at ´e o momento:

seF(xt)<lbestient ˜ao lbesti=F(xt) xlbesti=xi(t);

5. Mude o vetor de velocidade para cada part´ıcula usando:

vi(t) =vi(t−1) +ρ1· xpbesti−xi(t)

2·(xlbesti−xi(t)) 6. Mova cada part´ıcula para uma nova posic¸ ˜ao:

xi(t) =xi(t−1) +vi(t)et=t+1

7. Volte ao Passo 2 at ´e que ocorra converg ˆencia.

FIGURA11: Algoritmolbest - melhor indiv´ıduo local

Vale salientar que o algoritmolbest ´e mais lento no quesito converg ˆencia do que o melhor global, entretanto, segundo Engelbrecht (2007), pode levar a soluc¸ ˜oes melhores, pois faz uma busca mais abrangente no hiperespac¸o de soluc¸ ˜oes. Os coeficientesρ12 t ˆem as mesmas caracter´ısticas do algoritmogbest.

Par ˆametros de um PSO

De acordo com Engelbrecht (2007), s ˜ao seis os par ˆametros a serem definidos num algo-ritmo PSO, a saber: a dimens ˜ao do problema, quantidade de indiv´ıduos, limite superior deρ, limite superior para a velocidadevi(t), tamanho da vizinhanc¸a e o peso de in ´erciaφ. Uma vez que a influ ˆencia deρ sobre a posic¸ ˜ao e a velocidade das part´ıculas j ´a foi discutida, os outros par ˆametros do PSO s ˜ao discutidos a seguir:

Velocidade M ´axima(vmax): O objetivo de se colocar um limite na velocidade das part´ıculas

´e o de evitar que estas se movam muito rapidamente de uma regi ˜ao `a outra do hiperespac¸o.

Entretanto, Clerc e Kennedy (2002) mostraram quevmax ´e desnecess ´aria se, vi(t) =κ· vi(t−1) +ρ1· xpbesti−xi(t)

2· xgbesti−xi(t)

onde

κ=1−1 ρ+

p|ρ2−4ρ| 2

comρ=ρ12>4eκ como de “coeficiente de constric¸ ˜ao”.

Tamanho da Vizinhanc¸a: Aqui, Engelbrecht (2007) faz apenas uma ponderac¸ ˜ao com relac¸ ˜ao ao tamanho da vizinhanc¸a e a velocidade da converg ˆencia. Quanto menor for a vizinhanc¸a, ocasionando aumento na quantidade de vizinhanc¸as, menos suscet´ıvel `a m´ınimos locais o PSO se torna. Entretanto, se houver uma quantidade demasiada de vizinhanc¸as a converg ˆencia se torna lenta. Por esse motivo s ´o ´e poss´ıvel definir este par ˆametro empiricamente;

Peso de In ´ercia: Melhores desempenhos podem ser alcanc¸ados aplicando-se um coe-ficiente (peso) de in ´erciaφ `a velocidade imediatamente anterior conforme a equac¸ ˜ao,

vi(t) =φ·vi(t−1) +ρ1· xpbesti−xi(t)

2· xgbesti−xi(t) .

Pesos de in ´ercia grandes fazem com que o algoritmo PSO explore mais o hiperespac¸o de soluc¸ ˜oes do que pesos de in ´erica pequenos. Geralmente, na literatura, inicia-se o PSO com um peso de in ´ercia grande (pr ´oximo de “1”) que decresce ao longo do tempo at ´e chegar pr ´oximo de “0”, ou seja,φ∈(0, 1).

Converg ˆencia e Crit ´erios de Parada

Com relac¸ ˜ao `a converg ˆencia, os dois par ˆametros mais influentes que direcionam o com-portamento do algoritmo PSO s ˜ao o peso de in ´erciaφ e as constantes de acelerac¸ ˜aoc1ec2. O trabalho de Berg (2002) mostrou que, para garantir a converg ˆencia, nos casos em que n ˜ao

´e pr ´e-fixado um limite para a velocidade, a seguinte relac¸ ˜ao deve ser satisfeita,

φ>0,5·(c1+c2)−1 (2.19)

com φ 51. Vale notar que o PSO exibe um comportamento c´ıclico ou divergente caso a Equac¸ ˜ao 2.19 n ˜ao seja satisfeita.

De acordo com Engelbrecht (2007), h ´a quatro crit ´erios de parada comumente encontrados na literatura para um PSO:

1. quando o algoritmo atingir um certo n ´umero de iterac¸ ˜oes realizadas;

2. quando a func¸ ˜ao objetivo for avaliada um certo n ´umero de vezes e/ou;

3. quando as mudanc¸as na velocidade comec¸arem a se aproximar de zero;

4. quando a part´ıcula com valor mais adequado na func¸ ˜ao objetivo n ˜ao for superada por uma certa quantidade de iterac¸ ˜oes.

E pr ´atica a utilizac¸ ˜ao de mais de um destes crit ´erios empregados no algoritmo. Os que´ mais aparecem na literatura s ˜ao “quantidade de iterac¸ ˜oes” e “quantidade de avaliac¸ ˜oes da func¸ ˜ao objetivo”, por n ˜ao dependerem de caracter´ısticas do problema para serem alcanc¸ados.

Documentos relacionados