Inteligência Artificial Aula 7 Programação Genética M.e Guylerme Velasco
Programação Genética De que modo computadores podem resolver problemas, sem que tenham que ser explicitamente programados para isso? 2
Programação Genética Extensão de Algoritmos Genéticos no domínio dos programas Indivíduo = programa de computador Espaço de busca = todos os possíveis programas de computador 3
Representação de Programas Expressão matemática composta de funções + terminais. Programa é codificado através de uma estrutura de árvore, ao invés de linhas de código 4
Representação de Programas x2 + y é um programa de computador. Se escrito na forma pré-fixada: (+(*xx)y) Representação sob a forma de árvore: 5
Representação de Programas Funções- aparecem nos vértices internos da árvore: operação aritmética (+, -, *, % etc) função matemática (sen, cos, tan,...) operação booleana (and, or, not) operadores condicionais(se-então-senão) funções que causamiteração (enquanto (condição) faça) funções que causamrecursão funções específicas do domínio do problema Terminais- aparecem nos vértices externos da árvore (folhas) variável (representando possivelmente as entradas) constante (número 3) 6
Representação de Programas GP evolui programas de computador para resolver um problema, a partir do conjunto de terminais e do conjunto de funções; Para que todos os programas de computador criados pelo GP sejam válidos, é necessário que o conjunto de funções e o conjunto de terminais atendam a propriedade de clausura. 7
Propriedade de Clausura Funções devem aceitar como argumento, qualquer valor e tipo de dado, que seja retornado por qualquer função do conjunto de funções, e qualquer valor e tipo de dado que possa ser assumido por qualquer terminal. 8
Passos Preparatórios para GP Existem 5 Passos Preparatórios na aplicação de GP : Determinar o Conjunto de Terminais; Determinar o Conjunto de Funções Primitivas; Definir uma Medida de Aptidão; Estabelecer Parâmetros para Controlar a Execução; Definir um Método para Determinar o Resultado e um Critério para Terminar a Execução. 9
Processo 10
Criação da População Inicial Gera-se a população inicial aleatória, formada por programas de computador; Funções são escolhidas aleatoriamente no conjunto de funções; Terminais são escolhidos aleatoriamente no conjunto de terminais; Altura máxima da estrutura dos programas de computador gerados para a população inicial é controlada por um parâmetro. 11
Medida de Aptidão Cada programa de computador é avaliado em termos do 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. 12
Seleção e Reprodução A medida de aptidão de cada programa de computador é usada na seleção probabilística de programas para participar da próxima geração de indivíduos. Na formação da nova população, vários operadores genéticos são aplicados. 13
Operadores Reprodução Crossover Mutação Permutação Edição Encapsulamento Destruição (Decimation) 14
Reprodução um indivíduo da população é selecionado de acordo com algum método baseado na aptidão o indivíduo é copiado, sem qualquer alteração, para a próxima geração 15
Crossover genitores selecionados 16
Crossover Um ponto de corte é escolhido aleatoriamente em cada um dos genitores 17
Crossover as subárvores de cada genitores são trocadas 18
Situações do Crossover Propriedade de clausura das funções garante sempre soluções válidas: se um ponto terminal é escolhido em um dos pais e uma subárvore no outro, o terminal é trocado com a subárvore; se um ponto terminal é escolhido em um dos pais e um ponto terminal no outro, os pontos terminais são trocados; se a raiz é escolhida em um dos pais e uma sub-árvore no outro, a árvore que corresponde ao pai é toda inserida no lugar da subárvore do outro pai. Isto acarreta um crescimento da profundidade da árvore em um dos filhos e o outro filho será formado pela sub-árvore 19
Situações do Crossover caso o ponto de corte seja a raiz em um dos pais, e no outro, o ponto de corte seja um terminal, um filho será formado por um terminal e o outro por uma árvore com alta profundidade, já que será todo o pai inserido no ponto onde estava um terminal; se a raiz dos dois pais é selecionada, ocorre degeneração do crossover, que acarretará uma simples reprodução, ou seja cada filho é idêntico a um dos pais. 20
Crossover GA x Crossover GP Em GA: pais idênticos filhos idênticos Em GP, a chance de pontos de corte iguais é pequena. Assim, pais idênticos filhos diferentes 21
Permutação escolhe-se um ponto interno de uma expressão; ramos são permutados a permutação a ser realizada é escolhida aleatoriamente ( 3 ramos: existem 3! possibilidades de permutação) se a função é comutativa, não há efeito da permutação; 22
Edição Proporciona um meio para editar e simplificar expressões 23
Edição No domínio booleano: (AND X X) X (OR X X) X (NOT(NOT(X)) X Edição pode ser utilizada de duas formas: externo a execução - saída mais legível durante a execução - produzir saída simplificada Edição consome muito tempo Controlada por parâmetro que especifica: 1 - executada em todas as gerações 0 - não é aplicada > 1 = freqüência de aplicação Edição pode tornar a expressão menos vulnerável ao crossover (NOT(NOT(NOT(NOT(X))))) x Reduz a variedade de estruturas disponíveis para o crossover 24
Encapsulamento forma de identificar subárvores potencialmente úteis e dar a elas um nome para que sejam referenciadas e usadas posteriormente; seleciona-se um pai baseando-se na aptidão; seleciona-se um ponto interno desta árvore 25
Encapsulamento remove-se a sub-árvore localizada no ponto selecionado uma nova função é definida para se referenciar a esta subárvore. A esta função é dado um nome 26
Encapsulamento a nova função não tem argumentos; o corpo da nova função encapsulada é a sub-árvore originalmente localizada no ponto selecionado; uma chamada a função criada é inserida no ponto selecionado: o conjunto de funções é acrescido desta nova função; a função encapsulada é fator potencial para interromper o efeito de crossover, pois a função torna-se um ponto indivisível. 27
Destruição Operação assexuada é uma forma de reduzir o número de indivíduos medíocres nas primeiras gerações; controlado por dois parâmetros: percentagem de indivíduos mantídos; e condição que especifica quando este operador será invocado. indivíduos são selecionados para permanecer com base na aptidão. Ex: Percentagem=10%, Quando=geração 0 Na geração 0, 10% da população permanece (população será criada 10 vezes maior na geração 0) 28
Critério de Terminação atingir um número máximo de gerações; ou atingir um ponto ótimo do problema 29
Designação dos Resultados melhor Indivíduo que apareceu em qualquer geração da população. 30
Parâmetros de Controle tamanho da população número máximo de gerações taxa de reprodução taxa de mutação taxa de crossover taxa de distribuição dos pontos de crossover altura da árvore altura inicial da árvore taxa de permutação freqüência de edição taxa de encapsulamento condição de chamada de destruição taxa de destruição método de geração da população inicial método de seleção do pai (primeiro e segundo) uso de ajuste da medida de aptidão uso de elitismo 31
Função Automaticamente Definida ADF forma de implementar subrotinas em GP; indivíduos são estruturas que combinam ADF e programas capazes de fazer uso das ADFs; são desenvolvidas automaticamente e dinamicamente por meio de seleção natural e operadores genéticos; um programa pode definir mais de uma ADF; ADFs podem chamar outras ADFs 32
ADF 33
ADF Geração da População Inicial a geração da população inicial tem que ser criada com mesma estrutura invariante para todos os indivíduos da população a parte variante da estrutura corresponde a: ramo de definição da função, que é formado por funções pertencentes ao conjunto de funções e por terminais pertencentes ao conjunto de terminais ramo de produção de resultados, que é composto de funções pertencentes ao conjunto de funções e por terminais pertencentes ao conjunto de terminais 34
Exemplo de Programa usando ADF 35
ADF Crossover deve preservar a mesma estrutura em todos indivíduos com um ramo de definição da função e um ramo de produção de resultados para programas com uma ADF; para preservar a mesma estrutura em todos os indivíduos o crossover é aplicado apenas na estrutura não invariante do indivíduo 36
ADF - Crossover 37
Aplicação 38
Aplicação da GP Regressão Simbólica Encontrar a expressão matemática que se ajuste melhor a uma amostra de dados: entrada: valor da variável independente saída: valor da variável dependente 39
Exemplo de Regressão Simbólica Tarefa de GP: encontrar o relacionamento entre duas variáveis (raio e diâmetro) e a saída (período) da órbita de um planeta em torno do sol Terceira Lei de Kepler: O período da órbita de um planeta é proporcional a raiz quadrada do cubo do raio. 40
Terceira Lei de Kepler Dados fornecidos 41
Terceira Lei de Kepler Avaliação: soma, nos oito casos de aptidão, do valor absoluto da diferença entre o período P produzido pela expressão e o valor objetivo de P associado com cada planeta 42
Terceira Lei de Kepler conjunto de funções unária: sen, ln, exp, not, binária: +, -, *, /, ^, >, >=, <, <=, =,!= ternária: if-then-else 43
Exemplo usando ADF Tarefa de GP: encontrar o relacionamento entre seis variáveis (L0, W0, H0, L1, W1, H1) e a saída D 44
Exemplo usando ADF 45
Exemplo usando ADF 46
Exemplo usando ADF 47
Aplicação Classificação Determinar qual entre duas espirais entrelaçadas pertence a um determinado ponto entrada: coordenadas cartesianas do ponto saída: identificação da espiral correta 48
Aplicação Planejamento em Robótica Controlar o braço de um robot de forma que ele sempre alcance um dado destino entrada: local definido como entrada saída: produzir os movimentos apropriados 49