You are on page 1of 9

Estratgia Evolutiva

E. Q. Silva

Technical Report

RT-INF_005-11 2011 -

Relatrio Tcnico

September

Setembro

The contents of this document are the sole responsibility of the authors. O contedo do presente documento de nica responsabilidade dos autores.

Instituto de Informtica Universidade Federal de Gois


www.inf.ufg.br

Estratgia Evolutiva
Edjalma Queiroz da Silva
edjalma@ambientinformatica.com.br

Celso G. Camilo Jr
celso@inf.ufg.br

Introduo

As estratgias evolucionrias (Evolutionary Strategies, ou ES) foram propostas nos anos 60 por Rechenberg e Schwefel na Alemanha para a resoluo de problemas de otimizao contnua de parmetros para controle numrico e so descritas de forma completa em (Rechenberg, 1973) [1]. Apesar de terem sido desenvolvidas de forma paralela (no conjunta) com os algoritmos genticos, podem ser descritas basicamente como um GA de representao real que usa um operador de mutao baseado em uma distribuio normal. Alm de terem demonstrado um grande sucesso na rea de otimizao de parmetros, as ES devem ser estudadas pois seus operadores acrescentam funcionalidades interessantes aos GAs com representao real. [8]

1.1

Conceitos bsicos

A computao evolutiva dividida em trs grandes reas: algoritmos genticos (AGs), programao evolutiva (PEs) e estratgias evolutivas (ESs) [2]. Em todos estes trs paradigmas, simulada uma evoluo neo-Darwiniana, onde uma populao de solues candidatas de um problema submetida a um processo de recombinao (cruzamento), mutao e competio pela sobrevivncia. Assumindo algumas hipteses, possvel provar que as ESs convergem ao timo global com probabilidade 1, considerando um tempo de busca sucientemente longo. Uma primeira verso de ESs focaliza um processo de busca no esquema 1 genitor - 1 descendente. Isto foi denominado (1+1)-ES , onde um nico lho criado a partir de um nico genitor e ambos so confrontados numa competio por sobrevivncia, onde a seleo elimina a soluo mais pobre. Um aspecto negativo observado a convergncia lenta, alm da busca ponto a ponto ser susceptvel a estagnar em mnimos locais.[2] Outras verses foram desenvolvidas com o objetivo de resolver tais problemas. Estas estratgias so denominadas multi-indivduos, onde o tamanho da populao maior que 1. As ESs multi-membros foram aperfeioadas tendo-se atualmente dois principais tipos (+)-ES e (,)-ES. Na primeira, indivduos produzem descendentes, gerando-se uma populao temporria de (+) indivduos, de onde so escolhidos indivduos para a prxima gerao. Na verso (,)-ES, indivduos produzem descendentes, com < , sendo que a nova populao de indivduos formada por apenas indivduos selecionados do conjunto de descendentes. Assim, o perodo de vida de cada indivduo limitado a apenas uma gerao. Este tipo de estratgia tem bom desempenho em problemas onde o ponto timo em funo do tempo, ou onde a funo afetada por rudo.[2]

Mestrando em Cincia da Computao, INF-UFG Orientador

Estratgia Evolutiva

ESs: Algoritmo Padro Considerando cada elemento composto por um par de vetores na forma v = (x,), o algoritmo para o modelo ( + ) - ES mostrado a seguir: 1. Inicializa-se uma populao de indivduos com varincia 1 para cada posio de x. 2. Faz-se uma recombinao dos pais at gerar descendentes. 3. Faz-se a mutao dos descendentes. e das varincias seguindo as seguintes expresses: xi j = xi j + N (0, ) i j = i j . exp( N (0,1) + N j (0,1)) onde i = 1,...,; j = 1,...,n. N(0,1) representa um nmero Gaussiano com mdia zero e varincia 1, nota-se que esse nmero o mesmo para todos os indivduos quando multiplicado pelo fator . O numero Gaussiano que multiplica a deve ser obtido independentemente para valor de j. Os parmetros e foram sugeridos por Back [3, 5, 4] como: = ( 2n )-1 e = (4x2n)1. Note-se que na mutao dos descendentes a varincia ser diferente a cada gerao (auto-adaptao) 4. Avalia-se o tness1 de genitores e descendentes, onde sero escolhidos os indivduos com os melhores valores de tness (competio), os quais sero os pais na prxima gerao. 5. Repete-se o processo a partir do passo II at ser atingido o critrio de parada especicado. No passo 1 a populao inicial gerada aleatoriamente, porm atendendo as restries impostas pelo problema. O passo 2 iniciado o processo da gerao da populao de descendentes, que s estar nalizada aps o trmino do passo 3, ou seja, aps a mutao. No passo 4 ocorre a competio entre todos os indivduos, tanto genitores como descendentes. O critrio de competio a tness, que neste problema corresponde funo objetivo a ser otimizada. Este processo determinstico, levando em considerao que apenas indivduos sobrevivam e passem para a prxima gerao na qualidade de genitores. O critrio de parada especicado no passo 5 geralmente uma certa quantidade de geraes denidas pelo usurio.

