Pontifcia Universidade Catlica do Paran Curso de Especializao

  • Slides: 38
Download presentation
Pontifícia Universidade Católica do Paraná Curso de Especialização em Inteligência Computacional 2004/2005 Computação Evolutiva:

Pontifícia Universidade Católica do Paraná Curso de Especialização em Inteligência Computacional 2004/2005 Computação Evolutiva: Programação Genética Luiz Eduardo S. Oliveira, Ph. D. soares@ppgia. pucpr. br http: //www. ppgia. pucpr. br/~soares

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

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

Introdução n As três áreas da computação evolutiva que vimos até agora envolveram estruturas

Introdução n As três áreas da computação evolutiva que vimos até agora envolveram estruturas definidas com strings. ¨ Binárias ¨ Reais n PG evolui programas de computador os quais são representados através de árvores de sintaxe abstrata.

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

Introdução n 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. n Objetivo ¨ Aprendizagem por indução ¨ Ensinar os computadores a se auto programarem ¨ Estratégia: Criar-testar-modificar (similar aos humanos).

Introdução

Introdução

Representação n Árvore de sintaxe abstrata ¨ Funções aparecem nos nós internos e constantes

Representação n Árvore de sintaxe abstrata ¨ Funções aparecem nos nós internos e constantes e variáveis nos nas folhas 3*(x+6)

Implementação n A implementação consiste em: ¨ Determinar o conjunto de nós terminais. ¨

Implementação n 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 n As funções são limitadas pela linguagem de programação utilizada na construção dos

Implementação n 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). n Duas propriedades desejáveis

Implementação Cada função tem uma determinada aridade (número de argumentos). n Duas propriedades desejáveis em uma aplicação n ¨ Fechamento ¨ Suficiência

Fechamento n n Garantir a viabilidade de árvores de sintaxe abstrata. O conjunto de

Fechamento n n 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: retorna 1 Divisão protegida >> Divisão por zero

Suficiência O conjunto de funções + o conjunto de terminais deve ser capaz de

Suficiência O conjunto de funções + o conjunto de terminais deve ser capaz de representar uma solução para o problema. n Deve existir alguma evidência que tais funções e terminais resolvam o problema n ¨ Caso contrário, o algoritmo não convergirá. ¨ Todas as funções possíveis. n Espaço de busca enorme.

Principais Parâmetros Tamanho da população n Número máximo de gerações. n Probabilidade de reprodução

Principais Parâmetros Tamanho da população n Número máximo de gerações. n Probabilidade de reprodução e cruzamento. n Tamanho máximo do indivíduo. Profundidade da árvore. n

Entendendo a PG n Algoritmo clássico: 1. 2. 3. 4. 5. Inicializar a população

Entendendo a PG n Algoritmo clássico: 1. 2. 3. 4. 5. Inicializar a população inicial. Determinar a fitness de cada indivíduo. Realizar a reprodução de acordo com o valor da fitness e da probabilidade de reprodução. Realizar o cruzamento. 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. n Cada

Criando um indivíduo. Definir o conjunto de funções F e terminais T. n Cada tem associada uma aridade superior a zero n O conjunto T é composto pelas variáveis, constantes e funções de aridade zero. n

Criando um indivíduo n Considere por exemplo: Espaço de busca é a livre combinação

Criando um indivíduo n Considere por exemplo: Espaço de busca é a livre combinação dos elementos de Fe. T 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 é ¨

Criando uma População Aleatória n n Primeiramente escolhe-se uma função aleatória de Para cada

Criando uma População Aleatória n n 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.

Criando uma População Aleatória n O sucesso da PG depende bastante da qualidade da

Criando uma População Aleatória n O sucesso da PG depende bastante da qualidade da população inicial. ¨ Variedade na composição dos programas ¨ Permitindo assim que a recombinação leve à convergência.

