SlideShare uma empresa Scribd logo
Inteligência Artificial – ACH2016
Aula 05 – Algoritmos Genéticos e Programação
Genética
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 / 46
Algoritmos Genéticos
Voltemos ao 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 2 / 46
Algoritmos Genéticos
Voltemos ao algoritmo...
Já vimos a Seleção
e o Cruzamento
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 2 / 46
Algoritmos Genéticos
Voltemos ao algoritmo...
Falta agora a Mutaçã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 2 / 46
Algoritmos Genéticos – Operadores
Mutação: Algoritmo
Assim como o cruzamento, também a mutação
ocorre com uma certa probabilidade
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 46
Algoritmos Genéticos – Operadores
Mutação: Algoritmo
Assim como o cruzamento, também a mutação
ocorre com uma certa probabilidade
Em geral muito menor que a de cruzamento, refletindo a
baixa probabilidade de mutação na natureza
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 46
Algoritmos Genéticos – Operadores
Mutação: Algoritmo
Assim como o cruzamento, também a mutação
ocorre com uma certa probabilidade
Em geral muito menor que a de cruzamento, refletindo a
baixa probabilidade de mutação na natureza
Tipicamente entre 0.001 e 0.01
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 46
Algoritmos Genéticos – Operadores
Mutação: Algoritmo
Assim como o cruzamento, também a mutação
ocorre com uma certa probabilidade
Em geral muito menor que a de cruzamento, refletindo a
baixa probabilidade de mutação na natureza
Tipicamente entre 0.001 e 0.01
Função CHANCE MUTAÇÃO(): boolean
m ← probabilidade independente pequena, pré-definida, de
haver mutação
retorna Valor escolhido aleatoriamente, dentre {V,F}, onde V
tem m% de chance de ser escolhido
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 46
Algoritmos Genéticos – Operadores
Mutação: Algoritmo
Função MUTA(x): void
posição ← Escolha aleatoriamente uma posição do arranjo x
/* Modifica o valor escolhido */
se x[posição] for binário então
/* inverte o bit */
x[posição] ← ∼x[posição]
senão
x[posição] ← escolha aleatoriamente um novo valor (dentre
os possı́veis)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 46
Algoritmos Genéticos – Operadores
Mutação
Como vimos, a mutação produz uma prole a partir
de um único pai
Fonte: ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 46
Algoritmos Genéticos – Operadores
Mutação
Como vimos, a mutação produz uma prole a partir
de um único pai
Fonte: ML. Mitchell.
Produz mudanças aleatórias pequenas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 46
Algoritmos Genéticos – Operadores
Mutação
Como vimos, a mutação produz uma prole a partir
de um único pai
Fonte: ML. Mitchell.
Produz mudanças aleatórias pequenas
Escolhe aleatoriamente um ou mais genes, e então muda
seu(s) valor(es)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 46
Algoritmos Genéticos – Operadores
Mutação
Como vimos, a mutação produz uma prole a partir
de um único pai
Fonte: ML. Mitchell.
Produz mudanças aleatórias pequenas
Escolhe aleatoriamente um ou mais genes, e então muda
seu(s) valor(es)
Seu papel é evitar que o algoritmo fique preso em algum
ótimo local
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 46
Algoritmos Genéticos – Representação
Como representar um cromossomo?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
Algoritmos Genéticos – Representação
Como representar um cromossomo?
Trata-se de associar uma cadeia de sı́mbolos a cada
solução possı́vel representada pelo cromossomo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
Algoritmos Genéticos – Representação
Como representar um cromossomo?
Trata-se de associar uma cadeia de sı́mbolos a cada
solução possı́vel representada pelo cromossomo
A representação de um cromossomo é bastante especı́fica ao
problema, e representações ruins podem levar a um
desempenho ruim
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
Algoritmos Genéticos – Representação
Como representar um cromossomo?
Trata-se de associar uma cadeia de sı́mbolos a cada
solução possı́vel representada pelo cromossomo
A representação de um cromossomo é bastante especı́fica ao
problema, e representações ruins podem levar a um
desempenho ruim
As mais comuns são:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
Algoritmos Genéticos – Representação
Como representar um cromossomo?
Trata-se de associar uma cadeia de sı́mbolos a cada
solução possı́vel representada pelo cromossomo
A representação de um cromossomo é bastante especı́fica ao
problema, e representações ruins podem levar a um
desempenho ruim
As mais comuns são:
Binária
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
Algoritmos Genéticos – Representação
Como representar um cromossomo?
Trata-se de associar uma cadeia de sı́mbolos a cada
solução possı́vel representada pelo cromossomo
A representação de um cromossomo é bastante especı́fica ao
problema, e representações ruins podem levar a um
desempenho ruim
As mais comuns são:
Binária
De valores inteiros
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
Algoritmos Genéticos – Representação
Como representar um cromossomo?
Trata-se de associar uma cadeia de sı́mbolos a cada
solução possı́vel representada pelo cromossomo
A representação de um cromossomo é bastante especı́fica ao
problema, e representações ruins podem levar a um
desempenho ruim
As mais comuns são:
Binária
De valores inteiros
De valores reais
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
Algoritmos Genéticos – Representação
Como representar um cromossomo?
Trata-se de associar uma cadeia de sı́mbolos a cada
solução possı́vel representada pelo cromossomo
A representação de um cromossomo é bastante especı́fica ao
problema, e representações ruins podem levar a um
desempenho ruim
As mais comuns são:
Binária
De valores inteiros
De valores reais
Baseada na ordem
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
Algoritmos Genéticos – Representação
Representação Binária
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
Algoritmos Genéticos – Representação
Representação Binária
A mais simples e mais comum das representações
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
Algoritmos Genéticos – Representação
Representação Binária
A mais simples e mais comum das representações
O cromossomo consiste de uma sequência de bits
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
Algoritmos Genéticos – Representação
Representação Binária
A mais simples e mais comum das representações
O cromossomo consiste de uma sequência de bits
1 0 0 1 0 1 1 0
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
Algoritmos Genéticos – Representação
Representação Binária
A mais simples e mais comum das representações
O cromossomo consiste de uma sequência de bits
1 0 0 1 0 1 1 0
Ideal para representar problemas cujo espaço de
soluções é composto por variáveis booleanas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
Algoritmos Genéticos – Representação
Representação Binária
A mais simples e mais comum das representações
O cromossomo consiste de uma sequência de bits
1 0 0 1 0 1 1 0
Ideal para representar problemas cujo espaço de
soluções é composto por variáveis booleanas
Pode também ser usada para representar qualquer
valor numérico também
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
Algoritmos Genéticos – Representação
Representação Binária
A mais simples e mais comum das representações
O cromossomo consiste de uma sequência de bits
1 0 0 1 0 1 1 0
Ideal para representar problemas cujo espaço de
soluções é composto por variáveis booleanas
Pode também ser usada para representar qualquer
valor numérico também
Usando sua representação binária
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Como representar o cromossomo?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Como representar o cromossomo? Com 4 bits
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Como representar o cromossomo? Com 4 bits
Todo valor entre 0 e 15 pode ser escrito assim
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Como representar o cromossomo? Com 4 bits
Todo valor entre 0 e 15 pode ser escrito assim
Ex: 0 1 1 0
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Como representar o cromossomo? Com 4 bits
Todo valor entre 0 e 15 pode ser escrito assim
Ex: 0 1 1 0
E a função objetivo?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Como representar o cromossomo? Com 4 bits
Todo valor entre 0 e 15 pode ser escrito assim
Ex: 0 1 1 0
E a função objetivo?
Será a própria f (x) = 15x − x2
(queremos seu máximo)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Como representar o cromossomo? Com 4 bits
Todo valor entre 0 e 15 pode ser escrito assim
Ex: 0 1 1 0
E a função objetivo?
Será a própria f (x) = 15x − x2
(queremos seu máximo)
Seguimos então o procedimento já visto...
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se agora quisermos o máximo de
f (x, y) = (1 − x)2
e−x2−(y+1)2
, com −3 ≤ x, y ≤ 3?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se agora quisermos o máximo de
f (x, y) = (1 − x)2
e−x2−(y+1)2
, com −3 ≤ x, y ≤ 3?
Concatenamos as representações (8 bits) de x e y
1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1
x y
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se agora quisermos o máximo de
f (x, y) = (1 − x)2
e−x2−(y+1)2
, com −3 ≤ x, y ≤ 3?
Concatenamos as representações (8 bits) de x e y
1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1
x y
E a função objetivo?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se agora quisermos o máximo de
f (x, y) = (1 − x)2
e−x2−(y+1)2
, com −3 ≤ x, y ≤ 3?
Concatenamos as representações (8 bits) de x e y
1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1
x y
E a função objetivo?
Dado um cromossomo, primeiro decodificamos x e y
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se agora quisermos o máximo de
f (x, y) = (1 − x)2
e−x2−(y+1)2
, com −3 ≤ x, y ≤ 3?
Concatenamos as representações (8 bits) de x e y
1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1
x y
E a função objetivo?
Dado um cromossomo, primeiro decodificamos x e y
E então os usamos em f (x, y)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se x e y forem números reais?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se x e y forem números reais?
Mapeamos a esses 8 bits:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se x e y forem números reais?
Mapeamos a esses 8 bits:
Com 8 bits representamos inteiros de 0 a 255
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se x e y forem números reais?
Mapeamos a esses 8 bits:
Com 8 bits representamos inteiros de 0 a 255
A menor fração do intervalo [−3, 3] representado por esses
bits é 3−(−3)
255−0
= 6
255
= 0.0235294
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se x e y forem números reais?
Mapeamos a esses 8 bits:
Com 8 bits representamos inteiros de 0 a 255
A menor fração do intervalo [−3, 3] representado por esses
bits é 3−(−3)
255−0
= 6
255
= 0.0235294
O inteiro contido nos 8 bits é então multiplicado por
0.0235294 (caindo no intervalo [0, 6])
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se x e y forem números reais?
Mapeamos a esses 8 bits:
Com 8 bits representamos inteiros de 0 a 255
A menor fração do intervalo [−3, 3] representado por esses
bits é 3−(−3)
255−0
= 6
255
= 0.0235294
O inteiro contido nos 8 bits é então multiplicado por
0.0235294 (caindo no intervalo [0, 6])
Subtraı́mos então 3 do resultado, deslocando o intervalo
para [−3, 3]
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Ex:
1 0 0 0 1 0 1 0
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Ex:
1 0 0 0 1 0 1 0
O inteiro correspondente será 138
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Ex:
1 0 0 0 1 0 1 0
O inteiro correspondente será 138
Fazemos então 138 × 0.0235294 = 3.2470572
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Ex:
1 0 0 0 1 0 1 0
O inteiro correspondente será 138
Fazemos então 138 × 0.0235294 = 3.2470572
E o valor representado será 3.2470572 − 3 = 0.2470572
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Ex:
1 0 0 0 1 0 1 0
O inteiro correspondente será 138
Fazemos então 138 × 0.0235294 = 3.2470572
E o valor representado será 3.2470572 − 3 = 0.2470572
0.2470572 é o valor a ser usado na função objetivo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Ex:
1 0 0 0 1 0 1 0
O inteiro correspondente será 138
Fazemos então 138 × 0.0235294 = 3.2470572
E o valor representado será 3.2470572 − 3 = 0.2470572
0.2470572 é o valor a ser usado na função objetivo
Mas booleanos, inteiros e reais não são as únicas
coisas que podemos representar com binários
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Ex:
1 0 0 0 1 0 1 0
O inteiro correspondente será 138
Fazemos então 138 × 0.0235294 = 3.2470572
E o valor representado será 3.2470572 − 3 = 0.2470572
0.2470572 é o valor a ser usado na função objetivo
Mas booleanos, inteiros e reais não são as únicas
coisas que podemos representar com binários
Restrições e Regras também
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
Algoritmos Genéticos
Representação Binária: Restrições e Regras
Restrições servem para limitar os possı́veis valores
de uma variável
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 46
Algoritmos Genéticos
Representação Binária: Restrições e Regras
Restrições servem para limitar os possı́veis valores
de uma variável
Ex: −3 ≤ x, y ≤ 3
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 46
Algoritmos Genéticos
Representação Binária: Restrições e Regras
Restrições servem para limitar os possı́veis valores
de uma variável
Ex: −3 ≤ x, y ≤ 3
Na representação binária, podemos fazer com que
cada restrição corresponda a uma cadeia especı́fica
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 46
Algoritmos Genéticos
Representação Binária: Restrições e Regras
Restrições servem para limitar os possı́veis valores
de uma variável
Ex: −3 ≤ x, y ≤ 3
Na representação binária, podemos fazer com que
cada restrição corresponda a uma cadeia especı́fica
Ex:
Atributo: tempo
100 tempo = ensolarado
Representado com 3 bits: 010 tempo = nublado
001 tempo = chuvoso
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 46
Algoritmos Genéticos
Representação Binária: Restrições e Regras
Podemos combinar restrições com OU (∨):
101 tempo = ensolarado ∨ chuvoso
011 tempo = nublado ∨ chuvoso
111 tempo = qualquer tempo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 46
Algoritmos Genéticos
Representação Binária: Restrições e Regras
Podemos combinar restrições com OU (∨):
101 tempo = ensolarado ∨ chuvoso
011 tempo = nublado ∨ chuvoso
111 tempo = qualquer tempo
Atributo: vento
Representado com 2 bits:
10 vento = forte
01 vento = fraco
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 46
Algoritmos Genéticos
Representação Binária: Restrições e Regras
Podemos combinar restrições com OU (∨):
101 tempo = ensolarado ∨ chuvoso
011 tempo = nublado ∨ chuvoso
111 tempo = qualquer tempo
Atributo: vento
Representado com 2 bits:
10 vento = forte
01 vento = fraco
Conjunções de restrições em atributos múltiplos pode ser
representadas concatenando-se as cadeias de bits:
01110 (tempo = nublado ∨ chuvoso) ∧ (vento = forte)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 46
Algoritmos Genéticos
Representação Binária: Restrições e Regras
Regras também podem ser representadas assim
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 14 / 46
Algoritmos Genéticos
Representação Binária: Restrições e Regras
Regras também podem ser representadas assim
Se vento = forte, então viagem = sim
1111010 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 14 / 46
Algoritmos Genéticos
Representação Binária: Restrições e Regras
Regras também podem ser representadas assim
Se vento = forte, então viagem = sim
1111010 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim)
Note que a regra contém uma sub-cadeia para cada
atributo, mesmo que um atributo não seja
restringido por ela
1111010 (tempo = não importa) ∧ (vento = forte) ⇒
(viagem = sim)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 14 / 46
Algoritmos Genéticos
Representação Binária: Restrições e Regras
Isso faz com que a regra tenha um tamanho fixo em
bits
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 15 / 46
Algoritmos Genéticos
Representação Binária: Restrições e Regras
Isso faz com que a regra tenha um tamanho fixo em
bits
Sendo que sub-cadeias em posições especı́ficas restringem
atributos especı́ficos
1111010 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 15 / 46
Algoritmos Genéticos
Representação Binária: Restrições e Regras
Isso faz com que a regra tenha um tamanho fixo em
bits
Sendo que sub-cadeias em posições especı́ficas restringem
atributos especı́ficos
1111010 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim)
Regras mais complexas são representadas de
maneira similar, pela concatenação das
representações de cada regra que as compõem
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 15 / 46
Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Note que os consequentes têm um único bit
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Note que os consequentes têm um único bit
Se a cadeia de bits for de tamanho variável, como neste
exemplo, onde ao aumentarmos o número de regras
aumentaremos a cadeia, a função de cruzamento deve ser
alterada para acomodar esse fato
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
Algoritmos Genéticos
Problemas com essa representação
Considere a seguinte regra
1111011
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 46
Algoritmos Genéticos
Problemas com essa representação
Considere a seguinte regra
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 46
Algoritmos Genéticos
Problemas com essa representação
Considere a seguinte regra
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
O 11 final torna a regra inútil (se o vento estiver forte, então
a viagem ocorrerá ou não)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 46
Algoritmos Genéticos
Problemas com essa representação
Considere a seguinte regra
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
O 11 final torna a regra inútil (se o vento estiver forte, então
a viagem ocorrerá ou não)
As regras devem ser bem pensadas, para evitar a
representação de hipóteses indesejadas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 46
Algoritmos Genéticos
Possı́veis soluções
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 46
Algoritmos Genéticos
Possı́veis soluções
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
Alterar a representação da condição posterior
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 46
Algoritmos Genéticos
Possı́veis soluções
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
Alterar a representação da condição posterior
Ex: aloque um único bit para “viagem”
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 46
Algoritmos Genéticos
Possı́veis soluções
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
Alterar a representação da condição posterior
Ex: aloque um único bit para “viagem”
Alterar os operadores genéticos para evitar essas
cadeias
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 46
Algoritmos Genéticos
Possı́veis soluções
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
Alterar a representação da condição posterior
Ex: aloque um único bit para “viagem”
Alterar os operadores genéticos para evitar essas
cadeias
Dar a essa cadeia um valor de fitness muito pequeno
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 46
Algoritmos Genéticos
Representação Inteira
A representação binária, contudo, pode gerar
cromossomos grandes
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
Algoritmos Genéticos
Representação Inteira
A representação binária, contudo, pode gerar
cromossomos grandes
Especialmente quando tratamos de valores inteiros, reais ou
simbólicos (ex: ’A’, ’σ’ etc)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
Algoritmos Genéticos
Representação Inteira
A representação binária, contudo, pode gerar
cromossomos grandes
Especialmente quando tratamos de valores inteiros, reais ou
simbólicos (ex: ’A’, ’σ’ etc)
Com valores discretos (inteiros ou simbólicos), o que
fazer?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
Algoritmos Genéticos
Representação Inteira
A representação binária, contudo, pode gerar
cromossomos grandes
Especialmente quando tratamos de valores inteiros, reais ou
simbólicos (ex: ’A’, ’σ’ etc)
Com valores discretos (inteiros ou simbólicos), o que
fazer? Representá-los como inteiros
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
Algoritmos Genéticos
Representação Inteira
A representação binária, contudo, pode gerar
cromossomos grandes
Especialmente quando tratamos de valores inteiros, reais ou
simbólicos (ex: ’A’, ’σ’ etc)
Com valores discretos (inteiros ou simbólicos), o que
fazer? Representá-los como inteiros
2 4 7 4 8 5 5 2
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
Algoritmos Genéticos
Representação Inteira
A representação binária, contudo, pode gerar
cromossomos grandes
Especialmente quando tratamos de valores inteiros, reais ou
simbólicos (ex: ’A’, ’σ’ etc)
Com valores discretos (inteiros ou simbólicos), o que
fazer? Representá-los como inteiros
2 4 7 4 8 5 5 2
C B E E D C D E
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
Algoritmos Genéticos
Representação Inteira
A representação binária, contudo, pode gerar
cromossomos grandes
Especialmente quando tratamos de valores inteiros, reais ou
simbólicos (ex: ’A’, ’σ’ etc)
Com valores discretos (inteiros ou simbólicos), o que
fazer? Representá-los como inteiros
2 4 7 4 8 5 5 2
C B E E D C D E
Trata-se da representação que usamos até agora...
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
Algoritmos Genéticos
Representação Real
Útil quando queremos definir os genes usando
variáveis contı́nuas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 46
Algoritmos Genéticos
Representação Real
Útil quando queremos definir os genes usando
variáveis contı́nuas
Os cromossomos são então cadeias de valores em um dado
intervalo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 46
Algoritmos Genéticos
Representação Real
Útil quando queremos definir os genes usando
variáveis contı́nuas
Os cromossomos são então cadeias de valores em um dado
intervalo
Operador: Cruzamento por média (de 2 para 1)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 46
Algoritmos Genéticos
Representação Real
Útil quando queremos definir os genes usando
variáveis contı́nuas
Os cromossomos são então cadeias de valores em um dado
intervalo
Operador: Cruzamento por média (de 2 para 1)
Os genes do filho são resultado da média dos genes dos pais
(em cada posição)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 46
Algoritmos Genéticos
Representação Real
Útil quando queremos definir os genes usando
variáveis contı́nuas
Os cromossomos são então cadeias de valores em um dado
intervalo
Operador: Cruzamento por média (de 2 para 1)
Os genes do filho são resultado da média dos genes dos pais
(em cada posição)
1.0 3.5 1.2 8.1 0.7
2.1 4.7 9.2 1.8 0.3
1.6 4.1 5.2 5.0 0.4
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 46
Algoritmos Genéticos
Representação Real
Operador: Mutação aleatória
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
Algoritmos Genéticos
Representação Real
Operador: Mutação aleatória
Um gene é substituı́do por um valor aleatório (num intervalo
pré-definido)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
Algoritmos Genéticos
Representação Real
Operador: Mutação aleatória
Um gene é substituı́do por um valor aleatório (num intervalo
pré-definido)
1.0 3.5 1.2 8.1 0.7 1.0 3.5 1.2 1.4 0.7
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
Algoritmos Genéticos
Representação Real
Operador: Mutação aleatória
Um gene é substituı́do por um valor aleatório (num intervalo
pré-definido)
1.0 3.5 1.2 8.1 0.7 1.0 3.5 1.2 1.4 0.7
Operador: Mutação por incremento
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
Algoritmos Genéticos
Representação Real
Operador: Mutação aleatória
Um gene é substituı́do por um valor aleatório (num intervalo
pré-definido)
1.0 3.5 1.2 8.1 0.7 1.0 3.5 1.2 1.4 0.7
Operador: Mutação por incremento
O gene é somado a um incremento aleatório
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
Algoritmos Genéticos
Representação Real
Operador: Mutação aleatória
Um gene é substituı́do por um valor aleatório (num intervalo
pré-definido)
1.0 3.5 1.2 8.1 0.7 1.0 3.5 1.2 1.4 0.7
Operador: Mutação por incremento
O gene é somado a um incremento aleatório
1.0 3.5 1.2 8.1 0.7
-3.1
1.0 0.4 1.2 8.1 0.7
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
Algoritmos Genéticos
Representação Real
Outros tipos de operadores existem
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
Algoritmos Genéticos
Representação Real
Outros tipos de operadores existem
Cruzamento por média geométrica
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
Algoritmos Genéticos
Representação Real
Outros tipos de operadores existem
Cruzamento por média geométrica
Mutação com outras distribuições de probabilidade
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
Algoritmos Genéticos
Representação Real
Outros tipos de operadores existem
Cruzamento por média geométrica
Mutação com outras distribuições de probabilidade
etc
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
Algoritmos Genéticos
Representação Real
Outros tipos de operadores existem
Cruzamento por média geométrica
Mutação com outras distribuições de probabilidade
etc
A representação real também pode ser usada com
inteiros
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
Algoritmos Genéticos
Representação Real
Outros tipos de operadores existem
Cruzamento por média geométrica
Mutação com outras distribuições de probabilidade
etc
A representação real também pode ser usada com
inteiros
Nesse caso, a diferença está em como é feito o cruzamento e
(potencialmente) a mutação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
Algoritmos Genéticos
Representação Real
Outros tipos de operadores existem
Cruzamento por média geométrica
Mutação com outras distribuições de probabilidade
etc
A representação real também pode ser usada com
inteiros
Nesse caso, a diferença está em como é feito o cruzamento e
(potencialmente) a mutação
Quando usar qual representação dependerá do problema
modelado
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
Usada para problemas de origem combinatória, onde
a ordem importa
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
Usada para problemas de origem combinatória, onde
a ordem importa
Ex: problema do caixeiro viajante
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
Usada para problemas de origem combinatória, onde
a ordem importa
Ex: problema do caixeiro viajante
Operador: Cruzamento
5 2 1 3 6 4
1 4 5 6 2 3
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
Usada para problemas de origem combinatória, onde
a ordem importa
Ex: problema do caixeiro viajante
Operador: Cruzamento
5 2 1 3 6 4
1 4 5 6 2 3
Note que, por ser um
problema combinatório,
os valores nos genes não
mudam, apenas sua ordem
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
Usada para problemas de origem combinatória, onde
a ordem importa
Ex: problema do caixeiro viajante
Operador: Cruzamento
5 2 1 3 6 4
1 4 5 6 2 3
Inicialmente criamos uma máscara que diz quais genes
mantemos e quais terão a ordem alterada (amarelo)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
Usada para problemas de origem combinatória, onde
a ordem importa
Ex: problema do caixeiro viajante
Operador: Cruzamento
5 2 1 3 6 4
1 4 5 6 2 3
Note também que os
genes mantidos num
cromossomo são alterados
no outro e vice-versa
Inicialmente criamos uma máscara que diz quais genes
mantemos e quais terão a ordem alterada (amarelo)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
5 2 1 3 6 4
1 4 5 6 2 3
2 6 4
1 5 6
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
5 2 1 3 6 4
1 4 5 6 2 3
2 6 4
1 5 6
Os genes a serem alterados são permutados de forma a
ficarem na ordem em que aparecem no outro cromossomo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
5 2 1 3 6 4
1 4 5 6 2 3
2 6 4
1 5 6
Os genes a serem alterados são permutados de forma a
ficarem na ordem em que aparecem no outro cromossomo
Os genes 5, 1 e 3 do 1o
cromossomo aparecem na ordem 1, 5, 3 no
2o
.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
5 2 1 3 6 4
1 4 5 6 2 3
1 2 5 3 6 4
1 5 6
Os genes a serem alterados são permutados de forma a
ficarem na ordem em que aparecem no outro cromossomo
Os genes 5, 1 e 3 do 1o
cromossomo aparecem na ordem 1, 5, 3 no
2o
. Então o colocamos nessa ordem no 1o
cromossomo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
5 2 1 3 6 4
1 4 5 6 2 3
1 2 5 3 6 4
1 5 6
Os genes a serem alterados são permutados de forma a
ficarem na ordem em que aparecem no outro cromossomo
Os genes 5, 1 e 3 do 1o
cromossomo aparecem na ordem 1, 5, 3 no
2o
. Então o colocamos nessa ordem no 1o
cromossomo
Já os genes 4, 2, 3 do 2o
cromossomo aparecem na ordem 2, 3, 4 no
1o
.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
5 2 1 3 6 4
1 4 5 6 2 3
1 2 5 3 6 4
1 2 5 6 3 4
Os genes a serem alterados são permutados de forma a
ficarem na ordem em que aparecem no outro cromossomo
Os genes 5, 1 e 3 do 1o
cromossomo aparecem na ordem 1, 5, 3 no
2o
. Então o colocamos nessa ordem no 1o
cromossomo
Já os genes 4, 2, 3 do 2o
cromossomo aparecem na ordem 2, 3, 4 no
1o
. Então o colocamos nessa ordem no 2o
cromossomo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
5 2 1 3 6 4
1 4 5 6 2 3
1 2 5 3 6 4
1 2 5 6 3 4
Os genes a serem alterados são permutados de forma a
ficarem na ordem em que aparecem no outro cromossomo
Os genes 5, 1 e 3 do 1o
cromossomo aparecem na ordem 1, 5, 3 no
2o
. Então o colocamos nessa ordem no 1o
cromossomo
Já os genes 4, 2, 3 do 2o
cromossomo aparecem na ordem 2, 3, 4 no
1o
. Então o colocamos nessa ordem no 2o
cromossomo
Note, mais uma vez, que só permutamos, não mudamos,
valores
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
Operador: Mutação
5 2 1 3 6 4
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
Operador: Mutação
5 2 1 3 6 4
Escolhemos aleatoriamente posições (e o número de
posições) a sofrerem mutação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 46
Algoritmos Genéticos
Representação Baseada na Ordem
Operador: Mutação
5 2 1 3 6 4 6 1 2 3 5 4
Escolhemos aleatoriamente posições (e o número de
posições) a sofrerem mutação
Embaralhamos (aleatoriamente) então as posições escolhidas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 46
Algoritmos Genéticos
Paralelizando Algoritmos Genéticos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
Algoritmos Genéticos
Paralelizando Algoritmos Genéticos
Subdivida a população em subgrupos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
Algoritmos Genéticos
Paralelizando Algoritmos Genéticos
Subdivida a população em subgrupos
Cada sub-grupo evolui separadamente
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
Algoritmos Genéticos
Paralelizando Algoritmos Genéticos
Subdivida a população em subgrupos
Cada sub-grupo evolui separadamente
Cruzamento e comunicação entre grupos são menos
freqüentes que intra-grupo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
Algoritmos Genéticos
Paralelizando Algoritmos Genéticos
Subdivida a população em subgrupos
Cada sub-grupo evolui separadamente
Cruzamento e comunicação entre grupos são menos
freqüentes que intra-grupo
Transferências entre grupos ocorrem via migração:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
Algoritmos Genéticos
Paralelizando Algoritmos Genéticos
Subdivida a população em subgrupos
Cada sub-grupo evolui separadamente
Cruzamento e comunicação entre grupos são menos
freqüentes que intra-grupo
Transferências entre grupos ocorrem via migração:
Indivı́duos de um grupo são copiados ou transferidos a outro,
de tempos em tempos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
Algoritmos Genéticos
Paralelizando Algoritmos Genéticos
Subdivida a população em subgrupos
Cada sub-grupo evolui separadamente
Cruzamento e comunicação entre grupos são menos
freqüentes que intra-grupo
Transferências entre grupos ocorrem via migração:
Indivı́duos de um grupo são copiados ou transferidos a outro,
de tempos em tempos
Reduz crowding (veremos mais adiante...)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
Algoritmos Genéticos
Em suma
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 27 / 46
Algoritmos Genéticos
Em suma
Algoritmos genéticos geram hipóteses pela mutação
repetitiva e recombinação de partes das melhores
hipóteses
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 27 / 46
Algoritmos Genéticos
Em suma
Algoritmos genéticos geram hipóteses pela mutação
repetitiva e recombinação de partes das melhores
hipóteses
A cada passo, a população é atualizada, trocando-se
parte dela pela prole gerada
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 27 / 46
Algoritmos Genéticos
Vantagens
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 46
Algoritmos Genéticos
Vantagens
Habilidade de combinar grandes porções de genes
que evoluı́ram independentemente
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 46
Algoritmos Genéticos
Vantagens
Habilidade de combinar grandes porções de genes
que evoluı́ram independentemente
Podemos abordar problemas de difı́cil modelagem
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 46
Algoritmos Genéticos
Vantagens
Habilidade de combinar grandes porções de genes
que evoluı́ram independentemente
Podemos abordar problemas de difı́cil modelagem
Facilmente tornados paralelos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 46
Algoritmos Genéticos
Vantagens
Habilidade de combinar grandes porções de genes
que evoluı́ram independentemente
Podemos abordar problemas de difı́cil modelagem
Facilmente tornados paralelos
Dificilmente caem em mı́nimos locais, por darem
pulos aleatórios no espaço de hipóteses
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 46
Algoritmos Genéticos
Desvantagens
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
Algoritmos Genéticos
Desvantagens
Seu sucesso requer um trabalho cuidadoso da
representação do problema
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
Algoritmos Genéticos
Desvantagens
Seu sucesso requer um trabalho cuidadoso da
representação do problema
Crowding
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
Algoritmos Genéticos
Desvantagens
Seu sucesso requer um trabalho cuidadoso da
representação do problema
Crowding
Quando um indivı́duo com fitness maior que os outros
rapidamente se reproduz
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
Algoritmos Genéticos
Desvantagens
Seu sucesso requer um trabalho cuidadoso da
representação do problema
Crowding
Quando um indivı́duo com fitness maior que os outros
rapidamente se reproduz
Cópias dele e de indivı́duos muito similares formam uma
grande fração da população
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
Algoritmos Genéticos
Desvantagens
Seu sucesso requer um trabalho cuidadoso da
representação do problema
Crowding
Quando um indivı́duo com fitness maior que os outros
rapidamente se reproduz
Cópias dele e de indivı́duos muito similares formam uma
grande fração da população
Reduz a diversidade da população, deixando o progresso do
algoritmo mais lento
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
Algoritmos Genéticos
Estratégias contra crowding
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
Algoritmos Genéticos
Estratégias contra crowding
Fitness sharing:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
Algoritmos Genéticos
Estratégias contra crowding
Fitness sharing:
Reduzir o valor de adaptação do indivı́duo pela presença de
outros similares na população
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
Algoritmos Genéticos
Estratégias contra crowding
Fitness sharing:
Reduzir o valor de adaptação do indivı́duo pela presença de
outros similares na população
Restringir os tipos de indivı́duos que podem se
recombinar para formar a prole
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
Algoritmos Genéticos
Estratégias contra crowding
Fitness sharing:
Reduzir o valor de adaptação do indivı́duo pela presença de
outros similares na população
Restringir os tipos de indivı́duos que podem se
recombinar para formar a prole
Fazer com que somente os indivı́duos mais similares se
recombinem, formando grupos de indivı́duos similares
(múltiplas sub-espécies da população)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
Algoritmos Genéticos
Estratégias contra crowding
Fitness sharing:
Reduzir o valor de adaptação do indivı́duo pela presença de
outros similares na população
Restringir os tipos de indivı́duos que podem se
recombinar para formar a prole
Fazer com que somente os indivı́duos mais similares se
recombinem, formando grupos de indivı́duos similares
(múltiplas sub-espécies da população)
Distribuir espacialmente os indivı́duos e permitir que
somente os que estiverem mais próximos se recombinem.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
Algoritmos Genéticos
Estratégias contra crowding
Mudar a função de seleção para usar posição em
lista, e não o mais adaptado
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 46
Algoritmos Genéticos
Estratégias contra crowding
Mudar a função de seleção para usar posição em
lista, e não o mais adaptado
Embora os melhores ainda tenham maior probabilidade, esta
é melhor distribuı́da, por depender da posição, e não do
valor de fitness
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 46
Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Acompanhada de uma
mostrando o desempenho
do melhor indivı́duo da
população
Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Acompanhada de uma
mostrando o desempenho
do melhor indivı́duo da
população
Medidos conforme a
função objetivo Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Acompanhada de uma
mostrando o desempenho
do melhor indivı́duo da
população
Medidos conforme a
função objetivo
Nesse exemplo,
a população é de
60 cromossomos
Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Acompanhada de uma
mostrando o desempenho
do melhor indivı́duo da
população
Medidos conforme a
função objetivo
A probabilidade de um
cruzamento é de 70%
Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Acompanhada de uma
mostrando o desempenho
do melhor indivı́duo da
população
Medidos conforme a
função objetivo
E a de mutação
é de 0,1%
Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Acompanhada de uma
mostrando o desempenho
do melhor indivı́duo da
população
Medidos conforme a
função objetivo
Bastante útil para
sabermos a partir
de quantas gerações
a população es-
tabiliza na média
Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Acompanhada de uma
mostrando o desempenho
do melhor indivı́duo da
população
Medidos conforme a
função objetivo
E a partir de quantas
gerações o melhor
indivı́duo estabiliza
Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
Computação Evolutiva
Programação Genética
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 33 / 46
Programação Genética
Técnica de computação evolutiva em que a
população é composta de programas ou expressões,
em vez de valores
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
Programação Genética
Técnica de computação evolutiva em que a
população é composta de programas ou expressões,
em vez de valores
Podem evoluir programas completos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
Programação Genética
Técnica de computação evolutiva em que a
população é composta de programas ou expressões,
em vez de valores
Podem evoluir programas completos
Representa as expressões ou
programas por sua árvore
sintática
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
Programação Genética
+
sen
√
x +
ˆ y
x 2
Fonte: ML. Mitchell.
Técnica de computação evolutiva em que a
população é composta de programas ou expressões,
em vez de valores
Podem evoluir programas completos
Representa as expressões ou
programas por sua árvore
sintática
Ex: sen(x) +
p
x2 + y
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
Programação Genética
+
sen
√
x +
ˆ y
x 2
Fonte: ML. Mitchell.
Técnica de computação evolutiva em que a
população é composta de programas ou expressões,
em vez de valores
Podem evoluir programas completos
Representa as expressões ou
programas por sua árvore
sintática
Ex: sen(x) +
p
x2 + y
Bastante usada em projetos
de circuitos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
Programação Genética
Uso como Aprendizagem de Máquina
Começamos definindo as funções primitivas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
Programação Genética
Uso como Aprendizagem de Máquina
Começamos definindo as funções primitivas
Ex: Seno, raiz etc
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
Programação Genética
Uso como Aprendizagem de Máquina
Começamos definindo as funções primitivas
Ex: Seno, raiz etc
Definimos então os sı́mbolos terminais
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
Programação Genética
Uso como Aprendizagem de Máquina
Começamos definindo as funções primitivas
Ex: Seno, raiz etc
Definimos então os sı́mbolos terminais
Ex: x, y, 3, 2 etc
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
Programação Genética
Uso como Aprendizagem de Máquina
Começamos definindo as funções primitivas
Ex: Seno, raiz etc
Definimos então os sı́mbolos terminais
Ex: x, y, 3, 2 etc
E a função de adaptação (fitness)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
Programação Genética
Uso como Aprendizagem de Máquina
Começamos definindo as funções primitivas
Ex: Seno, raiz etc
Definimos então os sı́mbolos terminais
Ex: x, y, 3, 2 etc
E a função de adaptação (fitness)
É ela que determina quão bem o algoritmo é capaz de
resolver o problema
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
Programação Genética
Uso como Aprendizagem de Máquina
Começamos definindo as funções primitivas
Ex: Seno, raiz etc
Definimos então os sı́mbolos terminais
Ex: x, y, 3, 2 etc
E a função de adaptação (fitness)
É ela que determina quão bem o algoritmo é capaz de
resolver o problema
Tipicamente obtida pela execução do algoritmo em um
conjunto de dados de treino
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
Programação Genética
Uso como Aprendizagem de Máquina
Definimos os exemplos de treino
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
Programação Genética
Uso como Aprendizagem de Máquina
Definimos os exemplos de treino
O tempo de treinamento depende das primitivas escolhidas,
dos exemplos de treino, e da função de adaptação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
Programação Genética
Uso como Aprendizagem de Máquina
Definimos os exemplos de treino
O tempo de treinamento depende das primitivas escolhidas,
dos exemplos de treino, e da função de adaptação
E o algoritmo evolutivo a ser usado
Pode ser o mesmo usado em algoritmos genéticos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
Programação Genética
Uso como Aprendizagem de Máquina
Definimos os exemplos de treino
O tempo de treinamento depende das primitivas escolhidas,
dos exemplos de treino, e da função de adaptação
E o algoritmo evolutivo a ser usado
Pode ser o mesmo usado em algoritmos genéticos
Mesmo modo de calcular a probabilidade
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
Programação Genética
Uso como Aprendizagem de Máquina
Definimos os exemplos de treino
O tempo de treinamento depende das primitivas escolhidas,
dos exemplos de treino, e da função de adaptação
E o algoritmo evolutivo a ser usado
Pode ser o mesmo usado em algoritmos genéticos
Mesmo modo de calcular a probabilidade
Mesmo esquema de cruzamento
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
Programação Genética
Uso como Aprendizagem de Máquina
Definimos os exemplos de treino
O tempo de treinamento depende das primitivas escolhidas,
dos exemplos de treino, e da função de adaptação
E o algoritmo evolutivo a ser usado
Pode ser o mesmo usado em algoritmos genéticos
Mesmo modo de calcular a probabilidade
Mesmo esquema de cruzamento
Pode ou não haver mutações
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
Programação Genética
Algoritmo
população ← População inicial de árvores sintáticas aleatórias
repita
para cada árvore Ai ∈ população faça
fitnessi ← valor indicando quão bem o algoritmo representado por Ai
resolveu o problema
população ← GERA POP(população, {fitnessi })
até até algum Ai atingir um erro aceitável
retorna Ai escolhido
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 46
Programação Genética
Algoritmo
Cada árvore sintática
é uma composição
aleatória de funções
e sı́mbolos terminais
população ← População inicial de árvores sintáticas aleatórias
repita
para cada árvore Ai ∈ população faça
fitnessi ← valor indicando quão bem o algoritmo representado por Ai
resolveu o problema
população ← GERA POP(população, {fitnessi })
até até algum Ai atingir um erro aceitável
retorna Ai escolhido
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 46
Programação Genética
Algoritmo
Executa cada algoritmo
da população e associa
a ele um valor de
adaptação (fitness),
indicando quão bem ele
foi nos dados de treino
população ← População inicial de árvores sintáticas aleatórias
repita
para cada árvore Ai ∈ população faça
fitnessi ← valor indicando quão bem o algoritmo representado por Ai
resolveu o problema
população ← GERA POP(população, {fitnessi })
até até algum Ai atingir um erro aceitável
retorna Ai escolhido
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 46
Programação Genética
Algoritmo
Cria uma nova po-
pulação (nova geração)
população ← População inicial de árvores sintáticas aleatórias
repita
para cada árvore Ai ∈ população faça
fitnessi ← valor indicando quão bem o algoritmo representado por Ai
resolveu o problema
população ← GERA POP(população, {fitnessi })
até até algum Ai atingir um erro aceitável
retorna Ai escolhido
Função GERA POP(população, {fitnessi }): população
Copie os melhores programas da geração atual (clonagem)
Selecione indivı́duos para o cruzamento
Crie novos programas pelo cruzamento dos programas selecionados
Aplique a mutação sobre algumas funções escolhidas aleatoriamente
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 46
Programação Genética
Cruzamentos
Um filho é criado selecionando-se aleatoriamente
um ramo de cada pai
+
sen ˆ
x 2 +
x y
+
sen
√
x +
ˆ y
x 2
Pais
sin(x) +
p
x2 + y
sen(x) + 2x+y
Fonte: ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 46
Programação Genética
Cruzamentos
Um filho é criado selecionando-se aleatoriamente
um ramo de cada pai, e então fazendo-se o
intercâmbio dos ramos selecionados
+
sen ˆ
x 2 +
x y
+
sen
√
x +
ˆ y
x 2
+
sen ˆ
x 2 ˆ
x 2
+
sen
√
x +
+ y
x y
Pais Filhos
sin(x) +
p
x2 + y
sen(x) + 2x+y
sen(x) + 2x2
sen(x) +
√
x + y + y
Fonte: ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 46
Programação Genética
Cruzamentos
E se os pais forem iguais?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 46
Programação Genética
Cruzamentos
E se os pais forem iguais?
É possı́vel que surja uma prole diferente
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 46
Programação Genética
Cruzamentos
E se os pais forem iguais?
É possı́vel que surja uma prole diferente
+
sen ˆ
x 2 +
x y
+
sen ˆ
x 2 +
x y
Pais
sen(x) + 2x+y
sen(x) + 2x+y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 46
Programação Genética
Cruzamentos
E se os pais forem iguais?
É possı́vel que surja uma prole diferente
+
sen ˆ
x 2 +
x y
+
sen ˆ
x 2 +
x y
+
sen ˆ
x 2 x
+
sen ˆ
+ 2 +
x y x y
Pais Filhos
sen(x) + 2x+y
sen(x) + 2x+y
sen(x) + 2x
sen(x + y) + 2x+y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 46
Programação Genética
Cruzamentos
Em algoritmos genéticos, pais iguais levam a filhos
idênticos
+
sen ˆ
x 2 +
x y
+
sen ˆ
x 2 +
x y
+
sen ˆ
x 2 x
+
sen ˆ
+ 2 +
x y x y
Pais Filhos
sen(x) + 2x+y
sen(x) + 2x+y
sen(x) + 2x
sen(x + y) + 2x+y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 46
Programação Genética
Cruzamentos
Em algoritmos genéticos, pais iguais levam a filhos
idênticos
Essa é uma das principais vantagens da programação
genética em relação aos algoritmos genéticos
+
sen ˆ
x 2 +
x y
+
sen ˆ
x 2 +
x y
+
sen ˆ
x 2 x
+
sen ˆ
+ 2 +
x y x y
Pais Filhos
sen(x) + 2x+y
sen(x) + 2x+y
sen(x) + 2x
sen(x + y) + 2x+y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 46
Programação Genética
Mutações
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 46
Programação Genética
Mutações
Mutação no nó:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 46
Programação Genética
Mutações
Mutação no nó:
Escolha aleatoriamente um ou mais nós, e substitua seu(s)
valor(es) por outro(s) valor(es) aleatório(s)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 46
Programação Genética
Mutações
Mutação no nó:
Escolha aleatoriamente um ou mais nós, e substitua seu(s)
valor(es) por outro(s) valor(es) aleatório(s)
+
sen ˆ
x 2 +
x y
+
sen ˆ
2 2 ×
x y
Pai Filho
sen(x) + 2x+y sen(2) + 2x·y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 46
Programação Genética
Mutações
Mutação no nó:
Escolha aleatoriamente um ou mais nós, e substitua seu(s)
valor(es) por outro(s) valor(es) aleatório(s)
Substitua função por função, operador por operador, e
terminal por terminal
+
sen ˆ
x 2 +
x y
+
sen ˆ
2 2 ×
x y
Pai Filho
sen(x) + 2x+y sen(2) + 2x·y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 46
Programação Genética
Mutações
Mutação no ramo:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 46
Programação Genética
Mutações
Mutação no ramo:
Um ramo da árvore é escolhido aleatoriamente e substituı́do
por outro gerado aleatoriamente pelo programa
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 46
Programação Genética
Mutações
Mutação no ramo:
Um ramo da árvore é escolhido aleatoriamente e substituı́do
por outro gerado aleatoriamente pelo programa
+
sen ˆ
x 2 +
x y
+
+
x y
+
sen +
x x y
Pai Filho
sen(x) + 2x+y
sen(x) + x + y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 46
Programação Genética
Mutações
Mutação no ramo:
Um ramo da árvore é escolhido aleatoriamente e substituı́do
por outro gerado aleatoriamente pelo programa
Modifica a estrutura da árvore do programa, pois o novo
ramo não precisa ter o mesmo tamanho do anterior
+
sen ˆ
x 2 +
x y
+
+
x y
+
sen +
x x y
Pai Filho
sen(x) + 2x+y
sen(x) + x + y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 46
Programação Genética
Hiperparâmetros
Mutações podem ser misturadas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 46
Programação Genética
Hiperparâmetros
Mutações podem ser misturadas
Podemos fazer quantas mutações de cada tipo que
quisermos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 46
Programação Genética
Hiperparâmetros
Mutações podem ser misturadas
Podemos fazer quantas mutações de cada tipo que
quisermos
São então hiperparâmetros (ou metaparâmetros) do
modelo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 46
Programação Genética
Hiperparâmetros
Mutações podem ser misturadas
Podemos fazer quantas mutações de cada tipo que
quisermos
São então hiperparâmetros (ou metaparâmetros) do
modelo
Parâmetros definidos de antemão e que não serão
modificados quando ajustamos (treinamos) o modelo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 46
Programação Genética
Hiperparâmetros
Exemplo:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 46
Programação Genética
Hiperparâmetros
Exemplo:
A cada geração, modificamos valores de nós e a estrutura
das árvores
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 46
Programação Genética
Hiperparâmetros
Exemplo:
A cada geração, modificamos valores de nós e a estrutura
das árvores
Essas mudanças são guiadas pelos dados, via função de
fitness → são treinadas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 46
Programação Genética
Hiperparâmetros
Exemplo:
A cada geração, modificamos valores de nós e a estrutura
das árvores
Essas mudanças são guiadas pelos dados, via função de
fitness → são treinadas
Não modificamos, contudo, quantas mutações fazemos a
cada geração
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 46
Programação Genética
Hiperparâmetros
Exemplo:
A cada geração, modificamos valores de nós e a estrutura
das árvores
Essas mudanças são guiadas pelos dados, via função de
fitness → são treinadas
Não modificamos, contudo, quantas mutações fazemos a
cada geração
Esse não é um parâmetro refinado a partir dos dados → é
um hiper-parâmetro
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 46
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.
Rothlauf, F. (2006): Representations for Genetic and Evolutionary
Algorithms. Springer. 2a ed.
Coley, D.A. (1999): An Introduction to Genetic Algorithms for Scientists
and Engineers. World Scientific
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 46
Referências
https://www.tutorialspoint.com/genetic_algorithms/genetic_
algorithms_genotype_representation.htm
https://towardsdatascience.com/
parallel-and-distributed-genetic-algorithms-1ed2e76866e3
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 46 / 46