A verso mais simples: (1 + 1)ES

Na primeira verso das estratgias evolucionrias utilizavam-se apaenas o operador de mutao e um mdulo seleo que s aceitava o lho gerado quando eles apresentavam uma avaliao superior a de seu pai. No mtodo mais tradicional, o melor dos dois indivduos seria selecionado para se tornar pai na gerao seguinte, mas existem tambm verses estocsticas em que cada um dos dois elementos recebe uma percentagem de chance de ser selecionado para a nova gerao. Esta verso estocstica interessante pois permite que o algoritmo fuja de mximos locais, para os quais qualquer pequena mutao gerar um lho menos apto. [8] A ES foi desenvolvido primeiro para otimizao experimental, aplicada a problemas hidrodinmica. Esta ES, Referido como a ES(1 + 1), no faz uso de uma populao. Um nico indivduo usado a partir do qual uma prole produzido atravs da aplicao de um operador de mutao. O (1 + 1)ES um dos primeiros algoritmos evolutivos que representa uma tupla de indivduo constituda de um vetor de deciso, x, a ser otimizada e um vetor de parmetros de estratgia . O vetor de parmetros de estratgia representa o tamanho do passo de mutao para cada dimenso, que dinamicamente adaptada de acordo com o desempenho.[7]
Entende-se por tness a medida do desempenho do individuo na gerao atual. Neste caso, a tness corresponde ao valor da funo objetivo do problema.
1

Estratgia Evolutiva

O individuo representado pela tupla, X(t) = (x(t), (t)) O operador de mutao usado nas ES baseado em uma distribuilai de probabilidades normal ou Gaussiana de mdia zero e desvio padro , representada por N(0, ) e conhecida como distribuio normal padro. A frmula de uma distribuio normal dada por:[8] N(0, , x) =
e 2 ( a ) 2
1 x 2

Figura 1: Grco de uma distribuio normal com mdia zero e desvio padro igual a 1 O grco de uma distribuio Gaussiana de mdia zero e desvio padro unitrio dado na gura 1. A distribuio normal extremamente importante pois descreve o comportamento aproximado de variveis aleatrias, sendo perfeitamente simtrica em torno da mdia (no caso da gura, = 0). O valor do desvio padro deve ser escolhido de acordo com o intervalo em que os dados se concentram. Cerca de 67 por cento das escolhas caro dentro do intervalo [, ], logo eles devem ser correspondentes a uma pequena variao do valor armazenado na posio corrente. [8]

Figura 2: Evoluo da rea sob a curva normal de mdia zero e desvio padro 1 como funo do valor de x.

Estratgia Evolutiva

A rea sob uma distribuio de probabilidades corresponde probabilidade de ocorrncia do valor de x. Assim, como pode-se observar na gura 2, a rea total sob uma distribuio de probabilidade (normal ou no) igual a 1. Baseado neste conceito, podemos escolher qual ser a variao da coordenada sorteando um valor pertencente ao intervalo (0,1) e determinando o valor de x para o qual a probabilidade de que um valor sorteado qualquer seja menor do que ele, seja igual a . Uma vez calculado o valor de x, aplicamos a mutao posio i em questo, aplicando a frmia da por ci = ci + x.[8] Assim, para determinar esta probabilidade e saber o valor da mutano a aplicar, basta x calcular o valor da integral N(0, , x)dx. De acordo com McClave o problema que no h uma forma fechada para esta integral, o que exige que usemos tcnicas nmericas para implement-la2 .[8]

