Você está na página 1de 7

1 Copyright 2011 by COPPE

Programa de Ps Graduao em Engenharia Civil


COPPE
Janeiro, 2011, Rio de Janeiro, Brasil
Mtodos Computacionais Inspirados Natureza
CPC 881
UMA COMPARAO ENTRE OS MTODOS DE OTIMIZAO EVOLUTIVA:
ALGORITMO GENTICO, EVOLUO DIFERENCIAL E BUSCA DA HARMONIA


Mauro Henrique Alves de Lima Junior
COPPE/UFRJ Instituto de Ps-Graduao da Universidade Federal do Rio de Janeiro
Rio de Janeiro, RJ, Brasil


Beatriz Souza Leite Pires de Lima
COPPE/UFRJ Instituto de Ps-Graduao da Universidade Federal do Rio de Janeiro
Rio de Janeiro, RJ, Brasil


RESUMO
O objetivo deste artigo apresentar uma formulao
terica para os algoritmos evolutivos: Evoluo Diferencial
(DE) e Busca da Harmonia (HS), apresentando ao final uma
comparao destes com o Algoritmo Gentico (AG).
DE um algoritmo bastante simples que opera com
pequenas populaes e apresenta poucos parmetros de
controle. A idia principal deste algoritmo gerar novos
indivduos atravs da adio da diferena ponderada entre dois
indivduos da populao a um terceiro indivduo (Mutao),
escolhidos aleatoriamente. As componentes do indivduo
doador so permutadas com as componentes de um indivduo
escolhido aleatoriamente (Cruzamento), gerando um vetor
experimental. Em seguida realiza-se uma seleo para escolher
o melhor indivduo que ir participar da prxima gerao.
A busca da Harmonia um algoritmo bem mais complexo,
onde a idia principal concerne na Teoria Improvisao do
Jazz. Esta teoria foi formalizada por Greem [1] em trs opes
no processo de otimizao evolutivo (Uso da Memria de
Harmonia - HM, Afinao - AF e Randomizao - RAN). HM
uma etapa imprescindvel do algoritmo, pois garante que boas
harmonias sejam consideradas como elementos dos novos
vetores soluo. AF significa modificar a freqncia das notas
gerando harmonias ligeiramente diferentes (Cruzamento),
enquanto a RAN responsvel pela busca no espao soluo de
busca global (Mutao).

Palavras Chave: Evoluo Diferencial (DE), Busca da
Harmonia (HS), Algoritmo Gentico (AG), Algoritmos
evolutivos e Otimizao.

INTRODUO
A otimizao pode ser entendida como uma maneira
engenhosa de identificar a melhor soluo que maximiza ou
minimiza a funo que representa um determinado fenmeno
(funo objetivo).
Nas ltimas dcadas tem se observado um
desenvolvimento bastante acelerado dos algoritmos de
otimizao, principalmente devido ao avano dos recursos
computacionais, os quais possibilitaram a aplicao destes aos
diversos campos da cincia.
Atualmente encontram-se disponveis na literatura diversas
abordagens de algoritmos evolutivos, dos quais uma grande
fatia dominada pelos algoritmos genticos. Por outro lado,
novos mtodos de algoritmos evolutivos foram desenvolvidos e
tm obtido destaque pela sua eficincia na soluo de
problemas diversos. Neste contexto, um estudo comparativo
entre as tcnicas de algoritmos genticos, Evoluo Diferencial
e Busca da Harmonia o elemento motivador para a realizao
deste trabalho.

2 Copyright 2011 by COPPE
EVOLUO DIFERENCIAL (DE)
O Algoritmo Evoluo Diferencial, desenvolvido por Storn
e Price em meados da dcada de 90, surgiu das tentativas de
resolver o problema de ajuste polinomial de Chebychev.[2]
A idia principal deste algoritmo gerar novos indivduos
atravs da adio da diferena ponderada entre dois indivduos
da populao a um terceiro indivduo (Mutao), escolhidos
aleatoriamente. As componentes do indivduo doador so
permutadas com as componentes de um indivduo escolhido
aleatoriamente (Cruzamento), gerando um vetor experimental.
Em seguida realiza-se uma seleo para escolher o melhor
indivduo que ir participar da prxima gerao. O processo
finalizado quando algum critrio de parada, determinado
previamente, violado.
As operaes da Evoluo Diferencial so baseadas no
princpio da evoluo natural, cujo objetivo manter a
diversidade da populao. A seguir apresentada uma descrio
mais detalhada das operaes envolvidas no algoritmo DE.