Mais conteúdo relacionado

Mais procurados

(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
Norton 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 17
Norton 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 10
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
Norton 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 15
Norton 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 03
Norton 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 11
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 22
Norton 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 21
Norton Trevisan Roman
 

Mais procurados (9)

(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
 
(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 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(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 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03
 
(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 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
 

Mais de Norton 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 19
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
Norton 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 13
Norton 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 12
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04
Norton 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 23
Norton 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 22
Norton 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 21
Norton 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 20
Norton 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 19
Norton 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 18
Norton 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 17
Norton 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 16
Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (13)

(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 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
 
(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 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04
 
(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

347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
AntnioManuelAgdoma
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
djincognito
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
TomasSousa7
 
Famílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do AssaréFamílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do Assaré
profesfrancleite
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
lveiga112
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
MateusTavares54
 
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptxAula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
edivirgesribeiro1
 
D20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua PortuguesaD20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua Portuguesa
eaiprofpolly
 
UFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdfUFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdf
Manuais Formação
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
wagnermorais28
 
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdfCRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
soaresdesouzaamanda8
 
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdfA QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
AurelianoFerreirades2
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
TomasSousa7
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
AmiltonAparecido1
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
LuizHenriquedeAlmeid6
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Biblioteca UCS
 
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
MessiasMarianoG
 
Introdução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escolaIntrodução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escola
Professor Belinaso
 
GÊNERO TEXTUAL - POEMA.pptx
GÊNERO      TEXTUAL     -     POEMA.pptxGÊNERO      TEXTUAL     -     POEMA.pptx
GÊNERO TEXTUAL - POEMA.pptx
Marlene Cunhada
 

Último (20)

347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
 
Famílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do AssaréFamílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do Assaré
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
 
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptxAula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
 
D20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua PortuguesaD20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua Portuguesa
 
UFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdfUFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdf
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
 
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdfCRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
 
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdfA QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
 
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
 
Introdução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escolaIntrodução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escola
 
GÊNERO TEXTUAL - POEMA.pptx
GÊNERO      TEXTUAL     -     POEMA.pptxGÊNERO      TEXTUAL     -     POEMA.pptx
GÊNERO TEXTUAL - POEMA.pptx
 

(ACH2044) Inteligência Artificial - Aula 05

  • 1. Inteligência Artificial – ACH2016 Aula 05 – Algoritmos Genéticos e Programação Genética 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 / 46
  • 2. Algoritmos Genéticos Voltemos ao 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 2 / 46
  • 3. Algoritmos Genéticos Voltemos ao algoritmo... Já vimos a Seleção e o Cruzamento 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 2 / 46
  • 4. Algoritmos Genéticos Voltemos ao algoritmo... Falta agora a Mutaçã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 2 / 46
  • 5. Algoritmos Genéticos – Operadores Mutação: Algoritmo Assim como o cruzamento, também a mutação ocorre com uma certa probabilidade Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 46
  • 6. Algoritmos Genéticos – Operadores Mutação: Algoritmo Assim como o cruzamento, também a mutação ocorre com uma certa probabilidade Em geral muito menor que a de cruzamento, refletindo a baixa probabilidade de mutação na natureza Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 46
  • 7. Algoritmos Genéticos – Operadores Mutação: Algoritmo Assim como o cruzamento, também a mutação ocorre com uma certa probabilidade Em geral muito menor que a de cruzamento, refletindo a baixa probabilidade de mutação na natureza Tipicamente entre 0.001 e 0.01 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 46
  • 8. Algoritmos Genéticos – Operadores Mutação: Algoritmo Assim como o cruzamento, também a mutação ocorre com uma certa probabilidade Em geral muito menor que a de cruzamento, refletindo a baixa probabilidade de mutação na natureza Tipicamente entre 0.001 e 0.01 Função CHANCE MUTAÇÃO(): boolean m ← probabilidade independente pequena, pré-definida, de haver mutação retorna Valor escolhido aleatoriamente, dentre {V,F}, onde V tem m% de chance de ser escolhido Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 46
  • 9. Algoritmos Genéticos – Operadores Mutação: Algoritmo Função MUTA(x): void posição ← Escolha aleatoriamente uma posição do arranjo x /* Modifica o valor escolhido */ se x[posição] for binário então /* inverte o bit */ x[posição] ← ∼x[posição] senão x[posição] ← escolha aleatoriamente um novo valor (dentre os possı́veis) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 46
  • 10. Algoritmos Genéticos – Operadores Mutação Como vimos, a mutação produz uma prole a partir de um único pai Fonte: ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 46
  • 11. Algoritmos Genéticos – Operadores Mutação Como vimos, a mutação produz uma prole a partir de um único pai Fonte: ML. Mitchell. Produz mudanças aleatórias pequenas Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 46
  • 12. Algoritmos Genéticos – Operadores Mutação Como vimos, a mutação produz uma prole a partir de um único pai Fonte: ML. Mitchell. Produz mudanças aleatórias pequenas Escolhe aleatoriamente um ou mais genes, e então muda seu(s) valor(es) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 46
  • 13. Algoritmos Genéticos – Operadores Mutação Como vimos, a mutação produz uma prole a partir de um único pai Fonte: ML. Mitchell. Produz mudanças aleatórias pequenas Escolhe aleatoriamente um ou mais genes, e então muda seu(s) valor(es) Seu papel é evitar que o algoritmo fique preso em algum ótimo local Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 46
  • 14. Algoritmos Genéticos – Representação Como representar um cromossomo? Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
  • 15. Algoritmos Genéticos – Representação Como representar um cromossomo? Trata-se de associar uma cadeia de sı́mbolos a cada solução possı́vel representada pelo cromossomo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
  • 16. Algoritmos Genéticos – Representação Como representar um cromossomo? Trata-se de associar uma cadeia de sı́mbolos a cada solução possı́vel representada pelo cromossomo A representação de um cromossomo é bastante especı́fica ao problema, e representações ruins podem levar a um desempenho ruim Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
  • 17. Algoritmos Genéticos – Representação Como representar um cromossomo? Trata-se de associar uma cadeia de sı́mbolos a cada solução possı́vel representada pelo cromossomo A representação de um cromossomo é bastante especı́fica ao problema, e representações ruins podem levar a um desempenho ruim As mais comuns são: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
  • 18. Algoritmos Genéticos – Representação Como representar um cromossomo? Trata-se de associar uma cadeia de sı́mbolos a cada solução possı́vel representada pelo cromossomo A representação de um cromossomo é bastante especı́fica ao problema, e representações ruins podem levar a um desempenho ruim As mais comuns são: Binária Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
  • 19. Algoritmos Genéticos – Representação Como representar um cromossomo? Trata-se de associar uma cadeia de sı́mbolos a cada solução possı́vel representada pelo cromossomo A representação de um cromossomo é bastante especı́fica ao problema, e representações ruins podem levar a um desempenho ruim As mais comuns são: Binária De valores inteiros Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
  • 20. Algoritmos Genéticos – Representação Como representar um cromossomo? Trata-se de associar uma cadeia de sı́mbolos a cada solução possı́vel representada pelo cromossomo A representação de um cromossomo é bastante especı́fica ao problema, e representações ruins podem levar a um desempenho ruim As mais comuns são: Binária De valores inteiros De valores reais Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
  • 21. Algoritmos Genéticos – Representação Como representar um cromossomo? Trata-se de associar uma cadeia de sı́mbolos a cada solução possı́vel representada pelo cromossomo A representação de um cromossomo é bastante especı́fica ao problema, e representações ruins podem levar a um desempenho ruim As mais comuns são: Binária De valores inteiros De valores reais Baseada na ordem Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
  • 22. Algoritmos Genéticos – Representação Representação Binária Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
  • 23. Algoritmos Genéticos – Representação Representação Binária A mais simples e mais comum das representações Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
  • 24. Algoritmos Genéticos – Representação Representação Binária A mais simples e mais comum das representações O cromossomo consiste de uma sequência de bits Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
  • 25. Algoritmos Genéticos – Representação Representação Binária A mais simples e mais comum das representações O cromossomo consiste de uma sequência de bits 1 0 0 1 0 1 1 0 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
  • 26. Algoritmos Genéticos – Representação Representação Binária A mais simples e mais comum das representações O cromossomo consiste de uma sequência de bits 1 0 0 1 0 1 1 0 Ideal para representar problemas cujo espaço de soluções é composto por variáveis booleanas Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
  • 27. Algoritmos Genéticos – Representação Representação Binária A mais simples e mais comum das representações O cromossomo consiste de uma sequência de bits 1 0 0 1 0 1 1 0 Ideal para representar problemas cujo espaço de soluções é composto por variáveis booleanas Pode também ser usada para representar qualquer valor numérico também Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
  • 28. Algoritmos Genéticos – Representação Representação Binária A mais simples e mais comum das representações O cromossomo consiste de uma sequência de bits 1 0 0 1 0 1 1 0 Ideal para representar problemas cujo espaço de soluções é composto por variáveis booleanas Pode também ser usada para representar qualquer valor numérico também Usando sua representação binária Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
  • 29. Algoritmos Genéticos – Representação Representação Binária: Exemplo Queremos o valor máximo de f (x) = 15x − x2 , onde x é inteiro e 0 ≤ x ≤ 15 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
  • 30. Algoritmos Genéticos – Representação Representação Binária: Exemplo Queremos o valor máximo de f (x) = 15x − x2 , onde x é inteiro e 0 ≤ x ≤ 15 Como representar o cromossomo? Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
  • 31. Algoritmos Genéticos – Representação Representação Binária: Exemplo Queremos o valor máximo de f (x) = 15x − x2 , onde x é inteiro e 0 ≤ x ≤ 15 Como representar o cromossomo? Com 4 bits Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
  • 32. Algoritmos Genéticos – Representação Representação Binária: Exemplo Queremos o valor máximo de f (x) = 15x − x2 , onde x é inteiro e 0 ≤ x ≤ 15 Como representar o cromossomo? Com 4 bits Todo valor entre 0 e 15 pode ser escrito assim Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
  • 33. Algoritmos Genéticos – Representação Representação Binária: Exemplo Queremos o valor máximo de f (x) = 15x − x2 , onde x é inteiro e 0 ≤ x ≤ 15 Como representar o cromossomo? Com 4 bits Todo valor entre 0 e 15 pode ser escrito assim Ex: 0 1 1 0 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
  • 34. Algoritmos Genéticos – Representação Representação Binária: Exemplo Queremos o valor máximo de f (x) = 15x − x2 , onde x é inteiro e 0 ≤ x ≤ 15 Como representar o cromossomo? Com 4 bits Todo valor entre 0 e 15 pode ser escrito assim Ex: 0 1 1 0 E a função objetivo? Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
  • 35. Algoritmos Genéticos – Representação Representação Binária: Exemplo Queremos o valor máximo de f (x) = 15x − x2 , onde x é inteiro e 0 ≤ x ≤ 15 Como representar o cromossomo? Com 4 bits Todo valor entre 0 e 15 pode ser escrito assim Ex: 0 1 1 0 E a função objetivo? Será a própria f (x) = 15x − x2 (queremos seu máximo) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
  • 36. Algoritmos Genéticos – Representação Representação Binária: Exemplo Queremos o valor máximo de f (x) = 15x − x2 , onde x é inteiro e 0 ≤ x ≤ 15 Como representar o cromossomo? Com 4 bits Todo valor entre 0 e 15 pode ser escrito assim Ex: 0 1 1 0 E a função objetivo? Será a própria f (x) = 15x − x2 (queremos seu máximo) Seguimos então o procedimento já visto... Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
  • 37. Algoritmos Genéticos – Representação Representação Binária: Exemplo E se agora quisermos o máximo de f (x, y) = (1 − x)2 e−x2−(y+1)2 , com −3 ≤ x, y ≤ 3? Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
  • 38. Algoritmos Genéticos – Representação Representação Binária: Exemplo E se agora quisermos o máximo de f (x, y) = (1 − x)2 e−x2−(y+1)2 , com −3 ≤ x, y ≤ 3? Concatenamos as representações (8 bits) de x e y 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 x y Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
  • 39. Algoritmos Genéticos – Representação Representação Binária: Exemplo E se agora quisermos o máximo de f (x, y) = (1 − x)2 e−x2−(y+1)2 , com −3 ≤ x, y ≤ 3? Concatenamos as representações (8 bits) de x e y 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 x y E a função objetivo? Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
  • 40. Algoritmos Genéticos – Representação Representação Binária: Exemplo E se agora quisermos o máximo de f (x, y) = (1 − x)2 e−x2−(y+1)2 , com −3 ≤ x, y ≤ 3? Concatenamos as representações (8 bits) de x e y 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 x y E a função objetivo? Dado um cromossomo, primeiro decodificamos x e y Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
  • 41. Algoritmos Genéticos – Representação Representação Binária: Exemplo E se agora quisermos o máximo de f (x, y) = (1 − x)2 e−x2−(y+1)2 , com −3 ≤ x, y ≤ 3? Concatenamos as representações (8 bits) de x e y 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 x y E a função objetivo? Dado um cromossomo, primeiro decodificamos x e y E então os usamos em f (x, y) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
  • 42. Algoritmos Genéticos – Representação Representação Binária: Exemplo E se x e y forem números reais? Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
  • 43. Algoritmos Genéticos – Representação Representação Binária: Exemplo E se x e y forem números reais? Mapeamos a esses 8 bits: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
  • 44. Algoritmos Genéticos – Representação Representação Binária: Exemplo E se x e y forem números reais? Mapeamos a esses 8 bits: Com 8 bits representamos inteiros de 0 a 255 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
  • 45. Algoritmos Genéticos – Representação Representação Binária: Exemplo E se x e y forem números reais? Mapeamos a esses 8 bits: Com 8 bits representamos inteiros de 0 a 255 A menor fração do intervalo [−3, 3] representado por esses bits é 3−(−3) 255−0 = 6 255 = 0.0235294 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
  • 46. Algoritmos Genéticos – Representação Representação Binária: Exemplo E se x e y forem números reais? Mapeamos a esses 8 bits: Com 8 bits representamos inteiros de 0 a 255 A menor fração do intervalo [−3, 3] representado por esses bits é 3−(−3) 255−0 = 6 255 = 0.0235294 O inteiro contido nos 8 bits é então multiplicado por 0.0235294 (caindo no intervalo [0, 6]) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
  • 47. Algoritmos Genéticos – Representação Representação Binária: Exemplo E se x e y forem números reais? Mapeamos a esses 8 bits: Com 8 bits representamos inteiros de 0 a 255 A menor fração do intervalo [−3, 3] representado por esses bits é 3−(−3) 255−0 = 6 255 = 0.0235294 O inteiro contido nos 8 bits é então multiplicado por 0.0235294 (caindo no intervalo [0, 6]) Subtraı́mos então 3 do resultado, deslocando o intervalo para [−3, 3] Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
  • 48. Algoritmos Genéticos – Representação Representação Binária: Exemplo Ex: 1 0 0 0 1 0 1 0 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
  • 49. Algoritmos Genéticos – Representação Representação Binária: Exemplo Ex: 1 0 0 0 1 0 1 0 O inteiro correspondente será 138 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
  • 50. Algoritmos Genéticos – Representação Representação Binária: Exemplo Ex: 1 0 0 0 1 0 1 0 O inteiro correspondente será 138 Fazemos então 138 × 0.0235294 = 3.2470572 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
  • 51. Algoritmos Genéticos – Representação Representação Binária: Exemplo Ex: 1 0 0 0 1 0 1 0 O inteiro correspondente será 138 Fazemos então 138 × 0.0235294 = 3.2470572 E o valor representado será 3.2470572 − 3 = 0.2470572 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
  • 52. Algoritmos Genéticos – Representação Representação Binária: Exemplo Ex: 1 0 0 0 1 0 1 0 O inteiro correspondente será 138 Fazemos então 138 × 0.0235294 = 3.2470572 E o valor representado será 3.2470572 − 3 = 0.2470572 0.2470572 é o valor a ser usado na função objetivo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
  • 53. Algoritmos Genéticos – Representação Representação Binária: Exemplo Ex: 1 0 0 0 1 0 1 0 O inteiro correspondente será 138 Fazemos então 138 × 0.0235294 = 3.2470572 E o valor representado será 3.2470572 − 3 = 0.2470572 0.2470572 é o valor a ser usado na função objetivo Mas booleanos, inteiros e reais não são as únicas coisas que podemos representar com binários Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
  • 54. Algoritmos Genéticos – Representação Representação Binária: Exemplo Ex: 1 0 0 0 1 0 1 0 O inteiro correspondente será 138 Fazemos então 138 × 0.0235294 = 3.2470572 E o valor representado será 3.2470572 − 3 = 0.2470572 0.2470572 é o valor a ser usado na função objetivo Mas booleanos, inteiros e reais não são as únicas coisas que podemos representar com binários Restrições e Regras também Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
  • 55. Algoritmos Genéticos Representação Binária: Restrições e Regras Restrições servem para limitar os possı́veis valores de uma variável Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 46
  • 56. Algoritmos Genéticos Representação Binária: Restrições e Regras Restrições servem para limitar os possı́veis valores de uma variável Ex: −3 ≤ x, y ≤ 3 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 46
  • 57. Algoritmos Genéticos Representação Binária: Restrições e Regras Restrições servem para limitar os possı́veis valores de uma variável Ex: −3 ≤ x, y ≤ 3 Na representação binária, podemos fazer com que cada restrição corresponda a uma cadeia especı́fica Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 46
  • 58. Algoritmos Genéticos Representação Binária: Restrições e Regras Restrições servem para limitar os possı́veis valores de uma variável Ex: −3 ≤ x, y ≤ 3 Na representação binária, podemos fazer com que cada restrição corresponda a uma cadeia especı́fica Ex: Atributo: tempo 100 tempo = ensolarado Representado com 3 bits: 010 tempo = nublado 001 tempo = chuvoso Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 46
  • 59. Algoritmos Genéticos Representação Binária: Restrições e Regras Podemos combinar restrições com OU (∨): 101 tempo = ensolarado ∨ chuvoso 011 tempo = nublado ∨ chuvoso 111 tempo = qualquer tempo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 46
  • 60. Algoritmos Genéticos Representação Binária: Restrições e Regras Podemos combinar restrições com OU (∨): 101 tempo = ensolarado ∨ chuvoso 011 tempo = nublado ∨ chuvoso 111 tempo = qualquer tempo Atributo: vento Representado com 2 bits: 10 vento = forte 01 vento = fraco Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 46
  • 61. Algoritmos Genéticos Representação Binária: Restrições e Regras Podemos combinar restrições com OU (∨): 101 tempo = ensolarado ∨ chuvoso 011 tempo = nublado ∨ chuvoso 111 tempo = qualquer tempo Atributo: vento Representado com 2 bits: 10 vento = forte 01 vento = fraco Conjunções de restrições em atributos múltiplos pode ser representadas concatenando-se as cadeias de bits: 01110 (tempo = nublado ∨ chuvoso) ∧ (vento = forte) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 46
  • 62. Algoritmos Genéticos Representação Binária: Restrições e Regras Regras também podem ser representadas assim Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 14 / 46
  • 63. Algoritmos Genéticos Representação Binária: Restrições e Regras Regras também podem ser representadas assim Se vento = forte, então viagem = sim 1111010 (tempo = ensolarado ∨ nublado ∨ chuvoso) ∧ (vento = forte) ⇒ (viagem = sim) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 14 / 46
  • 64. Algoritmos Genéticos Representação Binária: Restrições e Regras Regras também podem ser representadas assim Se vento = forte, então viagem = sim 1111010 (tempo = ensolarado ∨ nublado ∨ chuvoso) ∧ (vento = forte) ⇒ (viagem = sim) Note que a regra contém uma sub-cadeia para cada atributo, mesmo que um atributo não seja restringido por ela 1111010 (tempo = não importa) ∧ (vento = forte) ⇒ (viagem = sim) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 14 / 46
  • 65. Algoritmos Genéticos Representação Binária: Restrições e Regras Isso faz com que a regra tenha um tamanho fixo em bits Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 15 / 46
  • 66. Algoritmos Genéticos Representação Binária: Restrições e Regras Isso faz com que a regra tenha um tamanho fixo em bits Sendo que sub-cadeias em posições especı́ficas restringem atributos especı́ficos 1111010 (tempo = ensolarado ∨ nublado ∨ chuvoso) ∧ (vento = forte) ⇒ (viagem = sim) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 15 / 46
  • 67. Algoritmos Genéticos Representação Binária: Restrições e Regras Isso faz com que a regra tenha um tamanho fixo em bits Sendo que sub-cadeias em posições especı́ficas restringem atributos especı́ficos 1111010 (tempo = ensolarado ∨ nublado ∨ chuvoso) ∧ (vento = forte) ⇒ (viagem = sim) Regras mais complexas são representadas de maneira similar, pela concatenação das representações de cada regra que as compõem Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 15 / 46
  • 68. Algoritmos Genéticos Representando regras complexas – Exemplo Se a = V e b = F então c = V Se b = V então d = F (não importa o valor de a) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
  • 69. Algoritmos Genéticos Representando regras complexas – Exemplo Se a = V e b = F então c = V Se b = V então d = F (não importa o valor de a) Representação: 1001111100 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
  • 70. Algoritmos Genéticos Representando regras complexas – Exemplo Se a = V e b = F então c = V Se b = V então d = F (não importa o valor de a) Representação: 1001111100 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
  • 71. Algoritmos Genéticos Representando regras complexas – Exemplo Se a = V e b = F então c = V Se b = V então d = F (não importa o valor de a) Representação: 1001111100 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
  • 72. Algoritmos Genéticos Representando regras complexas – Exemplo Se a = V e b = F então c = V Se b = V então d = F (não importa o valor de a) Representação: 1001111100 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
  • 73. Algoritmos Genéticos Representando regras complexas – Exemplo Se a = V e b = F então c = V Se b = V então d = F (não importa o valor de a) Representação: 1001111100 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
  • 74. Algoritmos Genéticos Representando regras complexas – Exemplo Se a = V e b = F então c = V Se b = V então d = F (não importa o valor de a) Representação: 1001111100 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
  • 75. Algoritmos Genéticos Representando regras complexas – Exemplo Se a = V e b = F então c = V Se b = V então d = F (não importa o valor de a) Representação: 1001111100 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
  • 76. Algoritmos Genéticos Representando regras complexas – Exemplo Se a = V e b = F então c = V Se b = V então d = F (não importa o valor de a) Representação: 1001111100 Note que os consequentes têm um único bit Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
  • 77. Algoritmos Genéticos Representando regras complexas – Exemplo Se a = V e b = F então c = V Se b = V então d = F (não importa o valor de a) Representação: 1001111100 Note que os consequentes têm um único bit Se a cadeia de bits for de tamanho variável, como neste exemplo, onde ao aumentarmos o número de regras aumentaremos a cadeia, a função de cruzamento deve ser alterada para acomodar esse fato Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
  • 78. Algoritmos Genéticos Problemas com essa representação Considere a seguinte regra 1111011 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 46
  • 79. Algoritmos Genéticos Problemas com essa representação Considere a seguinte regra 1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso) ∧ (vento = forte) ⇒ (viagem = sim ∨ não) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 46
  • 80. Algoritmos Genéticos Problemas com essa representação Considere a seguinte regra 1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso) ∧ (vento = forte) ⇒ (viagem = sim ∨ não) O 11 final torna a regra inútil (se o vento estiver forte, então a viagem ocorrerá ou não) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 46
  • 81. Algoritmos Genéticos Problemas com essa representação Considere a seguinte regra 1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso) ∧ (vento = forte) ⇒ (viagem = sim ∨ não) O 11 final torna a regra inútil (se o vento estiver forte, então a viagem ocorrerá ou não) As regras devem ser bem pensadas, para evitar a representação de hipóteses indesejadas Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 46
  • 82. Algoritmos Genéticos Possı́veis soluções 1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso) ∧ (vento = forte) ⇒ (viagem = sim ∨ não) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 46
  • 83. Algoritmos Genéticos Possı́veis soluções 1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso) ∧ (vento = forte) ⇒ (viagem = sim ∨ não) Alterar a representação da condição posterior Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 46
  • 84. Algoritmos Genéticos Possı́veis soluções 1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso) ∧ (vento = forte) ⇒ (viagem = sim ∨ não) Alterar a representação da condição posterior Ex: aloque um único bit para “viagem” Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 46
  • 85. Algoritmos Genéticos Possı́veis soluções 1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso) ∧ (vento = forte) ⇒ (viagem = sim ∨ não) Alterar a representação da condição posterior Ex: aloque um único bit para “viagem” Alterar os operadores genéticos para evitar essas cadeias Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 46
  • 86. Algoritmos Genéticos Possı́veis soluções 1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso) ∧ (vento = forte) ⇒ (viagem = sim ∨ não) Alterar a representação da condição posterior Ex: aloque um único bit para “viagem” Alterar os operadores genéticos para evitar essas cadeias Dar a essa cadeia um valor de fitness muito pequeno Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 46
  • 87. Algoritmos Genéticos Representação Inteira A representação binária, contudo, pode gerar cromossomos grandes Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
  • 88. Algoritmos Genéticos Representação Inteira A representação binária, contudo, pode gerar cromossomos grandes Especialmente quando tratamos de valores inteiros, reais ou simbólicos (ex: ’A’, ’σ’ etc) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
  • 89. Algoritmos Genéticos Representação Inteira A representação binária, contudo, pode gerar cromossomos grandes Especialmente quando tratamos de valores inteiros, reais ou simbólicos (ex: ’A’, ’σ’ etc) Com valores discretos (inteiros ou simbólicos), o que fazer? Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
  • 90. Algoritmos Genéticos Representação Inteira A representação binária, contudo, pode gerar cromossomos grandes Especialmente quando tratamos de valores inteiros, reais ou simbólicos (ex: ’A’, ’σ’ etc) Com valores discretos (inteiros ou simbólicos), o que fazer? Representá-los como inteiros Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
  • 91. Algoritmos Genéticos Representação Inteira A representação binária, contudo, pode gerar cromossomos grandes Especialmente quando tratamos de valores inteiros, reais ou simbólicos (ex: ’A’, ’σ’ etc) Com valores discretos (inteiros ou simbólicos), o que fazer? Representá-los como inteiros 2 4 7 4 8 5 5 2 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
  • 92. Algoritmos Genéticos Representação Inteira A representação binária, contudo, pode gerar cromossomos grandes Especialmente quando tratamos de valores inteiros, reais ou simbólicos (ex: ’A’, ’σ’ etc) Com valores discretos (inteiros ou simbólicos), o que fazer? Representá-los como inteiros 2 4 7 4 8 5 5 2 C B E E D C D E Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
  • 93. Algoritmos Genéticos Representação Inteira A representação binária, contudo, pode gerar cromossomos grandes Especialmente quando tratamos de valores inteiros, reais ou simbólicos (ex: ’A’, ’σ’ etc) Com valores discretos (inteiros ou simbólicos), o que fazer? Representá-los como inteiros 2 4 7 4 8 5 5 2 C B E E D C D E Trata-se da representação que usamos até agora... Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
  • 94. Algoritmos Genéticos Representação Real Útil quando queremos definir os genes usando variáveis contı́nuas Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 46
  • 95. Algoritmos Genéticos Representação Real Útil quando queremos definir os genes usando variáveis contı́nuas Os cromossomos são então cadeias de valores em um dado intervalo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 46
  • 96. Algoritmos Genéticos Representação Real Útil quando queremos definir os genes usando variáveis contı́nuas Os cromossomos são então cadeias de valores em um dado intervalo Operador: Cruzamento por média (de 2 para 1) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 46
  • 97. Algoritmos Genéticos Representação Real Útil quando queremos definir os genes usando variáveis contı́nuas Os cromossomos são então cadeias de valores em um dado intervalo Operador: Cruzamento por média (de 2 para 1) Os genes do filho são resultado da média dos genes dos pais (em cada posição) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 46
  • 98. Algoritmos Genéticos Representação Real Útil quando queremos definir os genes usando variáveis contı́nuas Os cromossomos são então cadeias de valores em um dado intervalo Operador: Cruzamento por média (de 2 para 1) Os genes do filho são resultado da média dos genes dos pais (em cada posição) 1.0 3.5 1.2 8.1 0.7 2.1 4.7 9.2 1.8 0.3 1.6 4.1 5.2 5.0 0.4 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 46
  • 99. Algoritmos Genéticos Representação Real Operador: Mutação aleatória Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
  • 100. Algoritmos Genéticos Representação Real Operador: Mutação aleatória Um gene é substituı́do por um valor aleatório (num intervalo pré-definido) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
  • 101. Algoritmos Genéticos Representação Real Operador: Mutação aleatória Um gene é substituı́do por um valor aleatório (num intervalo pré-definido) 1.0 3.5 1.2 8.1 0.7 1.0 3.5 1.2 1.4 0.7 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
  • 102. Algoritmos Genéticos Representação Real Operador: Mutação aleatória Um gene é substituı́do por um valor aleatório (num intervalo pré-definido) 1.0 3.5 1.2 8.1 0.7 1.0 3.5 1.2 1.4 0.7 Operador: Mutação por incremento Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
  • 103. Algoritmos Genéticos Representação Real Operador: Mutação aleatória Um gene é substituı́do por um valor aleatório (num intervalo pré-definido) 1.0 3.5 1.2 8.1 0.7 1.0 3.5 1.2 1.4 0.7 Operador: Mutação por incremento O gene é somado a um incremento aleatório Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
  • 104. Algoritmos Genéticos Representação Real Operador: Mutação aleatória Um gene é substituı́do por um valor aleatório (num intervalo pré-definido) 1.0 3.5 1.2 8.1 0.7 1.0 3.5 1.2 1.4 0.7 Operador: Mutação por incremento O gene é somado a um incremento aleatório 1.0 3.5 1.2 8.1 0.7 -3.1 1.0 0.4 1.2 8.1 0.7 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
  • 105. Algoritmos Genéticos Representação Real Outros tipos de operadores existem Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
  • 106. Algoritmos Genéticos Representação Real Outros tipos de operadores existem Cruzamento por média geométrica Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
  • 107. Algoritmos Genéticos Representação Real Outros tipos de operadores existem Cruzamento por média geométrica Mutação com outras distribuições de probabilidade Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
  • 108. Algoritmos Genéticos Representação Real Outros tipos de operadores existem Cruzamento por média geométrica Mutação com outras distribuições de probabilidade etc Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
  • 109. Algoritmos Genéticos Representação Real Outros tipos de operadores existem Cruzamento por média geométrica Mutação com outras distribuições de probabilidade etc A representação real também pode ser usada com inteiros Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
  • 110. Algoritmos Genéticos Representação Real Outros tipos de operadores existem Cruzamento por média geométrica Mutação com outras distribuições de probabilidade etc A representação real também pode ser usada com inteiros Nesse caso, a diferença está em como é feito o cruzamento e (potencialmente) a mutação Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
  • 111. Algoritmos Genéticos Representação Real Outros tipos de operadores existem Cruzamento por média geométrica Mutação com outras distribuições de probabilidade etc A representação real também pode ser usada com inteiros Nesse caso, a diferença está em como é feito o cruzamento e (potencialmente) a mutação Quando usar qual representação dependerá do problema modelado Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
  • 112. Algoritmos Genéticos Representação Baseada na Ordem Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
  • 113. Algoritmos Genéticos Representação Baseada na Ordem Usada para problemas de origem combinatória, onde a ordem importa Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
  • 114. Algoritmos Genéticos Representação Baseada na Ordem Usada para problemas de origem combinatória, onde a ordem importa Ex: problema do caixeiro viajante Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
  • 115. Algoritmos Genéticos Representação Baseada na Ordem Usada para problemas de origem combinatória, onde a ordem importa Ex: problema do caixeiro viajante Operador: Cruzamento 5 2 1 3 6 4 1 4 5 6 2 3 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
  • 116. Algoritmos Genéticos Representação Baseada na Ordem Usada para problemas de origem combinatória, onde a ordem importa Ex: problema do caixeiro viajante Operador: Cruzamento 5 2 1 3 6 4 1 4 5 6 2 3 Note que, por ser um problema combinatório, os valores nos genes não mudam, apenas sua ordem Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
  • 117. Algoritmos Genéticos Representação Baseada na Ordem Usada para problemas de origem combinatória, onde a ordem importa Ex: problema do caixeiro viajante Operador: Cruzamento 5 2 1 3 6 4 1 4 5 6 2 3 Inicialmente criamos uma máscara que diz quais genes mantemos e quais terão a ordem alterada (amarelo) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
  • 118. Algoritmos Genéticos Representação Baseada na Ordem Usada para problemas de origem combinatória, onde a ordem importa Ex: problema do caixeiro viajante Operador: Cruzamento 5 2 1 3 6 4 1 4 5 6 2 3 Note também que os genes mantidos num cromossomo são alterados no outro e vice-versa Inicialmente criamos uma máscara que diz quais genes mantemos e quais terão a ordem alterada (amarelo) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
  • 119. Algoritmos Genéticos Representação Baseada na Ordem 5 2 1 3 6 4 1 4 5 6 2 3 2 6 4 1 5 6 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
  • 120. Algoritmos Genéticos Representação Baseada na Ordem 5 2 1 3 6 4 1 4 5 6 2 3 2 6 4 1 5 6 Os genes a serem alterados são permutados de forma a ficarem na ordem em que aparecem no outro cromossomo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
  • 121. Algoritmos Genéticos Representação Baseada na Ordem 5 2 1 3 6 4 1 4 5 6 2 3 2 6 4 1 5 6 Os genes a serem alterados são permutados de forma a ficarem na ordem em que aparecem no outro cromossomo Os genes 5, 1 e 3 do 1o cromossomo aparecem na ordem 1, 5, 3 no 2o . Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
  • 122. Algoritmos Genéticos Representação Baseada na Ordem 5 2 1 3 6 4 1 4 5 6 2 3 1 2 5 3 6 4 1 5 6 Os genes a serem alterados são permutados de forma a ficarem na ordem em que aparecem no outro cromossomo Os genes 5, 1 e 3 do 1o cromossomo aparecem na ordem 1, 5, 3 no 2o . Então o colocamos nessa ordem no 1o cromossomo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
  • 123. Algoritmos Genéticos Representação Baseada na Ordem 5 2 1 3 6 4 1 4 5 6 2 3 1 2 5 3 6 4 1 5 6 Os genes a serem alterados são permutados de forma a ficarem na ordem em que aparecem no outro cromossomo Os genes 5, 1 e 3 do 1o cromossomo aparecem na ordem 1, 5, 3 no 2o . Então o colocamos nessa ordem no 1o cromossomo Já os genes 4, 2, 3 do 2o cromossomo aparecem na ordem 2, 3, 4 no 1o . Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
  • 124. Algoritmos Genéticos Representação Baseada na Ordem 5 2 1 3 6 4 1 4 5 6 2 3 1 2 5 3 6 4 1 2 5 6 3 4 Os genes a serem alterados são permutados de forma a ficarem na ordem em que aparecem no outro cromossomo Os genes 5, 1 e 3 do 1o cromossomo aparecem na ordem 1, 5, 3 no 2o . Então o colocamos nessa ordem no 1o cromossomo Já os genes 4, 2, 3 do 2o cromossomo aparecem na ordem 2, 3, 4 no 1o . Então o colocamos nessa ordem no 2o cromossomo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
  • 125. Algoritmos Genéticos Representação Baseada na Ordem 5 2 1 3 6 4 1 4 5 6 2 3 1 2 5 3 6 4 1 2 5 6 3 4 Os genes a serem alterados são permutados de forma a ficarem na ordem em que aparecem no outro cromossomo Os genes 5, 1 e 3 do 1o cromossomo aparecem na ordem 1, 5, 3 no 2o . Então o colocamos nessa ordem no 1o cromossomo Já os genes 4, 2, 3 do 2o cromossomo aparecem na ordem 2, 3, 4 no 1o . Então o colocamos nessa ordem no 2o cromossomo Note, mais uma vez, que só permutamos, não mudamos, valores Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
  • 126. Algoritmos Genéticos Representação Baseada na Ordem Operador: Mutação 5 2 1 3 6 4 Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 46
  • 127. Algoritmos Genéticos Representação Baseada na Ordem Operador: Mutação 5 2 1 3 6 4 Escolhemos aleatoriamente posições (e o número de posições) a sofrerem mutação Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 46
  • 128. Algoritmos Genéticos Representação Baseada na Ordem Operador: Mutação 5 2 1 3 6 4 6 1 2 3 5 4 Escolhemos aleatoriamente posições (e o número de posições) a sofrerem mutação Embaralhamos (aleatoriamente) então as posições escolhidas Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 46
  • 129. Algoritmos Genéticos Paralelizando Algoritmos Genéticos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
  • 130. Algoritmos Genéticos Paralelizando Algoritmos Genéticos Subdivida a população em subgrupos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
  • 131. Algoritmos Genéticos Paralelizando Algoritmos Genéticos Subdivida a população em subgrupos Cada sub-grupo evolui separadamente Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
  • 132. Algoritmos Genéticos Paralelizando Algoritmos Genéticos Subdivida a população em subgrupos Cada sub-grupo evolui separadamente Cruzamento e comunicação entre grupos são menos freqüentes que intra-grupo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
  • 133. Algoritmos Genéticos Paralelizando Algoritmos Genéticos Subdivida a população em subgrupos Cada sub-grupo evolui separadamente Cruzamento e comunicação entre grupos são menos freqüentes que intra-grupo Transferências entre grupos ocorrem via migração: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
  • 134. Algoritmos Genéticos Paralelizando Algoritmos Genéticos Subdivida a população em subgrupos Cada sub-grupo evolui separadamente Cruzamento e comunicação entre grupos são menos freqüentes que intra-grupo Transferências entre grupos ocorrem via migração: Indivı́duos de um grupo são copiados ou transferidos a outro, de tempos em tempos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
  • 135. Algoritmos Genéticos Paralelizando Algoritmos Genéticos Subdivida a população em subgrupos Cada sub-grupo evolui separadamente Cruzamento e comunicação entre grupos são menos freqüentes que intra-grupo Transferências entre grupos ocorrem via migração: Indivı́duos de um grupo são copiados ou transferidos a outro, de tempos em tempos Reduz crowding (veremos mais adiante...) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
  • 136. Algoritmos Genéticos Em suma Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 27 / 46
  • 137. Algoritmos Genéticos Em suma Algoritmos genéticos geram hipóteses pela mutação repetitiva e recombinação de partes das melhores hipóteses Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 27 / 46
  • 138. Algoritmos Genéticos Em suma Algoritmos genéticos geram hipóteses pela mutação repetitiva e recombinação de partes das melhores hipóteses A cada passo, a população é atualizada, trocando-se parte dela pela prole gerada Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 27 / 46
  • 139. Algoritmos Genéticos Vantagens Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 46
  • 140. Algoritmos Genéticos Vantagens Habilidade de combinar grandes porções de genes que evoluı́ram independentemente Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 46
  • 141. Algoritmos Genéticos Vantagens Habilidade de combinar grandes porções de genes que evoluı́ram independentemente Podemos abordar problemas de difı́cil modelagem Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 46
  • 142. Algoritmos Genéticos Vantagens Habilidade de combinar grandes porções de genes que evoluı́ram independentemente Podemos abordar problemas de difı́cil modelagem Facilmente tornados paralelos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 46
  • 143. Algoritmos Genéticos Vantagens Habilidade de combinar grandes porções de genes que evoluı́ram independentemente Podemos abordar problemas de difı́cil modelagem Facilmente tornados paralelos Dificilmente caem em mı́nimos locais, por darem pulos aleatórios no espaço de hipóteses Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 46
  • 144. Algoritmos Genéticos Desvantagens Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
  • 145. Algoritmos Genéticos Desvantagens Seu sucesso requer um trabalho cuidadoso da representação do problema Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
  • 146. Algoritmos Genéticos Desvantagens Seu sucesso requer um trabalho cuidadoso da representação do problema Crowding Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
  • 147. Algoritmos Genéticos Desvantagens Seu sucesso requer um trabalho cuidadoso da representação do problema Crowding Quando um indivı́duo com fitness maior que os outros rapidamente se reproduz Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
  • 148. Algoritmos Genéticos Desvantagens Seu sucesso requer um trabalho cuidadoso da representação do problema Crowding Quando um indivı́duo com fitness maior que os outros rapidamente se reproduz Cópias dele e de indivı́duos muito similares formam uma grande fração da população Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
  • 149. Algoritmos Genéticos Desvantagens Seu sucesso requer um trabalho cuidadoso da representação do problema Crowding Quando um indivı́duo com fitness maior que os outros rapidamente se reproduz Cópias dele e de indivı́duos muito similares formam uma grande fração da população Reduz a diversidade da população, deixando o progresso do algoritmo mais lento Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
  • 150. Algoritmos Genéticos Estratégias contra crowding Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
  • 151. Algoritmos Genéticos Estratégias contra crowding Fitness sharing: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
  • 152. Algoritmos Genéticos Estratégias contra crowding Fitness sharing: Reduzir o valor de adaptação do indivı́duo pela presença de outros similares na população Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
  • 153. Algoritmos Genéticos Estratégias contra crowding Fitness sharing: Reduzir o valor de adaptação do indivı́duo pela presença de outros similares na população Restringir os tipos de indivı́duos que podem se recombinar para formar a prole Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
  • 154. Algoritmos Genéticos Estratégias contra crowding Fitness sharing: Reduzir o valor de adaptação do indivı́duo pela presença de outros similares na população Restringir os tipos de indivı́duos que podem se recombinar para formar a prole Fazer com que somente os indivı́duos mais similares se recombinem, formando grupos de indivı́duos similares (múltiplas sub-espécies da população) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
  • 155. Algoritmos Genéticos Estratégias contra crowding Fitness sharing: Reduzir o valor de adaptação do indivı́duo pela presença de outros similares na população Restringir os tipos de indivı́duos que podem se recombinar para formar a prole Fazer com que somente os indivı́duos mais similares se recombinem, formando grupos de indivı́duos similares (múltiplas sub-espécies da população) Distribuir espacialmente os indivı́duos e permitir que somente os que estiverem mais próximos se recombinem. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
  • 156. Algoritmos Genéticos Estratégias contra crowding Mudar a função de seleção para usar posição em lista, e não o mais adaptado Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 46
  • 157. Algoritmos Genéticos Estratégias contra crowding Mudar a função de seleção para usar posição em lista, e não o mais adaptado Embora os melhores ainda tenham maior probabilidade, esta é melhor distribuı́da, por depender da posição, e não do valor de fitness Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 46
  • 158. Algoritmos Genéticos Gráfico de Desempenho Curva que mostra o desempenho médio da população a cada geração Fonte: AI. Negnevitsky. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
  • 159. Algoritmos Genéticos Gráfico de Desempenho Curva que mostra o desempenho médio da população a cada geração Acompanhada de uma mostrando o desempenho do melhor indivı́duo da população Fonte: AI. Negnevitsky. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
  • 160. Algoritmos Genéticos Gráfico de Desempenho Curva que mostra o desempenho médio da população a cada geração Acompanhada de uma mostrando o desempenho do melhor indivı́duo da população Medidos conforme a função objetivo Fonte: AI. Negnevitsky. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
  • 161. Algoritmos Genéticos Gráfico de Desempenho Curva que mostra o desempenho médio da população a cada geração Acompanhada de uma mostrando o desempenho do melhor indivı́duo da população Medidos conforme a função objetivo Nesse exemplo, a população é de 60 cromossomos Fonte: AI. Negnevitsky. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
  • 162. Algoritmos Genéticos Gráfico de Desempenho Curva que mostra o desempenho médio da população a cada geração Acompanhada de uma mostrando o desempenho do melhor indivı́duo da população Medidos conforme a função objetivo A probabilidade de um cruzamento é de 70% Fonte: AI. Negnevitsky. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
  • 163. Algoritmos Genéticos Gráfico de Desempenho Curva que mostra o desempenho médio da população a cada geração Acompanhada de uma mostrando o desempenho do melhor indivı́duo da população Medidos conforme a função objetivo E a de mutação é de 0,1% Fonte: AI. Negnevitsky. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
  • 164. Algoritmos Genéticos Gráfico de Desempenho Curva que mostra o desempenho médio da população a cada geração Acompanhada de uma mostrando o desempenho do melhor indivı́duo da população Medidos conforme a função objetivo Bastante útil para sabermos a partir de quantas gerações a população es- tabiliza na média Fonte: AI. Negnevitsky. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
  • 165. Algoritmos Genéticos Gráfico de Desempenho Curva que mostra o desempenho médio da população a cada geração Acompanhada de uma mostrando o desempenho do melhor indivı́duo da população Medidos conforme a função objetivo E a partir de quantas gerações o melhor indivı́duo estabiliza Fonte: AI. Negnevitsky. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
  • 166. Computação Evolutiva Programação Genética Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 33 / 46
  • 167. Programação Genética Técnica de computação evolutiva em que a população é composta de programas ou expressões, em vez de valores Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
  • 168. Programação Genética Técnica de computação evolutiva em que a população é composta de programas ou expressões, em vez de valores Podem evoluir programas completos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
  • 169. Programação Genética Técnica de computação evolutiva em que a população é composta de programas ou expressões, em vez de valores Podem evoluir programas completos Representa as expressões ou programas por sua árvore sintática Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
  • 170. Programação Genética + sen √ x + ˆ y x 2 Fonte: ML. Mitchell. Técnica de computação evolutiva em que a população é composta de programas ou expressões, em vez de valores Podem evoluir programas completos Representa as expressões ou programas por sua árvore sintática Ex: sen(x) + p x2 + y Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
  • 171. Programação Genética + sen √ x + ˆ y x 2 Fonte: ML. Mitchell. Técnica de computação evolutiva em que a população é composta de programas ou expressões, em vez de valores Podem evoluir programas completos Representa as expressões ou programas por sua árvore sintática Ex: sen(x) + p x2 + y Bastante usada em projetos de circuitos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
  • 172. Programação Genética Uso como Aprendizagem de Máquina Começamos definindo as funções primitivas Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
  • 173. Programação Genética Uso como Aprendizagem de Máquina Começamos definindo as funções primitivas Ex: Seno, raiz etc Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
  • 174. Programação Genética Uso como Aprendizagem de Máquina Começamos definindo as funções primitivas Ex: Seno, raiz etc Definimos então os sı́mbolos terminais Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
  • 175. Programação Genética Uso como Aprendizagem de Máquina Começamos definindo as funções primitivas Ex: Seno, raiz etc Definimos então os sı́mbolos terminais Ex: x, y, 3, 2 etc Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
  • 176. Programação Genética Uso como Aprendizagem de Máquina Começamos definindo as funções primitivas Ex: Seno, raiz etc Definimos então os sı́mbolos terminais Ex: x, y, 3, 2 etc E a função de adaptação (fitness) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
  • 177. Programação Genética Uso como Aprendizagem de Máquina Começamos definindo as funções primitivas Ex: Seno, raiz etc Definimos então os sı́mbolos terminais Ex: x, y, 3, 2 etc E a função de adaptação (fitness) É ela que determina quão bem o algoritmo é capaz de resolver o problema Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
  • 178. Programação Genética Uso como Aprendizagem de Máquina Começamos definindo as funções primitivas Ex: Seno, raiz etc Definimos então os sı́mbolos terminais Ex: x, y, 3, 2 etc E a função de adaptação (fitness) É ela que determina quão bem o algoritmo é capaz de resolver o problema Tipicamente obtida pela execução do algoritmo em um conjunto de dados de treino Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
  • 179. Programação Genética Uso como Aprendizagem de Máquina Definimos os exemplos de treino Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
  • 180. Programação Genética Uso como Aprendizagem de Máquina Definimos os exemplos de treino O tempo de treinamento depende das primitivas escolhidas, dos exemplos de treino, e da função de adaptação Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
  • 181. Programação Genética Uso como Aprendizagem de Máquina Definimos os exemplos de treino O tempo de treinamento depende das primitivas escolhidas, dos exemplos de treino, e da função de adaptação E o algoritmo evolutivo a ser usado Pode ser o mesmo usado em algoritmos genéticos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
  • 182. Programação Genética Uso como Aprendizagem de Máquina Definimos os exemplos de treino O tempo de treinamento depende das primitivas escolhidas, dos exemplos de treino, e da função de adaptação E o algoritmo evolutivo a ser usado Pode ser o mesmo usado em algoritmos genéticos Mesmo modo de calcular a probabilidade Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
  • 183. Programação Genética Uso como Aprendizagem de Máquina Definimos os exemplos de treino O tempo de treinamento depende das primitivas escolhidas, dos exemplos de treino, e da função de adaptação E o algoritmo evolutivo a ser usado Pode ser o mesmo usado em algoritmos genéticos Mesmo modo de calcular a probabilidade Mesmo esquema de cruzamento Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
  • 184. Programação Genética Uso como Aprendizagem de Máquina Definimos os exemplos de treino O tempo de treinamento depende das primitivas escolhidas, dos exemplos de treino, e da função de adaptação E o algoritmo evolutivo a ser usado Pode ser o mesmo usado em algoritmos genéticos Mesmo modo de calcular a probabilidade Mesmo esquema de cruzamento Pode ou não haver mutações Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
  • 185. Programação Genética Algoritmo população ← População inicial de árvores sintáticas aleatórias repita para cada árvore Ai ∈ população faça fitnessi ← valor indicando quão bem o algoritmo representado por Ai resolveu o problema população ← GERA POP(população, {fitnessi }) até até algum Ai atingir um erro aceitável retorna Ai escolhido Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 46
  • 186. Programação Genética Algoritmo Cada árvore sintática é uma composição aleatória de funções e sı́mbolos terminais população ← População inicial de árvores sintáticas aleatórias repita para cada árvore Ai ∈ população faça fitnessi ← valor indicando quão bem o algoritmo representado por Ai resolveu o problema população ← GERA POP(população, {fitnessi }) até até algum Ai atingir um erro aceitável retorna Ai escolhido Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 46
  • 187. Programação Genética Algoritmo Executa cada algoritmo da população e associa a ele um valor de adaptação (fitness), indicando quão bem ele foi nos dados de treino população ← População inicial de árvores sintáticas aleatórias repita para cada árvore Ai ∈ população faça fitnessi ← valor indicando quão bem o algoritmo representado por Ai resolveu o problema população ← GERA POP(população, {fitnessi }) até até algum Ai atingir um erro aceitável retorna Ai escolhido Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 46
  • 188. Programação Genética Algoritmo Cria uma nova po- pulação (nova geração) população ← População inicial de árvores sintáticas aleatórias repita para cada árvore Ai ∈ população faça fitnessi ← valor indicando quão bem o algoritmo representado por Ai resolveu o problema população ← GERA POP(população, {fitnessi }) até até algum Ai atingir um erro aceitável retorna Ai escolhido Função GERA POP(população, {fitnessi }): população Copie os melhores programas da geração atual (clonagem) Selecione indivı́duos para o cruzamento Crie novos programas pelo cruzamento dos programas selecionados Aplique a mutação sobre algumas funções escolhidas aleatoriamente Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 46
  • 189. Programação Genética Cruzamentos Um filho é criado selecionando-se aleatoriamente um ramo de cada pai + sen ˆ x 2 + x y + sen √ x + ˆ y x 2 Pais sin(x) + p x2 + y sen(x) + 2x+y Fonte: ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 46
  • 190. Programação Genética Cruzamentos Um filho é criado selecionando-se aleatoriamente um ramo de cada pai, e então fazendo-se o intercâmbio dos ramos selecionados + sen ˆ x 2 + x y + sen √ x + ˆ y x 2 + sen ˆ x 2 ˆ x 2 + sen √ x + + y x y Pais Filhos sin(x) + p x2 + y sen(x) + 2x+y sen(x) + 2x2 sen(x) + √ x + y + y Fonte: ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 46
  • 191. Programação Genética Cruzamentos E se os pais forem iguais? Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 46
  • 192. Programação Genética Cruzamentos E se os pais forem iguais? É possı́vel que surja uma prole diferente Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 46
  • 193. Programação Genética Cruzamentos E se os pais forem iguais? É possı́vel que surja uma prole diferente + sen ˆ x 2 + x y + sen ˆ x 2 + x y Pais sen(x) + 2x+y sen(x) + 2x+y Fonte: Adaptado de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 46
  • 194. Programação Genética Cruzamentos E se os pais forem iguais? É possı́vel que surja uma prole diferente + sen ˆ x 2 + x y + sen ˆ x 2 + x y + sen ˆ x 2 x + sen ˆ + 2 + x y x y Pais Filhos sen(x) + 2x+y sen(x) + 2x+y sen(x) + 2x sen(x + y) + 2x+y Fonte: Adaptado de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 46
  • 195. Programação Genética Cruzamentos Em algoritmos genéticos, pais iguais levam a filhos idênticos + sen ˆ x 2 + x y + sen ˆ x 2 + x y + sen ˆ x 2 x + sen ˆ + 2 + x y x y Pais Filhos sen(x) + 2x+y sen(x) + 2x+y sen(x) + 2x sen(x + y) + 2x+y Fonte: Adaptado de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 46
  • 196. Programação Genética Cruzamentos Em algoritmos genéticos, pais iguais levam a filhos idênticos Essa é uma das principais vantagens da programação genética em relação aos algoritmos genéticos + sen ˆ x 2 + x y + sen ˆ x 2 + x y + sen ˆ x 2 x + sen ˆ + 2 + x y x y Pais Filhos sen(x) + 2x+y sen(x) + 2x+y sen(x) + 2x sen(x + y) + 2x+y Fonte: Adaptado de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 46
  • 197. Programação Genética Mutações Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 46
  • 198. Programação Genética Mutações Mutação no nó: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 46
  • 199. Programação Genética Mutações Mutação no nó: Escolha aleatoriamente um ou mais nós, e substitua seu(s) valor(es) por outro(s) valor(es) aleatório(s) Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 46
  • 200. Programação Genética Mutações Mutação no nó: Escolha aleatoriamente um ou mais nós, e substitua seu(s) valor(es) por outro(s) valor(es) aleatório(s) + sen ˆ x 2 + x y + sen ˆ 2 2 × x y Pai Filho sen(x) + 2x+y sen(2) + 2x·y Fonte: Adaptado de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 46
  • 201. Programação Genética Mutações Mutação no nó: Escolha aleatoriamente um ou mais nós, e substitua seu(s) valor(es) por outro(s) valor(es) aleatório(s) Substitua função por função, operador por operador, e terminal por terminal + sen ˆ x 2 + x y + sen ˆ 2 2 × x y Pai Filho sen(x) + 2x+y sen(2) + 2x·y Fonte: Adaptado de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 46
  • 202. Programação Genética Mutações Mutação no ramo: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 46
  • 203. Programação Genética Mutações Mutação no ramo: Um ramo da árvore é escolhido aleatoriamente e substituı́do por outro gerado aleatoriamente pelo programa Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 46
  • 204. Programação Genética Mutações Mutação no ramo: Um ramo da árvore é escolhido aleatoriamente e substituı́do por outro gerado aleatoriamente pelo programa + sen ˆ x 2 + x y + + x y + sen + x x y Pai Filho sen(x) + 2x+y sen(x) + x + y Fonte: Adaptado de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 46
  • 205. Programação Genética Mutações Mutação no ramo: Um ramo da árvore é escolhido aleatoriamente e substituı́do por outro gerado aleatoriamente pelo programa Modifica a estrutura da árvore do programa, pois o novo ramo não precisa ter o mesmo tamanho do anterior + sen ˆ x 2 + x y + + x y + sen + x x y Pai Filho sen(x) + 2x+y sen(x) + x + y Fonte: Adaptado de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 46
  • 206. Programação Genética Hiperparâmetros Mutações podem ser misturadas Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 46
  • 207. Programação Genética Hiperparâmetros Mutações podem ser misturadas Podemos fazer quantas mutações de cada tipo que quisermos Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 46
  • 208. Programação Genética Hiperparâmetros Mutações podem ser misturadas Podemos fazer quantas mutações de cada tipo que quisermos São então hiperparâmetros (ou metaparâmetros) do modelo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 46
  • 209. Programação Genética Hiperparâmetros Mutações podem ser misturadas Podemos fazer quantas mutações de cada tipo que quisermos São então hiperparâmetros (ou metaparâmetros) do modelo Parâmetros definidos de antemão e que não serão modificados quando ajustamos (treinamos) o modelo Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 46
  • 210. Programação Genética Hiperparâmetros Exemplo: Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 46
  • 211. Programação Genética Hiperparâmetros Exemplo: A cada geração, modificamos valores de nós e a estrutura das árvores Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 46
  • 212. Programação Genética Hiperparâmetros Exemplo: A cada geração, modificamos valores de nós e a estrutura das árvores Essas mudanças são guiadas pelos dados, via função de fitness → são treinadas Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 46
  • 213. Programação Genética Hiperparâmetros Exemplo: A cada geração, modificamos valores de nós e a estrutura das árvores Essas mudanças são guiadas pelos dados, via função de fitness → são treinadas Não modificamos, contudo, quantas mutações fazemos a cada geração Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 46
  • 214. Programação Genética Hiperparâmetros Exemplo: A cada geração, modificamos valores de nós e a estrutura das árvores Essas mudanças são guiadas pelos dados, via função de fitness → são treinadas Não modificamos, contudo, quantas mutações fazemos a cada geração Esse não é um parâmetro refinado a partir dos dados → é um hiper-parâmetro Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 46
  • 215. 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. Rothlauf, F. (2006): Representations for Genetic and Evolutionary Algorithms. Springer. 2a ed. Coley, D.A. (1999): An Introduction to Genetic Algorithms for Scientists and Engineers. World Scientific Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 46