You are on page 1of 7

III EMEPRO – Belo Horizonte, MG, Brasil, 07 a 09 de junho de 2007

Proposta da avaliação do desempenho dos métodos PSO e algoritmo


genético na otimização de funções multimodais

Felipe Saulo Silva (UnilesteMG) felipesau@alunos.unilestemg.br


Ralph Gomes Cunha e Souza (UnilesteMG) ralph@alunos.unilestemg.br
Andréa Oliveira Souza da Costa (UnilesteMG) andreaosc@unilestemg.br
Esly Ferreira da Costa Junior (UnilesteMG) esly@unilestemg.br

Resumo
Métodos de otimização buscam a melhor solução para um problema. Esses métodos visam
encontrar um ótimo global do problema, ou seja, a melhor solução encontrada dentre vários
pontos ótimos. Os Métodos Heurísticos são mais eficazes para problemas com múltiplos
pontos ótimos, pois buscam uma solução a partir de regras de probabilidade. Em um
trabalho prévio os métodos de otimização “Particle Swarm Optimization” (PSO) e Algoritmo
Genético (AG) bináro tem seu desempenho comparado na otimização de três funções
contínuas (BARBALHO et al., 2006). Neste trabalho, realiza-se uma revisão dos métodos
PSO e AG e propõe-se a continuidade do trabalho de Barbalho et al. (2006). Para tal, são
apresentados sete problemas teste da literatura, que correspondem a funções multimodais,
que serão utilizados na comparação da eficiência dos referidos métodos de otimização.
Palavras chave: otimização, funções multimodais, métodos heurísticos.

1. Introdução
Otimização é a tentativa de melhorar o desempenho de algo em direção de algum ponto ou
pontos ótimos (VANDERPLAATS, 1999 apud WIDMAIER, 2005). A partir desse conceito
empresas dos mais variados segmentos visam a otimizar os seus processos. A otimização
desses processos podem tanto ser de maximização ou minimização.
Tendo-se um modelo matemático do problema a ser resolvido pode-se empregar algum dos
diversos algoritmos de otimização existentes. Ao empregar algum desses algoritmos na
otimização de processos deve-se levar em conta, que estes devem resolver o problema
independente da sua dimensão e dos seus parâmetros. Saber interpretar seus resultados é
também uma questão muito importante, principalmente na tomada de decisões.
Segundo Barbalho et al. (2006), nos casos em que há mais de uma solução para um
determinado problema, os métodos heurísticos são os mais indicados, pois são muito eficazes
neste tipo de situação.
Os métodos heurísticos de otimização são aqueles que procuram por uma solução de
determinado problema apoiando em critérios racionais escolhendo um caminho entre os
vários possíveis para se chegar a melhor solução (FUCHIGAMI, 2005). Porém, essa técnica
assegura somente soluções aproximadas. Na maioria dos casos estas não são as melhores.
2. Algoritmos Heurísticos de Otimização
2.1. Algoritmo Genético (AG)
Segundo Barbalho et al. (2006) o algoritmo genético é um método de otimização baseado na
seleção natural e evolução das espécies que foi proposta por Darwin. Esta técnica simula o
desenvolvimento genético das espécies aplicando os seus conceitos. Como na Biologia, tem-
III EMEPRO – Belo Horizonte, MG, Brasil, 07 a 09 de junho de 2007

se uma população inicial cujos membros podem se reproduzir ou não, sendo que os seus
descendentes podem sofrer certas mutações. As variáveis desse algoritmo são codificadas em
cromossomos. No algoritmo genético, como na linguagem biológica, também existe o
genótipo e o fenótipo. O genótipo é a informação existente no cromossomo (variáveis
codificadas). O fenótipo é o cromossomo codificado (valor das variáveis do problema de
otimização).
Os algoritmos genéticos são úteis para resolver problemas de otimização. Conforme
Alvarenga (2004), estes algoritmos são usados em problemas em que se precisa encontrar os
melhores valores dos parâmetros estabelecidos. Para isso usa técnicas de busca e avaliação de
aptidão de cada indivíduo de uma determinada população. Gerando assim uma nova
população de indivíduos mais aptos.
Segundo Ribeiro (2005) torna-se bastante vantajoso o uso de um algoritmo genético como
técnica de otimização, pois ele pode ser tratado com um número grande de parâmetros,
podendo ser aplicado a problemas de grandes dimensões.
A implementação de um algoritmo genético começa com uma população inicial de
cromossomos. Sendo que cada cromossomo pode ser representado na forma binária, através
de uns e zeros. Segundo Goldberg (1989) essa técnica de representação binária é a que
funciona melhor, pois apresenta um maior número de esquemas por bit. Mas pode-se usar
também outras técnicas, como o uso de variáveis contínuas. A partir da representação dos
cromossomos cada passo do algoritmo genético corresponde à aplicação das seguintes
operações: avaliação de aptidão, seleção, cruzamento e mutação.
A seleção é a responsável pela escolha dos indivíduos aptos para o cruzamento. Somente os
indivíduos mais aptos possuem a maior probabilidade de se cruzarem. No cruzamento
acontece a reprodução dos indivíduos selecionados. Nesta operação, tem-se a troca de
informações genéticas dos indivíduos “pais” gerando indivíduos “filhos”. A mutação ocorre
com uma alteração no código genético do indivíduo gerado de modo a inserir características
novas no mesmo. A estrutura básica de um algoritmo genético é mostrada na figura abaixo.

