Professional Documents
Culture Documents
Programao Gentica
Computao Natural Gisele L. Pappa
Lista de 36 (re-)invenes que so competitivas com as solues propostas por humanos 2 geraram patentes
www.genetic-programming.org http://www.genetic-programming.org/hc2005/main.html
Programao Gentica
Principais caractersticas
Um indivduo uma soluo candidata contendo funes e operadores, e no apenas dados (variveis /constantes) Normalmente indivduos tem tamanhos e formas variadas Na teoria, um indivduo uma receita para resolver um dado problema, ao invs de uma soluo para uma dada instncia de um problema
GA vs. GP
Ex: otimizao de funes vs. aproximao de funes Dada uma funo complexa, por exemplo sin(x) - 0.1 x + 2, podemos usar um GA para encontrar o valor timo da funo
Dado um conjunto de dados, contento pares <x, f(x)>, podemos utilizar GP para encontrar uma funo g(x) que se aproxime da funo desconhecida f(x) (regresso simblica)
Programao Gentica
Terminais No Terminais Populao Inicial Fitness Seleo
Exemplo de aplicao de um GA: Encontre os mximos ou mnimos da funo f(x) = sin(x) - 0.1 x + 2
Exemplo de aplicao de um GP: Encontre a funo (programa) que produz os pontos dados na tabela a seguir:
pcross
preprod pmut
Fitness
Componentes bsicos de um GP
Focaremos na representao por rvore
Ns internos: funes ou operadores Ns folhas: variveis ou constantes
+
Tipos de representao:
Representao linear Representao por rvores (mais comum) Representao por grafos
+ Y Z 0.5 X 0.1
Exemplos de Indivduos
Conjunto de funes: F = {+, , , } Conjunto de terminais: T = {A, B, X, Y}
+
B Y B
Inicializao da Populao
3 mtodos principais Grow
O n de uma rvore escolhido considerando elementos em ambos os conjuntos de terminais e funes, considerando uma altura mxima Produz rvores com formas irregulares
Full
O n de uma rvore escolhido considerando elementos apenas do conjuntos de funes, at que a profundidade mxima seja alcanada. Nesse momento, ns passam a ser escolhidos do conjunto de terminais Produz rvores balanceadas
X Y A
B
X
Indivduo 1: (+ ( X Y) ( A B) )
Indivduo 2: ( ( ( X Y) B ) B)
Inicializao da Populao
Ramped half-and-half
Combina os mtodos full e grow para aumentar diversidade Divide a populao em subconjuntos com o mesmo nmero de indivduos, e inicializa metade dos indivduos de cada conjunto com o mtodo grow e metade com o mtodo full Se a profundidade mxima da rvore 6, e o tamanho da populao 50, sero criados um mesmo nmero de indivduos com profundidades 2, 3, 4, 5 e 6 (nesse caso, 10 indivduos). 5 deles sero inicializados utilizando grow e 5 full.
Terminais No Terminais
Programao Gentica
Populao Inicial Fitness Seleo
pcross
preprod pmut
Fitness
Operadores Genticos
Crossover: troca sub-rvores
+
Operadores Genticos
Mutao de um ponto
+ A B
C
X
A X
+ Z 10 4
A X
Z 10 4
Pai 1
Pai 2
X Y A
+ B
Pai
Z C
Filho
Filho 1
Filho 2
Operadores Genticos
Mutao de expanso
Operadores Genticos
Mutao de reduo
Z
A X
Z 10 4
A X
+ Z 10 4
Filho
Pai
Filho
Pai
Programao Gentica
Terminais No Terminais Populao Inicial Fitness Seleo
Conjunto de Funes
Propriedades desejadas
Suficincia: o poder de expresso suficiente para representar uma soluo candidata para o problema em questo Fechamento (Closure): uma funo deve aceitar como entrada qualquer sada produzida por qualquer outro elemento do conjunto de funes ou do conjunto de terminais Parsimnia: idealmente, conter apenas funes necessrias para resolver o problema em questo (propriedade no necessria, mas desejada)
pcross
preprod pmut
Fitness
Conjunto de Funes
Como encontrar um equilbrio entre poder de expresso e parsimnia?
Sugesto [Banzhaf et al. 1998, p. 111]: FS = {+, -, x, /, OR, AND, XOR}
Conjunto de Funes
Problemas com a propriedade de fechamento
Exige a modificao de certas funes/operadores
Ex. diviso por 0 indefinida Soluo: diviso protegida se o denominador for zero, retornar um valor padro
GP Restrito a Sintaxe
Exemplo:
GP Restrito a Sintaxe
OR > Var 5 20 Var 8 < 103
Para cada funo do conjunto de funes, especificar o tipo de dados de seus argumentos e o tipo de dados retornado Cada terminal tambm associado a um tipo de dados Cruzamento e mutao so modificados com respeito a restries nos tipos de dados
Tipo de dados dos argumentos (real, real) (real, real) (boolean, boolean)
Introns
Em biologia, introns so partes inteis do DNA
Partes dos genes que no so utilizadas durante a produo de protenas
Bloat
Como resultado do aparecimento de introns, execuo de um GP normalmente incha (bloat)
faz com que um indivduo cresa incontrolavelmente at que o tamanho mximo seja alcanado
Em GP, introns so partes inteis de um indivduo, ou seja, partes do cdigo que no tem nenhum efeito na sada do programa (soluo candidata) Exemplos:
X=X+0 X=X+XX
Desvantagens de bloating
Populao utilizada muito mais memria Execuo do GP torna-se mais lenta
GA versus GP
Diferena est na interpretao da representao [Woodward 2003]
GA o mapeamento entre a descrio e o objeto sendo descrito sempre um para um GP esse mapeamento de muitos para um
Em regresso simblica, a mesma funo pode ser descrita por diversos indivduos
Agradecimentos
A maioria dos slides dessa aula foram retiradas das aulas de Computao Natural de Alex A. Freitas
Leitura Recomendada
A Field Guide to Genetic Programming, Livro
online, http://www.gp-field-guide.org.uk/
Curiosidades
http://rogeralsing.com/2008/12/07/geneticprogramming-evolution-of-mona-lisa/ http://www.wreck.devisland.net/ga/