Sie sind auf Seite 1von 24

3

Mtodos de Otimizao

3.1.
Introduo
Os problemas de otimizao so problemas de maximizao ou
minimizao de funo de uma ou mais variveis num determinado domnio,
sendo que, geralmente, existe um conjunto de restries nas variveis.
Os algoritmos usados para a soluo de um problema de otimizao
podem ser, basicamente, determinsticos ou probabilsticos.

PUC-Rio - Certificao Digital N 0310953/CA

Neste captulo so apresentadas as principais caractersticas desses


mtodos, apresentando suas vantagens e desvantagens. Sero abordados de
uma maneira mais detalhada os algoritmos de computao evolucionria, que
pertencem a uma famlia de mtodos probabilsticos de otimizao, visto que
este trabalho se baseou em um destes mtodos, conhecido como Estratgia
Evolutiva ( EE ).
Alguns trabalhos utilizando algoritmos de computao evolucionria vm
sendo desenvolvidos no Departamento de Engenharia Civil da PUC-Rio, dos
quais pode-se citar DEL SAVIO (2005), RAMIRES (2004) e BORGES(2003).

3.2.
Definies
Para melhor entendimento dos algoritmos de otimizao, faz-se necessrio
o conhecimento de alguns conceitos e definies utilizados na literatura
(BASTOS, 2004). A seguir so listados alguns termos usualmente relacionados a
um problema de otimizao qualquer:
Variveis de projeto: So aquelas que se alteram durante o processo de
otimizao, podendo ser contnuas (reais), inteiras ou discretas.
Restries: So funes de igualdade ou desigualdade sobre as variveis
de projeto que descrevem situaes de projeto consideradas no
desejveis.

Mtodos de Otimizao

36

Espao de busca: o conjunto, espao ou regio que compreende as


solues possveis ou viveis sobre as variveis do projeto do problema a
ser otimizado, sendo delimitado pelas funes de restrio.
Funo Objetivo: a funo de uma ou mais variveis de projeto que se
quer otimizar, minimizando-a ou maximizando-a.
Ponto timo: o ponto formado pelas variveis de projeto que extremizam
a funo objetivo e satisfazem as restries.
Valor timo: o valor da funo objetivo no ponto timo.

PUC-Rio - Certificao Digital N 0310953/CA

3.3.
Mtodos Determinsticos
Os mtodos de otimizao baseados nos algoritmos determinsticos
maioria dos mtodos clssicos geram uma seqncia determinstica de
possveis solues requerendo, na maioria das vezes, o uso de pelo menos a
primeira derivada da funo objetivo em relao s variveis de projeto.
Nestes mtodos, a funo objetivo e as restries so dadas como
funes matemticas e relaes funcionais. Alm disso, a funo objetivo deve
ser contnua e diferencivel no espao de busca (BASTOS, 2004). Esse tipo de
problema pode ser representado matematicamente da seguinte forma:

Mtodos de Otimizao

37

Maximizar / Minimizar: f ( x1 , x2 ,..., xn )


Satisfazendo:

g1 ( x1 , x 2 ,..., x n ){=}b1
M

g m ( x1 , x 2 ,..., x n ){=}bm

em que:

x1 , x2 ,..., xn - variveis de projeto


f ( x1 , x2 ,..., xn ) - funo objetivo
g1 , g 2 ,..., g m - restries

PUC-Rio - Certificao Digital N 0310953/CA

Figura 3.1 Formulao de um problema de otimizao.

Quando se trata de um problema de variveis discretas, considera-se um


espao de busca com variveis contnuas que, aps a otimizao, fornecero
uma aproximao das variveis de projeto para as disponveis no espao
discreto. Entretanto, isso gera um trabalho adicional na escolha das variveis
discretas mais prximas das contnuas encontradas. Sempre existiro duas
opes de variveis discretas para cada varivel contnua, ou seja, uma
imediatamente superior e outra imediatamente inferior.
Os mtodos determinsticos apresentam teoremas que lhes garantem a
convergncia para uma soluo tima que no necessariamente a soluo
tima global. Como nesses mtodos a soluo encontrada extremamente
dependente do ponto de partida fornecido, pode-se convergir para um timo
local, por isso no possuem bom desempenho em otimizar funes multimodais,
isto , funes que possuem vrios timos locais.
De acordo com OLIVIERI (2004), BASTOS (2004) e HAFTKA(1993), os
problemas de otimizao abordados pelos mtodos clssicos podem ser
classificados em duas classes, conforme as caractersticas da funo objetivo e
das restries:
Programao Linear: quando a funo objetivo e as restries so funes
lineares das variveis de projeto. O Mtodo Simplex (HADLEY, 1982) o
mtodo mais tradicional para solucionar este tipo de problema de
otimizao;

Mtodos de Otimizao

38

Programao No-Linear: quando a funo objetivo, ou pelo menos uma


das restries, uma funo no-linear das variveis de projeto. Nesta
classe,

os

mtodos

que

mais

se

destacam

so:

Mtodo de Programao Linear Seqencial, Mtodo de Programao