População

Avaliação de Aptidão

Seleção

Cruzamento
Operadores
Genéticos
Mutação

Critério de
Não Parada?

Sim
Retornar Melhor
Indivíduo

Figura 1 – Estrutura básica de um Algoritmo Genético (POZO, 2005).


Computacionalmente os algoritmos genéticos são uma abstração desse processo natural no
qual ocorre a melhoria da espécie. O conjunto de características disponível aos indivíduos é o
espaço de busca do problema e cada indivíduo representa uma possível solução para o mesmo
III EMEPRO – Belo Horizonte, MG, Brasil, 07 a 09 de junho de 2007

(NOVAES, 2002).
2.2. Particle Swarm Optimization (PSO)
O método estocástico de otimização PSO (“Particle Swarm Optimization”) foi desenvolvido
por Kennedy & Eberhart (1995) e de maneira semelhante ao AG, se baseia numa população
(ZHANG & XUE, 2001).
O Enxame de Partículas Otimizadas (PSO) é um novo paradigma na área de inteligência de
enxames. Este método é uma valiosa ferramenta para otimização de uma função, sendo
especialmente útil nos casos em que a dimensão do problema é alta e em casos nos quais
informações específicas sobre problema são inexistentes. Este paradigma é inspirado em
conceitos de psicologia social (MENDES, 2004).
Segundo Albrecht (2005), assim como o AG, o PSO é um algoritmo evolutivo baseado em
uma população de indivíduos, só que, a evolução da população não se faz com cruzamento e
mutação, mas sim com o “vôo” de cada partícula pelo espaço de busca. O conceito de
gerações é substituído pelo de intervalos de tempo.
O conceito da PSO consiste em, a cada passo iterativo, mudar a velocidade (acelerando) de
cada partícula em direção às localizações do ótimo local e global.
A aceleração desta busca é ponderada através de um termo gerado de forma aleatória
vinculando este de forma separada as localizações do ótimo local e do ótimo global
(COELHO et al., 2005).
O PSO é uma metodologia baseada em população de soluções. De forma similar a outros
algoritmos evolutivos, o (PSO) é iniciada com uma população de soluções gerada
aleatoriamente (COELHO et al., 2005).
Este método simula o comportamento social dos organismos, tais como uma revoada de
pássaros ou um cardume de peixes. A idéia central é que se um pássaro em uma revoada tenta
encontrar o alimento, ele usa não somente seu próprio conhecimento e experiência, mas
também as experiências de seus vizinhos (ZHANG & XUE, 2001).
O objetivo de cada pássaro é localizar um lugar com maior densidade de alimento de um certo
tipo. Sem o conhecimento prévio do campo, eles começam a se movimentar aleatoriamente
com velocidades variáveis procurando o alimento. Cada pássaro se lembra do local em que
achou a melhor fonte e também sabe, por comunicação, a localização na qual o grupo
encontrou as melhores fontes. Os pássaros exploram o ambiente e informam, uns aos outros,
seus melhores achados. Então eles voam em direção à área de maior concentração de alimento
de boa qualidade fazendo com que todo o enxame seja atraído para esse local (FARIAS et al.,
2006).
Segundo Farias et al. (2006), partículas atuam sob três influências que se combinam
vetorialmente: hábito ou inércia, memória e cooperação. A inércia faz com que a partícula
continue seguindo a mesma direção. A memória leva a partícula em direção à melhor posição
até então encontrada por ela. Já a cooperação, empurra a partícula na direção do melhor ponto
do espaço até ao momento descoberto pelo enxame.
3. Trabalho Prévio
Barbalho et al. (2006) utilizou três funções teste da literatura (HONGMEI YU et al., 2000)
para se comparar o desempenho dos algoritmos, tais funções e os limites das variáveis
independentes estão relacionadas abaixo.
f1 = x 2 + y 2 (-10, 10)
III EMEPRO – Belo Horizonte, MG, Brasil, 07 a 09 de junho de 2007

