algoritmos genéticos - capítulo 11 1 algoritmos genéticos – capítulo 11 ricardo linden

24
Algoritmos Genéticos - Capítulo 11 Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Algoritmos Genéticos – Capítulo 11 Capítulo 11 Ricardo Linden Ricardo Linden

Upload: internet

Post on 17-Apr-2015

111 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 11

Algoritmos Genéticos – Algoritmos Genéticos – Capítulo 11Capítulo 11

Ricardo LindenRicardo Linden

Page 2: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 22

Estratégias EvolucionáriasEstratégias Evolucionárias

As estratégias evolucionárias (As estratégias evolucionárias (Evolutionary Evolutionary StrategiesStrategies, ou ES) foram propostas nos anos 60 , ou ES) foram propostas nos anos 60 por Rechenberg e Schwefel na Alemanha para por Rechenberg e Schwefel na Alemanha para a resolução de problemas de otimização a resolução de problemas de otimização contínua de parâmetroscontínua de parâmetros;;

Desenvolvidas de forma paralela (não Desenvolvidas de forma paralela (não conjunta) com os algoritmos genéticosconjunta) com os algoritmos genéticos;;

Podem ser descritas basicamente como um GA Podem ser descritas basicamente como um GA de representação real que usa um operador de de representação real que usa um operador de mutação baseado em uma distribuição normalmutação baseado em uma distribuição normal

Page 3: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 33

Versão Mais SimplesVersão Mais Simples

Primeira versão:Primeira versão:

– utilizavam apenas o operador de mutação;utilizavam apenas o operador de mutação;

– módulo seleção só aceitava o filho gerado módulo seleção só aceitava o filho gerado quando este tinha avaliação superior à de seu quando este tinha avaliação superior à de seu pai.pai.

População em cada instante:População em cada instante:

– apenas um indivíduo e o descendente gerado;apenas um indivíduo e o descendente gerado;

– denominada (1+1)-ES.denominada (1+1)-ES.

Page 4: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 44

Versão Mais SimplesVersão Mais Simples

Método tradicional: o melhor dos dois indivíduos Método tradicional: o melhor dos dois indivíduos seria selecionado para tornar-se pai na geração seria selecionado para tornar-se pai na geração seguinteseguinte

Existem também versões estocásticas:Existem também versões estocásticas:

– cada um dos dois elementos recebe uma cada um dos dois elementos recebe uma percentagem de chance de ser selecionado percentagem de chance de ser selecionado para a nova geração;para a nova geração;

– é interessante pois permite que o algoritmo é interessante pois permite que o algoritmo fuja de máximos locais;fuja de máximos locais;

– Nestes, qualquer pequena mutação gerará Nestes, qualquer pequena mutação gerará um filho menos apto.um filho menos apto.

Page 5: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 55

Versão Mais SimplesVersão Mais Simples

Objetivo das ES era otimizar parâmetros numéricos;Objetivo das ES era otimizar parâmetros numéricos;

Sua função de avaliação é f: Sua função de avaliação é f: nn→→, onde n é a , onde n é a cardinalidade do conjunto de parâmetros; cardinalidade do conjunto de parâmetros;

A representação padrão adotada então é a A representação padrão adotada então é a utilização de um vetor de valores reaisutilização de um vetor de valores reais;;

Cada cromossomo das ES é dado por um vetor V, Cada cromossomo das ES é dado por um vetor V, tal que tal que

nxxxV ,...,, 21

Page 6: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 66

Versão Mais SimplesVersão Mais Simples

O operador de mutação usado nas ES é O operador de mutação usado nas ES é baseado em uma distribuição de baseado em uma distribuição de probabilidades normal ou Gaussiana de média probabilidades normal ou Gaussiana de média zero e desvio padrão zero e desvio padrão , representada por N(0, , representada por N(0, ) e conhecida como distribuição normal ) e conhecida como distribuição normal padrão; padrão;

A fórmula de uma distribuição normal é dada A fórmula de uma distribuição normal é dada por: por:

