Computação Evolutiva: Programação Genética Luiz Eduardo S. Oliveira, Ph.D....

Post on 17-Apr-2015

120 views 1 download

Transcript of Computação Evolutiva: Programação Genética Luiz Eduardo S. Oliveira, Ph.D....

Computação Evolutiva: Programação Genética

Luiz Eduardo S. Oliveira, Ph.D.soares@ppgia.pucpr.brhttp://www.ppgia.pucpr.br/~soares

Pontifícia Universidade Católica do ParanáCurso de Especialização em Inteligência

Computacional 2004/2005

Objetivos

Introduzir os principais conceitos da programação genética (PG).

Introdução

As três áreas da computação evolutiva que vimos até agora envolveram estruturas definidas com strings.Binárias Reais

PG evolui programas de computador os quais são representados através de árvores de sintaxe abstrata.

Introdução

Principais diferenças entre AG e PG: Os membros da população são estruturas

executáveis e não strings. A fitness dos indivíduos são conseguidas através da

execução dessas estruturas.

Objetivo Aprendizagem por indução Ensinar os computadores a se auto programarem Estratégia: Criar-testar-modificar (similar aos

humanos).

Introdução

Representação

Árvore de sintaxe abstrataFunções aparecem nos nós internos e

constantes e variáveis nos nas folhas

3 * ( x + 6 )

Implementação

A implementação consiste em:Determinar o conjunto de nós terminais.Determinar o conjunto de funções válidas.Determinar a medida de fitness.Selecionar os parâmetros de controle.Determinar as condições de parada.

Implementação

As funções são limitadas pela linguagem de programação utilizada na construção dos programas, como por exemplo:Funções matemáticas: seno, cosseno, etc..Funções aritméticas: +,-, *, /Operadores Booleanos (E, OU, NÃO)Operadores condicionais: Se, Então

Implementação

Cada função tem uma determinada aridade (número de argumentos).

Duas propriedades desejáveis em uma aplicaçãoFechamentoSuficiência

Fechamento

Garantir a viabilidade de árvores de sintaxe abstrata.

O conjunto de funções válidas deve aceitar, como argumento, qualquer valor que possa ser retornado por qualquer função ou terminal.

Garante que a árvore será avaliada corretamente.

Ex: Divisão: Matematicamente não se pode dividir um número por zero. Solução: Divisão protegida >> Divisão por zero

retorna 1

Suficiência

O conjunto de funções + o conjunto de terminais deve ser capaz de representar uma solução para o problema.

Deve existir alguma evidência que tais funções e terminais resolvam o problemaCaso contrário, o algoritmo não convergirá.Todas as funções possíveis.

Espaço de busca enorme.

Principais Parâmetros

Tamanho da população Número máximo de gerações. Probabilidade de reprodução e

cruzamento. Tamanho máximo do indivíduo.

Profundidade da árvore.

Entendendo a PG

Algoritmo clássico:1. Inicializar a população inicial.

2. Determinar a fitness de cada indivíduo.

3. Realizar a reprodução de acordo com o valor da fitness e da probabilidade de reprodução.

4. Realizar o cruzamento.

5. Voltar ao passo 2 até que uma condição de parada seja alcançada.

Criando um indivíduo.

Definir o conjunto de funções F e terminais T.

Cada tem associada uma aridade superior a zero

O conjunto T é composto pelas variáveis, constantes e funções de aridade zero.

Ff

Criando um indivíduo

Considere por exemplo: e Ou seja, o conjunto das funções válidas é o

conjunto das operações aritméticas com aridade 2