( )(
f 2 = 100 x 2 − y 2 x 2 − y 2 + (1 − x ) ) 2
(-10, 10)
n
x i2 n
⎛x ⎞
f3 = ∑ + ∏ cos⎜⎜ i ⎟⎟ + 1 (-600, 600)
i =1 4000 i =1 ⎝ i⎠
Segundo Barbalho et al. (2006), as funções apresentadas correspondem a problemas de
minimização, por isso foi preciso fazer uma transformação nas mesmas, pois o algoritmo
genético só é aplicável a problemas de maximização quando o método de seleção utilizado é a
roleta.
A primeira transformação consiste em multiplicar o valor da função objetivo por –1 e somá-lo
ao máximo valor possível da função dentro do intervalo de busca. Caso encontre o menor
valor para a função, o algoritmo irá somá-lo ao maior valor e encontrará o máximo da função
que é o ponto ótimo (BARBALHO et al., 2006).
As funções transformadas são apresentadas abaixo.
(
f 1 = − x 2 + y 2 + 200 ) (-10, 10)

( ( )(
f 2 = − 100 x 2 − y 2 x 2 − y 2 + (1 − x ) + 62536 ) 2
) (-10, 10)

⎛ n x i2 n
⎛x ⎞ ⎞
f 3 = −⎜⎜ ∑ + ∏ cos⎜⎜ i ⎟⎟ + 1⎟⎟ + 180.02 (-600, 600)
⎝ i =1 4000 i =1 ⎝ i⎠ ⎠
Conforme Barbalho et al. (2006), a próxima transformação consiste em elevar o resultado da
função a –1. Este procedimento faz com que o mínimo da função se transforme no máximo da
função transformada. Para se evitar a divisão por zero, é acrescido ao valor da função um
número positivo muito pequeno (=10-12). Ressalta-se que com este procedimento o máximo
valor possível para função é 1012. As funções transformadas são apresentadas abaixo.
1
f1 =
((x ) )
(-10, 10)
2
+y 2
+ 0.0000000000 01
1
f2 =
((100(x )(x ) ) )
(-10, 10)
−y − y + (1 − x ) + 0.000000000001
2 2 2 2 2

1
f3 = (-600, 600)
⎛ ⎛ n x i2 n
⎛x ⎞ ⎞ ⎞
⎜⎜∑ + ∏ cos⎜⎜ i ⎟⎟ + 1⎟⎟ + 0.000000000001⎟

⎜ i =1 4000 i =1 ⎟
⎝⎝ ⎝ i⎠ ⎠ ⎠
Abaixo são apresentadas as tabelas de comparação de desempenho entre os algoritmos AG
binário e PSO. A Tabela 1 apresenta os resultados obtidos por meio da primeira
transformação nas funções e a Tabela 2 apresenta os mesmos resultados para a segunda
transformação.
Com base nos resultados obtidos para os casos estudados, o PSO teve um melhor desempenho
do que o AG. Em se tratando de tempo computacional, o PSO obteve um tempo muito
inferior em relação ao do AG. Segundo Barbalho et al. (2006), na questão da precisão, o PSO
também foi mais preciso do que o AG, que se prendeu em ótimos locais na terceira função e
não conseguiu o ótimo global na segunda.
III EMEPRO – Belo Horizonte, MG, Brasil, 07 a 09 de junho de 2007

PSO AG

Função ng n x y tempo ng n x y tempo


(ms) (ms)
f1 50 50 6.50887e-08 -4.24503e-08 <1 300 50 -0.00654285 -0.00204575 703

f2 300 50 1 1 16 3000 60 0.462752 -0.441512 8625

f3 400 50 1.01668e-07 -8.56418e-08 31 3000 100 6.04989 0.108355 13219


Fonte: (Barbalho et al., 2006)

Tabela 1 – Comparação de desempenho dos algoritmos utilizando as funções da primeira transformação.

PSO AG
Função ng n x y tempo ng n x y tempo
(ms) (ms)
f1 50 50 6.57169e-10 3.81108e-10 <1 300 50 -9.31323e-09 -9.31323e-09 687

f2 300 50 1 1 16 3000 60 -1.2463 -1.25002 8781