Quadrtica Seqencial, Mtodo das Direes Viveis e Mtodo do
Gradiente Reduzido, entre outros.

3.4.
Mtodos Probabilsticos
Os mtodos de otimizao baseados nos algoritmos probabilsticos usam
somente a avaliao da funo objetivo e introduzem no processo de otimizao
dados e parmetros estocsticos. Por no utilizarem a derivada da funo
objetivo, so considerados mtodos de ordem zero.

PUC-Rio - Certificao Digital N 0310953/CA

So listadas a seguir algumas vantagens dos algoritmos probabilsticos em


relao aos algoritmos determinsticos (BASTOS, 2004):
a funo objetivo e as restries no precisam necessariamente ter uma
representao matemtica;
no requerem que a funo objetivo seja contnua ou diferencivel;
trabalham adequadamente, tanto com parmetros contnuos quanto com
discretos, ou ainda com uma combinao deles;
no necessitam de formulaes complexas ou reformulaes para o
problema;
no h restrio alguma quanto ao ponto de partida dentro do espao de
busca da soluo;
realizam buscas simultneas no espao de possveis solues atravs de
uma populao de indivduos;
Otimizam um grande nmero de variveis, desde que a avaliao da
funo objetivo no tenha um custo computacional demasiadamente alto.
A maior desvantagem em relao aos mtodos clssicos o tempo de
processamento.

3.4.1.
Computao Evolucionria
Segundo BCK et al.(1997), a Computao Evolucionria teve origem no
final da dcada de 50 e permaneceu relativamente desconhecida da comunidade

Mtodos de Otimizao

39

cientfica por aproximadamente trs dcadas, devido principalmente falta de


