Programação Genética Genetic Programming - GP De que modo computadores podem resolver problemas, sem que tenham que ser eplicitamente programados para isso? Programação Genética - GP Etensã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 1
Representação de Programas Epressã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 Representação de Programas 2 y é um programa de computador. Se escrito na forma pré-fiada: (()y) Representação sob a forma de árvore: y 2
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 causam iteração (enquanto (condição) faça) funções que causam recursão funções específicas do domínio do problema Terminais - aparecem nos vértices eternos da árvore (folhas ) variável (representando possivelmente as entradas) constante (número 3) 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 claus ura. 3
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. Passos Preparatórios para GP Eistem 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 Eecução; Definir um Método para Determinar o Resultado e um Critério para Terminar a Eecução. 4
Processo População de Programas Inicial/Corrente Medida de Aptidão Testa Programas Cria novos Programas Seleciona pais com base na aptidão 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áima da estrutura dos programas de computador gerados para a população inicial é controlada por um parâmetro. 5
Medida de Aptidão Cada programa de computador é avaliado em termos do quão bem ele realiza (ou eecuta) sua tarefa em um ambiente particular de um problema. Por eemplo, eecutando-se o programa e verificando-se o erro produzido no resultado. Quanto mais próimo de zero, melhor é o programa. 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óima geração de indivíduos. Na formação da nova população, vários operadores genéticos são aplicados. 6
Reprodução Crossover Mutação Permutação Edição Encapsulamento Operadores Destruição (Decimation) 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óima geração 2 2 7
8 genitores selecionados 3 2 Crossover Crossover - / / - - P 1 P 2 Crossover Crossover Um ponto de corte é escolhido aleatoriamente em cada um dos genitores - - / / -
Crossover as subárvores de cada genitores são trocadas 2- - / - / - - 3-2 - Situações do Crossover Propriedade de clausura das funções garante sempre soluções válidas: se um ponto ter minal é 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 dade da árvore em um dos filhos e o outro filho será formado pela sub-árvore 9
Situações do Crossover caso o ponto de corte seja a raiz em um dos pais, e no outro, o ponto de corte seja umterminal, um filho será formado por um terminal e o outro por uma ár vore com alta profundi dade, 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. Crossover GA 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 10
escolhe-se um ponto interno de uma epressão; ramos são permutados Permutação a permutação a ser realizada é escolhida aleatoriamente ( 3 ramos: eistem 3! possibilidades de permutação) se a função é comutativa, não há efeito da permutação; - c - c a b b a Edição Proporciona um meio para editar e simplificar epressões - 11
No domínio booleano: (AND X X) X Edição (OR X X) X (NOT(NOT(X)) X Edição pode ser utilizada de duas formas: eterno a eecução - saída mais legível durante a eecução - produzir saída simplificada Edição consome muito tempo Controlada por parâmetro que especi fica: 1 - eecutada em todas as gerações 0 - não é aplicada > 1 = freqüência de aplicação Edição pode tornar a epressão menos vulnerável ao crossover (NOT(NOT(NOT(NOT(X))))) Reduz a variedade de estruturas disponíveis para o crossover 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 a b c 12
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. a b c E 0 : b c 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: a Eo 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. 13
Operação asseuada Destruição é 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. E: 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) Critério de Terminação atingir um número máimo de gerações; ou atingir um ponto ótimo do problema. 14
Designação dos Resultados melhor Indivíduo que apareceu em qualquer geração da população. Parâmetros de Controle tamanho da população número máimo de gerações taa de reprodução taa de mutação taa de crossover taa de distribuição dos pontos de crossover altura da árvore altura inicial da árvore taa de permutação freqüência de edição taa de encapsulamento condição de chamada de destruição taa 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 15
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. ADF nós invariantes Programa definição da função valores ADF 0 lista de argumentos valores nós variantes corpo de definição da ADF corpo do ramo produtor de resultados 16
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 Eemplo de Programa usando ADF Programa defun valores ADF 0 arg 0 arg 1 arg 2 valores ARG 0 ADF 0 H 1 ARG 1 ARG 2 L 0 H 0 W 0 17
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. ADF - Crossover Programa defun valores ADF 0 arg 0 arg 1 arg 2 valores Crossover aplicado na estrutura não invariante ARG 0 ADF 0 H 1 ARG 1 ARG 2 L 0 H 0 W 0 18
Aplicação Vida Artificial Redes Neurais Inseto Artificial Comportamento de Grupos Robôs e Agentes AutônomosNegócios e Finanças Imagem Arte Processamento Otimização de Sinais Padrões VR Proteínas OCR Previsão e Classificação Classificação de teto Controle de Robô Planejamento Estratégias de Monitoração Aplicação de GP Regressão Simbólica Encontrar a epressã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 19
Eemplo 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 raio Terceira Lei de Kepler: período diâmetro O período da órbita de um planeta é proporcional a raiz quadrada do cubo do raio. Periodo= raio 3 Terceira Lei de Kepler Dados fornecidos Raio Diâmetro Período 0,387 0,384 0,24 0,723 0,972 0,62 1,000 1,000 1,00 1,524 0,533 1,88 5,203 9,775 11,86 9,569 9,469 29,46 19,309 3,692 84,01 30,284 3,492 164,79 39,781 0,447 247,69 20
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 epressão e o valor objetivo de P associado com cada planeta Terceira Lei de Kepler conjunto de funções unária: sen, ln, ep, not, binária:, -,, /, ^, >, >=, <, <=, =,!= ternária: i f-then-else raio raio 2 raio ^ raio 2 21
Eemplo usando ADF Tarefa de GP: encontrar o relacionamento entre seis variáveis (L 0, W 0, H 0, L 1, W 1, H 1 ) e a saída D L 0 W 0 H 0 L 1 W 1 H 1 D 4 4 7 2 5 3 82 7 10 9 10 3 1 600 10 9 4 8 1 6 312 3 9 5 1 6 4 111 4 3 2 7 6 1-18 3 3 1 9 5 4-171 5 9 9 1 7 6 363 1 2 9 3 9 2-36 2 6 8 2 6 10-24 8 1 10 7 5 1 45 Eemplo usando ADF H 0 H1 W 0 L 0 W 1 L 1 D= W 0 L 0 H 0 -W 1 L 1 H 1 diferença de volumes de dois cubos 22
Eemplo usando ADF D= H 1 (W 0 L 0 H 0 ) Programa defun valores ADF 0 arg 0 arg 1 arg 2 valores ARG 0 ADF 0 H 1 ARG 1 ARG 2 L 0 H 0 W 0 Eemplo usando ADF Programa defun valores volume arg 0 arg 1 arg 2 valores - ARG 0 volume volume ARG 1 ARG L L 2 0 H 0 W 0 1 H 1 W 1 23
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 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 24
FIM 25