Post on 17-Apr-2015
Apresentação
Título :
Introdução àProgramação Genética
Aluno : Gustavo Henrique Flores CaldasProfa. : Inês Dutra
Objetivo
Apresentar a Programação Genética como um algoritmo capaz de produzir programas de computador com um mínimo de intervenção humana.
Conteúdo
● Introdução
⊙ Descrição do Problema⊙ Breve Histórico
● Programação Genética
⊙ A Representação⊙ O Algoritmo
◎ Fitness◎ Operadores Genéticos
⊙ Parâmetros Comuns⊙ Aplicações
● Conclusão
Descrição do Problema
Busca do melhor programa...
... no espaço de todos os programas.
Metáfora Biológica da PG
Ano Inventor Técnica Indivíduo
1958 Friedberg Máquina Aprendiz Assembler Virtual
1959 Samuel Matemática Polinômio
1965 Fogel, Owens e Walsh Programação Evolucionária Autômato
1975 Rechenberg e Schwefell Estratégias Evolucionárias Vetor Numérico
1978 Holland Algoritmos Genéticos String Binária
1980 Holland e ReitmannSistema Genético de
ClassificaçãoRegras
1985 Smith Programação Genética InicialStrings Binárias
Variáveis
1986 Cramer Programação Genética Inicial Árvore
1987 Hicklin Programação Genética Inicial LISP
1987 Fugiki e Dickinson Programação Genética Inicial LISP
1987Dickmanns, Chmidhuber
e WinkhoferProgramação Genética Inicial Assembler
1992 Koza Programação Genética Árvore
Breve Histórico
Requisitos para Adaptação
◈ Reprodução entre indivíduos dentro da população
◈ Variações que afetam as condições de sobrevivência dos indivíduos
◈ Hereditariedade na reprodução
◈ Recursos limitados causando competição
++
**
**++ 88
776611 22 55++
4433
(+ (* (+ 1 2) (- (+ 3 4) 5)) (- (* 6 7) 8))
(+ (* (+ 1 2) (- (+ 3 4) 5)) (- (* 6 7) 8))
Ou
Ou
Representação dos “Indivíduos”
Algoritmo de Programação Genética
G := 0G := 0
Criar PopulaçãoInicial
Criar PopulaçãoInicial
Avaliar o Desempenho de Cada Indivíduo na População
Avaliar o Desempenho de Cada Indivíduo na População
Critério de Términofoi Satisfeito?
Critério de Términofoi Satisfeito? Designar
ResultadoDesignarResultado
FimFim
G := G + 1G := G + 1
Sim
Não
Aplicação deOperadores Genéticos
Aplicação deOperadores Genéticos
População Inicial
++
**11
44––
3322
SeSe
OuOuEE OuOu
L2L2L1
L1 VerdadeiroVerdadeiro VerdadeiroVerdadeiro FalsoFalsoFalsoFalso
= -3
12 LL
Funções : F = {+, *, , }
Terminais : T = {0, 1, 2, 3, 4}
Funções : F = {Se, E, Ou}
Terminais : T = {L1, L2, Verdadeiro, Falso}
Algoritmo de Programação Genética
G := 0
Criar PopulaçãoInicial
Avaliar o Desempenho de Cada Indivíduo na População
Critério de Términofoi Satisfeito? Designar
Resultado
Fim
G := G + 1
Sim
Não
Aplicação deOperadores Genéticos
Cuidados com os Indivíduos
++
OuOu00
00VerdadeiroVerdadeiro
++
++++
0000 0000
Funções : F = {+, Ou}
Terminais : T = {Verdadeiro, 0}
Funções : F = {+}Terminais : T = {0}
Completude
Suficiência
Fitness & Casos Fitness
0.00 0.25 0.50 0.75 1.000.0
0.2
0.4
0.6
0.8
1.0
x
y
x
x2
x3
x4
x5
0.00 0.25 0.50 0.75 1.000.0
0.2
0.4
0.6
0.8
1.0
x
y
x3
Aproximação de y = x3
no intervalo [0, 1]
Casos Fitness
Algoritmo de Programação Genética
G := 0
Criar PopulaçãoInicial
Avaliar o Desempenho de Cada Indivíduo na População
Critério de Términofoi Satisfeito? Designar
Resultado
Fim
G := G + 1
Sim
Não
Aplicação deOperadores Genéticos
PopulaçãoIndivíduos Selecionados
da População
4
6 5
7
9 8
1
3 2
2
2 3
4
9 4
1
1 1
SeleçãoAlgoritmo de Programação Genética
G := 0
Criar PopulaçãoInicial
Avaliar o Desempenho de Cada Indivíduo na População
Critério de Términofoi Satisfeito? Designar
Resultado
Fim
G := G + 1
Sim
Não
Aplicação deOperadores Genéticos
Algoritmo de Programação Genética
G := 0
Criar PopulaçãoInicial
Avaliar o Desempenho de Cada Indivíduo na População
Critério de Términofoi Satisfeito? Designar
Resultado
Fim
G := G + 1
Sim
Não
Aplicação deOperadores Genéticos
Indivíduos Selecionadosda População
2
2 3
4
9 4
1
1 1
4
Próxima Geração
Reprodução
Algoritmo de Programação Genética
G := 0
Criar PopulaçãoInicial
Avaliar o Desempenho de Cada Indivíduo na População
Critério de Términofoi Satisfeito? Designar
Resultado
Fim
G := G + 1
Sim
Não
Aplicação deOperadores Genéticos
Indivíduos Selecionadosda População
2
2 3
4
9 4
1
1 1
3’
Próxima Geração
1’
Crossover
Crossover++
**
**++ 88
776611 22 55++
4433
** 33
2211
++
**
**++ 88
776611 22
55++
4433
**
33 2211
Algoritmo de Programação Genética
G := 0
Criar PopulaçãoInicial
Avaliar o Desempenho de Cada Indivíduo na População
Critério de Términofoi Satisfeito? Designar
Resultado
Fim
G := G + 1
Sim
Não
Aplicação deOperadores Genéticos
Algoritmo de Programação Genética
G := 0
Criar PopulaçãoInicial
Avaliar o Desempenho de Cada Indivíduo na População
Critério de Términofoi Satisfeito? Designar
Resultado
Fim
G := G + 1
Sim
Não
Aplicação deOperadores Genéticos
Indivíduos Selecionadosda População
2
2 3
4
9 4
1
1 1
9’
Próxima Geração
Mutação
Mutação
** 33
2211
++
44**
11
**
2211
++
3322
Algoritmo de Programação Genética
G := 0
Criar PopulaçãoInicial
Avaliar o Desempenho de Cada Indivíduo na População
Critério de Términofoi Satisfeito? Designar
Resultado
Fim
G := G + 1
Sim
Não
Aplicação deOperadores Genéticos
Finalização
G := 0G := 0
Criar PopulaçãoInicial
Criar PopulaçãoInicial
Avaliar o Desempenho de Cada Indivíduo na População
Avaliar o Desempenho de Cada Indivíduo na População
Critério de Términofoi Satisfeito?
Critério de Términofoi Satisfeito? Designar
ResultadoDesignarResultado
FimFim
G := G + 1G := G + 1
Sim
Não
Aplicação deOperadores Genéticos
Aplicação deOperadores Genéticos
População = 500
Gerações = 50
Seleção = Proporcional a Fitness
Crossover = 80 %
Mutação = 10 %
Reprodução = 10 %
Parâmetros Comuns
1989 1990 1991 1992 1993 1994 1995 19960
50
100
150
200
250
N o d
e Pu
blic
açõe
s
Ano
Domínio de Aplicação Primeira PublicaçãoAlgoritmos 1992
Arte 1993Biotecnologia 1993
Gráficos de Computador 1991Computação 1992
Controle (Geral) 1992Controle (Processo) 1990
Controle (Robôs e Agentes) 1992Controle (Espaçonave) 1996
Data Mining 1996Engenharia elétrica 1994Mercado Financeiro 1994Sistemas Híbridos 1993
Processamento de Imagens 1993Evolução Interativa 1991
Modelagem 1994Linguagem Natural 1994
Otimização 1994Reconhecimento de Padrões 1994
Processamento de Sinais 1992
Aplicações da PG
Conclusão
A Programação Genética encontra-se ainda em estágio de desenvolvimento, mas já é possível aplicá-la satisfatoriamente em várias áreas diferentes do conhecimento. Tudo isso com quase nenhuma intervenção humana.