computação evolutiva: programação genética luiz eduardo s. oliveira, ph.d....
TRANSCRIPT
Computação Evolutiva: Programação Genética
Luiz Eduardo S. Oliveira, [email protected]://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