Os terminais são compostos por x, 3 e 6.Uma expressão que pode ser produzida é

},,,{ F }6,3,{xT

)6(3 x

Espaço de busca

é a livre combinação

dos elementos de

F e T

Criando uma População Aleatória

Primeiramente escolhe-se uma função aleatória de

Para cada elemento de f escolhe-se um elemento de {F U T}

O processo segue até que se tenha apenas terminais como nós folha da árvore.

Especifica-se um limite máximo para a profundidade da árvore para se evitar árvores muito grandes.

Ff

Criando uma População Aleatória

O sucesso da PG depende bastante da qualidade da população inicial.Variedade na composição dos programasPermitindo assim que a recombinação leve à

convergência.

Fitness

Cada programa de computador é avaliado em termos de quão bem ele realiza (ou executa) sua tarefa em um ambiente particular de um problema.

Por exemplo, executando-se o programa e verificando-se o erro produzido no resultado. Quanto mais próximo de zero, melhor é o programa.

Operadores Genéticos

Reprodução Cruzamento Mutação Permutação Edição Encapsulamento Destruição

Reprodução Um indivíduo da população é selecionado

de acordo com algum método baseado na fitness (Roleta, por exemplo)

O indivíduo é copiado sem qualquer alteração para a próxima geração

Cruzamento

Dois programas são selecionados e são recombinados para gerar outros dois programas.

Um ponto aleatório de cruzamento é escolhido em cada programa pai e as árvores abaixo destes pontos são trocadas.

Cruzamento

Cruzamento AG X GP

Cruzamento em AG:Se os pais são idênticos, ambos os filhos

serão idênticos. Cruzamento em GP

Como a chance de gerar pontos de corte idênticos é pequena, logo a probabilidade de gerar filhos iguais é pequena.

Mutação

Seleciona-se um ramo aleatório na árvore e cria-se um novo ramo aleatório no lugar.

Inserir diversidade.

Permutação

Escolhe-se um ponto interno de uma expressão

Escolha aleatória do ramo a ser permutado.

Permutação

Quando a permutação não tem influência nenhuma?Operação comutativa.

Edição

Proporciona um meio para editar e simplificar expressões

Edição

Pode ser utilizada de duas maneiras Externo a execução Durante a execução

Consome bastante tempo Controlada por parâmetro

1 – Aplica-se em todas as gerações 0 – Não é aplicada > 1 – Freqüência de aplicação

Edição

Tornar a expressão menos vulnerável ao cruzamento(NOT(NOT(NOT(NOT(X))))) X

Reduz a variedade de estruturas disponíveis para o cruzamento.

Encapsulamento

Forma de identificar sub-árvores potencialmente úteis e dar a elas um nome para que sejam referenciadas e usadas posteriormente.

Seleciona-se um ponto interno de uma árvore com boa fitness.

Encapsulamento

Remove-se a sub-árvore localizada no ponto selecionado.

Uma nova função é definida para referenciar esta sub-arvore.

Encapsulamento

A nova função não tem argumentos. O conjunto das funções é acrescido desta

nova função. A função encapsulada é fator potencial

para interromper o efeito do cruzamento, pois a função torna-se um ponto indivisível.

Destruição

Operação assexuada Forma de reduzir o número de indivíduos

medíocres nas primeiras gerações. Utiliza-se a fitness para realizar esta

operação Utilizada em outras estratégias evolutivas

também.

Critério de Parada

Máximo de gerações ou ponto ótimo Designação do resultado:

Melhor indivíduo que apareceu em qualquer geração da população.

Exemplo de Aplicação Regressão

Encontrar uma expressão matemática que melhor se ajuste a uma amostra de dados.

y=-1.57+1.41xReta da regressão

tamanho

idad

e

Modelo que pode serutilizado para fazerprevisão.

Cuidado na extrapolaçãodos limites da basede aprendizagem.

Exemplo

Encontrar o relacionamento entre o raio e o período de órbita de um planeta em torno do sol.

Dados fornecidos:

Exercício

Considere as duas árvores. Faça uma operação de cruzamento e mutação e avalie a fitness com base na tabela anterior. Compare o seu resultado com o período fornecido.

X

d X

r 2

X

^ X

r dr r