O documento descreve diferentes técnicas de programação evolucionária, incluindo programação genética, programação evolucionária e sistemas L. A programação genética foi desenvolvida por Jonh Koza nos anos 90 e envolve a evolução de soluções para problemas na forma de programas em LISP através de operadores genéticos como cruzamento e mutação. A programação evolucionária foi inventada por Lawrence J. Fogel em 1966 e envolve a evolução de autômatos de estados finitos. Sistemas L foram desenvolvidos por Aristid Linden
3. Programação Genética
● Kaza usou programação genética para
desenvolver soluções para problemas na
forma de programar em LISP, ou expressões
S (expressões simbólicas).
7. Programação Genética
Para aplicar programação genética,
primeiramente deve-se seguir cinco passos:
● Selecionar um conjunto de terminais
– X, Y
● Selecionar um conjunto de funções primitivas
– *, +, log
8. Programação Genética
● Selecionar uma função de aptidão:
ES
USAR COMO
PROGRAMA
A UM CONJUNTO
DE DADOS
DE AMOSTRA
OBSERVAR QUÃO PERTO DAS
SOLUÇÕES CORRETAS OS
RESULTADOS ESTARÃO
9. Programação Genética
● Selecionar parâmetro para o sistema:
– Tamanho da população
– Número de gerações
● Selecionar um método para determinar o
resultado de uma expressão:
– Cada execução do sistema produzirá uma
nova geração
– Cruzamento e Mutação são aplicação à
geração presente
10. Programação Genética
● Cruzamento envolve obter duas entidades da
população e combinar características de
cada uma para produzir uma nova prole.
● Leve em consideração cromossomos a
seguir:
110100110001001
010101000111101
11. Programação Genética
● Selecionaremos um ponto entre o sexto e o
sétimo genes para o cruzamento:
110100 | 110001001
010101 | 000111101
● Agora, as partes do cromossomo são
recombinadas, como se segue:
110100000111101
010101110001001
12. Programação Genética
● Este processo é baseado no modo como as
cadeias de DNA se combinam umas com as
outras na reprodução humana para combinar
características de cada pai em um filho.
13. Programação Genética
● Mutação – pequenas alterações a uma
expressão S
– + por -
– 2 por 2,1
● Relembrando o método subida de colina...
14. Programação Genética
● No método subida de colina encontramos o
problema da questão do desempenho.
● O operador de mutação foi introduzido para
fazer com que os algoritmos genéticos
evitem esse problema.
15. Programação Genética
● Mutação é um operador unário – envolve
simplesmente a reversão do valor de um bit
em um cromossomo:
010101110001001
010101110101001
17. Programação Evolucionária
● Foi inventada por
Lawrence J. Fogel em 1966
● Usada para desenvolver soluções para o
problema de identificar qual será o próximo
símbolo em uma sequência fínita de
símbolos: a1, a2, a3, a4, a5, …, an.
18. Programação Evolucionária
● O método funciona pela evolução de
Automatos de Estados Finitos (AEFs).
● Na 1ª geração, um conjunto de AEFs
aleatórios é gerado.
● A próxima geração é desenvolvida pela
produção de uma prole a partir de cada AEF
da geração anterior.
19. Programação Evolucionária
● Reprodução envolve a aplicação de uma de
cinco operadores de mutação:
1) Mudar um símbolo de saída
2)Mudar uma transição de estado
3)Adicionar um estado
4)Eliminar um estado
5)Mudar o estado inicial
20. Programação Evolucionária
● Assim, se tivessemos a sequência 1, 2, 3, 4,
5, 6, 7, 8, 9, o AEF executaria primeiro
apenas com o número 1 e sua saída seria
comparada a 2. Depois, executaria com a
sequência 1, 2 e sua saída seria comparada
a 3. Finalmente, executaria com 1, 2, 3, 4, 5,
6, 7, 8 e sua saída seria comparada a 9.
21. Sistemas L
● No final dos anos 1960, um biólogo, Aristid
Lindenmayer, desenvolveu um conjunto de
regras para descrever os padrões de
crescimento de plantas.
22. Sistemas L
● Suas “plantas” consistiam em células, cada
uma das quais poderiam assumir um de dois
valores – a ou b.
Regra 1: a → ab
Regra 2: b → a
24. Sistemas L
● Constatou-se que estes sistemas podiam ser
usados para produzir imagens de plantas
artificiais supreendentemente semelhantes
às reais.
● Estas imagens são comumente usadas em
jogos de computador e filmes.