Fitness Cada programa de computador é avaliado em termos de quão bem ele realiza

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. n Por exemplo, executando-se o programa e verificando-se o erro produzido no resultado. Quanto mais próximo de zero, melhor é o programa. n

Operadores Genéticos Reprodução n Cruzamento n Mutação n Permutação n Edição n Encapsulamento n

Operadores Genéticos Reprodução n Cruzamento n Mutação n Permutação n Edição n Encapsulamento n Destruição n

Reprodução Um indivíduo da população é selecionado de acordo com algum método baseado na

Reprodução Um indivíduo da população é selecionado de acordo com algum método baseado na fitness (Roleta, por exemplo) n O indivíduo é copiado sem qualquer alteração para a próxima geração n

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

Cruzamento Dois programas são selecionados e são recombinados para gerar outros dois programas. n Um ponto aleatório de cruzamento é escolhido em cada programa pai e as árvores abaixo destes pontos são trocadas. n

Cruzamento

Cruzamento

Cruzamento AG X GP n Cruzamento em AG: ¨ Se os pais são idênticos,

Cruzamento AG X GP n Cruzamento em AG: ¨ Se os pais são idênticos, ambos os filhos serão idênticos. n 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

Mutação Seleciona-se um ramo aleatório na árvore e cria-se um novo ramo aleatório no lugar. n Inserir diversidade. n

Permutação Escolhe-se um ponto interno de uma expressão n Escolha aleatória do ramo a

Permutação Escolhe-se um ponto interno de uma expressão n Escolha aleatória do ramo a ser permutado. n

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

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

Edição n Proporciona um meio para editar e simplificar expressões

Edição n Proporciona um meio para editar e simplificar expressões

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

Edição n Pode ser utilizada de duas maneiras ¨ Externo a execução ¨ Durante a execução n n 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 n Tornar a expressão menos vulnerável ao cruzamento ¨ (NOT(NOT(X))))) n X Reduz

Edição n Tornar a expressão menos vulnerável ao cruzamento ¨ (NOT(NOT(X))))) n 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

Encapsulamento Forma de identificar sub-árvores potencialmente úteis e dar a elas um nome para que sejam referenciadas e usadas posteriormente. n Seleciona-se um ponto interno de uma árvore com boa fitness. n

Encapsulamento Remove-se a sub-árvore localizada no ponto selecionado. n Uma nova função é definida

Encapsulamento Remove-se a sub-árvore localizada no ponto selecionado. n Uma nova função é definida para referenciar esta sub-arvore. n

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

Encapsulamento A nova função não tem argumentos. n O conjunto das funções é acrescido desta nova função. n A função encapsulada é fator potencial para interromper o efeito do cruzamento, pois a função torna-se um ponto indivisível. n

Destruição Operação assexuada n Forma de reduzir o número de indivíduos medíocres nas primeiras

Destruição Operação assexuada n Forma de reduzir o número de indivíduos medíocres nas primeiras gerações. n Utiliza-se a fitness para realizar esta operação n Utilizada em outras estratégias evolutivas também. n

Critério de Parada Máximo de gerações ou ponto ótimo n Designação do resultado: n

Critério de Parada Máximo de gerações ou ponto ótimo n Designação do resultado: n ¨ Melhor indivíduo que apareceu em qualquer geração da população.

Exemplo de Aplicação n Regressão ¨ Encontrar uma expressão matemática que melhor se ajuste

Exemplo de Aplicação n Regressão ¨ Encontrar uma expressão matemática que melhor se ajuste a uma amostra de dados. idade Reta da regressão y=-1. 57+1. 41 x Modelo que pode ser utilizado para fazer previsão. Cuidado na extrapolação dos limites da base de aprendizagem. tamanho

Exemplo n Encontrar o relacionamento entre o raio e o período de órbita de

Exemplo n Encontrar o relacionamento entre o raio e o período de órbita de um planeta em torno do sol. n Dados fornecidos:

Exercício n Considere as duas árvores. Faça uma operação de cruzamento e mutação e

Exercício n 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.