Mutao: para efeito de esclarecimento suponha que o
processo de otimizao esteja na gerao g, onde
max
g o
nmero mximo de geraes. X

, X

e X

so vetores
mutuamente distintos escolhidos aleatoriamente entre todos os
p
N indivduos da populao, de modo que 4
p
N e os ndices
aleatrios , e
{ }
1, 2,...,
p
N e sejam distintos entre si.
Na gerao g um par de vetores
( )
, X X

define a diferena
( )
X X

. F um fator de ponderao constante e real entre
| | 0, 1 , utilizado para controlar a amplificao do vetor
diferena
( )
X X

, o qual perturba o vetor X

, resultando
no vetor mutado
1 g
V
+
. A seguir apresentada a expresso
matemtica que equaciona este processo.
( )
1 g g g g
V X F X X

+
= + (1)
Cruzamento: Este operador consiste em permutar os
indivduos da populao alvo
g
W (inicial da gerao g) com a
populao mutada, resultando em uma populao experimental
1 g
U
+
. O processo inicia definindo-se dois nmeros aleatrios:
np
rnd e
var
rnd , onde
np
rnd escolhido aleatoriamente para
cada
p
N indivduos da populao no intervalo | | 1, n , n o
nmero de variveis do problema,
var
rnd escolhido
aleatoriamente para cada varivel que compem um indivduo
da populao no intervalo | | 0,1 . Sendo
g
i
w ,
g
i
v e
1 g
i
u
+

componentes dos vetores alvo
g
W , mutado
1 g
V
+
e
experimental
1 g
U
+
para 1, 2, 3,..., i n = e CR a probabilidade
de cruzamento definida pelo usurio no intervalo | | 0,1 . A partir
de 1 i = , compara-se os nmeros aleatrios
np
rnd e
var
rnd com
CR e i , respectivamente. Enquanto
np
rnd CR ou
var
rnd i =
substitui-se a varivel
g
i
w do vetor alvo pela varivel
correspondente do vetor doador
g
i
v . Caso contrrio nenhuma
substituio realizada. A seguir apresentada a expresso
matemtica que equaciona este processo.
( ) ( )
1
var 1
,
1, 2,...,
g
np g
g
v se rnd CR rnd i
w i n
w
+
+

=

= =

(2)
Na operao de Mutao pode ocorrer que um ou mais
indivduos da populao extrapolem os limites do domnio. Os
indivduos, cujo valor da varivel encontra-se extrapolado,
devem ser substitudos por um valor aleatrio dentro do limite
estabelecido. A seguir apresentada a expresso que equaciona
este procedimento:
( ) ( ) ( )
inf sup inf inf sup
1, 2,...,
(),
g g g
i i i i i i i i
i n
w x x x rand se x x x x
=
= + < >
(3)
Seleo: Este operador basicamente define as componentes
da populao que iro para a prxima gerao, com base no
valor da funo objetivo dos vetores experimental
1 g
U
+
e alvo
g
W . Compara-se os valores da funo objetivo para ambos
vetores e aquele que obtiver o menor valor selecionado para a
gerao seguinte. A seguir apresentada a expresso
matemtica que equaciona este processo.
( ) ( )
( ) ( )
1 1
1
1
,
,
g g g
g
g g g
U se f U f W
W
W se f U f W
+ +
+
+

=

>