Figura 3: Funcionamento da regra dos trapzios. Note que a rea total bem aproximada pela soma das reas dos trapzios. Existe um erro, visvel na gura, mas este pode ser diminuido arbitrariamente diminuindo-se o valor de x. Note que o valor do limite inferior do seundo intervalo igaul ao valor do superior do primeiro intervalo. O mtodo do trapzio pode ser utilizado para realizar esta integrao. A idia deste mtodo pode ser vista na gura3 e consiste basicamente em aproximar a curva por uma srie de trapzios cuja base igual a x e seus dois lados so dados pelos valores das funcoes nos dois pontos que distam x um do outro. Isto consiste basicamente em fazer uma aproximao linear por partes da funo que desejamos integrar. Pode-se mostrar que o erro desta funo limitado pelo valor mximo da segunda derivada da funo sendo integrada e que a aproximao pode ser to adequada quanto desejarmos, bastando diminuir o valor de x.[8] J foi provado que, mantido constante o valor de , as estratgias evolucionrias eventualmente convergiro para uma soluo tima, mas no existe uma limitao para o tempo em que isto ocorrer. O valor inicial de decidido de forma arbitrria, mas Rechenberg (1973) criou uma regra para atualiz-lo no decorrer das iteraes, que pode ajudar tambm na velocidade de convergncia, regra esta que cou conhecida como a Regra de 1/5 de sucesso.[8] De acordo com a observao de que os lhos biolgicos so semelhantes aos seus pais, e que os desvios menores do pai ocorre com mais freqncia do que as maiores, a prole [7] X (t) = (x (t), (t))
2 Existem tabelas que determinam a probabilidade de um valor, dado o nmero de desvios padres que ele est distante da mdia. Entretanto, implementar tabelas em computadores inadequado, pois temos que digitar vrios valores que podem, ento, conter erros. claro que os mtodos numricos tambm incluem aproximaes que podem causar erros de clculo, mas eles so bem mais elegantes e podem ser aproximados at atingirmos o erro desejado, por menor que este seja, o que no verdade para mtodos baseados em tabelas.

Estratgia Evolutiva

criada pela adio de rudo gaussiano como segue: x j (t) = x j (t) + N j (0, j (t)) = x j (t) + j (t)N j (0, 1) 1 Os parmetros de estratgia so adaptados com base na regra de sucesso 5 proposto por Rechenberg: Aumentar desvios, j, se a freqncia relativa de mutaes bem sucedidas ao longo de um determinado perodo maior do que 1 , caso contrrio, os desvios so reduzidos. 5 Schwefel props que, aps t > 10N x, se t mod nx = 0, o nmero de mutaes bem sucedidas, nm, que ocorreram durante as etapas de t 10N x para t 1 calculada. Os desvios so atualizadas usando,

onde = 0.85. Uma mutao de sucesso produz uma prole com um tness que melhor que o tness dos pais.[7][6] Note que o original (1 + 1)ES proposto por Rechenburg no adaptou desvios. Variaes tambm foram propostos onde j(t) = , j = 1, . . . , N x. O operador de seleo seleciona os melhores entre os pais e a prole, Isto , assumindo minimizao, [7]

Rechenberg sugeriu que a (1 + 1)ES pode ser estendido para um multi-membros ES, denotada como ( + 1)ES. Esta estratgia utiliza uma populao de > 1 pais. Dois pais so selecionados aleatoriamente e recombinados pelo crossover multiponto discreto para produzir uma prole. Se x1(t) e x2(t) denotam os dois pais, ento [7]

Estratgia Evolutiva

onde r j ~U(0, 1), j = 1, . . . , n x . A descendncia mutada para (1 + 1)ES. seguida uma abordagem elitista para selecionar a nova populao: os melhores indivduos fora do + 1 (pais e lhos) vo sobreviver para proxima gerao.[7] Devido a problemas com a auto-adaptao de tamanhos de etapas, ( + 1)ES no so utilizados regularmente. [7]

A verso com auto-ajuste de parmetros

