• Nenhum resultado encontrado

Introdução a Algoritmos Genéticos

N/A
N/A
Protected

Academic year: 2021

Share "Introdução a Algoritmos Genéticos"

Copied!
42
0
0

Texto

(1)

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

(2)

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

(3)

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)

(4)

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

(5)

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

(6)

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

(7)

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

(8)

Genética nos Seres Vivos

• Evolução

• Seleção natural

(9)

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

(10)

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

(11)

Fundamentos

Função g(x1,x2)

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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 =

(18)

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 =

(19)

Fundamentos

Biologia × Algoritmos Genéticos

Biologia 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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

0110010 011 1101010 101

(25)

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%

(26)

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

(27)

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%

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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

(35)

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

(36)

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

(37)

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

(38)

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

(39)

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])

(40)

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])

(41)

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])

(42)

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])

Referências

Documentos relacionados

Dessa forma, um possível indivíduo para um problema de n variáveis poderia ser visto na tabela 2, podemos ver às variáveis, seus limites inferiores (LI) e superiores (LS),

O tratamento dos animais com extrato de Piper mollicomum não influenciou a inges- tão alimentar dos animais, mas proporcionou um significativo ganho de massa corporal no

!  A percepção de uma situação moral é relativa, mas os valores morais envolvidos na situação são absolutos... Comportamentos

Ensaio Imunoenzimático para a determinação quantitativa, para diagnóstico in-vitro, de neopterina em soro, plasma e urina humanos.. SUMÁRIO

4. Após a consignação da decisão referida no número anterior, o médico responsável remete o Boletim de Registos do processo de antecipação de morte para a

As pessoas recebem esse tra- vesseirinho, a gente abençoa e ela coloca dentro do travesseiro dela; antes de dor- mir, sempre que necessitar de uma luz, de uma resposta de Deus,

A implementação do AG foi feita de modo genérico, tornando assim, possível a mudança dos parâmetros, permitindo que o desempenho de vários parâmetros possa ser comparado e

1º, a interrupção das atividades pelo empregador e a constituição de regime especial de compensação de jornada, por meio de banco de horas, em favor do empregador ou