Introdução a Algoritmos Genéticos

Propaganda
Introdução a Algoritmos Genéticos
Tiago da Conceição Mota
Laboratório de Inteligência Computacional
Núcleo de Computação Eletrônica
Universidade Federal do Rio de Janeiro
Outubro de 2007
O Que São?
• Busca estocástica por soluções aproximadas
• Inspirados na evolução das espécies
• Normalmente empregados em problemas cujo espaço de
busca é grande, irregular ou pouco conhecido
Genética nos Seres Vivos
• Cromossomos
• Cadeias de DNA
• Instruem a produção de diferentes proteínas
• Carregam os genes
• Responsáveis por características específicas de cada ser
• Podem assumir diferentes valores (alelos)
• Diferentes combinações de valores (genótipos) levam a
diferenças em características do ser (fenótipos)
Genética nos Seres Vivos
• Cromossomos encontrados em pares (seres que se
reproduzem sexuadamente)
• Produzem gametas, com um representante de cada par de
cromossomos
• Gametas de dois indivíduos se unem para formar um novo
indivíduo
Genética nos Seres Vivos
• Cromossomos encontrados em pares (seres que se
reproduzem sexuadamente)
• Produzem gametas, com um representante de cada par de
cromossomos
• Gametas de dois indivíduos se unem para formar um novo
indivíduo
• Durante a produção dos gametas
• Recombinação: troca de parte das cadeias de um par
• Mutação: alteração em uma ou mais posições dos
cromossomos
Genética nos Seres Vivos
• Fenótipos: adaptação dos indivíduos ao ambiente
• Maior adaptação, mais chances de sobreviver
• Maior sobrevivência, mais chances de se reproduzir e
gerar novos indivíduos
Genética nos Seres Vivos
• Fenótipos: adaptação dos indivíduos ao ambiente
• Maior adaptação, mais chances de sobreviver
• Maior sobrevivência, mais chances de se reproduzir e
gerar novos indivíduos
• Novos indivíduos carregam informações dos pais, tendo
boa possibilidade de serem tão bem adaptados ao
ambiente quanto estes
• Seleção natural: escolha de fenótipos através da
sobrevivência dos mais adaptados
Genética nos Seres Vivos
• Evolução
• Seleção natural
• Alterações genéticas
Fundamentos
• Imitar a evolução das espécies para resolver problemas,
“evoluindo” soluções
Fundamentos
• Imitar a evolução das espécies para resolver problemas,
“evoluindo” soluções
• Exemplo de problema:
• Achar o máximo da função
7
g(x1 , x2 ) = 2 + (x1 + x2 ) × cos
πx1
× (sin (2πx2 ))
2
• 0 ≤ x1 , x2 < 1
Fundamentos
Função g(x1 , x2 )
Fundamentos
Biologia × Algoritmos Genéticos
• Cromossomo
• Estrutura na qual são codificadas as soluções
• Exemplo: vetor de 10 bits
Fundamentos
Biologia × Algoritmos Genéticos
• Cromossomo
• Estrutura na qual são codificadas as soluções
• Exemplo: vetor de 10 bits
• Gene
• Parte da estrutura responsável por um componente da
solução
• Exemplo: segunda metade dos 10 bits é responsável pela
codificação de x2
Fundamentos
Biologia × Algoritmos Genéticos
• Cromossomo
• Estrutura na qual são codificadas as soluções
• Exemplo: vetor de 10 bits
• Gene
• Parte da estrutura responsável por um componente da
solução
• Exemplo: segunda metade dos 10 bits é responsável pela
codificação de x2
• Genótipo
• Codificação da solução na estrutura
• Exemplo: 0110010101
Fundamentos
Biologia × Algoritmos Genéticos
• Produção de proteínas
• Decodificação do genótipo
• Exemplo:
(01100)2
=
(12)10
⇒
(10101)2
=
(21)10
⇒
12
= 0,375
25
21
x2 = 5 = 0,65625
2
x1 =
Fundamentos
Biologia × Algoritmos Genéticos
• Produção de proteínas
• Decodificação do genótipo
• Exemplo:
(01100)2
=
(12)10
⇒
(10101)2
=
(21)10
⇒
12
= 0,375
25
21
x2 = 5 = 0,65625
2
x1 =
• Fenótipo/indivíduo
• Solução gerada a partir da decodificação do genótipo
• Exemplo: x = (0,375; 0,65625)
Fundamentos
Biologia × Algoritmos Genéticos
• Adaptação ao ambiente
• Função de avaliação da solução
• Exemplo: f0110010101 = g(0,375; 0,65625) = 2,4764
Fundamentos
Biologia × Algoritmos Genéticos
• Adaptação ao ambiente
• Função de avaliação da solução
• Exemplo: f0110010101 = g(0,375; 0,65625) = 2,4764
• População
• Conjunto de soluções
• Exemplo: P =
{0110010101, 1101010011, 0001000110, 1110110010}
Fundamentos
Biologia × Algoritmos Genéticos
Biologia
Cromossomo
Gene
Genótipo
Produção de proteínas
Fenótipo/indivíduo
Adaptação ao ambiente
População
Algoritmos Genéticos
Estrutura
Componente da estrutura
Codificação da solução
Decodificação
Solução
Avaliação da solução
Conjunto de soluções
Fundamentos
Seleção
• Seleciona indivíduos de uma população
• Corresponde à sobrevivência e à possibilidade de
reprodução dos mais adaptados
• Baseada na avaliação de cada indivíduo
• Quanto maior a avaliação, maior a chance de ser
selecionado
• Um indivíduo pode ser selecionado mais de uma vez, bem
como nenhuma vez
Fundamentos
Seleção
• Método da Roleta
• Simulação de sorteio usando roleta
• Cada indivíduo corresponde a um trecho da roleta
• Trecho da roleta proporcional à avaliação do indivíduo
• Probabilidade de um indivíduo i ser selecionado:
pi =
fi
n
X
fj
j=1
• fi é a avaliação do indivíduo i
• fi tem de ser não negativa para todo i
Fundamentos
Seleção
gere aleatoriamente um número r no intervalo [0, 1)
para i de 1 até n faça
se r < pi então
retorna indivíduo i
senão
r ← r − pi
fim de se
fim de para
Fundamentos
Recombinação
• A partir de dois indivíduos
• Gera indivíduos cujos cromossomos são combinações dos
cromossomos dos indivíduos originais
• Informações sobre as soluções são combinadas com o
objetivo de gerar soluções melhores
Fundamentos
Recombinação
• Troca de informações a partir de um ponto de corte
• Exemplo:
• De
0110010101
1101010011
com ponto de corte no oitavo bit, obtemos
0110010011
1101010101
Fundamentos
Recombinação
• Normalmente há uma probabilidade de aplicação de
recombinação
• Um par de indivíduos pode não ter a recombinação
aplicada sobre ele
• Valores comumente utilizados para a probabilidade de
recombinação: entre 60% e 90%
Fundamentos
Mutação
• Aplicado sobre um único indivíduo
• Altera elementos do cromossomo do indivíduo
• Auxilia na variabilidade genética, gerando soluções que
poderiam não ser geradas através apenas de
recombinação
Fundamentos
Mutação
• Feita sobre cada posição do cromossomo
• Inversão do bit que sofrer mutação
• De
0110010101
para
0111000101
• Valores típicos da probabilidade de aplicação da mutação:
por volta de 1%
Fundamentos
Algoritmo Genético Básico
gere aleatoriamente a população inicial P (1)
avalie cada indivíduo de P (1)
t ←1
enquanto a condição de parada não estiver satisfeita faça
P (t+1) ← ∅
enquanto |P (t+1) | < n faça
selecione e faça cópias de 2 indivíduos de P (t)
faça a recombinação dos 2 indivíduos com uma certa
probabilidade
faça mutação em cada posição dos 2 indivíduos com
uma certa probabilidade
insira os 2 indivíduos em P (t+1)
fim de enquanto
avalie cada indivíduo de P (t+1)
t ←t +1
fim de enquanto
Variações
Operadores Genéticos
• Seleção, recombinação e mutação podem ser vistos como
operadores que agem sobre uma população, alterando
seus indivíduos
Variações
Operadores Genéticos
• Seleção, recombinação e mutação podem ser vistos como
operadores que agem sobre uma população, alterando
seus indivíduos
• Seleção: gera uma nova população selecionando
indivíduos da população atual
• Recombinação: forma pares de indivíduos e recombina
cada par
• Mutação: para cada indivíduo, altera elementos de seu
cromossomo
Variações
Elitismo e Criacionismo
• Elitismo
• Preserva os melhores indivíduos da geração durante a
aplicação de um operador
• Seleção: melhores indivíduos são copiados diretamente,
sem sorteio
• Recombinação e mutação: não são aplicadas sobre os
melhores indivíduos
• Criacionismo
• Gerar novos indivíduos aleatoriamente
Variações
Algoritmo Genético Genérico
gere a população inicial P (1)
avalie cada indivíduo de P (1)
t ←1
enquanto a condição de parada não estiver satisfeita faça
P (t+1) ← P (t)
para cada operador genético
oper faça
P (t+1) ← oper P (t+1)
fim de para
avalie cada indivíduo de P (t+1)
t ←t +1
fim de enquanto
Resolvendo Problemas com AGs
• Problemas do algoritmo genético clássico
Resolvendo Problemas com AGs
• Problemas do algoritmo genético clássico
• Codificação binária é simples, porém limitada
Resolvendo Problemas com AGs
• Problemas do algoritmo genético clássico
• Codificação binária é simples, porém limitada
• Recombinação clássica pode não ser suficiente para gerar
bons indivíduos
Resolvendo Problemas com AGs
• Problemas do algoritmo genético clássico
• Codificação binária é simples, porém limitada
• Recombinação clássica pode não ser suficiente para gerar
bons indivíduos
• Mutação clássica apenas para variação de valores,
subutilizada
Resolvendo Problemas com AGs
• Problemas do algoritmo genético clássico
• Codificação binária é simples, porém limitada
• Recombinação clássica pode não ser suficiente para gerar
bons indivíduos
• Mutação clássica apenas para variação de valores,
subutilizada
• Deve-se utilizar codificações e operadores próprios para
cada problema
Resolvendo Problemas com AGs
• Problemas do algoritmo genético clássico
• Codificação binária é simples, porém limitada
• Recombinação clássica pode não ser suficiente para gerar
bons indivíduos
• Mutação clássica apenas para variação de valores,
subutilizada
• Deve-se utilizar codificações e operadores próprios para
cada problema
• Devemos levar o algoritmo genético ao problema, e não o
contrário
Resolvendo Problemas com AGs
Exemplo
• Função g(x1 , x2 )
Resolvendo Problemas com AGs
Exemplo
• Função g(x1 , x2 )
• Codificação por valor: cromossomo composto por 2
números de ponto flutuante, representando os valores reais
de x1 e x2
Resolvendo Problemas com AGs
Exemplo
• Função g(x1 , x2 )
• Codificação por valor: cromossomo composto por 2
números de ponto flutuante, representando os valores reais
de x1 e x2
• Recombinação aritmética:
u0
=
a × u + (1 − a) × v
0
=
(1 − a) × u + a × v
v
Resolvendo Problemas com AGs
Exemplo
• Função g(x1 , x2 )
• Codificação por valor: cromossomo composto por 2
números de ponto flutuante, representando os valores reais
de x1 e x2
• Recombinação aritmética:
u0
=
a × u + (1 − a) × v
0
=
(1 − a) × u + a × v
v
• Mutação aritmética:
ui0 = ui + rand([−b, +b])
Download