2),,0(

2

*2

1

x

exN

Page 7: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 77

GaussianaGaussiana

Gráfico de uma distribuição normal com média Gráfico de uma distribuição normal com média zero e desvio padrão igual a 1zero e desvio padrão igual a 1

Page 8: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 88

GaussianaGaussiana

Descreve o comportamento aproximado de Descreve o comportamento aproximado de variáveis aleatórias;variáveis aleatórias;

Perfeitamente simétrica em torno da média Perfeitamente simétrica em torno da média ; ;

O valor do desvio padrão deve ser escolhido de O valor do desvio padrão deve ser escolhido de acordo com o intervalo em que os dados se acordo com o intervalo em que os dados se concentram;concentram;

Cerca de 67% das escolhas ficarão dentro do Cerca de 67% das escolhas ficarão dentro do intervalo [-intervalo [-,,], ],

Correspondem a uma “pequena” variação do Correspondem a uma “pequena” variação do valor armazenado na posição corrente. valor armazenado na posição corrente.

Page 9: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 99

Calculando a mutaçãoCalculando a mutação

A área sob uma distribuição de probabilidades A área sob uma distribuição de probabilidades até até xx, corresponde à probabilidade de , corresponde à probabilidade de ocorrência de ocorrência de xx

A área total sob uma distribuição de A área total sob uma distribuição de probabilidades (normal ou não) é igual a 1. probabilidades (normal ou não) é igual a 1.

Page 10: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 1010

Calculando a mutaçãoCalculando a mutação

Podemos escolher qual será a variação da coordenada Podemos escolher qual será a variação da coordenada fazendo o seguinte:fazendo o seguinte:

– sorteando um valor sorteando um valor pertencente ao intervalo (0,1); pertencente ao intervalo (0,1);

– determinando o valor de determinando o valor de xx para o qual a área sob a para o qual a área sob a curva até curva até xx é igual ao sorteado, isto é, o número é igual ao sorteado, isto é, o número xx para o qual a probabilidade de que um valor sorteado para o qual a probabilidade de que um valor sorteado qualquer seja menor do que ele seja igual a qualquer seja menor do que ele seja igual a . .

– Uma vez calculado o valor de x, aplicamos a mutação Uma vez calculado o valor de x, aplicamos a mutação à posição à posição ii em questão aplicando a fórmula dada por: em questão aplicando a fórmula dada por:

xcc ii '

Page 11: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 1111

Calculando a mutaçãoCalculando a mutação

Para determinar esta probabilidade e saber o Para determinar esta probabilidade e saber o valor da mutação a aplicar, basta calcular o valor da mutação a aplicar, basta calcular o valor da integralvalor da integral dada por: dada por:

O problema é que não há uma forma fechada O problema é que não há uma forma fechada para esta integral, o que exige que usemos para esta integral, o que exige que usemos técnicas numéricas para implementá-latécnicas numéricas para implementá-la

x

dxxN ),,0(

Page 12: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 1212

Calculando a integralCalculando a integral

Método: a regra dos trapézios repetida;Método: a regra dos trapézios repetida; Idéia: Idéia:

– aproximar a curva por uma série de trapézios aproximar a curva por uma série de trapézios

– base é igual a base é igual a xx

– dois lados são dados pelos valores das funções nos dois lados são dados pelos valores das funções nos dois pontos que distam dois pontos que distam xx um do outro. um do outro.

– consiste basicamente em fazer uma aproximação consiste basicamente em fazer uma aproximação linear por partes da função que desejamos integrar. linear por partes da função que desejamos integrar.

– o erro desta função é limitado pelo valor máximo o erro desta função é limitado pelo valor máximo

– a aproximação pode ser tão adequada quanto a aproximação pode ser tão adequada quanto desejarmos, bastando diminuir o valor de desejarmos, bastando diminuir o valor de xx

Page 13: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 1313

Calculando a integralCalculando a integral

Graficamente:Graficamente:

Page 14: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 1414

Melhorando um pouco…Melhorando um pouco…

Mantido constante o valor de Mantido constante o valor de , as ES , as ES convergirão para uma solução ótima;convergirão para uma solução ótima;

Não existe uma limitação para o tempo em que Não existe uma limitação para o tempo em que isto ocorrerá;isto ocorrerá;

Valor inicial de Valor inicial de é decidido de forma arbitrária é decidido de forma arbitrária;;

Rechenberg criou uma regra para atualizá-lo no Rechenberg criou uma regra para atualizá-lo no decorrer das iterações, que ficou conhecida decorrer das iterações, que ficou conhecida como a Regra de 1/5 de sucesso.como a Regra de 1/5 de sucesso.

Page 15: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 1515

Regra de 1/5 de SucessoRegra de 1/5 de Sucesso

Idéia básica desta regra era que idealmente 1/5 dos Idéia básica desta regra era que idealmente 1/5 dos filhos gerados devem ser melhores do que seus pais;filhos gerados devem ser melhores do que seus pais;

Se o índice de melhora for menor do que 1/5:Se o índice de melhora for menor do que 1/5:

– estamos perto de um máximo local; estamos perto de um máximo local;

– busca deve proceder com passos menores;busca deve proceder com passos menores;

– diminuimos o desvio padrão.diminuimos o desvio padrão. Se o índice de melhora for maior do que 1/5:Se o índice de melhora for maior do que 1/5:

– estamos longe de algum máximo;estamos longe de algum máximo;

– devemos aumentar o desvio padrão devemos aumentar o desvio padrão

– fazemos uma varredura mais ampla do espaço de fazemos uma varredura mais ampla do espaço de busca eaceleramos a convergência do algoritmobusca eaceleramos a convergência do algoritmo

Page 16: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 1616

Regra de 1/5 de SucessoRegra de 1/5 de Sucesso

Matematicamente:Matematicamente:

51,51,*51,

s

s

s

pc

pc

p

Page 17: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 1717

Auto-ajuste de parâmetrosAuto-ajuste de parâmetros

ES podem auto-ajustar seus parâmetros;ES podem auto-ajustar seus parâmetros;

Não precisamos determinar o valor da taxa de mutação Não precisamos determinar o valor da taxa de mutação de forma de forma ad-hoc;ad-hoc;

Esta habilidade faz sentido: Esta habilidade faz sentido:

– determinar os parâmetros de um algoritmo determinar os parâmetros de um algoritmo evolucionário é um problema muito difícil, com evolucionário é um problema muito difícil, com espaço de busca infinito e, provavelmente, com espaço de busca infinito e, provavelmente, com vários máximos locais. vários máximos locais.

– Exata definição de um problema que consideramos Exata definição de um problema que consideramos adequado para um algoritmo evolucionário. adequado para um algoritmo evolucionário.

Page 18: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 1818

Quando usamos as ES mais simples, nós Quando usamos as ES mais simples, nós usamos como representação um vetor V;usamos como representação um vetor V;

Cada posição representava um dos valores Cada posição representava um dos valores sendo otimizados; sendo otimizados;

Agora, para podermos também otimizar a taxa Agora, para podermos também otimizar a taxa de mutação, vamos aumentar este vetor, de mutação, vamos aumentar este vetor, incluindo-a no processo evolucionário. incluindo-a no processo evolucionário.

Auto-ajuste de parâmetrosAuto-ajuste de parâmetros

Page 19: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 1919

Para fazê-lo existem três formas:Para fazê-lo existem três formas:

– Usar uma taxa única de mutação para todas Usar uma taxa única de mutação para todas as posições. as posições.

Consiste em simplesmente acrescentar Consiste em simplesmente acrescentar um valor um valor ao vetor ao vetor VV, fazendo com que , fazendo com que ele se torne igual a ele se torne igual a

Neste caso, precisamos adaptar também Neste caso, precisamos adaptar também o parâmetro o parâmetro

Auto-ajuste de parâmetrosAuto-ajuste de parâmetros

,,...,, 21 nxxxV

Page 20: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 2020

– Usar uma taxa diferenciada de mutação não Usar uma taxa diferenciada de mutação não correlacionada para cada uma das posições:correlacionada para cada uma das posições:

Consiste em acrescentar um parâmetro a Consiste em acrescentar um parâmetro a mais para cada coordenada, que mais para cada coordenada, que representará o desvio padrão daquela representará o desvio padrão daquela posições. posições.

O vetor V se tornará então: O vetor V se tornará então:

Auto-ajuste de parâmetrosAuto-ajuste de parâmetros

nnxxxV ,...,,,,...,, 2121

Page 21: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 2121

– Usar mutação correlacionada, onde os Usar mutação correlacionada, onde os valores de cada posição afetam um ou mais valores de cada posição afetam um ou mais dos valores das outras posições. dos valores das outras posições.

Definimos um parâmetro Definimos um parâmetro ijij para toda para toda combinação de posições combinação de posições ii e e jj tais que tais que i≠ji≠j

Usaremos para definir matriz de Usaremos para definir matriz de covariância covariância

Covariância entre as posições Covariância entre as posições ii e e jj é dada é dada por:por:

Auto-ajuste de parâmetrosAuto-ajuste de parâmetros

ji

jic ijji

i

ij,

2

)2tan()(,

22

2

Page 22: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 2222

Auto-Ajuste de ParâmetrosAuto-Ajuste de Parâmetros

Em qualquer uma das formas adotadas existe Em qualquer uma das formas adotadas existe uma regra a ser seguida: uma regra a ser seguida:

– valores de valores de e e devem primeiro ser devem primeiro ser aplicados às coordenadas do vetor corrente aplicados às coordenadas do vetor corrente antes de sofrerem mutação. antes de sofrerem mutação.

– Assim, poderemos medir a qualidade da Assim, poderemos medir a qualidade da mutação que estes parâmetros realizam mutação que estes parâmetros realizam antes de adaptá-los. antes de adaptá-los.

– Se fizermos primeiro a mutação, estaremos Se fizermos primeiro a mutação, estaremos na verdade avaliando o desempenho dos na verdade avaliando o desempenho dos parâmetros parâmetros ’ e ’ e ’, pertencentes à próxima ’, pertencentes à próxima geraçãogeração

Page 23: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 2323

Controlando a mutaçãoControlando a mutação

Sendo aleatória, mutação pode levar os Sendo aleatória, mutação pode levar os desvios padrões para valores muito próximos desvios padrões para valores muito próximos de zero;de zero;

– Isto é indesejado pois cerca de 2/3 dos Isto é indesejado pois cerca de 2/3 dos valores selecionados ficam entre valores selecionados ficam entre [-[-,,]] ; ;

– Se o valor de Se o valor de for muito baixo, a for muito baixo, a coordenada sob sua influência ficará coordenada sob sua influência ficará estagnada por um longo período;estagnada por um longo período;

– Assim, é usual estabelecer-se um limite Assim, é usual estabelecer-se um limite mínimo mínimo 00 para cada valor de desvio padrão. para cada valor de desvio padrão.

Page 24: Algoritmos Genéticos - Capítulo 11 1 Algoritmos Genéticos – Capítulo 11 Ricardo Linden

Algoritmos Genéticos - Capítulo 11Algoritmos Genéticos - Capítulo 11 2424

Aumentando o número de Aumentando o número de indivíduosindivíduos

Recentemente, muitos pesquisadores de estratégias Recentemente, muitos pesquisadores de estratégias evolucionárias passaram a usar populações maiores;evolucionárias passaram a usar populações maiores;

Evitam-se efeitos de convergência genética prematura Evitam-se efeitos de convergência genética prematura verificados em vários experimentos;verificados em vários experimentos;

Ao permitir o aumento da população, passou-se também Ao permitir o aumento da população, passou-se também a introduzir o operador de crossover, que não fazia a introduzir o operador de crossover, que não fazia sentido quando havia apenas um pai disponível dentro sentido quando havia apenas um pai disponível dentro da população;da população;

Estas modificações fazem com que as ES fiquem Estas modificações fazem com que as ES fiquem extremamente parecidas, quiçá idênticas, aos algoritmos extremamente parecidas, quiçá idênticas, aos algoritmos genéticos de codificação real descritos antes; genéticos de codificação real descritos antes;

Esta versão das ES é naturalmente definida como tendo Esta versão das ES é naturalmente definida como tendo um módulo de população do tipo (um módulo de população do tipo (++))