computadores eficientes na poca, mas tambm devido metodologia pouco
desenvolvida durante as primeiras pesquisas. Durante a dcada de setenta, os
trabalhos de Holland, Rechenberg, Shwefel e Foger foram fundamentais para
modificar a imagem da Computao Evolucionria que, a partir de ento,
comeou a ser largamente desenvolvida.
Os Algoritmos Evolucionrios ( AE ' s ) formam uma classe de mtodos de
otimizao probabilsticos que so inspirados por alguns princpios baseados em
mecanismos evolutivos encontrados na natureza, como auto-organizao e o
comportamento adaptativo (BEYER et al, 2002).
De acordo com BARBOSA (1997), um algoritmo evolucionrio se distingue
dos mtodos determinsticos mais comuns basicamente por:
empregar uma populao de indivduos, ou solues;
trabalhar sobre uma codificao das possveis solues (gentipos) e no
PUC-Rio - Certificao Digital N 0310953/CA

sobre as solues (fentipos) propriamente ditas;


empregar regras de transio probabilsticas;
no requerer informaes adicionais (derivadas, por exemplo) sobre a
funo a otimizar e as restries.
Assim, a busca de solues pode se dar em conjuntos no-convexos com
funes objetivo tambm no-convexas e no-diferenciveis podendo-se
trabalhar simultaneamente com variveis reais, lgicas e inteiras. Vale ressaltar
tambm que os AE ' s no so facilmente presos a mnimos locais como o
caso dos algoritmos usuais dos mtodos determinsticos. Ao utilizar um AE ,
essas caractersticas podem levar descoberta de solues no convencionais
que no poderiam ser vislumbradas por serem contra-intuitivas. um paradigma
que no exige conhecimento prvio de uma maneira de encontrar a soluo.
Para a utilizao de AE em problemas de otimizao com restries, uma
das possibilidade utilizar um mtodo de penalizao. Isso pode ser feito
atravs da pena de morte, onde um indivduo simplesmente eliminado da
populao quando violar as restries ou quando no for possvel avaliar sua
aptido*. Porm, possui a desvantagem de poder estar descartando um indivduo
potencialmente til ao processo evolutivo. Outra maneira seria introduzir uma
*

Utilizou-se a palavra aptido como traduo da palavra fitness usualmente

adotada na literatura inglesa para se referir ao desempenho de um indivduo da


populao.

Mtodos de Otimizao

40

funo de penalizao para incorporar as restries funo objetivo, de


maneira anloga ao que se faz nos mtodos clssicos de otimizao, reduzindo
a aptido dos indivduos que violam as restries (BARBOSA, 1997).
Para ilustrar o comportamento de um AE , considera-se uma funo
objetivo unidimensional a ser maximizada. A Figura 3.2 mostra trs etapas da
busca evolucionria, mostrando como os indivduos so distribudos no comeo
(a), meio (b) e fim (c) do processo de evoluo. Na primeira fase, imediatamente
aps a inicializao da populao, os indivduos so aleatoriamente espalhados
em todo o espao de busca. Depois de algumas geraes a distribuio
modifica-se: devido aos operadores de variao e seleo, a populao
abandona as regies de baixa aptido e comea a ocupar reas de maior
aptido. No final da busca, tendo sido escolhida uma condio de parada
apropriada, toda a populao est concentrada em torno de poucos pontos,
onde alguns desses pontos podem ser sub-timos. Pode ocorrer de todos os
um timo global. Essa convergncia prematura um efeito conhecido de perda
rpida de diversidade, que leva a populao a ficar presa a timos locais (EIBEN
& SMITH, 2003).

Incio

Meio

Fim
Funo aptido

Funo aptido

Funo aptido

PUC-Rio - Certificao Digital N 0310953/CA

membros da populao se posicionarem em torno de um timo local ao invs de

Indivduos no domnio da

Indivduos no domnio da

Indivduos no domnio da

funo aptido

funo aptido

funo aptido

(a)

(b)

(c)

Figura 3.2 Evoluo tpica de um AE , ilustrada de acordo com a distribuio da


populao. Adaptado de EIBEN & SMITH (2003).

Conforme CORTES & SAAVEDRA (2000), a Computao Evolucionria


tem sido utilizada com sucesso para resoluo de complexos problemas de
otimizao. Seu principal obstculo a preciso da soluo a ser encontrada,
pois o quanto mais prximo da soluo tima se deseja chegar, mais poder
computacional e tempo de processamento so exigidos, principalmente quando
so utilizadas funes multimodais.

Mtodos de Otimizao

41

3.4.1.1.
Definies
Para a utilizao de um

AE

so necessrias algumas definies

adicionais que so particulares a esse tipo de algoritmo (BASTOS, 2004; EIBEN


& SMITH, 2003). Como a Computao Evolucionria baseada em mecanismos
evolutivos encontrados na natureza, muitos termos adotados pelos AE ' s
baseiam-se na Gentica, tais como:
Cromossomo ou gentipo representa um indivduo no espao do AE , ou
seja, representa um indivduo codificado;
Fentipo representa um indivduo no espao de busca original;

PUC-Rio - Certificao Digital N 0310953/CA

Indivduo um membro da populao;


Gene unidade bsica do cromossomo, ou seja, um elemento do vetor
que representa o cromossomo;
Populao conjunto de indivduos ou cromossomos;
Gerao ordem evolutiva das diferentes populaes;
Operaes genticas conjunto de operaes que o AE realiza sobre
cada um dos cromossomos;
Funo aptido quando o

AE utilizado em um problema de

otimizao, a funo aptido equivale funo objetivo.

3.4.1.2.
Algoritmo Evolucionrio
A principal idia em que se baseia qualquer variao de um Algoritmo
Evolucionrio : dada uma populao de indivduos, a presso do meio ambiente
causa uma seleo natural que evolui a populao. Sendo assim, qualquer
algoritmo evolucionrio deve ter as seguintes componentes bsicas para
resolver um problema (MICHALEWICZ, 1996; EIBEN & SMITH, 2003;
BARBOSA, 1997; BCK et al, 1997):

Mtodos de Otimizao

42

Uma representao gentica das solues do problema;


A representao ou codificao de um indivduo quando se utiliza um AE
consiste em relacionar o espao real do problema com o espao adotado
pelo AE , ou seja, representar/codificar os elementos do espao real no
espao do AE . Cada elemento do espao de busca denominado
fentipo e sua representao no espao do AE denominado gentipo.
Para ilustrar esse processo, considere que em um problema de otimizao
bidimensional de nmeros inteiros que adote um AE com representao
binria, onde o alfabeto composto dos smbolos 0 e 1, x = {x1 , x2 } seja
uma possvel soluo do problema. Sendo o cromossomo codificado com
cinco bits para cada uma das variveis do problema, elas podem ser
representadas da seguinte maneira:

x1 =00100

PUC-Rio - Certificao Digital N 0310953/CA

x2 =10100
Essas codificaes seriam os genes que concatenados formam o
cromossomo, que representa uma possvel soluo do problema:
0010010100
Para recuperar os valores das variveis no espao real, ou seja, obter o
fentipo, necessrio um processo de descodificao:

IND1 = 0x24 + 0x23 + 1x22 + 0x21 + 0x20 = 4


IND2 = 1x24 + 0x23 + 1x22 + 0x21 + 0x20 = 20
Para um problema com variveis inteiras, o valor da varivel igual ao
prprio ndice fornecido pela codificao ( IND ). No caso de variveis
discretas, a decodificao fornece um ndice que localiza o valor da
varivel numa lista de referncia, que representa o espao de busca para
esta varivel (BASTOS, 2004).
Para as variveis contnuas, tem-se a seguinte decodificao:
x i = xiL + INDi

x iU xiL
2 nb 1

(3.1)

Mtodos de Otimizao

43

Onde:
x - ponto de busca no espao.

x L - limite inferior do espao de busca;

x U - limite superior do espao de busca;


nb - nmero de bits;

IND -ndice fornecido pela decodificao da varivel;


i - nmero de variveis;

Segundo BASTOS (2004), a utilizao de codificao binria dada pelas


seguintes razes:
Extrema facilidade para criar e manipular vetores binrios;
Utiliza rigorosamente a preciso determinada para cada varivel;

PUC-Rio - Certificao Digital N 0310953/CA

Altamente indicada para se operar com variveis discretas.

Porm, quando o problema em anlise necessita que as variveis


envolvidas sejam de alta preciso numrica, a codificao binria possui
enorme desvantagem pois, neste caso, faz-se necessrio que os
cromossomos possuam um comprimento extremamente grande, reduzindo
a performance do AE . Outra desvantagem a necessidade constante de
converso entre os valores reais e os binrios nas diversas iteraes do
processo.
Populao

O papel da populao manter as possveis solues. Enquanto os


indivduos so estticos, isto , no se modificam, a populao uma
unidade de evoluo. Dada uma representao, definir uma populao
equivale a decidir o nmero de indivduos que iro form-la. Em alguns

AE ' s mais sofisticados a populao pode ter uma estrutura adicional, com
medidas de distncia ou relaes de vizinhana. Em quase todas as
aplicaes de AE o tamanho da populao constante, no sendo
modificado durante a evoluo.
Uma maneira de inicializar a populao;

A inicializao da populao geralmente simples na maioria das


aplicaes de AE , e feita gerando indivduos aleatoriamente. Porm,
algumas heursticas podem ser usadas para gerar uma populao inicial

Mtodos de Otimizao

44

com maior aptido, como, por exemplo, iniciar a populao com solues
aproximadas conhecidas ou contendo algum tipo de informao prvia. Se
isso vale o esforo computacional extra envolvido, depende muito da
aplicao.
Uma funo aptido

A funo aptido a responsvel pelo processo de seleo dos indivduos


e deve indicar a qualidade de cada indivduo na populao, sendo assim,
influi diretamente na evoluo da populao. Tecnicamente, uma funo
que designa uma medida de qualidade ao gentipo, ou seja, a aptido.
Operadores genticos

Os operadores genticos alteram a composio gentica dos filhos durante


a reproduo. O papel dos operadores criar novos indivduos a partir dos
PUC-Rio - Certificao Digital N 0310953/CA

antigos. Os operadores trabalham sobre a codificao das possveis


solues (gentipo) e no sobre as solues (fentipos) propriamente
ditas. Os principais operadores so recombinao e mutao.
A recombinao um operador que une informaes de dois ou mais
gentipos pais para gerar um ou dois descendentes. O operador de
recombinao estocstico, isto , aleatria a escolha de que partes de
cada pai ser recombinada e o modo que estas partes sero
recombinadas.
A mutao um operador que aps ser aplicado a um gentipo gera um
filho. Similar a recombinao, a mutao um operador sempre
estocstico: seu resultado o filho depende dos resultados de uma srie
de escolhas aleatrias.
Um mecanismo de seleo

O papel da seleo diferenciar os indivduos baseados nas suas


qualidades, em particular, permitir que os melhores indivduos tornem-se
pais da prxima gerao.
Um critrio de parada

Caso o problema tenha um valor timo da funo aptido conhecido, o


critrio de parada pode ser quando este valor for atingido, considerando
uma certa preciso. Porm, como AE' s so estocsticos e no h
garantias de que o valor timo ser atingido, essa condio pode nunca

Mtodos de Otimizao

45

ser satisfeita e o algoritmo nunca parar. As opes comumente usadas


como critrio de parada so:
1. tempo mximo transcorrido;
2. o nmero total de avaliaes da funo aptido atingir um nmero
limite;
3. quando a aptido melhorar muito pouco durante um certo perodo de
tempo (ou um certo nmero de geraes ou um certo nmero de
avaliaes da funo aptido);
4. quando a diversidade da populao diminuir at um certo limite, sendo
diversidade uma medida do nmero de diferentes solues presente na
populao, que pode ser medido pelas diferentes aptides presentes na
populao ou pelo nmero de diferentes fentipos ou gentipos
presentes.

PUC-Rio - Certificao Digital N 0310953/CA

A partir do que foi visto acima, percebe-se que a combinao da aplicao


de variao, atravs dos operadores genticos, e seleo levam a melhorar o
valor da aptido e, em conseqncia, melhorar a populao. Pode-se perceber
essa evoluo como se fosse um processo de otimizao, atravs da busca de
valores timos, que, no decorrer do processo, ficam cada vez mais prximos.
Alternativamente, essa evoluo vista como um processo de adaptao.
Deste ponto de vista, a aptido no vista como uma funo objetivo a ser
otimizada, mas como uma necessidade do meio ambiente. O processo evolutivo
faz a populao adaptar-se ao meio ambiente cada vez melhor. A seguir
mostrado um pseudo-cdigo que representa um algoritmo evolucionrio.
Gerao = 0
Inicializa populao (P) ;
Avalia os indivduos;
Enquanto o critrio de parada no for satisfeito repita:
1. Recombinao
2. Mutao
3. Avaliao dos descendentes
4. Seleo
5. Gerao = Gerao +1
Figura 3.3 Esquema geral de um Algoritmo Evolucionrio. Adaptado de BCK et al
(1997).

Mtodos de Otimizao

46

Porm, para que a implementao de um algoritmo evolucionrio tenha


sucesso quando aplicado a um problema real, as componentes listadas acima
requerem

algumas

heursticas

adicionais,

que

esto

relacionadas

representao gentica das solues, aos operadores que alteram suas


composies, aos valores de vrios parmetros, aos mtodos de inicializao
da populao e at mesmo prpria funo aptido.

3.4.1.3.
Principais Ramos da Computao Evolucionria
A Computao Evolucionria uma das reas da Inteligncia Artificial,
juntamente com as Redes Neurais e os Sistemas de Lgica Nebulosa (Figura
3.4). A maioria das implementaes de algoritmos evolucionrios vem de trs
ramos fortemente relacionados, porm independentemente desenvolvidos

PUC-Rio - Certificao Digital N 0310953/CA

(BEYER, 2002 e BCK et al, 1997):

Algoritmos Genticos ( AG' s );

Programao Evolutiva ( PE' s );

Estratgias Evolutivas ( EE' s ).


Alm dos ramos citados acima, alguns autores, com MICHALEWICZ

(1996), citam ainda a Programao Gentica ( PG ' s ) como um importante ramo


da Computao Evolucionria.

Figura 3.4 Ramificao da Inteligncia Artificial. Adaptada de OLIVIERI (2004).

As principais diferenas entre esses ramos esto na representao dos


indivduos, nos operadores utilizados (mutao e/ou recombinao) e no
mecanismo de seleo, embora ultimamente a fronteira entre eles vem se
tornando menos ntida.

Mtodos de Otimizao

47

3.4.1.4.
Algoritmos Genticos (AGs)
Segundo BARBOSA (1977) e BCK (1997), o AG foi desenvolvido
principalmente por John Holland no final da dcada de 60 buscando inspirao
no que se conhece sobre o processo de evoluo natural, conhecimento este
iniciado solidamente com a teoria da evoluo de Darwin no seu famoso livro A
Origem das Espcies.
Na maioria das aplicaes que utilizam AG' s , a forma mais comum de
construo de uma codificao utilizar uma cadeia binria, de comprimento
fixo. Isso ocorre porque a teoria dos AG ' s foi desenvolvida com base nesta
representao, mas DAVIS (1991) acha que essa representao no natural e
desnecessria na maioria dos casos.
O principal operador a recombinao, tambm conhecido como

PUC-Rio - Certificao Digital N 0310953/CA

crossover na literatura inglesa, e a mutao vista como um operador de


pequena importncia. De forma simplificada, no alfabeto binrio, os operadores
funcionam da seguinte maneira:
A mutao definida pela modificao do smbolo ocorrente em uma

posio do cromossomo: se 1 ele passa a 0 e vice-versa. A probabilidade


p m de ocorrncia de mutao de um gene geralmente muito pequena,

da ordem de 1 / l , onde l nmero de bits do cromossomo.


O crossover, no algoritmo padro, chamado crossover de um ponto.

Atravs de um esquema de seleo implementado, dois indivduos so


escolhidos e, com probabilidade pc, so submetidos operao de
recombinao. Uma posio de crossover sorteada e o material gentico
dos pais recombinado conforme o esquema abaixo:
p1 : 1111111

f1 : 1111000

p2: 0000000

f2 : 0000111

Existem outras variaes deste operador que podem ser empregadas,


como crossover de dois pontos, crossover uniforme, etc.
A

seleo

tipicamente

implementada

utilizando

um

esquema

probabilstico. A probabilidade p i de seleo do i -simo indivduo da


populao vir a ser selecionado proporcional sua aptido relativa,
conforme equao 3.2 (BCK et al, 1997;BARBOSA,1977).

Mtodos de Otimizao

pi =

48

fi
m

(3.2)

fi
i =1

Onde fi = f ( xi ) assumida positiva e m o nmero de indivduos da


populao.
Um mtodo que aplica essa tcnica o Mtodo da Roleta (roullete wheel
selection, na literatura inglesa), onde indivduos de uma gerao so
escolhidos para fazer parte da prxima gerao, atravs de um sorteio de
roleta. Os indivduos so representados na roleta proporcionalmente ao
seu ndice de aptido. Finalmente, a roleta girada um determinado
nmero de vezes, dependendo do tamanho da populao, e so
escolhidos como indivduos que participaro da prxima gerao, aqueles

PUC-Rio - Certificao Digital N 0310953/CA

sorteados na roleta (Figura 3.5).

p1
p2
p3
p4

Figura 3.5 Seleo utilizando o mtodo da roleta (Barbosa, 1977).

3.4.1.5.
Programao Gentica (PG)
O paradigma da PG foi desenvolvido por John Koza (KOZA,1992).
Segundo MICHALEWICZ (1996), esta tcnica constitui uma maneira de fazer
uma busca no espao de possveis programas computacionais para escolher o
melhor deles, ou seja, uma tcnica de gerao automtica de programas de
computador, onde a partir de especificaes de comportamento, o computador
deve ser capaz de induzir um programa que as satisfaa (KOZA, 1992).

Mtodos de Otimizao

49

Conforme descrito por RODRIGUES (1992), a tcnica baseia-se na


combinao de idias da teoria da evoluo (seleo natural), gentica
(reproduo, cruzamento e mutao), inteligncia artificial (busca heurstica) e
teoria de compiladores (representao de programas como rvores sintticas).
Os programas so formados pela livre combinao de funes e terminais
adequados ao domnio do problema. Parte-se de dois conjuntos: F como sendo
o conjunto de funes e T como o conjunto de terminais. O conjunto F pode
conter operadores aritmticos (+, -, * etc), funes matemticas (seno, logaritmo
etc), operadores genticos (E, OU etc) dentre outros. Cada

f F

tem

associada uma aridade (nmero de argumentos) superior a zero. O conjunto T


composto pelas variveis, constantes e funes de aridade zero (sem
argumentos).
O processo evolutivo ocorre a partir da aplicao dos operados genticos a
populao e pelo processo de seleo, que baseado na aptido dos
PUC-Rio - Certificao Digital N 0310953/CA

programas, at atingir um determinado critrio de parada.


Usualmente, para avaliar a aptido fornecido um conjunto de casos de
treinamento, contendo valores de entrada e sada a serem aprendidos. A cada
programa so fornecidos os valores de entrada e confronta-se a sua resposta ao
valor esperado de sada. A aptido ser proporcional proximidade da resposta
do programa ao valor de sada esperado. O operador de reproduo apenas
seleciona um programa e o copia para a prxima gerao sem sofrer nenhuma
mudana em sua estrutura. As Figuras 3.6 e 3.7 mostram a aplicao do
operador de recombinao (crossover) em duas funes selecionadas, que
partilham informao gentica e do origem a duas novas funes diferentes.

Figura 3.6 Crossover na PG : seleo aleatria dos ramos que sofrero o corte
(SOUSA & ANDRADE, 1998).

Mtodos de Otimizao

50

Figura 3.7 Crossover na PG : funes resultantes (SOUSA & ANDRADE, 1998).

A mutao nem sempre efetuada, pois depende de um valor que indica a


probabilidade de existir mutao numa determinada gerao. Quando
efetuada, uma funo escolhida aleatoriamente para sofrer mutao (Figura

PUC-Rio - Certificao Digital N 0310953/CA

3.8).

Figura 3.8 Aplicao do operador de mutao na PG (SOUSA & ANDRADE,


1998).

3.4.1.6.
Programao Evolutiva (PE)
De acordo com BCK et al. (1997) e MICHALEWICZ (1996), a PE surgiu
originalmente como uma tentativa de criar inteligncia artificial. O objetivo era
desenvolver mquinas de estado finitas (MEF) para prever eventos com base em
observaes anteriores. Uma MEF uma mquina abstrata que transforma uma
seqncia de dados de entrada em uma seqncia de dados de sada. A
transformao depende de certas regras de transio.
Os indivduos so usualmente representados por vetores de nmeros
reais. Geralmente cada genitor gera um filho. A mutao ocorre tipicamente com
probabilidade uniforme e originalmente implementada como uma mudana

Mtodos de Otimizao

51

randmica (ou atravs de mltiplas mudanas) da descrio das MEF de acordo


com cinco diferentes modificaes:
mudana de um dado de sada;
mudana de uma regra de transio;
incluso de uma regra de transio;
excluso de uma regra de transio;
mudana da regra de transio inicial.

No utilizada a recombinao.
O processo de seleo ocorre como uma srie de torneios entre subgrupos dentro da populao. Cada indivduo da populao avaliado contra t
(obrigatoriamente t > 1 e usualmente t 10 ) outros indivduos escolhidos
randomicamente da populao. Para cada comparao marcado um vencedor.
Permanecem na populao os indivduos que tiveram o maior nmero de

PUC-Rio - Certificao Digital N 0310953/CA

vitrias.

3.4.1.7.
Estratgia Evolutiva (EE)
A primeira verso de EE' s foi (1 + 1) EE , que empregava um esquema
simples de seleo-mutao trabalhando em um nico indivduo que gera um
nico descendente atravs da mutao Gaussiana e ambos so submetidos ao
processo de seleo, que elimina a soluo mais pobre. Mais tarde, esta teoria
evolui para ( + 1) EE , no qual uma populao de indivduos se recombina
de maneira randmica para formar um descendente, que sofre mutao e em
seguida, passa pelo processo de seleo.
Nas verses descritas acima, a convergncia era lenta e a busca ponto a
ponto era susceptvel a estagnar em mnimos locais.
Mais tarde, visando sanar essas deficincias, desenvolveram-se outras
verses, utilizando a estratgia denominada multi-membros, onde o tamanho da
populao maior que um. Atualmente, os dois principais tipos so (COSTA &
OLIVEIRA, 2002; BEYER et al., 2002; BCK et al., 1997):

( + ) EE

Conhecida como estratgia soma, onde pais produzem filhos, sendo

> , gerando uma populao de + indivduos. Nesta estratgia, os

Mtodos de Otimizao

52

+ indivduos participam do processo de seleo, que determina os


indivduos que sero os pais da prxima gerao.

( , ) EE

Conhecida como estratgia vrgula, se difere da estratgia soma porque


apenas os filhos participam do processo de seleo. Assim, o perodo
de vida de cada indivduo limitado a apenas uma gerao. Segundo
CORTES & SAAVEDRA (2000), este tipo de estratgia tem bom
desempenho em problemas onde o ponto timo em funo do tempo, ou
onde a funo afetada por rudo.
Note tambm que ambas estratgias apresentadas so extremos da
estratgia mais geral ( , k , ) EE , onde 1 k representa o nmero mximo

PUC-Rio - Certificao Digital N 0310953/CA

de geraes que um indivduo pode permanecer na populao.


Nas verses atuais, a descendncia obtida submetendo-se os indivduos
da gerao a dois operadores: cruzamento e mutao. O cruzamento feito de
forma aleatria e a mutao feita tipicamente atravs de uma perturbao
Gaussiana de mdia nula e desvio padro unitrio, porm outros tipos de
mutao so possveis. Aplica-se tambm a idia de auto-adaptao do
parmetro desvio padro ( ) durante o processo evolutivo, o que uma das
caractersticas chaves do sucesso das estratgias evolutivas.

3.4.1.7.1.
Distribuio Normal
Para utilizar um algoritmo de EE ' s necessrio conhecer uma maneira de
gerar variveis aleatrias segundo uma distribuio normal ou gaussiana.
O modelo probabilstico citado acima chamado Modelo Normal e suas
origens remontam a Gauss em seus trabalhos sobre erros de observaes
astronmicas, por volta de 1810, da o nome de distribuio Gaussiana para tal
modelo (BUSSAD & MORETTIN, 2004).
De uma maneira geral, diz-se que uma varivel aleatria (v.a.) tem
distribuio normal com mdia

e varincia 2 , onde < < + e

0 < 2 < , se sua funo de densidade de probabilidade dada por:


f ( , , 2 ) =

e ( )

/ 2 2

, < <

(3.3)

Mtodos de Otimizao

53

Podemos dizer que ~ N ( , 2 ) .

A Figura 3.9 ilustra uma curva normal, determinada por valores particulares
de e .

fd ( )

PUC-Rio - Certificao Digital N 0310953/CA

Figura 3.9 Funo de densidade de probabilidade de uma v.a. normal com mdia e
desvio padro .

Quando = 0 e = 1 , temos uma distribuio padro ou reduzida.


H vrios mtodos para gerar v.a. normais, mas uma observao
importante que basta gerar uma v.a. normal padro, pois qualquer outra pode
ser obtida desta. De fato, gerado um valor z1 da v.a. Z ~ N (0,1) , para gerar um
valor 1 de uma v.a. ~ N ( , 2 ) basta usar a transformao;

1 = + .z1

(3.4)

Um mtodo eficiente para gerar v.a. com distribuio normal o Mtodo de


Box-Mller (BUSSAD & MORETTIN, 2004). Nesse mtodo so geradas duas
v.a. normal padro z1 e z 2 , independentes, e N (0,1) , a partir de duas v.a. com
distribuio uniforme em [0,1], u1 e u 2 , como mostra as equaes 3.5 e 3.6
(BUSSAD & MORETTIN, 2004) :
z1 = 2 log u1 cos(2u 2 )

(3.5)

z 2 = 2 log u1 sen(2u 2 )

(3.6)

A Figura 3.10 mostra o resultado da gerao de nmeros aleatrios


usando a funo rand da biblioteca padro da linguagem C.

Mtodos de Otimizao

54

Variveis aleatrias normais

0,9
0,8
0,7
0,6
0,5
0,4
0,3
0,2
0,1
0
0

200

400

600

800

1000

Nmero de variveis

Na Figura 3.11 apresentado o resultado da gerao de nmeros


aleatrios com distribuio normal a partir da varivel aleatria uniforme gerada
pela funo rand da biblioteca da linguagem C.

Variveis aleatrias normais

PUC-Rio - Certificao Digital N 0310953/CA

Figura 3.10 Nmeros gerados pela funo rand da biblioteca da linguagem C.

3
2
1
0
0

100

200

300

400

500

600

700

800

900

1000

-1
-2
-3
-4

Nmero de variveis
Figura 3.11 Nmeros gerados pela transformao da v.a. uniforme em v.a. normal.

Mtodos de Otimizao

55

3.4.1.7.2.
Algoritmo Padro de EE
As componentes bsicas de um Algoritmo Evolucionrio quando aplicadas
a um algoritmo de EE' s possuem caractersticas particulares, que esto
detalhadas a seguir (CORTES & SAAVEDRA, 2000; EIBEN & SMITH,2003 ):
Representao dos Indivduos

Nas EE' s , cada indivduo representado por um par de vetores reais da


forma v = ( x , ) , onde x representa um ponto de busca no espao, ou
seja, o vetor das variveis da funo objetivo, e o vetor de desvio
padro associado.
Inicializao da populao

PUC-Rio - Certificao Digital N 0310953/CA

A inicializao da populao geralmente feita de maneira muito simples,


gerando aleatoriamente os indivduos. Porm, pode-se utilizar alguma
heurstica para iniciar a populao, tal como gerar indivduos que sejam
possveis solues do problema.
Recombinao dos pais at gerar descendentes.

H inmeras variaes desse operador. Quanto ao nmero de genitores


que participam da recombinao, ela pode ser chamada de recombinao
de multi-pais, onde mais de dois indivduos participam da gerao de
apenas um descendente, sendo (1 ), onde o nmero de
indivduos

que

descendente.

iro

participar

da

recombinao

para

gerar

um

Normalmente, escolhe-se =2 ou = (recombinao

global). Quanto as diferentes maneiras de recombinar os genitores, podese citar como exemplos tpicos a recombinao discreta e a recombinao
intermediria:
Recombinao discreta

Um descendente gerado a partir de dois ou mais genitores escolhidos


randomicamente na populao ancestral. As variveis que iro formar o
novo descendente so escolhidas randomicamente entre as variveis dos
genitores.

Mtodos de Otimizao

56

Para ilustrar esse processo mostrado um exemplo onde dois indivduos


a = ( x a , a ) e b = ( x b , b ) , so escolhidos

da populao ancestral,
randomicamente

recombinados

para

formar

um

descendente,

v ' = ( x ' , ') . A recombinao feita gerando-se uma varivel aleatria u


com distribuio uniforme no intervalo de [0,1], amostrada individualmente
para cada componente do vetor v ' .
u 0.5

xi' = x a ,i

u >0.5

xi' = xb ,i

u 0.5

i' = a ,i

u >0.5

i' = b ,i

PUC-Rio - Certificao Digital N 0310953/CA

Com i=1,...,n ; onde n o nmero de variveis da funo objetivo.


Recombinao Intermediria

A diferena da recombinao discreta que as variveis que iro formar o


novo indivduo so obtidas atravs da mdia aritmtica das variveis dos
pais ao invs de realizar uma escolha randomica das variveis. Sendo
assim, usando o mesmo exemplo mostrado acimo, as variveis do novo
descendente poderiam ser obtidas da seguinte
x i' = (x a ,i + xb ,i ) / 2

i' = ( a ,i + b ,i ) / 2
As vantagens e desvantagens da recombinao para uma funo objetivo
em particular devem ser notadas durante o desenvolvimento, pois no h
uma recomendao generalizada para o uso deste operador.
Mutao do desvio padro e dos descendentes

Faz-se a mutao dos desvios padres e, em seguida, a mutao dos


descendentes seguindo as equaes 3.7 e 3.8 (BCK & HAMMEL, 1994;
BCK et al, 1997):

i' = i .exp( '.N ( 0,1 ) + .N i ( 0 ,1 ))

(3.7)

xi' = xi + N ( 0 , i' )

(3.8)

Mtodos de Otimizao

57

onde:
i = 1,...,n; sendo n o nmero de variveis da funo objetivo;

N (0,1) representa um nmero Gaussiano com mdia zero e desvio


padro unitrio.

Nota-se que esse nmero o mesmo para todos os

indivduos quando multiplicado pelo fator ' e, quando multiplicado por ,


deve ser obtido independentemente para cada valor de i. Os valores
sugeridos para os parmetros ' e

so mostrados nas equaes 3.9 e

3.10, respectivamente.:

' = ( 2n ) 1
= 2 n

PUC-Rio - Certificao Digital N 0310953/CA

(3.9)

(3.10)

Este esquema pode sofrer modificaes. Uma opo usar uma verso
simplificada, onde usado o mesmo desvio padro para todas as variveis
da funo objetivo.
importante observar que os valores de e '

dependem das

caractersticas da funo objetivo e os valores timos para estes


parmetros podem ser diferentes dos valores propostos.
Nota-se que na mutao dos descendentes o desvio padro ser diferente
a cada gerao, o que consiste no conceito de auto-adaptao.
Seleo

Avalia-se a aptido dos genitores e descendentes, onde sero escolhidos


os indivduos com os melhores valores da aptido, os quais sero os
pais na prxima gerao.

3.4.1.8.
Comparao entre Estratgia Evolutiva e Algoritmo Gentico
A partir do que foi visto nos itens anteriores, a Tabela 3.1 apresenta uma
comparao entre Estratgia Evolutiva e Algoritmo Gentico na sua forma
padro.

Mtodos de Otimizao

58

Tabela 3.1 Comparao entre Estratgia Evolutiva e Algoritmo Gentico

AG

EE

Representao Nmeros reais


Seleo

Esquema

Binria
de

determinstico: ( + )
( , ) .

seleo Esquema

de

seleo

ou probabilstico: A probabilidade
de cada indivduo permanecer
na populao proporcional ao
valor de sua aptido.

Mutao

Principal operador

Operador

de

pequena

importncia e aplicada atravs

PUC-Rio - Certificao Digital N 0310953/CA

de inverso de bits.

Das könnte Ihnen auch gefallen