f3 400 50 6.47776e-08 -6.87461e-08 31 3000 100 5.58794e-07 5.58794e-07 13812

Fonte: (Barbalho et al., 2006)

Tabela 2 – Comparação de desempenho dos algoritmos utilizando as funções da segunda transformação.


De acordo com Barbalho et al. (2006) nos testes realizados com o AG binário, para se
conseguir obter uma solução ótima ou mesmo satisfatória, foi preciso utilizar parâmetros
muito altos, como o número de gerações e a quantidade de indivíduos na população.
Parâmetros tão altos fazem com que o AG gaste mais tempo para encontrar uma solução, o
que acarreta em uma perda de desempenho considerável. Mas, mesmo utilizando esses
parâmetros altos, na maioria dos casos apresentados nas Tabelas 1 e 2, o AG não conseguiu
encontrar o ótimo global, alcançando somente um ótimo local da função objetivo
(BARBALHO et al., 2006).
4. Proposta
O presente trabalho propõe a continuação do trabalho de Barbalho et al. (2006). Para tal, além
da implementação do AG binário, ter-se-á o AG com variáveis contínuas para a avaliação do
desempenho. Mais além, novas funções teste da literatura serão utilizadas. As funções
propostas são (SALHI et al., 2004):

2
⎛ ⎛ 5 ⎞ 2 ⎛5 ⎞ ⎞ ⎛ ⎛ 1 ⎞⎞
f 4 = ⎜⎜ x 2 − ⎜ 2 ⎟ ⋅ x1 + ⎜ ⋅ x1 ⎟ − 6 ⎟⎟ + 10⎜⎜1 − ⎜ ⎟ ⎟⎟ ⋅ cos(x1 ) + 10 x1 ∈ (− 5,10), x2 ∈ (0,15)
⎝ ⎝ 4π ⎠ ⎝π ⎠ ⎠ ⎝ ⎝ 8π ⎠⎠
[ 2
( )] [ 2
(
f 5 = 1 + (x1 + x2 + 1) ⋅ 19 − 14 x1 + 3 x12 − 14 x2 + 6 x1 x2 + 3 x22 ⋅ 30 + (2 x1 − 3 x2 ) ⋅ 18 − 32 x1 + 12 x12 + 48 x2 − 36 x1 x2 + 27 x22 )]
x j ∈ (− 2,2), j = 1,2

⎛ 5 ⎞ ⎛ 5 ⎞
f6=⎜
⎜ ∑ j cos[( j + 1)x 1 + j ]⎟ ⋅ ⎜
⎟ ⎜ ∑ j cos[( j + 1)x 2 + j ]⎟

x j ∈ (− 10,10), j = 1,2
⎝ j =1 ⎠ ⎝ j =1 ⎠
III EMEPRO – Belo Horizonte, MG, Brasil, 07 a 09 de junho de 2007

⎡ ⎤
∑ c exp⎢⎢− ∑ a (x )
4 3
f7=− − pij ⎥ x j ∈ (0,1), j = 1,...,3
2
i ij j
i =1 ⎣ j =1 ⎦⎥
−1

∑ [(x − a ) (x − a ) + c ]
n
f8=− x j ∈ (0,10), j = 1,...,4
T
i i i
i =1

⎡ ⎤
∑ a (x )
4 6
f9=− ∑i =1
ci exp ⎢−
⎢⎣ j =1
ij j − pij ⎥
2

⎥⎦
x j ∈ (0,1), j = 1,...,6

∑ ⎡⎢⎣100(x )
n −1
+ (xi − 1) ⎤ xi ∈ (− 5,10), j = 1,..., n
2
f 10 = − − xi +1
2 2
1 ⎥⎦
i =1

5. Conclusões
De acordo com o estudo, os algoritmos heurísticos são os mais eficazes no que se diz respeito
a problemas com funções multimodais, ou seja, vários mínimos (ou máximos). Esses métodos
definem uma solução aceitável para os problemas, mas isso não quer dizer que essa seja a
solução ótima do problema em questão.
No estudo realizado por Barbalho et al. (2006), concluiu que o PSO apresenta um
desempenho superior ao do algoritmo genético binário tanto no tempo computacional
utilizado como na precisão da solução obtida para as três funções testadas.
Com a proposta da continuidade do trabalho, irá se fazer um estudo com as mesmas técnicas
heurísticas de otimização usadas por Barbalho et al. (2006). No caso do algoritmo genético, é
também proposto o uso de uma implementação com variáveis contínuas, além das binárias.
Isto porque acredita-se que o uso de variáveis binárias para representação de variáveis
contínuas possa ter aumentado o tempo computacional e diminuído a precisão da solução
encontrada. Mais além, o uso das novas 7 funções teste apresentadas neste trabalho, tornará a
avaliação de desempenho mais generalista. Pois esse fator pode ter sido fundamental para o
algoritmo genético ter ganhado relevância quanto a questão de o tempo computacional
utilizado ter sido maior.

