SlideShare uma empresa Scribd logo
1 de 176
Baixar para ler offline
Inteligência Artificial – ACH2016
Aula 04 – Computação Evolutiva e Algoritmos
Genéticos
Norton Trevisan Roman
(norton@usp.br)
14 de março de 2019
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 1 / 47
Computação Evolutiva
Definição
Série de técnicas que buscam simular a evolução
natural
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 47
Computação Evolutiva
Definição
Série de técnicas que buscam simular a evolução
natural
Trata-se de um modelo bio-inspirado
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 47
Computação Evolutiva
Definição
Série de técnicas que buscam simular a evolução
natural
Trata-se de um modelo bio-inspirado
Nesse caso, na reprodução sexuada e, mais especificamente,
no mecanismo de transmissão de genes a futuras gerações
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 47
Computação Evolutiva
Definição
Série de técnicas que buscam simular a evolução
natural
Trata-se de um modelo bio-inspirado
Nesse caso, na reprodução sexuada e, mais especificamente,
no mecanismo de transmissão de genes a futuras gerações
Usando seleção natural para definir os indivı́duos mais
adequados
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 47
Computação Evolutiva
Definição
Série de técnicas que buscam simular a evolução
natural
Trata-se de um modelo bio-inspirado
Nesse caso, na reprodução sexuada e, mais especificamente,
no mecanismo de transmissão de genes a futuras gerações
Usando seleção natural para definir os indivı́duos mais
adequados
Simulam então a evolução via seleção, mutação e
reprodução
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 47
Computação Evolutiva
Processo
Seleção:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 47
Computação Evolutiva
Processo
Seleção:
Indivı́duos são selecionados de
acordo com sua função objetivo
→ sua função de adaptação
(fitness function)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 47
Computação Evolutiva
Processo
Seleção:
Indivı́duos são selecionados de
acordo com sua função objetivo
→ sua função de adaptação
(fitness function)
Indivı́duos com alta adaptação
têm maior probabilidade de
passarem adiante seus genes
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 47
Computação Evolutiva
Processo
Seleção:
Indivı́duos são selecionados de
acordo com sua função objetivo
→ sua função de adaptação
(fitness function)
Indivı́duos com alta adaptação
têm maior probabilidade de
passarem adiante seus genes
Probabilidade? Sim... sorte ajuda...
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 47
Computação Evolutiva
Processo
Seleção:
Indivı́duos são selecionados de
acordo com sua função objetivo
→ sua função de adaptação
(fitness function)
Indivı́duos com alta adaptação
têm maior probabilidade de
passarem adiante seus genes Fonte: https://www.livescience.com/
60898-asteroid-struck-unlucky-spot-
doomed-dinosaurs.html
Probabilidade? Sim... sorte ajuda...
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 47
Computação Evolutiva
Processo
Mutação:
Indivı́duos têm chance de sofrer
algumas mutações aleatórias em
seus genes
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 47
Computação Evolutiva
Processo
Mutação:
Indivı́duos têm chance de sofrer
algumas mutações aleatórias em
seus genes
Fonte: https://medium.com/textando/
qual-a-ordem-dos-filmes-x-men-20ff4717f108
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 47
Computação Evolutiva
Processo
Mutação:
Indivı́duos têm chance de sofrer
algumas mutações aleatórias em
seus genes
Fonte: https://medium.com/textando/
qual-a-ordem-dos-filmes-x-men-20ff4717f108
Reprodução:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 47
Computação Evolutiva
Processo
Mutação:
Indivı́duos têm chance de sofrer
algumas mutações aleatórias em
seus genes
Fonte: https://medium.com/textando/
qual-a-ordem-dos-filmes-x-men-20ff4717f108
Reprodução:
Novos indivı́duos são formados
pelo cruzamento (crossover) de
indivı́duos da população atual
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 47
Computação Evolutiva
Processo
Mutação:
Indivı́duos têm chance de sofrer
algumas mutações aleatórias em
seus genes
Fonte: https://medium.com/textando/
qual-a-ordem-dos-filmes-x-men-20ff4717f108
Reprodução:
Novos indivı́duos são formados
pelo cruzamento (crossover) de
indivı́duos da população atual
Fonte: https://www.ign.
com/articles/2012/03/28/
great-mythological-movie-beasts
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 47
Computação Evolutiva
Nomenclatura
Nome Significado
Cromossomo Arranjo representando um indivı́duo
Gene Atributo ou variável no cromossomo
Alelo Valor do atributo ou variável
Locus Posição do atributo no cromossomo
Genótipo A estrutura do cromossomo → o arranjo de
atributos
Fenótipo A interpretação do genótipo → uma solução
para o problema
População Conjunto de indivı́duos
Geração Cada iteração do algoritmo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 47
Computação Evolutiva
Resultado
Série de algoritmos de otimização
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
Computação Evolutiva
Resultado
Série de algoritmos de otimização
Geralmente baseados em um conjunto simples de regras
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
Computação Evolutiva
Resultado
Série de algoritmos de otimização
Geralmente baseados em um conjunto simples de regras
O processo de otimização iterativamente melhora a qualidade
das soluções, até que uma aceitável seja encontrada
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
Computação Evolutiva
Resultado
Série de algoritmos de otimização
Geralmente baseados em um conjunto simples de regras
O processo de otimização iterativamente melhora a qualidade
das soluções, até que uma aceitável seja encontrada
Existem diversos métodos de computação evolutiva
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
Computação Evolutiva
Resultado
Série de algoritmos de otimização
Geralmente baseados em um conjunto simples de regras
O processo de otimização iterativamente melhora a qualidade
das soluções, até que uma aceitável seja encontrada
Existem diversos métodos de computação evolutiva
Todos simulam a evolução criando uma população de
indivı́duos; avaliando sua adaptação; gerando uma nova
população (via operadores genéticos); e repetindo esse
processo um número de vezes
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
Computação Evolutiva
Resultado
Série de algoritmos de otimização
Geralmente baseados em um conjunto simples de regras
O processo de otimização iterativamente melhora a qualidade
das soluções, até que uma aceitável seja encontrada
Existem diversos métodos de computação evolutiva
Todos simulam a evolução criando uma população de
indivı́duos; avaliando sua adaptação; gerando uma nova
população (via operadores genéticos); e repetindo esse
processo um número de vezes
Veremos Algoritmos Genéticos e Programação Genética
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
Computação Evolutiva
Algoritmos Genéticos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 47
Algoritmos Genéticos
Definição
Um algoritmo genético é um algoritmo de busca
local estocástico em que estados sucessores são
gerados a partir da combinação de 2 estados
pré-existentes
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 47
Algoritmos Genéticos
Definição
Um algoritmo genético é um algoritmo de busca
local estocástico em que estados sucessores são
gerados a partir da combinação de 2 estados
pré-existentes
Uma nova população é criada a partir da combinação de
indivı́duos da população anterior
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 47
Algoritmos Genéticos
Definição
Um algoritmo genético é um algoritmo de busca
local estocástico em que estados sucessores são
gerados a partir da combinação de 2 estados
pré-existentes
Uma nova população é criada a partir da combinação de
indivı́duos da população anterior
Nesse ponto, difere da busca local tradicional por
esta modificar um único estado
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 47
Algoritmos Genéticos
Funcionamento
Começamos com uma população inicial
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 47
Algoritmos Genéticos
Funcionamento
Começamos com uma população inicial
Conjunto de k estados (ou indivı́duos) gerados
aleatoriamente
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 47
Algoritmos Genéticos
Funcionamento
Cada indivı́duo é representado por uma cadeia, de
tamanho fixo, dentro de um alfabeto finito
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 47
Algoritmos Genéticos
Funcionamento
Cada indivı́duo é representado por uma cadeia, de
tamanho fixo, dentro de um alfabeto finito
Ex: 0s e 1s; inteiros de 0 a um limite etc
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 47
Algoritmos Genéticos
Funcionamento
Cada estado é avaliado conforme uma função de
adaptação (função de fitness)
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 47
Algoritmos Genéticos
Funcionamento
Cada estado é avaliado conforme uma função de
adaptação (função de fitness)
A probabilidade de um indivı́duo ser escolhido para
reprodução é proporcional ao valor da função
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 47
Algoritmos Genéticos
Funcionamento
A função de adaptação mede o desempenho do
cromossomo no problema
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 47
Algoritmos Genéticos
Funcionamento
A função de adaptação mede o desempenho do
cromossomo no problema
Corresponde ao papel do ambiente na evolução natural
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 47
Algoritmos Genéticos
Funcionamento
Pares são aleatoriamente escolhidos para
cruzamento, conforme essas probabilidades
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 47
Algoritmos Genéticos
Funcionamento
Pares são aleatoriamente escolhidos para
cruzamento, conforme essas probabilidades
Fonte: Adaptado de AIMA. Russell & Norvig.
Note que um dos in-
divı́duos foi selecionado 2×
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 47
Algoritmos Genéticos
Funcionamento
Pares são aleatoriamente escolhidos para
cruzamento, conforme essas probabilidades
Fonte: Adaptado de AIMA. Russell & Norvig.
Enquanto outro
não foi escolhido
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 47
Algoritmos Genéticos
Funcionamento
Pares são aleatoriamente escolhidos para
cruzamento, conforme essas probabilidades
Para cada par, escolhemos aleatoriamente um ponto
(potencialmente diferente) de cruzamento (crossover)
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 47
Algoritmos Genéticos
Funcionamento
Os pares escolhidos produzem filhos
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 14 / 47
Algoritmos Genéticos
Funcionamento
Os pares escolhidos produzem filhos
Ou seja, indivı́duos com melhor fitness são selecionados
probabilisticamente para produzir a próxima geração. Assim,
membros da geração atual geram a próxima
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 14 / 47
Algoritmos Genéticos
Funcionamento
A produção dos filhos se dá via crossover
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 15 / 47
Algoritmos Genéticos
Funcionamento
A produção dos filhos se dá via crossover
As sub-cadeias dos pais são trocadas a partir do ponto de
crossover, gerando os filhos – Cruzamento de Ponto
Único
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 15 / 47
Algoritmos Genéticos
Funcionamento
Em geral, a população é bem diversificada no inı́cio
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 47
Algoritmos Genéticos
Funcionamento
Em geral, a população é bem diversificada no inı́cio
Assim como simulated annealing, crossover frequentemente
dá passos largos no inı́cio da busca e menores mais tarde,
quando muitos indivı́duos são bastante similares
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 47
Algoritmos Genéticos
Funcionamento
Os filhos, por sua vez, estão sujeitos a mutações
aleatórias
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 47
Algoritmos Genéticos
Funcionamento
Os filhos, por sua vez, estão sujeitos a mutações
aleatórias
Cada posição na cadeia dos filhos está sujeita a mutação
com uma pequena probabilidade, independentemente das
demais posições
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 47
Algoritmos Genéticos
Funcionamento
Como resultado, após um número de reproduções
sucessivas, os menos adaptados são extintos
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 47
Algoritmos Genéticos
Funcionamento
Como resultado, após um número de reproduções
sucessivas, os menos adaptados são extintos
Enquanto os mais adaptados gradualmente dominam a
população
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 47
Algoritmos Genéticos
Ciclo de um Algoritmo Genético
População Inicial
Seleção
Cruzamento
Mutação
Nova População
Avaliação
Avaliação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 47
Algoritmos Genéticos
Ciclo de um Algoritmo Genético
População Inicial
Seleção
Cruzamento
Mutação
Nova População
Avaliação
Avaliação
A avaliação se dá
pelo cálculo da função
de fitness de cada
indivı́duo na população
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 47
Algoritmos Genéticos
Ciclo de um Algoritmo Genético
População Inicial
Seleção
Cruzamento
Mutação
Nova População
Avaliação
Avaliação
Aqui, o número de
indivı́duos na po-
pulação permanece
sempre constante
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 47
Algoritmos Genéticos
Ciclo de um Algoritmo Genético
População Inicial
Seleção
Cruzamento
Mutação
Nova População
Avaliação
Avaliação
Isso, contudo, não
é uma exigência,
e outros modelos
podem ser usados
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 47
Algoritmos Genéticos
Exemplo
X
A
Estamos em A e queremos achar um
caminho para X
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
Algoritmos Genéticos
Exemplo
X
A
Estamos em A e queremos achar um
caminho para X
Temos 4 movimentos permitidos:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
Algoritmos Genéticos
Exemplo
X
A
Estamos em A e queremos achar um
caminho para X
Temos 4 movimentos permitidos:
Para cima (C), baixo (B), esquerda (E) e
direita (D)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
Algoritmos Genéticos
Exemplo
X
A
Estamos em A e queremos achar um
caminho para X
Temos 4 movimentos permitidos:
Para cima (C), baixo (B), esquerda (E) e
direita (D)
Suponha que, ao passarmos de uma borda, apareceremos na
borda do extremo oposto, ou seja, (1, 6) + D = (1, 1)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
Algoritmos Genéticos
Exemplo
X
A
Estamos em A e queremos achar um
caminho para X
Temos 4 movimentos permitidos:
Para cima (C), baixo (B), esquerda (E) e
direita (D)
Suponha que, ao passarmos de uma borda, apareceremos na
borda do extremo oposto, ou seja, (1, 6) + D = (1, 1)
Queremos dar no máximo 8 passos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
Algoritmos Genéticos
Exemplo
X
A
Estamos em A e queremos achar um
caminho para X
Temos 4 movimentos permitidos:
Para cima (C), baixo (B), esquerda (E) e
direita (D)
Suponha que, ao passarmos de uma borda, apareceremos na
borda do extremo oposto, ou seja, (1, 6) + D = (1, 1)
Queremos dar no máximo 8 passos
Esse será o tamanho de nosso cromossomo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
Algoritmos Genéticos
Exemplo
C B E E D C D E
Cromossomo:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
Algoritmos Genéticos
Exemplo
C B E E D C D E
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Cromossomo:
Começamos uma população
inicial aleatória:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
Algoritmos Genéticos
Exemplo
C B E E D C D E
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Cromossomo:
Começamos uma população
inicial aleatória:
Seleção:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
Algoritmos Genéticos
Exemplo
C B E E D C D E
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Cromossomo:
Começamos uma população
inicial aleatória:
Seleção:
A função de fitness dá maior valor a
quem chegou mais perto
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
Algoritmos Genéticos
Exemplo
C B E E D C D E
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Cromossomo:
Começamos uma população
inicial aleatória:
Seleção:
A função de fitness dá maior valor a
quem chegou mais perto
Nesse caso, escolhemos o 2o
e o 4o
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
Algoritmos Genéticos
Exemplo
C B E E D C D E
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Cromossomo:
Começamos uma população
inicial aleatória:
Seleção:
A função de fitness dá maior valor a
quem chegou mais perto
Nesse caso, escolhemos o 2o
e o 4o
Mas o 4o
é o pior!
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
Algoritmos Genéticos
Exemplo
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Seleção (cont.):
Lembre que a seleção é
probabilı́stica, com base no valor
do fitness
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 47
Algoritmos Genéticos
Exemplo
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Seleção (cont.):
Lembre que a seleção é
probabilı́stica, com base no valor
do fitness
Então não necessariamente o melhor
é escolhido. Este apenas tem mais
chance que os demais.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 47
Algoritmos Genéticos
Exemplo
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Seleção (cont.):
Lembre que a seleção é
probabilı́stica, com base no valor
do fitness
Então não necessariamente o melhor
é escolhido. Este apenas tem mais
chance que os demais.
Cruzamento:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 47
Algoritmos Genéticos
Exemplo
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Seleção (cont.):
Lembre que a seleção é
probabilı́stica, com base no valor
do fitness
Então não necessariamente o melhor
é escolhido. Este apenas tem mais
chance que os demais.
Cruzamento:
Escolhemos aleatoriamente uma
sub-cadeia dos selecionados
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 47
Algoritmos Genéticos
Exemplo
X
A
1
2 3
4
D D D E C C D B
1:
E D E D E C C C
2:
C B E D D C C C
3:
B B E E C B D E
4:
Cruzamento (cont.):
E as trocamos de lugar
(Cruzamento de Dois Pontos)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 47
Algoritmos Genéticos
Exemplo
X
A
1
2 3
4
D D D E C C D B
1:
E D E D E C C C
2:
C B E D D C C C
3:
B B E B
E C D E
4:
Cruzamento (cont.):
E as trocamos de lugar
(Cruzamento de Dois Pontos)
Mutação:
Escolhemos posições aleatórias
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 47
Algoritmos Genéticos
Exemplo
X
A
1
2
3
4
D D D E C C D B
1:
E D E D E C E C
2:
C B E D D C C C
3:
B B D E
E C D E
4:
Cruzamento (cont.):
E as trocamos de lugar
(Cruzamento de Dois Pontos)
Mutação:
Escolhemos posições aleatórias
E fazemos mutações aleatórias nelas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 47
Algoritmos Genéticos
Exemplo
X
A
1
2
3
4
D D D E C C D B
1:
E D E D E C E C
2:
C B E D D C C C
3:
B B D E
E C D E
4:
Cruzamento (cont.):
E as trocamos de lugar
(Cruzamento de Dois Pontos)
Mutação:
Escolhemos posições aleatórias
E fazemos mutações aleatórias nelas
Repetimos a operação até
atingirmos o objetivo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 47
Algoritmos Genéticos
Algoritmo
Função GENÉTICO(população, FITNESS): indivı́duo
repita
nova população ← Ø
para i = 1 até TAMANHO(população) faça
x ← SELEÇÃO ALEATÓRIA(população, FITNESS)
y ← SELEÇÃO ALEATÓRIA(população, FITNESS)
filho ← CRUZA(x, y)
se CHANCE MUTAÇÃO() então
filho ← MUTA(filho)
Adicione filho a nova população
população ← nova população
até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem
passado
retorna o melhor indivı́duo na população, de acordo com FITNESS
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 47
Algoritmos Genéticos
Algoritmo
População inicial ge-
rada aleatoriamente
Função GENÉTICO(população, FITNESS): indivı́duo
repita
nova população ← Ø
para i = 1 até TAMANHO(população) faça
x ← SELEÇÃO ALEATÓRIA(população, FITNESS)
y ← SELEÇÃO ALEATÓRIA(população, FITNESS)
filho ← CRUZA(x, y)
se CHANCE MUTAÇÃO() então
filho ← MUTA(filho)
Adicione filho a nova população
população ← nova população
até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem
passado
retorna o melhor indivı́duo na população, de acordo com FITNESS
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 47
Algoritmos Genéticos
Algoritmo
A função de fitness
é parte da entrada
Função GENÉTICO(população, FITNESS): indivı́duo
repita
nova população ← Ø
para i = 1 até TAMANHO(população) faça
x ← SELEÇÃO ALEATÓRIA(população, FITNESS)
y ← SELEÇÃO ALEATÓRIA(população, FITNESS)
filho ← CRUZA(x, y)
se CHANCE MUTAÇÃO() então
filho ← MUTA(filho)
Adicione filho a nova população
população ← nova população
até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem
passado
retorna o melhor indivı́duo na população, de acordo com FITNESS
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 47
Algoritmos Genéticos
Algoritmo
Ela mede o grau de
adaptação de cada
indivı́duo da população
Função GENÉTICO(população, FITNESS): indivı́duo
repita
nova população ← Ø
para i = 1 até TAMANHO(população) faça
x ← SELEÇÃO ALEATÓRIA(população, FITNESS)
y ← SELEÇÃO ALEATÓRIA(população, FITNESS)
filho ← CRUZA(x, y)
se CHANCE MUTAÇÃO() então
filho ← MUTA(filho)
Adicione filho a nova população
população ← nova população
até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem
passado
retorna o melhor indivı́duo na população, de acordo com FITNESS
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 47
Algoritmos Genéticos
Algoritmo
Note que, nesse modelo,
o número de indivı́duos
na população perma-
nece sempre constante
Função GENÉTICO(população, FITNESS): indivı́duo
repita
nova população ← Ø
para i = 1 até TAMANHO(população) faça
x ← SELEÇÃO ALEATÓRIA(população, FITNESS)
y ← SELEÇÃO ALEATÓRIA(população, FITNESS)
filho ← CRUZA(x, y)
se CHANCE MUTAÇÃO() então
filho ← MUTA(filho)
Adicione filho a nova população
população ← nova população
até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem
passado
retorna o melhor indivı́duo na população, de acordo com FITNESS
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 47
Algoritmos Genéticos
Algoritmo
A saı́da é um único
indivı́duo, representando
o melhor de toda a
população após um certo
número de cruzamentos
Função GENÉTICO(população, FITNESS): indivı́duo
repita
nova população ← Ø
para i = 1 até TAMANHO(população) faça
x ← SELEÇÃO ALEATÓRIA(população, FITNESS)
y ← SELEÇÃO ALEATÓRIA(população, FITNESS)
filho ← CRUZA(x, y)
se CHANCE MUTAÇÃO() então
filho ← MUTA(filho)
Adicione filho a nova população
população ← nova população
até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem
passado
retorna o melhor indivı́duo na população, de acordo com FITNESS
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 47
Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
FITNESS()
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
FITNESS()
Seleção
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
FITNESS()
Seleção
SELEÇÃO ALEATÓRIA()
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
FITNESS()
Seleção
SELEÇÃO ALEATÓRIA()
Cruzamento (casamento ou crossover)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
FITNESS()
Seleção
SELEÇÃO ALEATÓRIA()
Cruzamento (casamento ou crossover)
CRUZA()
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
FITNESS()
Seleção
SELEÇÃO ALEATÓRIA()
Cruzamento (casamento ou crossover)
CRUZA()
Mutação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
FITNESS()
Seleção
SELEÇÃO ALEATÓRIA()
Cruzamento (casamento ou crossover)
CRUZA()
Mutação
CHANCE MUTAÇÃO() e MUTA()
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
Algoritmos Genéticos – Operadores
Avaliação: Função de Adaptação
Define o critério para ordenar e selecionar potenciais
indivı́duos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
Algoritmos Genéticos – Operadores
Avaliação: Função de Adaptação
Define o critério para ordenar e selecionar potenciais
indivı́duos
Altamente dependente do domı́nio do problema
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
Algoritmos Genéticos – Operadores
Avaliação: Função de Adaptação
Define o critério para ordenar e selecionar potenciais
indivı́duos
Altamente dependente do domı́nio do problema
Possı́veis critérios
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
Algoritmos Genéticos – Operadores
Avaliação: Função de Adaptação
Define o critério para ordenar e selecionar potenciais
indivı́duos
Altamente dependente do domı́nio do problema
Possı́veis critérios
Precisão:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
Algoritmos Genéticos – Operadores
Avaliação: Função de Adaptação
Define o critério para ordenar e selecionar potenciais
indivı́duos
Altamente dependente do domı́nio do problema
Possı́veis critérios
Precisão:
Possui um componente ligado à sua precisão em conjunto de treino
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
Algoritmos Genéticos – Operadores
Avaliação: Função de Adaptação
Define o critério para ordenar e selecionar potenciais
indivı́duos
Altamente dependente do domı́nio do problema
Possı́veis critérios
Precisão:
Possui um componente ligado à sua precisão em conjunto de treino
Desempenho geral:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
Algoritmos Genéticos – Operadores
Avaliação: Função de Adaptação
Define o critério para ordenar e selecionar potenciais
indivı́duos
Altamente dependente do domı́nio do problema
Possı́veis critérios
Precisão:
Possui um componente ligado à sua precisão em conjunto de treino
Desempenho geral:
Em vez de medir regras individuais, mede-se o desempenho geral do
conjunto de regras
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
Algoritmos Genéticos – Operadores
Seleção: Algoritmo
Seleciona indivı́duos para o cruzamento
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 27 / 47
Algoritmos Genéticos – Operadores
Seleção: Algoritmo
Seleciona indivı́duos para o cruzamento
Função SELEÇÃO ALEATÓRIA(população, FITNESS): indivı́duo
para cada indivı́duo ind em população faça
Pind ←
FITNESS(ind)
|população|
X
i=1
FITNESS(indi )
escolhido ← Escolha aleatoriamente um indivı́duo, com base na
distribuição de probabilidades calculada acima (em que cada indivı́duo
tem Pind de chance de ser escolhido)
retorna escolhido
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 27 / 47
Algoritmos Genéticos – Operadores
Seleção: Algoritmo
Dispomos, contudo, de métodos baseados em
distribuição uniforme (rand)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 47
Algoritmos Genéticos – Operadores
Seleção: Algoritmo
Dispomos, contudo, de métodos baseados em
distribuição uniforme (rand)
Como fazemos, então, para selecionar um indivı́duo ind com
base em
Pind ←
FITNESS(ind)
|população|
X
i=1
FITNESS(indi )
?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 47
Algoritmos Genéticos – Operadores
Seleção: Algoritmo
Dispomos, contudo, de métodos baseados em
distribuição uniforme (rand)
Como fazemos, então, para selecionar um indivı́duo ind com
base em
Pind ←
FITNESS(ind)
|população|
X
i=1
FITNESS(indi )
?
Via o algoritmo da Roda de Roleta (roulette wheel)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Fonte: http://www.edc.ncl.ac.
uk/highlight/rhjanuary2007.php
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Cada cromossomo recebe uma
fatia da roda
Fonte: http://www.edc.ncl.ac.
uk/highlight/rhjanuary2007.php
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Cada cromossomo recebe uma
fatia da roda
A área da fatia é igual à
probabilidade de escolha do
cromossomo Pind
Fonte: http://www.edc.ncl.ac.
uk/highlight/rhjanuary2007.php
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Cada cromossomo recebe uma
fatia da roda
A área da fatia é igual à
probabilidade de escolha do
cromossomo Pind
Para selecionar um
cromossomo para cruzamento: Fonte: http://www.edc.ncl.ac.
uk/highlight/rhjanuary2007.php
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Cada cromossomo recebe uma
fatia da roda
A área da fatia é igual à
probabilidade de escolha do
cromossomo Pind
Para selecionar um
cromossomo para cruzamento: Fonte: http://www.edc.ncl.ac.
uk/highlight/rhjanuary2007.php
Gere um número aleatório entre 1 e 100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Cada cromossomo recebe uma
fatia da roda
A área da fatia é igual à
probabilidade de escolha do
cromossomo Pind
Para selecionar um
cromossomo para cruzamento: Fonte: http://www.edc.ncl.ac.
uk/highlight/rhjanuary2007.php
Gere um número aleatório entre 1 e 100
O cromossomo em cujo segmento esse número cair será
selecionado
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta – Exemplo
Voltemos ao nosso exemplo
Fonte: AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta – Exemplo
Voltemos ao nosso exemplo (e sua tabela associada)
Fonte: AIMA. Russell & Norvig.
ind FITNESS(ind) Pind
1 24 31%
2 23 29%
3 20 26%
4 11 14%
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta – Exemplo
Voltemos ao nosso exemplo (e sua tabela associada)
Fonte: AIMA. Russell & Norvig.
ind FITNESS(ind) Pind
1 24 31%
2 23 29%
3 20 26%
4 11 14%
Note que esse exemplo faz Pind ←
FITNESS(ind)
|população|
X
i=1
FITNESS(indi )
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta – Exemplo
ind FITNESS(ind) Pind
1 24 31%
2 23 29%
3 20 26%
4 11 14%
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta – Exemplo
Distribuı́mos as
probabilidades na roleta
ind FITNESS(ind) Pind
1 24 31%
2 23 29%
3 20 26%
4 11 14%
1 10 20 30 40 50 60 70 80 90 100
1 3 4
2
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta – Exemplo
Distribuı́mos as
probabilidades na roleta
Escolhemos um valor a
partir de uma
distribuição uniforme
ind FITNESS(ind) Pind
1 24 31%
2 23 29%
3 20 26%
4 11 14%
1 10 20 30 40 50 60 70 80 90 100
1 3 4
2
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta – Exemplo
Distribuı́mos as
probabilidades na roleta
Escolhemos um valor a
partir de uma
distribuição uniforme
ind FITNESS(ind) Pind
1 24 31%
2 23 29%
3 20 26%
4 11 14%
A posição correspondente na roleta dirá qual o
indivı́duo sorteado
1 10 20 30 40 50 60 70 80 90 100
1 3 4
2
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Por dar mais chance aos melhor adaptados, essa
técnica aplica uma pressão de seleção em direção
a esses indivı́duos, evoluindo-os com o tempo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Por dar mais chance aos melhor adaptados, essa
técnica aplica uma pressão de seleção em direção
a esses indivı́duos, evoluindo-os com o tempo
Esse algoritmo, contudo, não funciona para casos
em que a função de adaptação pode retornar valores
negativos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Por dar mais chance aos melhor adaptados, essa
técnica aplica uma pressão de seleção em direção
a esses indivı́duos, evoluindo-os com o tempo
Esse algoritmo, contudo, não funciona para casos
em que a função de adaptação pode retornar valores
negativos
Uma vez que probabilidades negativas seriam introduzidas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Por dar mais chance aos melhor adaptados, essa
técnica aplica uma pressão de seleção em direção
a esses indivı́duos, evoluindo-os com o tempo
Esse algoritmo, contudo, não funciona para casos
em que a função de adaptação pode retornar valores
negativos
Uma vez que probabilidades negativas seriam introduzidas
Mas, e se nossa função de adaptação tiver que
retornar valores negativos?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Por dar mais chance aos melhor adaptados, essa
técnica aplica uma pressão de seleção em direção
a esses indivı́duos, evoluindo-os com o tempo
Esse algoritmo, contudo, não funciona para casos
em que a função de adaptação pode retornar valores
negativos
Uma vez que probabilidades negativas seriam introduzidas
Mas, e se nossa função de adaptação tiver que
retornar valores negativos?
Alternativas são a Seleção por Torneio e por Posição
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
Algoritmos Genéticos – Operadores
Seleção: Torneio (K-Way Tournament Selection)
Função TORNEIO(população, FITNESS, k, tamanho pop):
população
selecionados ← ∅
repita
participantes ← Selecione aleatoriamente k indivı́duos da
população
selecionados ← selecionados ∪ indivı́duo com melhor valor
de adaptação (FITNESS) em participantes
até obter o tamanho desejado para selecionados
retorna selecionados
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 33 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Muito usado quando os indivı́duos na população
têm valores próximos de adaptação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Muito usado quando os indivı́duos na população
têm valores próximos de adaptação
Normalmente ao final do processo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Muito usado quando os indivı́duos na população
têm valores próximos de adaptação
Normalmente ao final do processo
Com a roleta isso leva a uma perda na pressão de
seleção em direção aos mais adaptados
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Muito usado quando os indivı́duos na população
têm valores próximos de adaptação
Normalmente ao final do processo
Com a roleta isso leva a uma perda na pressão de
seleção em direção aos mais adaptados
Pois cada indivı́duo terá aproximadamente a mesma
probabilidade de ser escolhido, não importando quão melhor
seja em relação aos outros
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Muito usado quando os indivı́duos na população
têm valores próximos de adaptação
Normalmente ao final do processo
Com a roleta isso leva a uma perda na pressão de
seleção em direção aos mais adaptados
Pois cada indivı́duo terá aproximadamente a mesma
probabilidade de ser escolhido, não importando quão melhor
seja em relação aos outros
E, consequentemente, a uma pior seleção de pais
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Que fazer então?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Que fazer então?
Seleção com base na posição em lista ordenada:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Que fazer então?
Seleção com base na posição em lista ordenada:
Ordene de modo crescente os indivı́duos pelo seu valor de
adaptação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Que fazer então?
Seleção com base na posição em lista ordenada:
Ordene de modo crescente os indivı́duos pelo seu valor de
adaptação
Calcule um novo valor de fitness conforme a posição
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Que fazer então?
Seleção com base na posição em lista ordenada:
Ordene de modo crescente os indivı́duos pelo seu valor de
adaptação
Calcule um novo valor de fitness conforme a posição
Ex:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Que fazer então?
Seleção com base na posição em lista ordenada:
Ordene de modo crescente os indivı́duos pelo seu valor de
adaptação
Calcule um novo valor de fitness conforme a posição
Ex:
O 1o
terá f 0
1 = 1, o 2o
terá f 0
1 = 2 . . . o No
terá f 0
1 = N
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Que fazer então?
Seleção com base na posição em lista ordenada:
Ordene de modo crescente os indivı́duos pelo seu valor de
adaptação
Calcule um novo valor de fitness conforme a posição
Ex:
O 1o
terá f 0
1 = 1, o 2o
terá f 0
1 = 2 . . . o No
terá f 0
1 = N
Proceda então como na roda de roleta, usando esses novos
valores de adaptação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
A probabilidade um indivı́duo ser selecionado é,
então, proporcional à sua posição nessa lista
ordenada
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
A probabilidade um indivı́duo ser selecionado é,
então, proporcional à sua posição nessa lista
ordenada
O primeiro (menor fitness) com o menor valor e o último
com o maior
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 47
Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
A probabilidade um indivı́duo ser selecionado é,
então, proporcional à sua posição nessa lista
ordenada
O primeiro (menor fitness) com o menor valor e o último
com o maior
Assim, o valor de adaptação do indivı́duo não é
usado diretamente
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 47
Algoritmos Genéticos – Operadores
Cruzamento
Produz novos filhos a partir de dois pais, copiando
genes selecionados de cada pai
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
Algoritmos Genéticos – Operadores
Cruzamento
Produz novos filhos a partir de dois pais, copiando
genes selecionados de cada pai
O gene na posição i em cada filho é copiado do gene na
posição i de um dos pais
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
Algoritmos Genéticos – Operadores
Cruzamento
Produz novos filhos a partir de dois pais, copiando
genes selecionados de cada pai
O gene na posição i em cada filho é copiado do gene na
posição i de um dos pais
Tipos de Cruzamento:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
Algoritmos Genéticos – Operadores
Cruzamento
Produz novos filhos a partir de dois pais, copiando
genes selecionados de cada pai
O gene na posição i em cada filho é copiado do gene na
posição i de um dos pais
Tipos de Cruzamento:
De ponto Único
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
Algoritmos Genéticos – Operadores
Cruzamento
Produz novos filhos a partir de dois pais, copiando
genes selecionados de cada pai
O gene na posição i em cada filho é copiado do gene na
posição i de um dos pais
Tipos de Cruzamento:
De ponto Único
De dois pontos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
Algoritmos Genéticos – Operadores
Cruzamento
Produz novos filhos a partir de dois pais, copiando
genes selecionados de cada pai
O gene na posição i em cada filho é copiado do gene na
posição i de um dos pais
Tipos de Cruzamento:
De ponto Único
De dois pontos
Uniforme
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De ponto único (Single-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 4 2 4 0 1 1 1 2
3 5 8 8 5 1 0 3 3 9
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De ponto único (Single-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 4 2 4 0 1 1 1 2
3 5 8 8 5 1 0 3 3 9
No primeiro filho, os n primeiros genes vêm do primeiro pai,
e os restantes do segundo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De ponto único (Single-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 4 2 4 0 1 1 1 2
3 5 8 8 5 1 0 3 3 9
No primeiro filho, os n primeiros genes vêm do primeiro pai,
e os restantes do segundo
O segundo filho troca as posições dos pais, ou seja, tem os n
primeiros genes do segundo e os restantes do primeiro
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De ponto único (Single-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 4 2 4 0 1 1 1 2
3 5 8 8 5 1 0 3 3 9
No primeiro filho, os n primeiros genes vêm do primeiro pai,
e os restantes do segundo
O segundo filho troca as posições dos pais, ou seja, tem os n
primeiros genes do segundo e os restantes do primeiro
Assim, ele contém os genes não usados no irmão
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De ponto único (Single-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 4 2 4 0 1 1 1 2
3 5 8 8 5 1 0 3 3 9
Toda vez que o operador de cruzamento de ponto único é
usado, o ponto de cruzamento n é escolhido aleatoriamente
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De ponto único (Single-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 4 2 4 0 1 1 1 2
3 5 8 8 5 1 0 3 3 9
Toda vez que o operador de cruzamento de ponto único é
usado, o ponto de cruzamento n é escolhido aleatoriamente
Modelo visto no inı́cio da aula...
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De ponto único (Single-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 4 2 4 0 1 1 1 2
3 5 8 8 5 1 0 3 3 9
Toda vez que o operador de cruzamento de ponto único é
usado, o ponto de cruzamento n é escolhido aleatoriamente
Modelo visto no inı́cio da aula...
Tende a manter os genes iniciais dos cromossomos na
população
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De dois pontos (Two-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 8 8 4 0 1 3 3 9
3 5 4 2 5 1 0 1 1 2
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De dois pontos (Two-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 8 8 4 0 1 3 3 9
3 5 4 2 5 1 0 1 1 2
A prole é criada substituindo-se segmentos intermediários de
um pai no meio da cadeia do segundo pai
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De dois pontos (Two-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 8 8 4 0 1 3 3 9
3 5 4 2 5 1 0 1 1 2
A prole é criada substituindo-se segmentos intermediários de
um pai no meio da cadeia do segundo pai
Também aqui, toda vez que o operador é usado, os pontos
de cruzamento n0 e n1 são escolhidos aleatoriamente
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De dois pontos (Two-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 8 8 4 0 1 3 3 9
3 5 4 2 5 1 0 1 1 2
A prole é criada substituindo-se segmentos intermediários de
um pai no meio da cadeia do segundo pai
Também aqui, toda vez que o operador é usado, os pontos
de cruzamento n0 e n1 são escolhidos aleatoriamente
Tende a manter os genes iniciais e finais dos cromossomos
na população
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
Uniforme (Uniform crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 5 8 2 5 0 0 1 1 9
3 1 4 8 4 1 1 3 3 2
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
Uniforme (Uniform crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 5 8 2 5 0 0 1 1 9
3 1 4 8 4 1 1 3 3 2
Combina aleatoriamente (distribuição uniforme) genes dos 2
pais
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
Uniforme (Uniform crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 5 8 2 5 0 0 1 1 9
3 1 4 8 4 1 1 3 3 2
Combina aleatoriamente (distribuição uniforme) genes dos 2
pais
Cada ponto de cruzamento é definido de forma aleatória, e
independentemente dos demais pontos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
Uniforme (Uniform crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 5 8 2 5 0 0 1 1 9
3 1 4 8 4 1 1 3 3 2
Combina aleatoriamente (distribuição uniforme) genes dos 2
pais
Cada ponto de cruzamento é definido de forma aleatória, e
independentemente dos demais pontos
Não dá preferência para manter alguns genes (iniciais ou
finais) na população
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Algoritmo (Ponto Único)
Função CRUZA(x,y): indivı́duo
n ← TAMANHO(x)
c ← número aleatório entre 1 e n
parte x ← SUBSTRING(x,1,c)
parte y ← SUBSTRING(y,c+1,n)
retorna APPEND(parte x, parte y)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Algoritmo (Ponto Único)
Nesse algoritmo os ı́ndices
dos arranjos vão de 1 a n
Função CRUZA(x,y): indivı́duo
n ← TAMANHO(x)
c ← número aleatório entre 1 e n
parte x ← SUBSTRING(x,1,c)
parte y ← SUBSTRING(y,c+1,n)
retorna APPEND(parte x, parte y)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Algoritmo (Ponto Único)
Note que, nessa versão,
cada cruzamento de
2 pais produz ape-
nas um filho, não 2
Função CRUZA(x,y): indivı́duo
n ← TAMANHO(x)
c ← número aleatório entre 1 e n
parte x ← SUBSTRING(x,1,c)
parte y ← SUBSTRING(y,c+1,n)
retorna APPEND(parte x, parte y)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Até agora, cruzamento era mandatório
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Até agora, cruzamento era mandatório
Sempre o fazı́amos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Até agora, cruzamento era mandatório
Sempre o fazı́amos
Isso, contudo, faz com que boas soluções não sejam
preservadas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Até agora, cruzamento era mandatório
Sempre o fazı́amos
Isso, contudo, faz com que boas soluções não sejam
preservadas
Uma alternativa a esse modelo clássico é efetuar o
cruzamento com uma certa probabilidade
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Até agora, cruzamento era mandatório
Sempre o fazı́amos
Isso, contudo, faz com que boas soluções não sejam
preservadas
Uma alternativa a esse modelo clássico é efetuar o
cruzamento com uma certa probabilidade
Então, primeiro decidimos se iremos efetuar o cruzamento,
para então fazê-lo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Nas vezes em que não é feito o cruzamento, a
clonagem acontece
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Nas vezes em que não é feito o cruzamento, a
clonagem acontece
A prole torna-se uma cópia exata dos pais
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Nas vezes em que não é feito o cruzamento, a
clonagem acontece
A prole torna-se uma cópia exata dos pais
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Funcionamento:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Funcionamento:
Após a seleção dos indivı́duos para cruzamento, é gerado um
número aleatório r ∈ [0, 1]
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Funcionamento:
Após a seleção dos indivı́duos para cruzamento, é gerado um
número aleatório r ∈ [0, 1]
Se r ≤ p, onde p é a probabilidade de ocorrer um
cruzamento, então haverá o cruzamento
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Funcionamento:
Após a seleção dos indivı́duos para cruzamento, é gerado um
número aleatório r ∈ [0, 1]
Se r ≤ p, onde p é a probabilidade de ocorrer um
cruzamento, então haverá o cruzamento
Do contrário, haverá a clonagem
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Funcionamento:
Após a seleção dos indivı́duos para cruzamento, é gerado um
número aleatório r ∈ [0, 1]
Se r ≤ p, onde p é a probabilidade de ocorrer um
cruzamento, então haverá o cruzamento
Do contrário, haverá a clonagem
Em geral, uma probabilidade de cruzamento p = 0.7
produz bons resultados
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
Referências
Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern Approach.
Prentice Hall. 3a ed.
Mitchell, T. (1997): Machine Learning. McGraw-Hil.
Negnevitsky, M. (2005): Artificial Intelligence: A Guide to Intelligent
Systems. Addison-Wesley. 2a ed.
Goldberb, D.A. (1989): Genetic Algorithms in Search, Optimization and
Machine Learning. Addison-Wesley.
Coley, D.A. (1999): An Introduction to Genetic Algorithms for Scientists
and Engineers. World Scientific.
Miller, B.L.; Goldberg, D.E. (1995): Genetic Algorithms , Tournament
Selection, and the Effects of Noise. Complex System 9. pp. 193-212.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 46 / 47
Referências
https://www.geeksforgeeks.org/tournament-selection-ga/
https://www.tutorialspoint.com/genetic_algorithms/genetic_
algorithms_quick_guide.htm
https://www.quora.com/
What-are-hyperparameters-in-machine-learning
http://www.edc.ncl.ac.uk/highlight/rhjanuary2007.php
https://www.tutorialspoint.com/genetic_algorithms/genetic_
algorithms_parent_selection.htm
https://www.obitko.com/tutorials/genetic-algorithms/
selection.php
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 47 / 47

Mais conteúdo relacionado

Mais procurados

(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03Norton Trevisan Roman
 

Mais procurados (8)

(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
 
(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
 
(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03
 

Mais de Norton Trevisan Roman

(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (14)

(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
 
(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23
 
(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22
 
(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21
 
(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20
 
(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19
 
(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18
 
(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17
 
(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16
 

Último

About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptjricardo76
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfamarianegodoi
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxLeonardoGabriel65
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxAntonioVieira539017
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...Francisco Márcio Bezerra Oliveira
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 

Último (20)

About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 

(ACH2044) Inteligência Artificial - Aula 04

  • 1. Inteligência Artificial – ACH2016 Aula 04 – Computação Evolutiva e Algoritmos Genéticos Norton Trevisan Roman (norton@usp.br) 14 de março de 2019 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 1 / 47
  • 2. Computação Evolutiva Definição Série de técnicas que buscam simular a evolução natural Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 47
  • 3. Computação Evolutiva Definição Série de técnicas que buscam simular a evolução natural Trata-se de um modelo bio-inspirado Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 47
  • 4. Computação Evolutiva Definição Série de técnicas que buscam simular a evolução natural Trata-se de um modelo bio-inspirado Nesse caso, na reprodução sexuada e, mais especificamente, no mecanismo de transmissão de genes a futuras gerações Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 47
  • 5. Computação Evolutiva Definição Série de técnicas que buscam simular a evolução natural Trata-se de um modelo bio-inspirado Nesse caso, na reprodução sexuada e, mais especificamente, no mecanismo de transmissão de genes a futuras gerações Usando seleção natural para definir os indivı́duos mais adequados Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 47
  • 6. Computação Evolutiva Definição Série de técnicas que buscam simular a evolução natural Trata-se de um modelo bio-inspirado Nesse caso, na reprodução sexuada e, mais especificamente, no mecanismo de transmissão de genes a futuras gerações Usando seleção natural para definir os indivı́duos mais adequados Simulam então a evolução via seleção, mutação e reprodução Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 47
  • 7. Computação Evolutiva Processo Seleção: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 47
  • 8. Computação Evolutiva Processo Seleção: Indivı́duos são selecionados de acordo com sua função objetivo → sua função de adaptação (fitness function) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 47
  • 9. Computação Evolutiva Processo Seleção: Indivı́duos são selecionados de acordo com sua função objetivo → sua função de adaptação (fitness function) Indivı́duos com alta adaptação têm maior probabilidade de passarem adiante seus genes Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 47
  • 10. Computação Evolutiva Processo Seleção: Indivı́duos são selecionados de acordo com sua função objetivo → sua função de adaptação (fitness function) Indivı́duos com alta adaptação têm maior probabilidade de passarem adiante seus genes Probabilidade? Sim... sorte ajuda... Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 47
  • 11. Computação Evolutiva Processo Seleção: Indivı́duos são selecionados de acordo com sua função objetivo → sua função de adaptação (fitness function) Indivı́duos com alta adaptação têm maior probabilidade de passarem adiante seus genes Fonte: https://www.livescience.com/ 60898-asteroid-struck-unlucky-spot- doomed-dinosaurs.html Probabilidade? Sim... sorte ajuda... Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 47
  • 12. Computação Evolutiva Processo Mutação: Indivı́duos têm chance de sofrer algumas mutações aleatórias em seus genes Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 47
  • 13. Computação Evolutiva Processo Mutação: Indivı́duos têm chance de sofrer algumas mutações aleatórias em seus genes Fonte: https://medium.com/textando/ qual-a-ordem-dos-filmes-x-men-20ff4717f108 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 47
  • 14. Computação Evolutiva Processo Mutação: Indivı́duos têm chance de sofrer algumas mutações aleatórias em seus genes Fonte: https://medium.com/textando/ qual-a-ordem-dos-filmes-x-men-20ff4717f108 Reprodução: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 47
  • 15. Computação Evolutiva Processo Mutação: Indivı́duos têm chance de sofrer algumas mutações aleatórias em seus genes Fonte: https://medium.com/textando/ qual-a-ordem-dos-filmes-x-men-20ff4717f108 Reprodução: Novos indivı́duos são formados pelo cruzamento (crossover) de indivı́duos da população atual Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 47
  • 16. Computação Evolutiva Processo Mutação: Indivı́duos têm chance de sofrer algumas mutações aleatórias em seus genes Fonte: https://medium.com/textando/ qual-a-ordem-dos-filmes-x-men-20ff4717f108 Reprodução: Novos indivı́duos são formados pelo cruzamento (crossover) de indivı́duos da população atual Fonte: https://www.ign. com/articles/2012/03/28/ great-mythological-movie-beasts Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 47
  • 17. Computação Evolutiva Nomenclatura Nome Significado Cromossomo Arranjo representando um indivı́duo Gene Atributo ou variável no cromossomo Alelo Valor do atributo ou variável Locus Posição do atributo no cromossomo Genótipo A estrutura do cromossomo → o arranjo de atributos Fenótipo A interpretação do genótipo → uma solução para o problema População Conjunto de indivı́duos Geração Cada iteração do algoritmo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 47
  • 18. Computação Evolutiva Resultado Série de algoritmos de otimização Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
  • 19. Computação Evolutiva Resultado Série de algoritmos de otimização Geralmente baseados em um conjunto simples de regras Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
  • 20. Computação Evolutiva Resultado Série de algoritmos de otimização Geralmente baseados em um conjunto simples de regras O processo de otimização iterativamente melhora a qualidade das soluções, até que uma aceitável seja encontrada Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
  • 21. Computação Evolutiva Resultado Série de algoritmos de otimização Geralmente baseados em um conjunto simples de regras O processo de otimização iterativamente melhora a qualidade das soluções, até que uma aceitável seja encontrada Existem diversos métodos de computação evolutiva Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
  • 22. Computação Evolutiva Resultado Série de algoritmos de otimização Geralmente baseados em um conjunto simples de regras O processo de otimização iterativamente melhora a qualidade das soluções, até que uma aceitável seja encontrada Existem diversos métodos de computação evolutiva Todos simulam a evolução criando uma população de indivı́duos; avaliando sua adaptação; gerando uma nova população (via operadores genéticos); e repetindo esse processo um número de vezes Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
  • 23. Computação Evolutiva Resultado Série de algoritmos de otimização Geralmente baseados em um conjunto simples de regras O processo de otimização iterativamente melhora a qualidade das soluções, até que uma aceitável seja encontrada Existem diversos métodos de computação evolutiva Todos simulam a evolução criando uma população de indivı́duos; avaliando sua adaptação; gerando uma nova população (via operadores genéticos); e repetindo esse processo um número de vezes Veremos Algoritmos Genéticos e Programação Genética Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
  • 24. Computação Evolutiva Algoritmos Genéticos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 47
  • 25. Algoritmos Genéticos Definição Um algoritmo genético é um algoritmo de busca local estocástico em que estados sucessores são gerados a partir da combinação de 2 estados pré-existentes Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 47
  • 26. Algoritmos Genéticos Definição Um algoritmo genético é um algoritmo de busca local estocástico em que estados sucessores são gerados a partir da combinação de 2 estados pré-existentes Uma nova população é criada a partir da combinação de indivı́duos da população anterior Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 47
  • 27. Algoritmos Genéticos Definição Um algoritmo genético é um algoritmo de busca local estocástico em que estados sucessores são gerados a partir da combinação de 2 estados pré-existentes Uma nova população é criada a partir da combinação de indivı́duos da população anterior Nesse ponto, difere da busca local tradicional por esta modificar um único estado Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 47
  • 28. Algoritmos Genéticos Funcionamento Começamos com uma população inicial Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 47
  • 29. Algoritmos Genéticos Funcionamento Começamos com uma população inicial Conjunto de k estados (ou indivı́duos) gerados aleatoriamente Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 47
  • 30. Algoritmos Genéticos Funcionamento Cada indivı́duo é representado por uma cadeia, de tamanho fixo, dentro de um alfabeto finito Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 47
  • 31. Algoritmos Genéticos Funcionamento Cada indivı́duo é representado por uma cadeia, de tamanho fixo, dentro de um alfabeto finito Ex: 0s e 1s; inteiros de 0 a um limite etc Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 47
  • 32. Algoritmos Genéticos Funcionamento Cada estado é avaliado conforme uma função de adaptação (função de fitness) Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 47
  • 33. Algoritmos Genéticos Funcionamento Cada estado é avaliado conforme uma função de adaptação (função de fitness) A probabilidade de um indivı́duo ser escolhido para reprodução é proporcional ao valor da função Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 47
  • 34. Algoritmos Genéticos Funcionamento A função de adaptação mede o desempenho do cromossomo no problema Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 47
  • 35. Algoritmos Genéticos Funcionamento A função de adaptação mede o desempenho do cromossomo no problema Corresponde ao papel do ambiente na evolução natural Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 47
  • 36. Algoritmos Genéticos Funcionamento Pares são aleatoriamente escolhidos para cruzamento, conforme essas probabilidades Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 47
  • 37. Algoritmos Genéticos Funcionamento Pares são aleatoriamente escolhidos para cruzamento, conforme essas probabilidades Fonte: Adaptado de AIMA. Russell & Norvig. Note que um dos in- divı́duos foi selecionado 2× Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 47
  • 38. Algoritmos Genéticos Funcionamento Pares são aleatoriamente escolhidos para cruzamento, conforme essas probabilidades Fonte: Adaptado de AIMA. Russell & Norvig. Enquanto outro não foi escolhido Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 47
  • 39. Algoritmos Genéticos Funcionamento Pares são aleatoriamente escolhidos para cruzamento, conforme essas probabilidades Para cada par, escolhemos aleatoriamente um ponto (potencialmente diferente) de cruzamento (crossover) Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 47
  • 40. Algoritmos Genéticos Funcionamento Os pares escolhidos produzem filhos Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 14 / 47
  • 41. Algoritmos Genéticos Funcionamento Os pares escolhidos produzem filhos Ou seja, indivı́duos com melhor fitness são selecionados probabilisticamente para produzir a próxima geração. Assim, membros da geração atual geram a próxima Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 14 / 47
  • 42. Algoritmos Genéticos Funcionamento A produção dos filhos se dá via crossover Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 15 / 47
  • 43. Algoritmos Genéticos Funcionamento A produção dos filhos se dá via crossover As sub-cadeias dos pais são trocadas a partir do ponto de crossover, gerando os filhos – Cruzamento de Ponto Único Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 15 / 47
  • 44. Algoritmos Genéticos Funcionamento Em geral, a população é bem diversificada no inı́cio Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 47
  • 45. Algoritmos Genéticos Funcionamento Em geral, a população é bem diversificada no inı́cio Assim como simulated annealing, crossover frequentemente dá passos largos no inı́cio da busca e menores mais tarde, quando muitos indivı́duos são bastante similares Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 47
  • 46. Algoritmos Genéticos Funcionamento Os filhos, por sua vez, estão sujeitos a mutações aleatórias Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 47
  • 47. Algoritmos Genéticos Funcionamento Os filhos, por sua vez, estão sujeitos a mutações aleatórias Cada posição na cadeia dos filhos está sujeita a mutação com uma pequena probabilidade, independentemente das demais posições Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 47
  • 48. Algoritmos Genéticos Funcionamento Como resultado, após um número de reproduções sucessivas, os menos adaptados são extintos Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 47
  • 49. Algoritmos Genéticos Funcionamento Como resultado, após um número de reproduções sucessivas, os menos adaptados são extintos Enquanto os mais adaptados gradualmente dominam a população Fonte: Adaptado de AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 47
  • 50. Algoritmos Genéticos Ciclo de um Algoritmo Genético População Inicial Seleção Cruzamento Mutação Nova População Avaliação Avaliação Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 47
  • 51. Algoritmos Genéticos Ciclo de um Algoritmo Genético População Inicial Seleção Cruzamento Mutação Nova População Avaliação Avaliação A avaliação se dá pelo cálculo da função de fitness de cada indivı́duo na população Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 47
  • 52. Algoritmos Genéticos Ciclo de um Algoritmo Genético População Inicial Seleção Cruzamento Mutação Nova População Avaliação Avaliação Aqui, o número de indivı́duos na po- pulação permanece sempre constante Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 47
  • 53. Algoritmos Genéticos Ciclo de um Algoritmo Genético População Inicial Seleção Cruzamento Mutação Nova População Avaliação Avaliação Isso, contudo, não é uma exigência, e outros modelos podem ser usados Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 47
  • 54. Algoritmos Genéticos Exemplo X A Estamos em A e queremos achar um caminho para X Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
  • 55. Algoritmos Genéticos Exemplo X A Estamos em A e queremos achar um caminho para X Temos 4 movimentos permitidos: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
  • 56. Algoritmos Genéticos Exemplo X A Estamos em A e queremos achar um caminho para X Temos 4 movimentos permitidos: Para cima (C), baixo (B), esquerda (E) e direita (D) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
  • 57. Algoritmos Genéticos Exemplo X A Estamos em A e queremos achar um caminho para X Temos 4 movimentos permitidos: Para cima (C), baixo (B), esquerda (E) e direita (D) Suponha que, ao passarmos de uma borda, apareceremos na borda do extremo oposto, ou seja, (1, 6) + D = (1, 1) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
  • 58. Algoritmos Genéticos Exemplo X A Estamos em A e queremos achar um caminho para X Temos 4 movimentos permitidos: Para cima (C), baixo (B), esquerda (E) e direita (D) Suponha que, ao passarmos de uma borda, apareceremos na borda do extremo oposto, ou seja, (1, 6) + D = (1, 1) Queremos dar no máximo 8 passos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
  • 59. Algoritmos Genéticos Exemplo X A Estamos em A e queremos achar um caminho para X Temos 4 movimentos permitidos: Para cima (C), baixo (B), esquerda (E) e direita (D) Suponha que, ao passarmos de uma borda, apareceremos na borda do extremo oposto, ou seja, (1, 6) + D = (1, 1) Queremos dar no máximo 8 passos Esse será o tamanho de nosso cromossomo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
  • 60. Algoritmos Genéticos Exemplo C B E E D C D E Cromossomo: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
  • 61. Algoritmos Genéticos Exemplo C B E E D C D E X A 1 2 3 4 D D D E C C D B 1: E D E E C B C C 2: C B E D D C C C 3: B B E D E C D E 4: Cromossomo: Começamos uma população inicial aleatória: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
  • 62. Algoritmos Genéticos Exemplo C B E E D C D E X A 1 2 3 4 D D D E C C D B 1: E D E E C B C C 2: C B E D D C C C 3: B B E D E C D E 4: Cromossomo: Começamos uma população inicial aleatória: Seleção: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
  • 63. Algoritmos Genéticos Exemplo C B E E D C D E X A 1 2 3 4 D D D E C C D B 1: E D E E C B C C 2: C B E D D C C C 3: B B E D E C D E 4: Cromossomo: Começamos uma população inicial aleatória: Seleção: A função de fitness dá maior valor a quem chegou mais perto Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
  • 64. Algoritmos Genéticos Exemplo C B E E D C D E X A 1 2 3 4 D D D E C C D B 1: E D E E C B C C 2: C B E D D C C C 3: B B E D E C D E 4: Cromossomo: Começamos uma população inicial aleatória: Seleção: A função de fitness dá maior valor a quem chegou mais perto Nesse caso, escolhemos o 2o e o 4o Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
  • 65. Algoritmos Genéticos Exemplo C B E E D C D E X A 1 2 3 4 D D D E C C D B 1: E D E E C B C C 2: C B E D D C C C 3: B B E D E C D E 4: Cromossomo: Começamos uma população inicial aleatória: Seleção: A função de fitness dá maior valor a quem chegou mais perto Nesse caso, escolhemos o 2o e o 4o Mas o 4o é o pior! Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
  • 66. Algoritmos Genéticos Exemplo X A 1 2 3 4 D D D E C C D B 1: E D E E C B C C 2: C B E D D C C C 3: B B E D E C D E 4: Seleção (cont.): Lembre que a seleção é probabilı́stica, com base no valor do fitness Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 47
  • 67. Algoritmos Genéticos Exemplo X A 1 2 3 4 D D D E C C D B 1: E D E E C B C C 2: C B E D D C C C 3: B B E D E C D E 4: Seleção (cont.): Lembre que a seleção é probabilı́stica, com base no valor do fitness Então não necessariamente o melhor é escolhido. Este apenas tem mais chance que os demais. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 47
  • 68. Algoritmos Genéticos Exemplo X A 1 2 3 4 D D D E C C D B 1: E D E E C B C C 2: C B E D D C C C 3: B B E D E C D E 4: Seleção (cont.): Lembre que a seleção é probabilı́stica, com base no valor do fitness Então não necessariamente o melhor é escolhido. Este apenas tem mais chance que os demais. Cruzamento: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 47
  • 69. Algoritmos Genéticos Exemplo X A 1 2 3 4 D D D E C C D B 1: E D E E C B C C 2: C B E D D C C C 3: B B E D E C D E 4: Seleção (cont.): Lembre que a seleção é probabilı́stica, com base no valor do fitness Então não necessariamente o melhor é escolhido. Este apenas tem mais chance que os demais. Cruzamento: Escolhemos aleatoriamente uma sub-cadeia dos selecionados Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 47
  • 70. Algoritmos Genéticos Exemplo X A 1 2 3 4 D D D E C C D B 1: E D E D E C C C 2: C B E D D C C C 3: B B E E C B D E 4: Cruzamento (cont.): E as trocamos de lugar (Cruzamento de Dois Pontos) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 47
  • 71. Algoritmos Genéticos Exemplo X A 1 2 3 4 D D D E C C D B 1: E D E D E C C C 2: C B E D D C C C 3: B B E B E C D E 4: Cruzamento (cont.): E as trocamos de lugar (Cruzamento de Dois Pontos) Mutação: Escolhemos posições aleatórias Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 47
  • 72. Algoritmos Genéticos Exemplo X A 1 2 3 4 D D D E C C D B 1: E D E D E C E C 2: C B E D D C C C 3: B B D E E C D E 4: Cruzamento (cont.): E as trocamos de lugar (Cruzamento de Dois Pontos) Mutação: Escolhemos posições aleatórias E fazemos mutações aleatórias nelas Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 47
  • 73. Algoritmos Genéticos Exemplo X A 1 2 3 4 D D D E C C D B 1: E D E D E C E C 2: C B E D D C C C 3: B B D E E C D E 4: Cruzamento (cont.): E as trocamos de lugar (Cruzamento de Dois Pontos) Mutação: Escolhemos posições aleatórias E fazemos mutações aleatórias nelas Repetimos a operação até atingirmos o objetivo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 47
  • 74. Algoritmos Genéticos Algoritmo Função GENÉTICO(população, FITNESS): indivı́duo repita nova população ← Ø para i = 1 até TAMANHO(população) faça x ← SELEÇÃO ALEATÓRIA(população, FITNESS) y ← SELEÇÃO ALEATÓRIA(população, FITNESS) filho ← CRUZA(x, y) se CHANCE MUTAÇÃO() então filho ← MUTA(filho) Adicione filho a nova população população ← nova população até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem passado retorna o melhor indivı́duo na população, de acordo com FITNESS Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 47
  • 75. Algoritmos Genéticos Algoritmo População inicial ge- rada aleatoriamente Função GENÉTICO(população, FITNESS): indivı́duo repita nova população ← Ø para i = 1 até TAMANHO(população) faça x ← SELEÇÃO ALEATÓRIA(população, FITNESS) y ← SELEÇÃO ALEATÓRIA(população, FITNESS) filho ← CRUZA(x, y) se CHANCE MUTAÇÃO() então filho ← MUTA(filho) Adicione filho a nova população população ← nova população até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem passado retorna o melhor indivı́duo na população, de acordo com FITNESS Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 47
  • 76. Algoritmos Genéticos Algoritmo A função de fitness é parte da entrada Função GENÉTICO(população, FITNESS): indivı́duo repita nova população ← Ø para i = 1 até TAMANHO(população) faça x ← SELEÇÃO ALEATÓRIA(população, FITNESS) y ← SELEÇÃO ALEATÓRIA(população, FITNESS) filho ← CRUZA(x, y) se CHANCE MUTAÇÃO() então filho ← MUTA(filho) Adicione filho a nova população população ← nova população até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem passado retorna o melhor indivı́duo na população, de acordo com FITNESS Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 47
  • 77. Algoritmos Genéticos Algoritmo Ela mede o grau de adaptação de cada indivı́duo da população Função GENÉTICO(população, FITNESS): indivı́duo repita nova população ← Ø para i = 1 até TAMANHO(população) faça x ← SELEÇÃO ALEATÓRIA(população, FITNESS) y ← SELEÇÃO ALEATÓRIA(população, FITNESS) filho ← CRUZA(x, y) se CHANCE MUTAÇÃO() então filho ← MUTA(filho) Adicione filho a nova população população ← nova população até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem passado retorna o melhor indivı́duo na população, de acordo com FITNESS Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 47
  • 78. Algoritmos Genéticos Algoritmo Note que, nesse modelo, o número de indivı́duos na população perma- nece sempre constante Função GENÉTICO(população, FITNESS): indivı́duo repita nova população ← Ø para i = 1 até TAMANHO(população) faça x ← SELEÇÃO ALEATÓRIA(população, FITNESS) y ← SELEÇÃO ALEATÓRIA(população, FITNESS) filho ← CRUZA(x, y) se CHANCE MUTAÇÃO() então filho ← MUTA(filho) Adicione filho a nova população população ← nova população até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem passado retorna o melhor indivı́duo na população, de acordo com FITNESS Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 47
  • 79. Algoritmos Genéticos Algoritmo A saı́da é um único indivı́duo, representando o melhor de toda a população após um certo número de cruzamentos Função GENÉTICO(população, FITNESS): indivı́duo repita nova população ← Ø para i = 1 até TAMANHO(população) faça x ← SELEÇÃO ALEATÓRIA(população, FITNESS) y ← SELEÇÃO ALEATÓRIA(população, FITNESS) filho ← CRUZA(x, y) se CHANCE MUTAÇÃO() então filho ← MUTA(filho) Adicione filho a nova população população ← nova população até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem passado retorna o melhor indivı́duo na população, de acordo com FITNESS Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 47
  • 80. Algoritmos Genéticos Operadores genéticos Usados para criar a próxima geração da população Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
  • 81. Algoritmos Genéticos Operadores genéticos Usados para criar a próxima geração da população Tipos mais comuns: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
  • 82. Algoritmos Genéticos Operadores genéticos Usados para criar a próxima geração da população Tipos mais comuns: Avaliação (função objetivo ou de adaptação): Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
  • 83. Algoritmos Genéticos Operadores genéticos Usados para criar a próxima geração da população Tipos mais comuns: Avaliação (função objetivo ou de adaptação): FITNESS() Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
  • 84. Algoritmos Genéticos Operadores genéticos Usados para criar a próxima geração da população Tipos mais comuns: Avaliação (função objetivo ou de adaptação): FITNESS() Seleção Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
  • 85. Algoritmos Genéticos Operadores genéticos Usados para criar a próxima geração da população Tipos mais comuns: Avaliação (função objetivo ou de adaptação): FITNESS() Seleção SELEÇÃO ALEATÓRIA() Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
  • 86. Algoritmos Genéticos Operadores genéticos Usados para criar a próxima geração da população Tipos mais comuns: Avaliação (função objetivo ou de adaptação): FITNESS() Seleção SELEÇÃO ALEATÓRIA() Cruzamento (casamento ou crossover) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
  • 87. Algoritmos Genéticos Operadores genéticos Usados para criar a próxima geração da população Tipos mais comuns: Avaliação (função objetivo ou de adaptação): FITNESS() Seleção SELEÇÃO ALEATÓRIA() Cruzamento (casamento ou crossover) CRUZA() Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
  • 88. Algoritmos Genéticos Operadores genéticos Usados para criar a próxima geração da população Tipos mais comuns: Avaliação (função objetivo ou de adaptação): FITNESS() Seleção SELEÇÃO ALEATÓRIA() Cruzamento (casamento ou crossover) CRUZA() Mutação Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
  • 89. Algoritmos Genéticos Operadores genéticos Usados para criar a próxima geração da população Tipos mais comuns: Avaliação (função objetivo ou de adaptação): FITNESS() Seleção SELEÇÃO ALEATÓRIA() Cruzamento (casamento ou crossover) CRUZA() Mutação CHANCE MUTAÇÃO() e MUTA() Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
  • 90. Algoritmos Genéticos – Operadores Avaliação: Função de Adaptação Define o critério para ordenar e selecionar potenciais indivı́duos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
  • 91. Algoritmos Genéticos – Operadores Avaliação: Função de Adaptação Define o critério para ordenar e selecionar potenciais indivı́duos Altamente dependente do domı́nio do problema Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
  • 92. Algoritmos Genéticos – Operadores Avaliação: Função de Adaptação Define o critério para ordenar e selecionar potenciais indivı́duos Altamente dependente do domı́nio do problema Possı́veis critérios Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
  • 93. Algoritmos Genéticos – Operadores Avaliação: Função de Adaptação Define o critério para ordenar e selecionar potenciais indivı́duos Altamente dependente do domı́nio do problema Possı́veis critérios Precisão: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
  • 94. Algoritmos Genéticos – Operadores Avaliação: Função de Adaptação Define o critério para ordenar e selecionar potenciais indivı́duos Altamente dependente do domı́nio do problema Possı́veis critérios Precisão: Possui um componente ligado à sua precisão em conjunto de treino Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
  • 95. Algoritmos Genéticos – Operadores Avaliação: Função de Adaptação Define o critério para ordenar e selecionar potenciais indivı́duos Altamente dependente do domı́nio do problema Possı́veis critérios Precisão: Possui um componente ligado à sua precisão em conjunto de treino Desempenho geral: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
  • 96. Algoritmos Genéticos – Operadores Avaliação: Função de Adaptação Define o critério para ordenar e selecionar potenciais indivı́duos Altamente dependente do domı́nio do problema Possı́veis critérios Precisão: Possui um componente ligado à sua precisão em conjunto de treino Desempenho geral: Em vez de medir regras individuais, mede-se o desempenho geral do conjunto de regras Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
  • 97. Algoritmos Genéticos – Operadores Seleção: Algoritmo Seleciona indivı́duos para o cruzamento Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 27 / 47
  • 98. Algoritmos Genéticos – Operadores Seleção: Algoritmo Seleciona indivı́duos para o cruzamento Função SELEÇÃO ALEATÓRIA(população, FITNESS): indivı́duo para cada indivı́duo ind em população faça Pind ← FITNESS(ind) |população| X i=1 FITNESS(indi ) escolhido ← Escolha aleatoriamente um indivı́duo, com base na distribuição de probabilidades calculada acima (em que cada indivı́duo tem Pind de chance de ser escolhido) retorna escolhido Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 27 / 47
  • 99. Algoritmos Genéticos – Operadores Seleção: Algoritmo Dispomos, contudo, de métodos baseados em distribuição uniforme (rand) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 47
  • 100. Algoritmos Genéticos – Operadores Seleção: Algoritmo Dispomos, contudo, de métodos baseados em distribuição uniforme (rand) Como fazemos, então, para selecionar um indivı́duo ind com base em Pind ← FITNESS(ind) |população| X i=1 FITNESS(indi ) ? Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 47
  • 101. Algoritmos Genéticos – Operadores Seleção: Algoritmo Dispomos, contudo, de métodos baseados em distribuição uniforme (rand) Como fazemos, então, para selecionar um indivı́duo ind com base em Pind ← FITNESS(ind) |população| X i=1 FITNESS(indi ) ? Via o algoritmo da Roda de Roleta (roulette wheel) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 47
  • 102. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta Fonte: http://www.edc.ncl.ac. uk/highlight/rhjanuary2007.php Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
  • 103. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta Cada cromossomo recebe uma fatia da roda Fonte: http://www.edc.ncl.ac. uk/highlight/rhjanuary2007.php Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
  • 104. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta Cada cromossomo recebe uma fatia da roda A área da fatia é igual à probabilidade de escolha do cromossomo Pind Fonte: http://www.edc.ncl.ac. uk/highlight/rhjanuary2007.php Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
  • 105. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta Cada cromossomo recebe uma fatia da roda A área da fatia é igual à probabilidade de escolha do cromossomo Pind Para selecionar um cromossomo para cruzamento: Fonte: http://www.edc.ncl.ac. uk/highlight/rhjanuary2007.php Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
  • 106. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta Cada cromossomo recebe uma fatia da roda A área da fatia é igual à probabilidade de escolha do cromossomo Pind Para selecionar um cromossomo para cruzamento: Fonte: http://www.edc.ncl.ac. uk/highlight/rhjanuary2007.php Gere um número aleatório entre 1 e 100 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
  • 107. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta Cada cromossomo recebe uma fatia da roda A área da fatia é igual à probabilidade de escolha do cromossomo Pind Para selecionar um cromossomo para cruzamento: Fonte: http://www.edc.ncl.ac. uk/highlight/rhjanuary2007.php Gere um número aleatório entre 1 e 100 O cromossomo em cujo segmento esse número cair será selecionado Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
  • 108. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta – Exemplo Voltemos ao nosso exemplo Fonte: AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 47
  • 109. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta – Exemplo Voltemos ao nosso exemplo (e sua tabela associada) Fonte: AIMA. Russell & Norvig. ind FITNESS(ind) Pind 1 24 31% 2 23 29% 3 20 26% 4 11 14% Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 47
  • 110. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta – Exemplo Voltemos ao nosso exemplo (e sua tabela associada) Fonte: AIMA. Russell & Norvig. ind FITNESS(ind) Pind 1 24 31% 2 23 29% 3 20 26% 4 11 14% Note que esse exemplo faz Pind ← FITNESS(ind) |população| X i=1 FITNESS(indi ) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 47
  • 111. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta – Exemplo ind FITNESS(ind) Pind 1 24 31% 2 23 29% 3 20 26% 4 11 14% Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 47
  • 112. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta – Exemplo Distribuı́mos as probabilidades na roleta ind FITNESS(ind) Pind 1 24 31% 2 23 29% 3 20 26% 4 11 14% 1 10 20 30 40 50 60 70 80 90 100 1 3 4 2 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 47
  • 113. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta – Exemplo Distribuı́mos as probabilidades na roleta Escolhemos um valor a partir de uma distribuição uniforme ind FITNESS(ind) Pind 1 24 31% 2 23 29% 3 20 26% 4 11 14% 1 10 20 30 40 50 60 70 80 90 100 1 3 4 2 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 47
  • 114. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta – Exemplo Distribuı́mos as probabilidades na roleta Escolhemos um valor a partir de uma distribuição uniforme ind FITNESS(ind) Pind 1 24 31% 2 23 29% 3 20 26% 4 11 14% A posição correspondente na roleta dirá qual o indivı́duo sorteado 1 10 20 30 40 50 60 70 80 90 100 1 3 4 2 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 47
  • 115. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta Por dar mais chance aos melhor adaptados, essa técnica aplica uma pressão de seleção em direção a esses indivı́duos, evoluindo-os com o tempo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
  • 116. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta Por dar mais chance aos melhor adaptados, essa técnica aplica uma pressão de seleção em direção a esses indivı́duos, evoluindo-os com o tempo Esse algoritmo, contudo, não funciona para casos em que a função de adaptação pode retornar valores negativos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
  • 117. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta Por dar mais chance aos melhor adaptados, essa técnica aplica uma pressão de seleção em direção a esses indivı́duos, evoluindo-os com o tempo Esse algoritmo, contudo, não funciona para casos em que a função de adaptação pode retornar valores negativos Uma vez que probabilidades negativas seriam introduzidas Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
  • 118. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta Por dar mais chance aos melhor adaptados, essa técnica aplica uma pressão de seleção em direção a esses indivı́duos, evoluindo-os com o tempo Esse algoritmo, contudo, não funciona para casos em que a função de adaptação pode retornar valores negativos Uma vez que probabilidades negativas seriam introduzidas Mas, e se nossa função de adaptação tiver que retornar valores negativos? Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
  • 119. Algoritmos Genéticos – Operadores Seleção: Roda de Roleta Por dar mais chance aos melhor adaptados, essa técnica aplica uma pressão de seleção em direção a esses indivı́duos, evoluindo-os com o tempo Esse algoritmo, contudo, não funciona para casos em que a função de adaptação pode retornar valores negativos Uma vez que probabilidades negativas seriam introduzidas Mas, e se nossa função de adaptação tiver que retornar valores negativos? Alternativas são a Seleção por Torneio e por Posição Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
  • 120. Algoritmos Genéticos – Operadores Seleção: Torneio (K-Way Tournament Selection) Função TORNEIO(população, FITNESS, k, tamanho pop): população selecionados ← ∅ repita participantes ← Selecione aleatoriamente k indivı́duos da população selecionados ← selecionados ∪ indivı́duo com melhor valor de adaptação (FITNESS) em participantes até obter o tamanho desejado para selecionados retorna selecionados Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 33 / 47
  • 121. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
  • 122. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) Muito usado quando os indivı́duos na população têm valores próximos de adaptação Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
  • 123. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) Muito usado quando os indivı́duos na população têm valores próximos de adaptação Normalmente ao final do processo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
  • 124. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) Muito usado quando os indivı́duos na população têm valores próximos de adaptação Normalmente ao final do processo Com a roleta isso leva a uma perda na pressão de seleção em direção aos mais adaptados Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
  • 125. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) Muito usado quando os indivı́duos na população têm valores próximos de adaptação Normalmente ao final do processo Com a roleta isso leva a uma perda na pressão de seleção em direção aos mais adaptados Pois cada indivı́duo terá aproximadamente a mesma probabilidade de ser escolhido, não importando quão melhor seja em relação aos outros Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
  • 126. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) Muito usado quando os indivı́duos na população têm valores próximos de adaptação Normalmente ao final do processo Com a roleta isso leva a uma perda na pressão de seleção em direção aos mais adaptados Pois cada indivı́duo terá aproximadamente a mesma probabilidade de ser escolhido, não importando quão melhor seja em relação aos outros E, consequentemente, a uma pior seleção de pais Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
  • 127. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) Que fazer então? Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
  • 128. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) Que fazer então? Seleção com base na posição em lista ordenada: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
  • 129. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) Que fazer então? Seleção com base na posição em lista ordenada: Ordene de modo crescente os indivı́duos pelo seu valor de adaptação Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
  • 130. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) Que fazer então? Seleção com base na posição em lista ordenada: Ordene de modo crescente os indivı́duos pelo seu valor de adaptação Calcule um novo valor de fitness conforme a posição Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
  • 131. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) Que fazer então? Seleção com base na posição em lista ordenada: Ordene de modo crescente os indivı́duos pelo seu valor de adaptação Calcule um novo valor de fitness conforme a posição Ex: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
  • 132. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) Que fazer então? Seleção com base na posição em lista ordenada: Ordene de modo crescente os indivı́duos pelo seu valor de adaptação Calcule um novo valor de fitness conforme a posição Ex: O 1o terá f 0 1 = 1, o 2o terá f 0 1 = 2 . . . o No terá f 0 1 = N Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
  • 133. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) Que fazer então? Seleção com base na posição em lista ordenada: Ordene de modo crescente os indivı́duos pelo seu valor de adaptação Calcule um novo valor de fitness conforme a posição Ex: O 1o terá f 0 1 = 1, o 2o terá f 0 1 = 2 . . . o No terá f 0 1 = N Proceda então como na roda de roleta, usando esses novos valores de adaptação Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
  • 134. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) A probabilidade um indivı́duo ser selecionado é, então, proporcional à sua posição nessa lista ordenada Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 47
  • 135. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) A probabilidade um indivı́duo ser selecionado é, então, proporcional à sua posição nessa lista ordenada O primeiro (menor fitness) com o menor valor e o último com o maior Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 47
  • 136. Algoritmos Genéticos – Operadores Seleção: Posição (Rank Selection) A probabilidade um indivı́duo ser selecionado é, então, proporcional à sua posição nessa lista ordenada O primeiro (menor fitness) com o menor valor e o último com o maior Assim, o valor de adaptação do indivı́duo não é usado diretamente Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 47
  • 137. Algoritmos Genéticos – Operadores Cruzamento Produz novos filhos a partir de dois pais, copiando genes selecionados de cada pai Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
  • 138. Algoritmos Genéticos – Operadores Cruzamento Produz novos filhos a partir de dois pais, copiando genes selecionados de cada pai O gene na posição i em cada filho é copiado do gene na posição i de um dos pais Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
  • 139. Algoritmos Genéticos – Operadores Cruzamento Produz novos filhos a partir de dois pais, copiando genes selecionados de cada pai O gene na posição i em cada filho é copiado do gene na posição i de um dos pais Tipos de Cruzamento: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
  • 140. Algoritmos Genéticos – Operadores Cruzamento Produz novos filhos a partir de dois pais, copiando genes selecionados de cada pai O gene na posição i em cada filho é copiado do gene na posição i de um dos pais Tipos de Cruzamento: De ponto Único Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
  • 141. Algoritmos Genéticos – Operadores Cruzamento Produz novos filhos a partir de dois pais, copiando genes selecionados de cada pai O gene na posição i em cada filho é copiado do gene na posição i de um dos pais Tipos de Cruzamento: De ponto Único De dois pontos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
  • 142. Algoritmos Genéticos – Operadores Cruzamento Produz novos filhos a partir de dois pais, copiando genes selecionados de cada pai O gene na posição i em cada filho é copiado do gene na posição i de um dos pais Tipos de Cruzamento: De ponto Único De dois pontos Uniforme Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
  • 143. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 47
  • 144. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento De ponto único (Single-point crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 1 4 2 4 0 1 1 1 2 3 5 8 8 5 1 0 3 3 9 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 47
  • 145. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento De ponto único (Single-point crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 1 4 2 4 0 1 1 1 2 3 5 8 8 5 1 0 3 3 9 No primeiro filho, os n primeiros genes vêm do primeiro pai, e os restantes do segundo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 47
  • 146. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento De ponto único (Single-point crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 1 4 2 4 0 1 1 1 2 3 5 8 8 5 1 0 3 3 9 No primeiro filho, os n primeiros genes vêm do primeiro pai, e os restantes do segundo O segundo filho troca as posições dos pais, ou seja, tem os n primeiros genes do segundo e os restantes do primeiro Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 47
  • 147. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento De ponto único (Single-point crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 1 4 2 4 0 1 1 1 2 3 5 8 8 5 1 0 3 3 9 No primeiro filho, os n primeiros genes vêm do primeiro pai, e os restantes do segundo O segundo filho troca as posições dos pais, ou seja, tem os n primeiros genes do segundo e os restantes do primeiro Assim, ele contém os genes não usados no irmão Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 47
  • 148. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento De ponto único (Single-point crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 1 4 2 4 0 1 1 1 2 3 5 8 8 5 1 0 3 3 9 Toda vez que o operador de cruzamento de ponto único é usado, o ponto de cruzamento n é escolhido aleatoriamente Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 47
  • 149. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento De ponto único (Single-point crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 1 4 2 4 0 1 1 1 2 3 5 8 8 5 1 0 3 3 9 Toda vez que o operador de cruzamento de ponto único é usado, o ponto de cruzamento n é escolhido aleatoriamente Modelo visto no inı́cio da aula... Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 47
  • 150. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento De ponto único (Single-point crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 1 4 2 4 0 1 1 1 2 3 5 8 8 5 1 0 3 3 9 Toda vez que o operador de cruzamento de ponto único é usado, o ponto de cruzamento n é escolhido aleatoriamente Modelo visto no inı́cio da aula... Tende a manter os genes iniciais dos cromossomos na população Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 47
  • 151. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento De dois pontos (Two-point crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 1 8 8 4 0 1 3 3 9 3 5 4 2 5 1 0 1 1 2 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 47
  • 152. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento De dois pontos (Two-point crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 1 8 8 4 0 1 3 3 9 3 5 4 2 5 1 0 1 1 2 A prole é criada substituindo-se segmentos intermediários de um pai no meio da cadeia do segundo pai Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 47
  • 153. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento De dois pontos (Two-point crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 1 8 8 4 0 1 3 3 9 3 5 4 2 5 1 0 1 1 2 A prole é criada substituindo-se segmentos intermediários de um pai no meio da cadeia do segundo pai Também aqui, toda vez que o operador é usado, os pontos de cruzamento n0 e n1 são escolhidos aleatoriamente Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 47
  • 154. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento De dois pontos (Two-point crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 1 8 8 4 0 1 3 3 9 3 5 4 2 5 1 0 1 1 2 A prole é criada substituindo-se segmentos intermediários de um pai no meio da cadeia do segundo pai Também aqui, toda vez que o operador é usado, os pontos de cruzamento n0 e n1 são escolhidos aleatoriamente Tende a manter os genes iniciais e finais dos cromossomos na população Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 47
  • 155. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento Uniforme (Uniform crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 5 8 2 5 0 0 1 1 9 3 1 4 8 4 1 1 3 3 2 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 47
  • 156. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento Uniforme (Uniform crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 5 8 2 5 0 0 1 1 9 3 1 4 8 4 1 1 3 3 2 Combina aleatoriamente (distribuição uniforme) genes dos 2 pais Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 47
  • 157. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento Uniforme (Uniform crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 5 8 2 5 0 0 1 1 9 3 1 4 8 4 1 1 3 3 2 Combina aleatoriamente (distribuição uniforme) genes dos 2 pais Cada ponto de cruzamento é definido de forma aleatória, e independentemente dos demais pontos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 47
  • 158. Algoritmos Genéticos – Operadores Cruzamento: Tipos de Cruzamento Uniforme (Uniform crossover): 1 1 4 2 5 1 0 3 3 9 3 5 8 8 4 0 1 1 1 2 1 5 8 2 5 0 0 1 1 9 3 1 4 8 4 1 1 3 3 2 Combina aleatoriamente (distribuição uniforme) genes dos 2 pais Cada ponto de cruzamento é definido de forma aleatória, e independentemente dos demais pontos Não dá preferência para manter alguns genes (iniciais ou finais) na população Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 47
  • 159. Algoritmos Genéticos – Operadores Cruzamento: Algoritmo (Ponto Único) Função CRUZA(x,y): indivı́duo n ← TAMANHO(x) c ← número aleatório entre 1 e n parte x ← SUBSTRING(x,1,c) parte y ← SUBSTRING(y,c+1,n) retorna APPEND(parte x, parte y) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 47
  • 160. Algoritmos Genéticos – Operadores Cruzamento: Algoritmo (Ponto Único) Nesse algoritmo os ı́ndices dos arranjos vão de 1 a n Função CRUZA(x,y): indivı́duo n ← TAMANHO(x) c ← número aleatório entre 1 e n parte x ← SUBSTRING(x,1,c) parte y ← SUBSTRING(y,c+1,n) retorna APPEND(parte x, parte y) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 47
  • 161. Algoritmos Genéticos – Operadores Cruzamento: Algoritmo (Ponto Único) Note que, nessa versão, cada cruzamento de 2 pais produz ape- nas um filho, não 2 Função CRUZA(x,y): indivı́duo n ← TAMANHO(x) c ← número aleatório entre 1 e n parte x ← SUBSTRING(x,1,c) parte y ← SUBSTRING(y,c+1,n) retorna APPEND(parte x, parte y) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 47
  • 162. Algoritmos Genéticos – Operadores Cruzamento: Clonagem Até agora, cruzamento era mandatório Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
  • 163. Algoritmos Genéticos – Operadores Cruzamento: Clonagem Até agora, cruzamento era mandatório Sempre o fazı́amos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
  • 164. Algoritmos Genéticos – Operadores Cruzamento: Clonagem Até agora, cruzamento era mandatório Sempre o fazı́amos Isso, contudo, faz com que boas soluções não sejam preservadas Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
  • 165. Algoritmos Genéticos – Operadores Cruzamento: Clonagem Até agora, cruzamento era mandatório Sempre o fazı́amos Isso, contudo, faz com que boas soluções não sejam preservadas Uma alternativa a esse modelo clássico é efetuar o cruzamento com uma certa probabilidade Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
  • 166. Algoritmos Genéticos – Operadores Cruzamento: Clonagem Até agora, cruzamento era mandatório Sempre o fazı́amos Isso, contudo, faz com que boas soluções não sejam preservadas Uma alternativa a esse modelo clássico é efetuar o cruzamento com uma certa probabilidade Então, primeiro decidimos se iremos efetuar o cruzamento, para então fazê-lo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
  • 167. Algoritmos Genéticos – Operadores Cruzamento: Clonagem Nas vezes em que não é feito o cruzamento, a clonagem acontece Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 47
  • 168. Algoritmos Genéticos – Operadores Cruzamento: Clonagem Nas vezes em que não é feito o cruzamento, a clonagem acontece A prole torna-se uma cópia exata dos pais Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 47
  • 169. Algoritmos Genéticos – Operadores Cruzamento: Clonagem Nas vezes em que não é feito o cruzamento, a clonagem acontece A prole torna-se uma cópia exata dos pais Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 47
  • 170. Algoritmos Genéticos – Operadores Cruzamento: Clonagem Funcionamento: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
  • 171. Algoritmos Genéticos – Operadores Cruzamento: Clonagem Funcionamento: Após a seleção dos indivı́duos para cruzamento, é gerado um número aleatório r ∈ [0, 1] Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
  • 172. Algoritmos Genéticos – Operadores Cruzamento: Clonagem Funcionamento: Após a seleção dos indivı́duos para cruzamento, é gerado um número aleatório r ∈ [0, 1] Se r ≤ p, onde p é a probabilidade de ocorrer um cruzamento, então haverá o cruzamento Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
  • 173. Algoritmos Genéticos – Operadores Cruzamento: Clonagem Funcionamento: Após a seleção dos indivı́duos para cruzamento, é gerado um número aleatório r ∈ [0, 1] Se r ≤ p, onde p é a probabilidade de ocorrer um cruzamento, então haverá o cruzamento Do contrário, haverá a clonagem Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
  • 174. Algoritmos Genéticos – Operadores Cruzamento: Clonagem Funcionamento: Após a seleção dos indivı́duos para cruzamento, é gerado um número aleatório r ∈ [0, 1] Se r ≤ p, onde p é a probabilidade de ocorrer um cruzamento, então haverá o cruzamento Do contrário, haverá a clonagem Em geral, uma probabilidade de cruzamento p = 0.7 produz bons resultados Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
  • 175. Referências Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern Approach. Prentice Hall. 3a ed. Mitchell, T. (1997): Machine Learning. McGraw-Hil. Negnevitsky, M. (2005): Artificial Intelligence: A Guide to Intelligent Systems. Addison-Wesley. 2a ed. Goldberb, D.A. (1989): Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley. Coley, D.A. (1999): An Introduction to Genetic Algorithms for Scientists and Engineers. World Scientific. Miller, B.L.; Goldberg, D.E. (1995): Genetic Algorithms , Tournament Selection, and the Effects of Noise. Complex System 9. pp. 193-212. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 46 / 47