(4)
Ao final deste operador a g sima populao d lugar
( ) 1 g sima + populao, para
max
1, 2,..., 1 g g = . E o
procedimento descrito finalizado por algum critrio de parada
pr-estabelecido.
A seguir apresentado um pseudo-cdigo que ilustra o
procedimento de otimizao:
3 Copyright 2011 by COPPE
1 1 1 1
1 2 1
2 2 2 2
1 2 1
1 1 1 1
1 2 1
1 2 1
N N
N N
HMS HMS HMS HMS
N N
HMS HMS HMS HMS
N N
x x x x
x x x x
HM
x x x x
x x x x

(
(
(
(
=
(
(
(

Pseudo-Cdigo 1 Evoluo Diferencial Tpica


Seja X
i,g
a populao de cromossomo na gerao g e
p
N
nmero indivduos da populao.

0 g =
Inicializar
, i g
X , 1, 2,...,
p
i N =
Avaliar populao inicial
Enquanto
max
g g < faa
1 g g = +
Enquanto
p
i N faa
Selecionar aleatoriamente 1,
p
X X X N

(


Selecionar aleatoriamente | | 1,
np
rnd n

Enquanto j n faa
Selecionar aleatoriamente | |
var
0,1 rnd

Se ( ) ( )
var np
rnd CR ou rnd j = ento
( )
g g g g
U X F X X

= +
Seno
g g
U X

=
Fim Se
Verificar limites das varivel
Fim Enquanto
Avaliar populao
g
U
Selecionar indivduos para a prxima gerao
Fim Enquanto
Fim Enquanto


BUSCA DA HARMONIA (HS)
A Busca da Harmonia, desenvolvida por Zong Woo Geem
em 2001, inspirada no processo de improvisao dos msicos
de Jazz, que intuitivamente criam harmonias satisfazendo um
determinado padro esttico, assim como o processo de
otimizao busca encontrar uma soluo global segundo uma
funo objetivo. O tom de cada instrumento musical determina
a qualidade esttica, assim como o valor da funo objetivo
determinada pelo conjunto de valores atribudos a cada varivel
do problema.
As etapas que constituem o mtodo de otimizao HS
podem ser enumerados da seguinte maneira:
i. Inicializar os parmetros do problema e do algoritmo;
ii. Inicializar a Memria de Harmonia (HM);
iii. Improvisar uma nova Harmonia (NHM).
iv. Atualizar a Memria de Harmonia;
v. Checar critrio de parada.
A seguir apresenta-se uma anlise mais detalhada de cada
procedimento enumerado acima.

Inicializao de Parmetros do Algoritmo: Esta etapa
corresponde ao primeiro passo do algoritmo, sendo necessrio
especificar os seguintes parmetros requeridos para solucionar
o problema de otimizao: Dimenso do problema ( N ), limites
de cada varivel (
L U
i i i
x X x ), tamanho da memria de
harmonia ( HMS ), taxa de memria de harmonia ( HMCR ),
taxa de passo de ajuste ( PAR ) e numero mximo de iteraes (
NI ). Os parmetros HMCR e PAR so utilizados para
melhorar a soluo do algoritmo.
Inicializao da Memria de Harmonia: A memria de
harmonia (HM) gerada aleatoriamente com tamanho HMS.
Nesta etapa deve-se ordenar HM com base no valor da funo
objetivo.







Improvisao de uma nova Harmonia: A nova harmonia
(NHM),
1 2
, , ,
new new new new
N
x x x x = , improvisada com base
nas seguintes operaes: (i) compensao da memria, (ii)
ajuste do passo e (iii) seleo aleatria, as quais sero aplicadas
em cada varivel da nova harmonia.
Na compensao da memria, o valor das variveis para o
novo vetor podem ser selecionados de duas formas: no domnio
HM ou aleatoriamente dentro dos limites das variveis,
dependendo da relao entre um nmero aleatrio (
| | 0,1 rand ) e o valor de HMCR, como segue.
{ }
1 2
, , , ,
new HMS
i i i i new
i
new
i i
x x x x se rand HMCR
x
x X

<


(5)
O HMCR a probabilidade com que um valor de HM
selecionado no domnio HM, enquanto (1-HMCR) a
probabilidade de seleo aleatria da nova harmonia.
No ajuste do passo, cada componente obtida pela
compensao da memria verificada quanto necessidade de
ajuste do passo, como segue:
0.5
new new
i i
new
i
se rand PAR
se rand
x x rand BW
seno
x rand BW
<
<
= +

(6)
Onde BW a largura de banda arbitrada.

4 Copyright 2011 by COPPE
Atualizao da Memria de Harmonia: Nesta etapa
verifica-se se a nova harmonia (NHM) melhor ou pior que a
harmonia (HM), em termos do valor da funo objetivo.
Verificao do Critrio de Parada: Nesta etapa verifica-
se o critrio de parada, caso algum critrio seja atingido a
anlise terminada, caso contrrio repete-se as etapas iii e iv.
A seguir apresentado um pseudo-cdigo que ilustra o
procedimento de otimizao:
Pseudo-Cdigo 2 Busca da Harmonia Tpica
Seja X
i,g
a memria de harmonia da gerao g e n o nmero de
variveis do problema.

0 g =
Inicializar aleatriamente Memria de Harmonia (HM)
Avaliar HM
Enquanto o critrio de parada no for satisfeito faa
1 g g = +
Improvisar a Nova Memria de Harmonia (NHM)
Atualiza Memria de Harmonia
Fim Enquanto


ALGORITMO GENTICO (AG)
O Algoritmo Gentico (AG), desenvolvido por Holland em
1975, um mtodo de otimizao e busca inspirado na Teoria
da Evoluo das Espcies proposta por Charles Darwin. De
acordo com Darwin, o indivduo mais apto tem mais chances de
sobreviver e gerar mais descendentes passando seus cdigos
genticos para as geraes futuras. A figura abaixo ilustra o
processo evolutivo da raa humana segundo a tica de Darwin.

Estes princpios so codificados em algoritmos
computacionais que buscam a melhor soluo para um
determinado problema, atravs da evoluo de uma populao
de indivduos que representa sua soluo.
A primeira etapa em um algoritmo gentico tpico a
gerao de uma populao inicial, formada por um conjunto
aleatrio de cromossomos que representam possveis solues
do problema em questo. Durante o processo evolutivo, esta
populao avaliada e cada cromossomo recebe uma nota
(aptido). Em geral, os cromossomos mais aptos tem maior
probabilidade de serem selecionados e os menos aptos menor
probabilidade (Teoria da Evoluo C. Darwin). Os membros
selecionados podem sofrer modificaes em suas caractersticas
fundamentais atravs dos operadores de cruzamento e mutao,
gerando descendentes para a prxima gerao. Este processo
repetido at que algum critrio de parada seja satisfeito. A
seguir apresentado um pseudo-cdigo que ilustra este
procedimento:
Pseudo-Cdigo 3 Algoritmo Gentico Tpico
Seja POP(g) a populao de cromossomo na gerao g.

0 g =
Inicializar POP(g)
Avaliar POP(g)
Enquanto o critrio de parada no for satisfeito faa
1 g g = +
Selecionar POP(g) a partir de POP(g - 1)
Aplicar operador de Cruzamento em POP(g)
Aplicar operador de Mutao em POP(g)
Avaliar POP(g)
Fim Enquanto
A tabela abaixo apresenta a correspondncia entre a
natureza e os Algoritmos Genticos.
Tabela 1 Analogia com a natureza [3]
Natureza Algoritmos Genticos
Cromossomo Estruturas de dados formadas por uma
seqncia de genes.
Gene Componente elementar de um
cromossomo.
Indivduo Uma soluo candidata de um problema.
Populao Conjunto dos indivduos de uma gerao.
Gerao Ciclo de criao e transformao de uma
populao.
Aptido Valor associado a um indivduo que
indica o quo bem ele soluciona um
determinado problema.
Mutao Variao aleatria em uma estrutura de
dados individual.
Cruzamento Troca de pores entre duas ou mais
estruturas de dados.
Seleo Processo que permite a sobrevivncia e
reproduo dos indivduos mais aptos em
detrimento dos menos aptos.
Fonte: http://opinioesdetodoseasminhas.blogspot.com
Figura 1 Ilustrao evoluo da raa humana.
5 Copyright 2011 by COPPE
ESTUDO DE CASOS
O desempenho dos algoritmos foi avaliado para um
conjunto de funes de Benchmarck, com diferentes nmeros
de variveis: 2, 5 , 10 N = . A primeira e ltima funes so
unimodais, apresentando apenas um ponto de mnimo. As
outras funes so multimodais, com um nmero considervel
de mnimos locais. Todas as funes de Benchmarck tm o
mnimo no ponto de origem ou muito prximo dele. As funes
de Benchmarck avaliadas so apresentadas a seguir.
1. ROSENBROCK











2. RASTRIGIN


3. ACKLEY















4. GRIEWANK



( )
( ) ( )
2
4
1 1
* *
1
cos 1
4000
: 600 600, 1, 2, ,
: 0, , 0 , 0
n N
i
i
i i
i
x
f x x
i
Domnio x i N
Mnimo Global x f x
= =
| |
= +
|
\ .
=
= =

( ) ( ) ( )
( ) ( )
1
2
2
2
1 1
1
* *
100 1
: 5 10, 1, 2, ,
: 1, ,1 , 0
N
i i i
i
i
f x x x x
Domnio x i N
Mnimo Global x f x

+
=
(
= +
(

=
= =

( ) ( )
( ) ( )
2
2
1
* *
10cos 2 10
: 5.12 5.12, 1, 2, ,
: 0, , 0 , 0
N
i i
i
i
f x x x
Domnio x i N
Mnimo Global x f x

=
( = +

=
= =

( )
( ) ( )
2
3
1 1
* *
1 1
20exp 0.2 exp cos 2
20
: 15 30, 1, 2, ,
: 0, , 0 , 0
n n
i i
i i
i
f x x x
n n
e
Domnio x i N
Mnimo Global x f x

= =
| |
| |
= |
|
|
\ .
\ .
+ +
=
= =

Figura 2 Grfico da Funo Rosenbrock (N=2).


Figura 3 Grfico da Funo de Rastrigin.
Figura 4 Grfico da Funo Ackley (N=2).
Figura 5 Grfico Funo Griewank (N=2).
6 Copyright 2011 by COPPE
5. SPHERE


ANLISE DOS RESULTADOS
A Tabela 2 apresenta uma comparao entre os algoritmos
GA, DE e HS, com base na qualidade da soluo. Cada
algoritmo foi executado at o nmero mximo de 10000
avaliaes da funo objetivo e os valores da mdia da fitness
(MMF) e do desvio padro (MDP) correspondem aos valores
mdios de 20 execues.
As simulaes foram realizadas com os mesmos
parmetros caractersticos de cada mtodo proposto para todas
as funes de Benchmarck, ou seja, no foi realizado nenhum
ajuste dos parmetros dos mtodos apresentados, utilizando-se
os valores mais recorrentes na literatura. Para o mtodo HS
foram utilizados os seguintes parmetros: 6 HMS = ,
0.9 HMCR = ,
min
0.35 PAR = ,
max
0.95 PAR = ,
min
0.0001 BW = e
max
1.0 BW = . Para o mtodo DE foram
utilizados os seguintes parmetros: 30
p
N = , 0.9 CR = e
0.6 F = . J para o mtodo GA foram utilizados os seguintes
parmetros: 30
p
N = (tamanho da populao), 0.9
c
F =
(fator de cruzamento) e 0.2
M
F = (fator de mutao), com
seleo por torneio de 3 indivduos.

Tabela 2 Tabela comparativa entre as mdias melhor fitness e desvio padro para cinco funes de benchmark.
FUNO D
GA DE HS
MMF MDP MMF MDP MMF MDP
f
1

2 1.149E-01 - 0.000E+00 0.000E+00 3.142E-06 1.549E+00
5 3.776E-01 - 3.622E-15 1.300E-03 5.689E+00 4.878E+01
10 6.821E-01 - 2.190E-01 3.319E-02 1.674E+02 1.318E+02
f
2

2 9.950E-01 - 0.000E+00 0.000E+00 1.060E-02 5.324E-06
5 1.043E+00 - 2.410E-14 1.146E+00 6.254E-04 2.903E-07
10 5.511E+00 - 3.471E+01 7.699E+00 2.277E-01 2.572E-05
f
3

2 2.981E+00 - 8.882E-16 0.000E+00 1.171E-01 2.023E-06
5 3.226E+00 - 2.078E-14 3.542E-14 1.361E-02 2.622E-06
10 3.355E+00 - 1.933E-06 2.517E-06 2.469E-01 7.724E-06
f
4

2 3.954E-02 - 8.881E-16 9.269E-17 7.794E-05 1.315E-05
5 1.065E-01 - 1.401E-13 3.857E-14 2.7502-04 1.974E-05
10 4.245E-01 - 1.191E-05 2.146E-06 4.663E-02 3.929E-05
f
5

2 1.454E-09 - 2.908E-81 4.536E-77 8.254E-12 2.971E-12
5 6.004E-04 - 5.857E-28 2.305E-25 5.552E-11 1.122E-11
10 1.809E-01 - 1.162E-10 4.808E-10 3.556E-10 5.644E-11
D Dimenso do problema, MMF Mdia Melhor Fitness e MDP Mdia Desvio Padro
( )
( ) ( )
2
5
1
* *
: 5.12 5.12, 1, 2, ,
: 0, , 0 , 0
N
i
i
i
f x x
Domnio x i N
Mnimo Global x f x
=
=
=
= =

Figura 6 Grfico da Funo Sphere (N=2).


7 Copyright 2011 by COPPE
As melhores solues de cada funo de Benchmarck esto
destacadas em vermelho/negrito na Tabela 2. Analisando-se a
tabela em questo pode-se observar que o algoritmo DE
apresenta melhor soluo para praticamente todas as funes e
dimenses consideradas, perdendo apenas para o HS na funo
Rastrigin com dimenso 10 N = . Percebe-se tambm que os
algoritmos passam a apresentar solues no to boas quando
se eleva a dimenso do problema, o que vem justificar o fato
algoritmo HS ter apresentado uma soluo melhor que o DE
para a funo Rastrigin com dimenso 10 N = .
Observa-se tambm que o algoritmo HS obteve solues
muito boas, porm piores que o DE. J o algoritmo GA foi o
que obteve os piores resultados.
importante destacar que os algoritmos apresentados neste
artigo podem apresentar solues melhores, desde que sejam
ajustados seus parmetros evolutivos para o problema a ser
solucionado.

CONCLUSO
Este trabalho apresenta a formulao bsica dos algoritmos
Evoluo Diferencial e Busca da Harmonia, os quais
atualmente esto sendo aplicados na resoluo dos mais
variados problemas em diversas reas da cincia. Ambos
apresentam uma estratgia de evoluo bastante interessante
que consiste em evoluir os indivduos a cada avaliao da
funo objetivo, o que acarreta evoluo indivduo a indivduo
em uma mesma gerao.
Uma caracterstica bastante peculiar do algoritmo DE a
capacidade de evoluir a partir de pequenas populaes, o que
configura uma grande agilidade ao mtodo.
Ambos algoritmos apresentam formulaes bastante
interessantes que necessitam ser exploradas, seja atravs de
estudos paramtricos ou pela hibridizao de algoritmos, ambos
so excelentes assuntos de interesse para estudos futuros.
Outros trabalhos podem focar o estudo de aplicaes
desses algoritmos em problemas de otimizao aplicados a
engenharia.
REFERNCIAS
[1] GREEM, Z.W., Music-Inpired Harmony Search
Algorithm: Theory and Applications, United States,
Springer, 2009.
[2] PRICE, K.V., STORN, R.M., LAMPINEN, J.A.,
Differential Evolution: A Pratical Approach to
Global Optimization, United States, Springer, 2005.
[3] LIMA, B.S.L.P., Notas de Aula - Algoritmos
Genticos (CPC-769), Brasil, Coppe/UFRJ, 2010.

Você também pode gostar