Documente Academic
Documente Profesional
Documente Cultură
\
|
+
+
=
|
|
.
|
\
|
=
global
melhor
k
global
melhor
k
i
k
i
k
i
k
y y
x x
Y
X
1
1
) (
) (
) (
) (
) (
X onde e so dois nmeros aleatrios [0,1].
melhor
k
x
melhor
x
O tringulo sombreado na figura acima representa a regio no plano xy de todos os
4
pontos
) (i
k
X .
Considerando o movimento de cada partcula anlogo ao do movimento do sistema
mecnico carrinho+mola+amortecedor resulta no balano de foras (em forma adimensional!):
Na direo x:
( ) ( )
( ) | |
) (
2
2
2
i
k
k
k
k
k
X t x K
dt
t dx
dt
t x d
=
e na direo y:
( ) ( )
( ) | |
) (
2
2
2
i
k
k
k
k
k
Y t y K
dt
t dy
dt
t y d
=
estas duas equaes diferenciais so resolvidas no intervalo de tempo (tempo artificial
adimensional, que na realidade mede, em sua forma discreta, as iteraes do processo) :
( )
1
1
+
= + < =
i i
t t i t t i t . No incio do intervalo se tem: ( ) ( )
) ( ) (
;
i
k
i k
i
k
i k
y t y x t x = = ;
( ) ( )
) ( ) (
e
i
k
t
k i
k
t
k
i i
dt
t dy
dt
t dx
= = (que so os dois componentes do vetor velocidade da partcula
no incio do intervalo). Os parmetros
k
e
k
so dois nmeros aleatrios (adimensionais!) [0,1]
e a constante K um valor qualquer (escolhido pelo usurio) 1.
Reescrevendo as duas equaes diferenciais em termos dos dois componentes do vetor
velocidade resulta no sistema de equaes diferenciais de primeira ordem:
( )
( ) ( ) | |
( )
( )
( )
( ) ( ) | |
( )
( )
=
=
=
=
t
dt
t dy
Y t y K t
dt
t d
t
dt
t dx
X t x K t
dt
t d
k
k
i
k
k k k
k
k
k
i
k
k k k
k
) (
) (
2
2
Resolvendo numericamente estas equaes pelo mtodo de Euler explcito, resulta no final
do intervalo:
( ) ( ) ( )
| |
( ) ( )
( ) ( ) ( )
| |
( ) ( )
+ =
=
+ =
=
+
+
+
+
i
k
i
k
i
k
i
k
i
k
i
k
k
i
k
i
k
i
k
i
k
i
k
i
k
i
k
i
k
k
i
k
i
k
t y y
Y y t K t
t x x
X x t K t
) ( 1
) ( ) ( 1
) ( 1
) ( ) ( 1
2
2
Definindo as variveis : = t V
x
e = t V
y
resulta:
5
( ) ( ) ( )
| |
( ) ( )
( ) ( ) ( )
| |
( ) ( )
+ =
=
+ =
=
+
+
+
i
k y
i
k
i
k
i
k
i
k
i
k y
k
i
k y
i
k y
i
k x
i
k
i
k
i
k
i
k
i
k x
k
i
k x
i
k x
V y y
Y y t K V t V V
V x x
X x t K V t V V
,
) ( 1
) ( ) ( 2
, , ,
,
) ( 1
) ( ) ( 2
, ,
1
,
2
2
Agrupando os parmetros das expresses acima chega-se forma iterativa do mtodo
conforme sugerida por Eberhart & Kennedy (1995)
1
:
( ) ( ) ( )
| | | |
( ) ( )
( ) ( ) ( )
| | | |
( ) ( )
+ =
+ + =
+ =
+ + =
+ +
+
+ +
+
1
,
) ( 1
) (
2
) (
1
,
1
,
1
,
) ( 1
) (
2
) (
1
,
1
,
i
k y
i
k
i
k
i
k
global
i
k
melhor
k
i
k y
i i
k y
i
k x
i
k
i
k
i
k
global
i
k
melhor
k
i
k x
i i
k x
V y y
y y c y y c V V
V x x
x x c x x c V V
para i = 0 , 1, ..., m-1; sugere-se adotar a ponderao
(i)
decrescente com i de forma linear segundo
a expresso: ( )
|
.
|
\
|
+ =
1
) (
m
i
inicial final inicial
i
com
final
<
inicial
; as constantes c
1
e c
2
so valores reais positivos escolhidos pelo usurio e os parmetros , , e so valores
randmicos ou aleatrios sorteados em cada passo do processo iterativo. As posies e velocidades
iniciais das partculas podem ser definidas pelo usurio ou ento geradas aleatoriamente pelo
computador.
Uma forma alternativa do procedimento recursivo pode tambm ser obtida (sendo
referenciada a partir deste instante como algoritmo modificado de enxame de partculas,
abreviadamente PSO-modificado, em contraposio ao de Eberhart & Kennedy denominado de
PSO-clssico) atravs da soluo analtica, em cada intervalo de tempo, do sistema original de
EDOs:
( ) ( )
( ) | |
( ) ( )
( ) | |
= + +
= + +
0 2
0 2
) (
2
2
) (
2
2
i
k
k
k
k
k
i
k
k
k
k
k
Y t y K
dt
t dy
dt
t y d
X t x K
dt
t dx
dt
t x d
congelando os valores de
) (i
k
X e
) (i
k
Y em seus valores no incio do intervalo, sorteando os valores
de
k
e
k
apenas uma vez em t
i
e resolvendo o sistema com as condies iniciais:
1
Note que na discretizao das equaes diferenciais o procedimento de integrao da posio o Euler implcito
enquanto que o das velocidades o Euler explcito!
6
( ) ( )
) ( ) (
;
i
k
i k
i
k
i k
y t y x t x = = ;
( ) ( )
) ( ) (
e
i
k
t
k i
k
t
k
i i
dt
t dy
dt
t dx
= = , resulta:
( )
( ) ( ) ( ) ( )
( )
| |
( )
( )
( )
( )
( ) ( ) ( )
( )
| |
( )
( )
( ) ( ) ( ) ( )
( )
| |
( )
( )
( )
( )
( ) ( ) ( )
( )
| |
( )
)
`
+ + =
)
`
+ + + =
)
`
+ + =
)
`
+ + + =
+
+
+
+
t
Y y t t
t
Y y t Y y t Y y
t
X x t t
t
X x t X x t X x
i
k
k
i
k
i
k k
i
k
k
i
k
i
k
i
k
i
k
k
i
k
i
k
k
i
k
i
k
i
k
k
i
k
i
k k
i
k
k
i
k
i
k
i
k
i
k
k
i
k
i
k
k
i
k
i
k
sen
cos exp
sen
cos exp
sen
cos exp
sen
cos exp
) ( ) ( 2 2 1
) ( ) ( ) ( ) ( ) ( 1
) ( ) ( 2 2 1
) ( ) ( ) ( ) ( ) ( 1
onde:
2
k
K = e
2
k
K = .
Esta forma modificada do algoritmo s necessita (alm da especificao do nmero de
partculas , do nmero de iteraes e dos valores iniciais das posies e velocidades das partculas)
da especificao dos parmetros t > 0 e K [K 1 para assegurar o movimento oscilatrio
amortecido das partculas!]. Este a grande vantagem deste mtodo modificado (no algoritmo
clssico se deve especificar os valores das constantes c
1
, c
2
e de
inicial
e
final
) e a maior
complexidade do algoritmo apenas aparente j que o procedimento recursivo anlogo ao do
clssico diferindo apenas no clculo em cada passo dos valores de funes trigonomtricas simples
(seno e cosseno) e da funo exponencial o que no aumenta em nada o custo computacional do
cdigo.
voltar para ENXAME DE PARTCULAS
4.3. A Programao do Algoritmo
As duas formas do algoritmo so, sob o ponto de vista de implementao, semelhantes
diferindo apenas nas expresses matemticas de clculo da posio e da velocidade de cada
partcula ao cabo de cada iterao e nas especificaes das constantes pertinentes.
O algoritmo PSO-clssico para a busca do mximo de uma funo f(x,y) pode assim ser
sumarizado pelo pseudo-cdigo abaixo:
Etapa Inicial (Iterao zero): Entre com n (o nmero de partculas do enxame), m (o nmero
de iteraes), especifique os valores de
final
,
inicial
, c
1
, c
2
e os valores mnimos e mximos de x e
de y. Gere as condies iniciais segundo o procedimento
2
:
2
Nos procedimentos a funo ) ( . rnd gera nmeros aleatrios com distribuio uniforme entre 0(zero) e .
7
para k = 1, ...., n faa ) 1 ( rnd ; ( )
min min
x x x x
MAX k
+ e
k
melhor
k
x x
) 1 ( rnd ; ( )
min min
y y y y
MAX k
+ e
k
melhor
k
y y
0
,
k x
V e 0
,
k y
V (optou-se neste caso para partir com as partculas em
repouso!).
Faa
1
x x
melhor
;
1
y y
melhor
; ( )
1 1
) (
1
, y x f f
melhor
e
) (
1
melhor
global
f f ;
Etapa a) para i = 2,...., n faa ( )
i i
melhor
i
y x f f ,
) (
se
global
melhor
i
f f
) (
> ento faa
i
melhor
x x ;
i
melhor
y y e
) (
melhor
i global
f f volte para o incio da Etapa a com o prximo i;
se
global
melhor
i
f f
) (
volte para o incio da Etapa a com o prximo i;
Etapa 1 (Iterao i) Para i = 1, ...., m faa ( )
|
.
|
\
|
+
1
1
m
i
inicial final inicial
Etapa 1-a) Para k = 1,...,n faa: ) 1 ( rnd ; ) 1 ( rnd ; ) 1 ( rnd e ) 1 ( rnd
| | | |
k global k
melhor
k
k x k x
x x c x x c V V + +
2 1 , ,
| | | |
k global k
melhor
k
k y k y
y y c y y c V V + +
2 1 , ,
k x k k
V x x
,
+ e
k y k k
V y y
,
+
Se
MAX k
x x > faa
MAX k
x x e 0
,
k x
V
Se
min
x x
k
< faa
min
x x
k
e 0
,
k x
V
Se
MAX k
y y > faa
MAX k
y y e 0
,
k y
V
Se
min
y y
k
< faa
min
y y
k
e 0
,
k y
V
Calcule ( )
k k atual
y x f f ,
8
Se
) (melhor
k
atual
f f > faa
atual
melhor
k
f f
) (
,
k
melhor
k
x x
) (
e
k
melhor
k
y y
) (
;
verifique a seguir se
global atual
f f
> faa
atual global
f f
,
k global
x x e
k global
y y ; caso
global atual
f f
FIM
O algoritmo PSO-modificado para a busca do mximo de uma funo f(x,y) pode assim ser
sumarizado pelo pseudo-cdigo abaixo:
Etapa Inicial (Iterao zero): Entre com n (o nmero de partculas do enxame), m (o nmero
de iteraes), especifique os valores de t > 0 e K [K 1] e os valores mnimos e mximos de x e de
y. Gere as condies iniciais segundo o procedimento:
para k = 1, ...., n faa ) 1 ( rnd ; ( )
min min
x x x x
MAX k
+ e
k
melhor
k
x x
) 1 ( rnd ; ( )
min min
y y y y
MAX k
+ e
k
melhor
k
y y
0
k
e 0
k
(optou-se neste caso para partir com as partculas em
repouso!).
Faa
1
x x
melhor
;
1
y y
melhor
; ( )
1 1
) (
1
, y x f f
melhor
e
) (
1
melhor
global
f f ;
Etapa a) para i = 2,...., n faa ( )
i i
melhor
i
y x f f ,
) (
se
global
melhor
i
f f
) (
> ento faa
i
melhor
x x ;
i
melhor
y y e
) (
melhor
i global
f f volte para o incio da Etapa a com o prximo i;
9
se
global
melhor
i
f f
) (
volte para o incio da Etapa a com o prximo i;
Etapa 3 (Iterao i) Para i = 1, ...., m execute Etapa 1-a)
Etapa 1-a) Para k = 1,...,n faa: ) 1 ( rnd ; ) 1 ( rnd ; ) 1 ( rnd e ) 1 ( rnd
Calcule :
2
K ; ( )
global
melhor
k
x x X 1
) (
+ ; X x A
k
;
k
A
B
+
; ( ) ) cos( exp
1
t t f e ( ) ) sen( exp
2
t t f
2 1
f B f A X x
k
+ +
( )
2 1
f B A f
k k
+
Se
MAX k
x x > faa
MAX k
x x e 0
k
Se
min
x x
k
< faa
min
x x
k
e 0
k
a seguir calcule :
2
K ; ( )
global
melhor
k
y y Y 1
) (
+ Y y C
k
;
k
C
D
+
; ( ) ) cos( exp
1
t t g e ( ) ) sen( exp
2
t t g
2 1
g D g C Y y
k
+ +
( )
2 1
g D C g
k k
+
Se
MAX k
y y > faa
MAX k
y y e 0
k
Se
min
y y
k
< faa
min
y y
k
e 0
k
Calcule ( )
k k atual
y x f f ,
Se
) (melhor
k
atual
f f > faa
atual
melhor
k
f f
) (
,
k
melhor
k
x x
) (
e
k
melhor
k
y y
) (
;
verifique a seguir se
global atual
f f
> faa
atual global
f f
,
k global
x x e
k global
y y ; caso
global atual
f f
.
FIM
A seleo dos valores dos parmetros/constantes dos dois algoritmos uma tarefa de
tentativa-e-erro, a recomendao que se d nestes casos e para estes tipos de algoritmos a
execuo de um grande nmero de experimentos numricos. A prtica adquirida atravs da
implementao computacional dos algoritmos e a resoluo de exerccios simples fundamental
para se adquirir alguma sensibilidade sobre os valores destes parmetros/constantes. Mesmo assim
se deve alertar que no h valores mgicos destes parmetros/constantes e sempre desconfie de
artigos cientficos que sugiram de forma categrica valores particulares destes parmetros como os
melhores.
voltar para ENXAME DE PARTCULAS
4.4. Exemplos Ilustrativos
Para entender o significado dos parmetros do mtodo, considere a mesma funo
considerada nos algoritmos genticos, que a minimizao de F(x) apresentada abaixo.
= ( ) F x
1
10000
( ) + x 10 ( ) + x 6 ( ) + x 5 ( ) + x 1 ( ) x 7 ( ) x 10
11
Figura 2 Espao de busca da funo teste
Observe que existem mnimos locais em x -8,834, x -2,546 e x 8,817, sendo este
ltimo o mnimo global. A funo apresenta mximos locais em x -5,518 e x 3,914.
Figura 3 Extremos da funo teste
As duas verses do PSO foram implementadas computacionalmente. Abaixo mostrada a
evoluo dos valores timos da funo e da varivel x ao longo do procedimento evolutivo com a
forma clssica do algoritmo tendo sido utilizado os seguintes conjunto de parmetros:
inicial
=0,9 ;
final
=0 ; c
1
=c
2
=1; x
MAX
= +12 e x
min
= -12.Adotando-se uma populao de 10(dez) partculas, um
mximo de 20 (vinte) iteraes e partindo de localizaes iniciais aleatrias (entre 12 e +12) e do
repouso.
12
0 5 10 15 20
8.2
8.4
8.6
8.8
8.825
8.263
12 X
n i ,
8.817
m 0 i
Figura 4 Evoluo dos Melhores Valores
Globais da Funo Teste
0 5 10 15 20
8.5
8
7.5
7
7.022
8.129
X
n 1 + i ,
f
otimo
m 0 i
Figura 5 Evoluo dos Melhores Valores
Globais da Varivel
Uma animao desta soluo pode ser reproduzida clicando-se no programa
Univarivel_PSO_clssico.
Abaixo mostrada a evoluo dos valores timos da funo e da varivel x ao longo do
procedimento evolutivo com a forma modificada do algoritmo tendo sido utilizado os seguintes
conjunto de parmetros:t=1; K = 2 ; x
MAX
= +12 e x
min
= -12.Adotando-se uma populao de
10(dez) partculas, um mximo de 20 (vinte) iteraes e partindo de localizaes iniciais aleatrias
(entre 12 e +12) e do repouso.
0 5 10 15 20
8.5
8
7.5
7
7.254
8.129
X
n 1 + i ,
f
otimo
m
0
i
Figura 6 Evoluo dos Melhores Valores
Globais da Funo Teste
0 5 10 15 20
8.8
9
9.2
9.246
8.81
12 X
n i ,
8.817
m
0
i
Figura 7 Evoluo dos Melhores Valores
Globais da Varivel
Uma animao desta soluo pode ser reproduzida clicando-se no programa
Univarivel_PSO_modificado.
13
Notem que o desempenho das duas formas do algoritmo idntico, no sendo possvel
afirmar qual das duas formas mais eficiente.
O funcionamento do algoritmo de enxame de partculas (PSO para os ntimos) agora
ilustrado com a maximizao de uma funo de duas variveis, a chamada Funo Alpina que
representada pela equao :
( ) ( ) ) sen( sen , y x y x y x f =
no domnio : 0 < x <10 e 0 < y < 10.
Esta funo mostrada nas duas figuras a seguir:
a
Figura 8 A Funo Alpina
a
Figura 9 A Funo Alpina em Curvas de Nvel
O mximo global desta funo, na regio considerada, em x= y 7,917 onde a funo
assume o valor f
MAXIMO
7, 8856.
Abaixo mostrada a evoluo dos valores timos da funo ao longo do
procedimento evolutivo com a forma clssica do algoritmo tendo sido utilizado os seguintes
conjunto de parmetros:
inicial
=0,9 ;
final
=0 ; c
1
=c
2
=1; x
MAX
= y
MAX
= +10 e x
min
= y
min
= 0
.Adotando-se uma populao de 20(vinte) partculas, um mximo de 20 (vinte) iteraes e partindo
de localizaes iniciais aleatrias [entre (0,0) e (10,10)] e do repouso.
14
0 5 10 15 20
2
4
6
8
Valor timo
7.8856
2.89336
x
i
Otimo
20 0 i
Figura 10 Evoluo dos Melhores Valores Globais da Funo Alpina
Uma animao desta soluo pode ser reproduzida clicando-se no programa
Alpina_PSO_Clssico.
Abaixo mostrada a evoluo dos valores timos da funo ao longo do
procedimento evolutivo com a forma modificada do algoritmo tendo sido utilizado os seguintes
conjunto de parmetros: :t=1; K = 2; x
MAX
= y
MAX
= +10 e x
min
= y
min
= 0 .Adotando-se uma
populao de 20(vinte) partculas, um mximo de 20 (vinte) iteraes e partindo de localizaes
iniciais aleatrias [entre (0,0) e (10,10)] e do repouso.
0 5 10 15 20
6
7
8
Valor timo
7.8856
5.6
x
i
Otimo
m 0 i
Figura 11 Evoluo dos Melhores Valores Globais da Funo Alpina
Uma animao desta soluo pode ser reproduzida clicando-se no programa
Alpina_PSO_Modificado.
importante novamente enfatizar que os melhores valores dos parmetros/constantes das
duas formas do algoritmo so muito dependentes do problema particular que se est resolvendo e
que uma anlise da sensibilidade da resoluo do problema a valores particulares dos
15
parmetros/constantes s pode ser feita aps a execuo de um grande nmero de simulaes. Desta
maneira, recomendamos fortemente que sejam feitos todos os exerccios da lista sobre o assunto e
que dvidas sejam tiradas por E-mail ou durante as sesses do chat-room.
voltar para ENXAME DE PARTCULAS