You are on page 1of 4

Introdução Algoritmos Evolucionários baseados em Gramáticas

Computação Natural Gisele L. Pappa • Na aula passada, estudamos três propriedade que devem ser respeitadas ao criar um conjunto de funções de um PG, incluindo fechamento • As dificuldades impostas pelo fechamento levaram a criação de uma nova vertente dentro da PG onde gramáticas são utilizadas para guarantir essa propriedade

PG baseada em gramática
• Além de garantir a propriedade de fechamento, permite incorporar ao espaço de busca domínio sobre o problema • PG baseada em gramática podem ser divididas em 2 grandes classes de acordo com:
– Tipo de representação utilizado – Tipo da gramática utilizada
• Livre de contexto, lógica, etc

PG baseada em gramática
• Classificação de acordo com a representação
+

Tipo 1

Grammar
Y

x Y

4

Program

Fitness

GGP Individual

00111000100111100001 GGP Individual

+

Tipo 2
Grammar

Mapping Process
Y

x Y

4

Program

Fitness

Decoded Candidate Solution

Programação Genética
Terminais Não Terminais

PG baseada em Gramáticas (Tipo 1)
Terminais Seleção Não Terminais Gramática
Terminais

População Inicial
Fitness

População Inicial

PG Tradicional

Não Critério de parada satisfeito? Sim

Crossover Nova População Reprodução Mutação

pcross

preprod Não Terminais Símbolo Inicial

pmut

Regras de Produção

População Inicial

PG baseada em Gramáticas

Retorna melhor solução

1

Diferenças em relação a PG convencional • Indivíduos criados através de mutação e crossover devem respeitar as regras de produção da gramática • Crossover não tem um poder tão destrutivo Exemplo de Gramática PG baseada em Gramáticas (Tipo 2) 00111000100111100001 GGP Individual + Mapeamento inspirado na biologia Mapping Process Y x Y 4 Program Fitness Grammar Decoded Candidate Solution • Indivíduos são normalmente representados por um string binário • Existe um mapeamento do genótipo para o fenótipo baseado em processos biológicos Código Genético Codon Código Genético GE Codon (8 bits) 00000010 00010010 00100010 Regra GE <line> • Degeneração de código genético (diferentes codons mapeam o mesmo aminoácido • Para uma regra com duas escolhas <code> ::= <line> | (0) <code> <line> (1) O valor do codon de um GE mod 2 determina o número da regra 2 .

Exemplo de Mapeamento 00101011011101101000101100010001 43 118 144 17 Gramática A <seq>::= <vowel> (0) |<seq><vowel>(1) B <vowel> ::= a |e |i |o |u (0) (1) (2) (3) (4) Indivíduo Mapeamento • O que acontece se eu termino de ler o genótipo e meu indivíduo ainda apresenta não-terminais? – Uso o conceito de “wrapping” • Reaproveitamento de material genético (inspirado na sobreposição de genes comum bactérias) 43%2=1 118%2=0 144%5=4 17%5=2 Processo de Decodificação <seq> <seq><vowel> <vowel><vowel> u <vowel> ui Implicações da Degeneração de Código Genético • Aparecimento de mutações neutras • Variações no genótipo não tem efeito no fenótipo Representação • Trabalha com vetores de bits de tamanho variável • Ao gerar a população inicial. determina um número máximo de codons que cada indivíduo pode ter Operadores Genéticos • Mutação de um ponto • Crossover de um ponto • Duplicação de codons – Selecionados aleatoriamente e inseridos antes do último codon Principais características de Evolução de Gramáticas • Separa o genótipo do fenótipo • Degeneração de código genético – Ajuda a manter a diversidade da população – Ajuda a preservar a funcionalidade dos programas através de mutações neutras • Operador wrapping – Reusar código genético 3 .

Automatic Generation of Programs with Grammatical Evolution. 1995. pages 72-78..org/ 4 . Mais informações • http://www. In Proceedings of AICS 1999. Ryan C. of the Workshop on Genetic Programming: From Theory to Real-World Applications. Proc. • P. A. Grammatically-based Genetic Programming.grammatical-evolution. Whigham. pages 33-41.Aplicações • Amplamente utilizado na área financeira e de avaliação de negócios • Pode ser utilizado para resolver todos os problemas que um EA comum resolve Leitura Recomendada • O'Neill M.