Introdução a Algoritmos Genéticos
Tiago da Conceição MotaLaboratório de Inteligência Computacional Núcleo de Computação Eletrônica Universidade Federal do Rio de Janeiro
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
• 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
• 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
• 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
• 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
Fundamentos
• Imitar a evolução das espécies para resolver problemas, “evoluindo” soluções
• Exemplo de problema: • Achar o máximo da função
g(x1,x2) =2 + (x1+x2) × cos 7 2πx1 × (sin (2πx2)) • 0 ≤ x1,x2<1
Fundamentos
• Imitar a evolução das espécies para resolver problemas, “evoluindo” soluções
• Exemplo de problema: • Achar o máximo da função
g(x1,x2) =2 + (x1+x2) × cos 7 2πx1 × (sin (2πx2)) • 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
• 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
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
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
Fundamentos
Biologia × Algoritmos Genéticos• Produção de proteínas • Decodificação do genótipo • Exemplo: (01100)2 = (12)10 ⇒ x1= 12 25 =0,375 (10101)2 = (21)10 ⇒ x2= 21 25 =0,65625 • Fenótipo/indivíduo
• Solução gerada a partir da decodificação do genótipo
Fundamentos
Biologia × Algoritmos Genéticos• Produção de proteínas • Decodificação do genótipo • Exemplo: (01100)2 = (12)10 ⇒ x1= 12 25 =0,375 (10101)2 = (21)10 ⇒ x2= 21 25 =0,65625 • Fenótipo/indivíduo
• Solução gerada a partir da decodificação do genótipo
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 =
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 =
Fundamentos
Biologia × Algoritmos GenéticosBiologia Algoritmos Genéticos
Cromossomo Estrutura
Gene Componente da estrutura
Genótipo Codificação da solução Produção de proteínas Decodificação
Fenótipo/indivíduo Solução
Adaptação ao ambiente Avaliação da solução Populaçã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 j=1 fj • fi é a avaliação do indivíduo i
Fundamentos
Seleçãogere 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
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ásicogere 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
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
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
Variações
Algoritmo Genético Genéricogere 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
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
• 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
• 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
• 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
• 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
• 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)
• Codificação por valor: cromossomo composto por 2
números de ponto flutuante, representando os valores reais de x1e x2 • Recombinação aritmética: u0 = a ×u + (1 − a) × v v0 = (1 − a) ×u + a × v • Mutação aritmética: ui0=ui+rand ([−b, +b])
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 x1e x2 • Recombinação aritmética: u0 = a ×u + (1 − a) × v v0 = (1 − a) ×u + a × v • Mutação aritmética: ui0=ui+rand ([−b, +b])
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 x1e x2 • Recombinação aritmética: u0 = a ×u + (1 − a) × v v0 = (1 − a) ×u + a × v • Mutação aritmética: ui0=ui+rand ([−b, +b])
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 x1e x2 • Recombinação aritmética: u0 = a ×u + (1 − a) × v v0 = (1 − a) ×u + a × v • Mutação aritmética: ui0=ui+rand ([−b, +b])