Você está na página 1de 27

A Otimização

Nuvem de Partículas
(particle swarm)

Estéfane G. M. de Lacerda
Departamento de Engenharia da Computação e Automação
UFRN

20/06/2007
Índice

Introdução

Algoritmo Nuvem de Partículas

Interpretação Geométrica

Melhoramentos e Variantes
Otimização Nuvem de Partículas
I Desenvolvido pelo psicólogo social James
Kennedy e o engenheiro eletricista Russel
Eberhart em 1995;
I Inspirado no comportamento e na dinâmica
dos movimentos dos pássaros, insetos e
peixes;
I Originalmente desenvolvido para
problemas de otimização com variáveis
contínuas;
I Desempenho similar ao dos Algoritmos
Genéticos;
Otimização Nuvem de Partículas

I Estudos apontam que um bando de


passáros encontra alimento por meio de
esforço conjunto. Isto sugere que eles
compartilham informações.
Otimização Nuvem de Partículas
Otimização Nuvem de Partículas
No início as partículas “voam” aleatoriamente
pelo espaço de busca.
Otimização Nuvem de Partículas
I Vantagens
I Insensível a mudança de escala das variáveis;
I Implementação simples;
I Adaptável a computadores paralelos;
I Não requer cálculo de derivadas;
I Poucos parâmetros para serem definidos pelo
usuário;
I Bom para encontrar o mínimo global;
I Desvantagens
I Rápido para localizar a bacia de atração das
boas soluções, mas lento no ajuste fino da
solução (como nos algoritmos genéticos).
Notação
xi,1
 
 xi,2 
xi = 
 ...  , posição da partícula i (coordenadas)

xi,n
vi,1
 
 vi,2 
vi = 
 ...
 , velocidade da partícula i

vi,n

f (xi ), aptidão da partícula i


m, tamanho da população de partículas
Notação

pi pbesti (personal best)


a melhor posição encontrada pela partícula i
g gbest (global best)
a melhor posição encontrada por
todas as partículas
c1 , c2 parâmetros cognitivo e social
(também chamados de taxas de aprendizado)
w ponderação de inércia
r1j , r2j números aleatórios entre 0 e 1
Atualização de Posição e Velocidade
Atualização de velocidade na iteração k

vijk +1 = wvijk + c1 r1j (pijk − xijk ) + c2 r2j (gjk − xijk )

para i = 1, . . . , m e j = 1, . . . , n.

Atualização de posição na iteração k

xki +1 = xki + vki +1

para i = 1, . . . , m
Componentes Cognitivo e Social

I (pki − xki ) é o componente cognitivo:


representa a experiência individual da
partícula de onde a solução está.
I (gk − xki ) é o componente social:
representa a experiência da nuvem de
onde a solução está.
Algoritmo Nuvem de Partículas
inicialize a nuvem de partículas
repita
para i = 1 até m
se f (xi ) < f (pi ) então
pi = xi
se f (xi ) < f (g) então
g = xi
fim se
fim se
para j = 1 até n
r1 = rand() , r2 = rand()
vij = wvij + c1 r1 (pi − xij ) + c2 r2 (gj − xij )
fim para
xi = xi + vi
fim para
até satisfazer o critério de parada
Alguns Detalhes de Implementação

I Limites superior e inferior.


I xij ∈ [xmin , xmax ]. Caso xij saia deste intervalo
fazer xij = xmin ou xij = xmax (conforme o caso).
Fazer também vij = 0;
I Velocidade máxima.
I −vmax ≤ vij ≤ vmax .
I Em geral, não é necessário armazenar g
no computador, basta armazenar o índice i
tal que pi = g.
Interpretação Geométrica
Interpretação Geométrica
Diversificação e Intensificação

Nuvem de partículas fornece um mecanismo


bem balanceado entre diversificação e
intensificação:

vijk +1 = wvijk + c1 r1j (pijk − xijk ) + c2 r2j (gjk − xijk )


|{z} | {z }
diversificação intensificação
Melhoramentos e Variantes

I Redução linear da ponderação de inércia;


I Fator de constrição;
I Modelos com Vizinhanças.
Redução Linear da Ponderação de
Inércia
A cada iteração k a ponderação é reduzida:
 
k +1 wmax − wmin
w = wmax − k
kmax

onde kmax é o número máximo de iterações.

Shi e Eberhart (1998) relataram que

wmax = 0, 9
wmin = 0, 4
c1 = c2 = 2

deu bons resultados em uma variedade de problemas.


Fator de Constrição

I Fator de Constrição foi introduzido por


Clerc e Kennedy (2002).
I Tornou-se muito popular nos algoritmos
recentes de nuvem de partícula.
Fator de Constrição
Atualização de velocidade:

vijk +1 = χ vijk + c1 r1j (pijk − xijk ) + c2 r2j (gjk − xijk )


 


χ= p
|2 − ϕ − ϕ2 − 4ϕ|

onde χ é o fator de constrição, ϕ = c1 + c2 ,


ϕ > 4.
Valores usuais, κ = 1, ϕ = 4, 1 ⇒ χ = 0, 73.
c1 = c2 = 2, 05.
Modelos com Vizinhanças

I A cada partícula é atribuído uma


vizinhança;
I As vizinhanças tornam mais lento a
transmissão da melhor posição atráves da
nuvem;
I Converge mais lentamente, mas melhora a
diversificação.
Modelos com Vizinhanças
I Na nuvem de partícula, a vizinhança é
social, ou seja, não é baseada na
proximidade geográfica.
Modelos com Vizinhanças

I li é o local best (lbesti ) e representa a


melhor posição encontrada na vizinhança
da partícula i;
I Substitua g (gbest) por li (lbesti ), ou seja,

vijk +1 = wvijk + c1 r1 (pijk − xijk ) + c2 r2 (lik − xijk )


Vizinhanças Soprepostas

I A nuvem é dividida em vizinhanças


soprepostas.
I Exemplo: se há 8 partículas a,b,c,d,e,f,g,h
e o tamanho da vizinhança é 2 então as
vizinhanças são:
(h,a,b) - (a,b,c) - (b,c,d) - (c,d,e)
(d,e,f) - (e,f,g) - (f,g,h) - (g,h,a)
Vizinhanças Soprepostas

Se o tamanho da vizinhança é dois, então


partículas são arranjadas na forma de um anel.
O Conceito de Vizinhança em Nuvem
de Partículas

I Este conceito de vizinhança nada tem


haver com a idéia de “proximidade” no
espaço de busca;
I De fato, vizinhos podem estar bem
distantes um do outro no espaço de busca.
Outras Topologias de Vizinhanças

Estrela Grade

Você também pode gostar