Uma das grandes vantagens das estratgias evolucionrias a capacidade que elas tm de auto-ajustar seus parmetros, no necessitando, portanto, que se determine o valor da taxa de mutao de forma ad-hoc. Esta habilidade faz sentido: determinar os parmetros de um algoritmo evolucionrio um problema muito dicil, com espao de busca innito e, provavelmente, com vrios mximos locais. Repare que esta a exata denio de um problema que consideramos adequado para um algoritmo evolucionrio.[8] Quando usamos as ES mais simples, usamos como representao um vetor V, tal que V = {x1 , x2 , . . . , xn }, onde cada posio representava um dos valores sendo otimizados. Agora, para podermos tambm otimizar a taxa de mutao, vamos aumentar este vetor, incluindo-o no processo evolucionrio. [8] Para faz-lo existem trs formas: [8] Usar uma taxa nica de mutao para todas as posies. Consiste em simplesmente acrescentar um valor ao vetor V, fazendo com que ele se torne igual a V = {x1 , x2 , . . . , xn , }. Neste caso, precisamos adaptar tambm o parmetro . Usar uma taxa diferenciada de mutao no correlacionada para cada uma das posies. Consiste em acrescentar um parmetro a mais para cada coordenada, que representar o desvio padro daquela posies. O vetor V se tornar ento V = {x1 , x2 , . . . , xn , 1 , 2 , . . . , n }, onde o valor de k representa o desvio padro da mutao aplicada posio xk . Usar mutao correlacionada, onde os valores de cada posio afetam um ou mais dos valores das outras posies. Neste caso, precisaremos denir um parmetro i j para todas combinao de posies i e j tais que i j e as usaremos para denir uma matriz de covarincia. Em qualquer uma das formas adotadas existe uma regra a ser seguida: os valores de e devem primeiro ser aplicados s coordenadas do vetor corrente antes de sofrerem mutao. A mutao, sendo aleatria, pode levar os desvios padres para valores muito prximos de zero. Isto indesejado pois cerca de 2/3 dos valores selecionados cam entre [, ] e, se o valor de for muito baixo, a coordenada sob sua inuncia car estagnada por um longo perodo. Assim, usual estabelecer-se um limite mnimo 0 para cada valor de desvio padro e aplicar-se a regra < 0 = = 0 , que faz com que os desvios padres nunca sejam pequenos demais e garante o progresso da ES em direo soluo desejada.[8] Este conceito de autoparametrizao foi criado inicialmente nas ES, mas no precisa car restrito a elas, podendo ser estendido aos outros parmetros dos algoritmos genticos. Como discutido anteriormente, as ES possuem conceitos muito interessantes que podem ser expandidos para os GAs, de forma que estes obtenham um desempenho ainda melhor na resoluo de problemas.[8]

Estratgia Evolutiva

A verso com maior nmero de indivduos

Recentemente, muitos pesquisadores de estratgias evolucionrias passaram a usar populaes maiores para evitar os efeitos de convergncia gentica prematura vericados em vrios experimentos. Ao permitir o aumento da populao, passou-se tambm a introduzir o operador de crossover, que no fazia sentido quando havia apenas um pai disponvel dentro da populao. Estas modicaes fazem com que as ES quem extremamente parecidas, qui idnticas, aos algoritmos genticos de codicao real3 .[8] importante ressaltar que esta verso das ES naturalmente denida como tendo um mdulo de populao do tipo ( + ), isto , existem membros na populao original que geram um conjunto de lhos e o pool de indivduos total compete de forma que apenas os indivduos de maior avaliao sobrevivem at a prxima gerao, o que signica que as ES so inerentemente elististas em sua concepo.[8]

Concluso

Neste relatrio, foi introduzido as estratgias de evoluo (ES), outro membro da famlia dos algoritmos evolutivos. Ns tambm usamos estes algoritmos para ilustrar um recurso muito til no meio evolutivo, que alguns parmetros da EA so variados durante um ciclo evolutivo de uma forma especca: os parmetros so includos no cromossomo e co-evoluido com as solues. Esta caracterstica inerente a estratgias de evoluo moderna. Isto , uma vez que o procedimento foi detalhada em 1977 a maioria ES foram auto-adaptativa, e nos ltimos 10 anos cada vez mais outras EAs vem adotado esse processo. Um resumo da ES : Representao: real valorizado vetores Recombinao: Discreta ou intermedirio Mutao: perturbao gaussiana Seleo pai: (, ) ou ( + ) Especialidade: Auto-adaptao de tamanhos de passo de mutao

Referncias
[1] Evolutions strategie: Optimierung Technischer Systems nach Prinzipien der Biolgischen Evoltuion. Frommann-Holzboog Verlag, 1973. [2] Fast Evolution Strategies. Proc. 5th Annual Conf. Evolutionary Programming, 1993. [3] An Overview of Evolutionary Algorithms for Parameters Optimization. Evolutionary Computation, 1993. [4] Programming and Evolution Evolutionary Strategies: Similarities and Differnces. Proc. Od European Conf. on Alife, 1995.
Existe uma classe de problemas que no consiste de otimizao numrica, mas sim de otimizao combinatorial e que pode ser resolvida perfeitamente atravs de GAs. Estes problemas tambm so conhecidos como problema real.
3

Estratgia Evolutiva

[5] Evolutionary Computation: An Overview. Proc. 3rd IEEE Conf. on Evolutionary Computation, 1996. [6] Genetic algorithms + data structures = evolution programs. Michalewicz, Zbigniew, 1996. [7] Computational Intelligence - An Introduction. Andries P. Engelbrecht, 2007. [8] Algoritmos genticos. Ricardo Linden, 2008.