Referências
ALBRECHT, C. L. (2005) - Algoritmos Evolutivos Aplicados à Síntese e Otimização de Sistemas de
Ancoragem, Dissertação (Doutorado em Ciências em Engenharia Oceânica), 166f, Programa de Pós-Graduação
em Engenharia Oceânica da UFRJ, Rio de Janeiro.
ALVARENGA, G. B., OLIVEIRA, H. C. B, SOUZA, M. M. & SILVA, R. M. A. (2004) - Adaptação do
algoritmo genético no tratamento do problema de roteamento de veículos com janela de tempo. Journal of
Computer Science Vol. 3, n. 2, p. 51-58.
BARBALHO, W.F., COSTA, A.O.S. & COSTA JR., E.F. (2006) - Eficiência dos métodos Heurísticos AG
Binários e PSO na Otimização com Variáveis Contínuas. Anais do IX Encontro de Modelagem Computacional,
CEFET. Belo Horizonte, 2006.
COELHO, L.S. & MARIAM, V.C. (2005) - Concepção Híbrida de Otimização por Nuvens de Partículas
Aplicada ao Problema de Weber. Infocomp Journal Of Computer Science, Vol. 4, n. 3, p. 24-31.
FARIAS, R. G., DMITRIEV, V., GOMES, K. D. C. & OLIVEIRA, R. M. S. (2006) - Simulação de Radar
UWB via FDTD e Otimização por Enxame de Partículas Aplicado à Proteção Contra Intruso. In: VIII Simpósio
de Guerra Eletrônica, São José dos Campos..
FUCHIGAMI, H. Y. (2005) - Métodos Heurísticos construtivos para o problema de programação da produção
em sistemas flow shop híbridos com tempos de preparação das máquinas assimétricos e dependentes da
seqüência, 133f, Dissertação (Mestrado em Engenharia de Produção), Escola de Engenharia de São Carlos, USP,
III EMEPRO – Belo Horizonte, MG, Brasil, 07 a 09 de junho de 2007

São Carlos.
HONGMEI YU, FANG, H., YAO, P. & YUAN, Y. (2000) - A combined genetic algorithm: simulated annealing
algorithm for large scale system energy integration. Computers and Chemical Engineering, Vol. 24, p. 2023–
2035.
KENNEDY, J. & EBERHART, R. C. (1995) - Particle swarm optimization. In: Proceedings of the IEEE
International Conference on Neural Networks IV, Perth, Australia, p. 1942-1948.

MENDES, R. (2004) - Population Topologies and Their Influence in Particle Swarm Performace. 171f, Tese
(doutorado em Engenharia), Departamento de Informática da Escola de Engenharia Universidade de Minho,
Portugal.
NOVAES, U. R. da. (2002) - Agrupamento de Dados Através de Algoritmos Swarm. Dissertação (Mestrado em
Ciências em Engenharia Civil). 98f, Programa de Pós-Graduação em Engenharia da UFRJ. Rio de Janeiro.
POZO, A. (2005) – Site http://www.inf.ufpr.br/aurora/tutoriais/Ceapostila.pdf acessado em 20 de março de 2007.
RIBEIRO, G. P. (2005) - Operação otimizada do sistema adutor metropolitano utilizando algoritmos genéticos -
estudo de caso: SAM Leste da região metropolitana de São Paulo. Tese (Doutorado em Engenharia Civil) Escola
Politécnica da USP. São Paulo.
SALHI, S. & QUEEN, N.M. (2004) - A Hybrid Algorithm for Identifying Global and Local Minima when
Optimizing Functions with Many Minima. European Journal of Operation Research, Vol.155, p.51-67.
WIDMAIER, K. (2005) - Algoritmo Genético Aplicado à Otimização de Asas de Material Compósito de
Veículos Aéreos não Tripulados, 182f, Dissertação (Mestrado em Engenharia Mecânica), Escola de Engenharia
de São Carlos, USP, São Carlos.
ZHANG, F. & XUE, D. (2001) - Optimal concurrent design based upon distributed product development life-
cycle modeling. Robotics and Computer Integrated Manufacturing, Vol.17, p. 469–486.

You might also like