Você está na página 1de 78

Algoritmos Genticos

Adriano Joaquim de Oliveira Cruz

Universidade Federal do Rio de Janeiro

Maio 2013

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 1 / 155

Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 2 / 155
Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 3 / 155

Sorte!

Nas minhas investigaes debaixo do sol, vi ainda que a


corrida no para os geis, nem a batalha para os bravos, nem o
po para os prudentes, nem a riqueza para os inteligentes, nem o
favor para os sbios: todos esto merc das circunstncias e da
sorte.
Eclesiastes 9,12

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 4 / 155


Bibliography

Adriano Joaquim de Oliveira Cruz.


Apresentao Algoritmos Genticos.
Andries P. Engelbrecht.
Computational Intelligence: An Introduction.
John Wiley & Sons, Ltd, West Sussex, England, 2008.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 5 / 155

O Problema

Existem problemas para os quais algoritmos


rpidos no so conhecidos.
Encontrar a soluo buscar em um espao
onde vivem potenciais solues a que melhor
resolve o nosso problema.
Quando este espao muito grande, encontrar
a melhor soluo pode levar tempo demais
possvel obter solues aproximadamente
timas usando algoritmos probabilsticos.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 6 / 155


O que so?

Tcnica prtica e robusta de busca e


otimizao.
Baseados nos conceitos da seleo natural.
um mtodo estocstico de busca.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 7 / 155

Exemplos de Problemas

Encontrar o mximo (mnimo) de uma funo.


Encontrar um bom conjunto de regras para um sistema nebuloso.
Encontrar o melhor agente para atuar como jogador digital.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 8 / 155


A Metfora

A metfora que est por trs dos AGs a da seleo natural.


Na natureza, o problema de cada espcie o de encontrar as melhores
adaptaes que a faam sobreviver em um ambiente complicado,
muitas vezes hostil e que est sempre mudando.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 9 / 155

Evoluo

H na natureza evoluo no sentido de melhoria?


Evoluo pressupe caminhar em direo a um indivduo ideal.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 10 / 155


Adaptao

No seria mais apropriado falar


em melhor adaptao ao
ambiente?
Na natureza sobrevivem no os
mais evoludos e sim os mais
adaptados a um determinado
ambiente.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 11 / 155

Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 12 / 155
Adaptao

O conjunto de caractersticas de um
indivduo, que o distingue dos demais,
determina sua capacidade de
sobrevivncia.
Estas caractersticas so determinadas
pelo seu material gentico.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 13 / 155

Mecanismos

Na natureza a competio por recursos escassos em ambientes hostis


ou que se alteram faz com que os mais aptos sobrevivam e consigam
se reproduzir.
Atravs da reproduo com parceiros os genes destes indivduos so
ento transmitidos aos seus descendentes.
Este processo contnuo de seleo e reproduo dos mais aptos pode
conduzir a indivduos cada vez mais adaptados.
Este processo denominado seleo natural.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 14 / 155


Seres Vivos - Cromossomos

Cadeias organizadas de ADN (DNA) e protenas encontrados nas


clulas
Contm informaes que permitem a gerao de um novo ser.
uma pea de ADN contendo diversos genes, elementos reguladores e
outras sequncias de nucleotdeos.
A palavra cromossomo vem do grego chroma (cor) e soma (corpo)
devido a propriedade de poder ser tingido facilmente. (fonte wikipedia)
O conjunto de cromossomos que descrevem um organismo o seu
genoma.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 15 / 155

Seres Vivos - Cromossomos

Cromossomos vm em pares.
Seres humanos tm 23 pares de cromossomos.
Burros tm 31 pares e carpas 51
Cada gene corresponde a uma regio do DNA que possui uma posio
especfica no cromossomo.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 16 / 155


Seres Vivos - Cromossomos

A T G C G

A T G C G

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 17 / 155

Seres Vivos - Protenas

Protenas so a base de funcionamento das clulas.


So compostas por cadeias de aminocidos.
Responsveis por praticamente todo o trabalho realizado dentro das
clulas.
Exemplos de protenas: enzimas, hemoglobina, certos hormnios.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 18 / 155


Seres Vivos - Genes

Responsveis por caractersticas especficas de cada ser.


Podem assumir diferentes valores (alelos).
Diferentes combinaes de valores (gentipos) levam a diferenas em
caractersticas do ser (fentipos).
Por exemplo, dois genes para olhos castanhos (fentipo castanho), dois
genes para olhos verdes (fentipo verde), um gene para olhos verdes e
outro para olhos castanhos (depende de como eles trabalham juntos).

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 19 / 155

Aproximao do funcionamento

DNA armazena informao gentica nos indivduos.


Protenas so as trabalhadoras celulares.
Uma sequncia de DNA contm toda a informao necessria para se
autoreplicar.
Esta sequncia transcrita em RNA e posteriormente transcrita em
uma protena.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 20 / 155


Seres Vivos - Reproduo

Cromossomos so encontrados em pares.


Indivduos possuem duas cpias de seus genes (reproduo sexuada).
Gametas produzidos durante a fertilizao possuem um representante
de cada par.
Gametas de dois indivduos se unem para formar um novo indivduo.
Durante a produo dos gametas:
Recombinao: troca de parte das cadeias de um par
Mutao: alterao em uma ou mais posies dos cromossomos.
A taxa de mutao muito baixa devido aos mecanismos de correo
embutidos no processo.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 21 / 155

Gentica e Seleo

Operadores de recombinao e mutao no garantem que os


cromossomos dos filhos sejam exatamente iguais aos dos pais, mas sim
uma combinao com possveis alteraes.
Estas alteraes podem ser benficas ou no.
Indivduos que forem mais bem adaptados podero mais facilmente
repassar suas caractersticas.
Deste modo a evoluo gera maior adaptabilidade. protena.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 22 / 155


Seres Vivos - Recombinao

A G C C G M

G A T T A F

A G T T A C1

G A C C G C2

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 23 / 155

Variaes de Estratgias

Algoritmos Genticos: baseados na evoluo (adaptao) gentica.


Programao Gentica: baseados em algoritmos genticos, mas os
indivduos so programas.
Programao Evolucionria: deriva da simulao do comportamento
adaptativo em evoluo (evoluo fentica).
Co-evoluo: Evoluo em que indivduos evoluem atravs de cooperao,
ou competio entre si.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 24 / 155


Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 25 / 155

Cromossomo

Indivduos representam solues potenciais em uma populao.


Em AG um indivduo representado por um nico cromossomo.
Usualmente, cada possvel soluo codificada como uma cadeia de
bits, o cromossomo ou gentipo.
Cada parmetro codificado na soluo chamado de um gene.
F (x, y , z)
11010001 11010001 11010001

Gene X Gene Y Gene Z

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 26 / 155


Populao

AGs mantm um conjunto de indivduos formando populaes de


solues.
Indivduos devem ser avaliados segundo uma funo de aptido.
Indivduos mais aptos tero mais chances de propagar sua informao
gentica.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 27 / 155

Geraes

A cada gerao o AG cria uma nova populao.


Esta criao de indivduos baseada em operadores genticos.
A evoluo de uma gerao para outra feita em trs fases: avaliao
da aptido, seleo dos mais aptos e reproduo.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 28 / 155


O Algoritmo Bsico

incio
Gera populao inicial P
i =0
enquanto condio de parada no satisfeita faa
Avalie cada indivduo da populao
Cria espao para nova populao NP =
enquanto |NP| 6= |P| faa
Seleciona pais a partir de P
Recombine pais e gere filhos
Aplique mutao nos filhos
Insira filhos em NP
fim enqto
P NP
i =i +1
fim enqto
Retorne melhor indivduo de P como soluo
fim

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 29 / 155

Componentes de um AG

Uma representao das solues potenciais.


Uma forma de criar a populao inicial.
Uma funo de avaliao que faz o papel do ambiente e ordena as
solues por um critrio de qualidade.
Operadores genticos que geram e alteram a composio dos filhos
gerados.
Valores para os vrios parmetros: tamanho da populao,
probabilidades de aplicao dos operadores, nmero de geraes etc.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 30 / 155


Por que AG

Paralelo: mantm uma populao de solues que podem ser avaliadas


simultaneamente.
Global: AGs no usam somente informaes locais, logo no
necessariamente ficam presos em mximos locais.
No totalmente aleatrio: usam informaes da populao atual para
determinar o prximo estado de busca.
No afetados por descontinuidades: no usam informaes de derivadas
nem necessitam informaes de seu entorno.
Funes: Lidam com funes discretas e contnuas.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 31 / 155

Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 32 / 155
Codificaes de uma Soluo

A codificao pode, por exemplo, mapear pontos no espao de


solues em cadeias de bits.
Codificaes so maneiras de traduzir o conhecimento sobre o
problema para o ambiente dos AGs.
Considere f (x0 , x1 , x2 ) e que x0 = 3, x1 = 1, x2 = 0
O cromossomo de 12 bits com genes de 4 bits poderia ser
0011-0001-0000

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 33 / 155

Codificao Binria de uma Soluo

Considere uma funo f (x) de v variveis, ou seja


x = (x0 , x1 , x2 , . . . , xv 1 ) onde xi .
Considere uma codificao binria que usa n bits para representar um
valor real.
Este esquema converte o indivduo x = (x0 , x1 , x2 , . . . , xv 1 ) em
b = (b0 , b1 , b2 , . . . , bv 1 ) onde bi = (b0 b1 . . . bn1 ) e bi {0, 1}.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 34 / 155


Acurcia da Codificao Binria

Considere que uma varivel x codificada em 16 bits.


Considere que esta varivel pode assumir valores entre xmin = 0 e
xmax = 2 inclusive.
A codificao divide o intervalo [0, 2] em 216 1 pedaos.
20
Neste caso a mxima acurcia 216 1
.
De maneira geral a acurcia mxima neste tipo de codificao

|xmax,d xmin,d |
2nd 1
d uma das dimenses do espao do problema.
nd nmero de bits usado para codificar a dimenso d

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 35 / 155

Quantos Bits?

Suponha que precisamos de D casas decimais.


Seja T o tamanho do intervalo.
Seja uma representao binria com n bits.
Portanto: 2(n1) < T 10D < 2n
Exemplo: D = 6 e T = 3 2097152 = 221 < 3000000 < 222 = 4194304
Neste caso o nmero de bits deve ser 22.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 36 / 155


Converso para Real

Considere uma varivel x.


Intervalo: [xmin . . . xmax ].
Representao com n bits: b = [b0 b1 . . . bn1 ]
x= b convertido para inteiro.

n1
X
x= bi 2n1i
i =0

x = (b)

(xmax xmin )
x = xmin + x
(2n 1)

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 37 / 155

Exemplo

Duas variveis x1 , x2 .
Intervalo: x1 [2, 2] e x2 [0, 1].
Representao usa 6 bits.
Cromossomo = 000011110011.
bx1 = 000011 e bx2 = 110011.

x1 = 3 e x2 = 51
2(2)
x1 = 2 + 3 26 1
= 1.809
10
x2 = 0 + 51 26 1
= 0.809

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 38 / 155


Problemas com Binrios

Representao binria pode introduzir problemas quando testamos


solues.
Considere por exemplo as representaes de 7 e 8 com 4 bits: 0111 e
1000.
A distncia de Hamming entre os dois nmeros 4.
Uma pequena mudana na varivel deveria deveria resultar em
pequena mudana na representao.
Neste caso quatro bits devem ser modificados para uma pequena
modificao na representao.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 39 / 155

Cdigo Gray I

No cdigo Gray somente um bit alterado entre dois nmeros


sucessivos.
Converso de binrio para gray simples.
b0 . . . bn2 bn1 = g0 g1 . . . gn1
g0 = b0
gi = (bi 1 bi ) (bi 1 bi ) = bi bi 1

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 40 / 155


Cdigo Gray II

Binrio Gray
0 000 000
1 001 001
2 010 011
3 011 010
4 100 110
5 101 111
6 110 101
7 111 100

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 41 / 155

Converso Gray para Binrio

g0 g1 . . . gn1 = b0 b1 . . . bn1
b0 = g0
bi = (bi 1 gi ) (bi 1 gi ) = bi 1 gi

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 42 / 155


Outras Representaes

Reais.
Inteiros.
Permutaes.
Estados Finitos.
rvores.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 43 / 155

Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 44 / 155
Populao Inicial

Uma estratgia simples gerar a populao inicial aleatoriamente.


O tamanho da populao deve ser grande o suficiente para permitir
variabilidade gentica sem atrapalhar o desempenho.
Em algumas solues vrias populaes so criadas.
Estas populaes podem evoluir paralelamente de forma cooperativa
ou no.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 45 / 155

Populao: Observaes

Grande nmero de individuos aumenta a diversidade, portanto permite


explorar melhor as habilidades da populao.
Grandes populaes exigem maior poder computacional.
O maior tempo gasto em cada gerao pode ser compensado pelo
menor nmero de geraes para atingir o objetivo.
Populaes menores representam um pedao menor do espao de
solues.
Em populaes menores pode ser necessrio aumentar a taxa de
mutao para permitir a explorao de um espao maior.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 46 / 155


Avaliao da Aptido

O primeiro passo aps gerar uma populao de solues e calcular a


aptido de cada soluo.
Ela deve procurar abarcar todo o conhecimento que se possui sobre o
problema, j que a nica ligao com a realidade.
A funo de aptido f mapeia um cromossomo em um valor escalar.
f : C n , onde C n representa os dados contidos em um
cromossomo com n dimenses.
Esta funo representa a funo objetivo , que descreve o problema
de otimizao a ser resolvido.
No caso de uma representao binria isto feito em etapas.
Temos:

f : {0, 1}n n +

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 47 / 155

Funo de Aptido

A funo de aptido fornece uma avaliao absoluta de cada um dos


indivduos da soluo.
Em alguns problemas uma funo que permita a avaliao absoluta
no existe, por exemplo aprendizado em jogos.
Neste caso so usadas funes que permitem avaliaes relativas dos
indivduos.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 48 / 155


Tipos de Problemas de Otimizao

Otimizao sem Restries: A funo de aptido simplesmente a funo


objetivo.
Otimizao com Restries: A funo de aptido contm duas funes.
Uma a funo objetivo original e a outra uma funo de
restrio.
Multi-Objetivo: Podem ser resolvidos usando-se uma funo de agregao
ponderada dos resultados das vrias sub-funes objetivo.
Problemas Dinmicos e Ruidosos: Problemas em que os valores da funo
variam com o tempo ou apresentam rudo adicionado.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 49 / 155

Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 50 / 155
Seleo

Aps a avaliao deve-se gerar uma nova populao a partir da atual.


A seleo escolhe que indivduos participaro deste processo.
Na seleo proporcional a probabilidade de um indivduo ser
selecionado funo direta da sua aptido.
No entanto, mesmo os menos aptos devem ter a possibilidade de
passarem para a prxima gerao suas caractersticas.
Existem diversos mtodos de seleo.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 51 / 155

Presso Seletiva

Presso seletiva est relacionado com o tempo necessrio para que


uma populao uniforme seja gerada.
definida pela velocidade com que os genes da melhor soluo levam
para se espalhar por toda a populao quando somente o operador de
seleo aplicado.
Um operador com alta presso seletiva diminui com rapidez a
diversidade gentica da populao.
Portanto, limita a capacidade do algoritmo explorar o espao de
solues.
Isto pode levar a convergncia para mnimos locais.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 52 / 155


Exemplo

Considere a funo y = x 2 no intervalo [0,15].


Considere uma representao com 4 bits.
Sabemos que o mximo est em 15 ou b = 1111.
Considere a populao:
b0 = 0001 com y =1
b1 = 0011 com y =9
b2 = 0100 com y = 16
b3 = 0110 com y = 36
Os dois melhores indivduos b2 , b3 no contm uma boa caracterstica
que o bit mais direita igual a 1.
Se somente os dois melhores fossem escolhidos para reproduo no
chegaramos a soluo.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 53 / 155

Seleo Aleatria

o mtodo mais simples.


Cada indivduo xi (t) tem a mesma probabilidade de ser escolhido
s (xi (t)) = n1 , onde n o tamanho da populao e xi (t) o indivduo
i na iterao t.
Nenhuma informao sobre a avaliao de cada indivduo usada.
Este mtodo o que tem a menor presso seletiva.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 54 / 155


Seleo Proporcional a Avaliao

Proposta por Holland.


Cria uma distribuio de probabilidades proporcional a avaliao de
cada indivduo.
Indivduos so escolhidos com base na distribuio.

f (xi (t))
s (xi (t)) = Pn1
l=0 f (xl (t))

s (xi (t)) a probabilidade de xi (t) ser escolhido.


f (xi (t)) uma funo de avaliao para o indivduo xi (t) escalada
para produzir um valor real positivo.
O tempo t refere-se a iterao, ou gerao, t do algoritmo gentico.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 55 / 155

Funes de Distribuio Proporcional I

Em problemas de minimizao uma funo possvel seria

f (xi (t)) = fmax f (xi (t))

onde f (xi (t)) = (xi (t)) a prpria funo de avaliao.


No entanto, nem sempre o valor fmax conhecido.
Uma alternativa usar fmax (t), que o mximo valor de f at a
gerao t.
Outra funo possvel :
1
f (xi (t)) =
1 + f (xi (t)) fmin

Neste caso f (xi (t)) (0, 1]

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 56 / 155


Funes de Distribuio Proporcional II

No caso de maximizao as funes seriam:

f (xi (t)) = f (xi (t)) fmin


A funo escalvel entre (0, 1]

1
f (xi (t)) =
1 + fmax f (xi (t))

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 57 / 155

Funes de Distribuio Proporcional III

Uma funo bastante usada :

f (xi (t)) = f (xi (t))

onde f (xi (t)) = (xi (t)) a prpria funo de avaliao.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 58 / 155


Roleta na Seleo Proporcional

A roleta um mtodo de seleo proporcional.


Cada cromossomo recebe uma fatia proporcional sua avaliao.
Ao girar a roleta o selecionado ser o indivduo sobre o qual bolinha da
roleta parar.
Indivduos com fatias maiores tm mais probabilidade de serem
escolhidos.
Indivduos selecionados continuam no sorteio.
Portanto, indivduos podem ser escolhidos mais de uma vez.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 59 / 155

Criando a Roleta
Calcular a avaliao de cada indivduo,
f (xi (t))
Calcular a avaliao total da populao,
n1
X
S= f (xl (t))
l=0

Calcular a probabilidade da seleo de cada indivduo


f (xi (t))
s (xi (t)) = Pn1
l=0 f (xl (t))
Calcular a probabilidade cumulativa para cada indivduo
n1
X
s (xi (t)) = s (xl (t))
l=0

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 60 / 155


Exemplo de Roleta

x f (xi (t)) f (xi (t)) fmin s (xi (t)) s (xi (t))


0.0 5.00 5.5 0.149 0.149
0.5 5.75 6.25 0.169 0.318
1.0 6.00 6.50 0.176 0.493
1.5 5.75 6.25 0.169 0.662
2.0 5.00 5.50 0.149 0.811
2.5 3.75 4.25 0.115 0.926
3.0 2.00 2.50 0.068 0.993
3.5 -0.25 0.25 0.007 1.000
37.00

Obs. Considere que fmin = 0.5

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 61 / 155

A Roleta

x s (xi (t))
0.0 0.149
0.5 0.169
1.0 0.176
1.5 0.169
2.0 0.149
2.5 0.115
3.0 0.068
3.5 0.007

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 62 / 155


Rodando a Roleta

Entrada: s (xi (t)) para i = 0 . . . n 1


Sada: ndice i do indivduo escolhido
incio
i =0
soma = s (xi (t))
r = rand()
enquanto soma < r faa
i =i +1
soma = soma + s (xi (t))
fim enqto
Selecione indivduo i
fim

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 63 / 155

Exemplo de Seleo atravs da Roleta

Considere que o valor r sorteado foi 0.795.


Ento o valor selecionado foi 2.0.

x f (xi (t)) f (xi (t)) fmin s (xi (t)) s (xi (t))


0.0 5.00 5.5 0.149 0.149
0.5 5.75 6.25 0.169 0.318
1.0 6.00 6.50 0.176 0.493
1.5 5.75 6.25 0.169 0.662
2.0 5.00 5.50 0.149 0.811
2.5 3.75 4.25 0.115 0.926
3.0 2.00 2.50 0.068 0.993
3.5 -0.25 0.25 0.007 1.000
37.00

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 64 / 155


Problemas com Roletas

Pode acontecer do melhor indivduo da populao no ser escolhido


para gerar filhos.
Como a seleo baseada na aptido de cada indivduo, pode ocorrer
que indivduos fortes dominem a produo de filhos.
Portanto, a seleo proporcional tem uma grande presso seletiva.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 65 / 155

Seleo por Amostragem Estocstica

Para evitar estes problemas Baker props um algoritmo de


amostragem estocstico.
Este algoritmo determina o nmero de filhos que cada indivduo ir
gerar.
J. E. Baker. Reducing Bias and Inefficiency in The Selection
Algorithm. In J. Grefenstette, editor, Proceedings of the Second
International Conference of Genetic Algorithms, pages 14-21, Hillsdale,
N. J. 1987, Erlbaum.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 66 / 155


Algoritmo Estocstico de Seleo Universal

Entrada: s (xi (t)), total filhos a serem gerados


Sada: i nmero de filhos que cada indivduo pode gerar
incio
para i = 0, . . . , n 1 faa
i (t) = 0
fim para
r = rand(0, 1 )
soma = 0.0
para i = 0, . . . , n 1 faa
soma = soma + s (xi )
enquanto r < soma faa
i + +
r = r + 1
fim enqto
fim para
Retorne = (0 , . . . , n1 )
fim

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 67 / 155

Seleo por Torneio

Selecionar aleatoriamente um subconjunto dos indivduos da


populao.
Competio entre estes indivduos para ver quem ganha o direito de
gerar filhos.
Tamanho do torneio (k) o nmero de indivduos que iro competir.
Dentre os selecionados o que tiver a melhor avaliao o selecionado.
Para cruzamento entre dois pais, este processo deve ser repetido duas
vezes.
Este processo de torneio, seleo e cruzamento repetido at
completar a populao.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 68 / 155


Presso Seletiva no Torneio

Os k indivduos em um torneio podem ser todos iguais.


Este mtodo diminui o favorecimento para os melhores indivduos
devido ao sorteio para entrar no torneio.
Se k no muito grande ento o melhor indivduo no ir dominar.
Se k muito pequeno ento as chances de indivduos ruins serem
selecionados aumenta.
Se k = 1 temos a seleo randmica.
Se k = n o melhor indivduo ser sempre selecionado.
Um problema que o pior indivduo somente ser selecionado se ele
for o nico no torneio (k iguais).
1
Se h n indivduos a probabilidade disto ocorrer nk
.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 69 / 155

Comparando Probabilidades de Escolha I

Vamos considerar o exemplo abaixo.

Indivduo f (xi (t)) s (xi (t)) (em %)


x1 180 0.9
x2 120 0.6
x3 8000 43.1
x4 120 0.6
x5 80 0.4
x6 10000 53.1
x7 10 0.05
x8 60 0.3
total 18750

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 70 / 155


Comparando Probabilidades de Escolha II

Considere K = 2 para n = 8.
Existem 64 combinaes possveis.
Com o x6 (o melhor) e outro indivduo ele ganhar em 14
possibilidades (x6 , 7 outros) + (7 outros, x6 )
Com o par (x6 , x6 ) ele ganhar uma vez.
15
Portanto, temos a probabilidade de 64 = 23.48%
Valor menor que na roleta, que igual a 53.1%.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 71 / 155

Seleo Baseada na Classificao

Indivduos so colocados em ordem de acordo com sua funo de


aptido.
A probabilidade de seleo baseada nesta ordem e no nos valores
absolutos das aptides.
Uma possvel vantagem que o mais apto no domina o processo de
seleo.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 72 / 155


Seleo no Determinstica Baseada na Classificao

Indivduos so colocados em ordem de acordo com sua funo de


aptido.
O indivduo xi selecionado de acordo com a funo

i rand(0, rand(0, n 1))

O melhor indivduo assume a classificao 0 e o pior a n 1.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 73 / 155

Seleo Baseada em Classificao Linear

Os n indivduos so colocados em ordem de acordo com sua funo de


aptido.
Na seleao por classificao linear assumido que a presso seletiva
pode variar entre [1.0 . . . 2.0].
Para calcular a probabilidade de cada indivduo ser selecionado
podemos usar a frmula

2 + 2( 1) fc (xi (t))
n1
((x)i (t)) =
n
onde fc (xi (t)) a classificao de xi (t)
o melhor classificado tem classificao n 1 e o pior 0.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 74 / 155


Probabilidade de Seleo na Classificao Linear
Cada uma das curvas foi gerada com uma presso seletiva.
Para presso seletiva 1 a probabilidade igual para todos.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 75 / 155

Elitismo

Modificao no algoritmo de gerao da populao.


Os n melhores indivduos de cada gerao so levados para a prxima
gerao.
Por exemplo, em uma populao de p indivduos com elitismo n
somente p n indivduos precisam ser gerados por cruzamentos.
Quanto mais indivduos sobrevivem para a prxima gerao menor ser
a diversidade gentica na prxima gerao.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 76 / 155


Galeria da Fama

Guarda os melhores jogadores de cada gerao.


A galeria da fama pode ser usada como fonte de bons cromossomos
durante o processo de cruzamento.
Na ltima gerao o melhor indivduo na galeria da fama corresponde
a melhor soluo.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 77 / 155

Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 78 / 155
Cruzamento

Cruzamento o operador
gentico aplicado aos pais
selecionados para gerar os filhos.
Deste cruzamento espera-se que
as boas caractersticas de prvias
geraes sejam passadas as
prximas.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 79 / 155

Tipos de Cruzamento

Assexuada: o filho gerado a partir


de um pai.
Sexuada: dois pais so usados
para produzir o filho.
Multi-recombinao: o filho gerado
a partir de mais de dois
pais.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 80 / 155


Seleo dos Pais

Pais so selecionados usando um dos esquemas existentes.


Cruzamento aplicado com um critrio probabilstico.
Cada par de pais tem uma probabilidade pc de gerar filhos.
Usualmente a probabilidade de cruzamento alta.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 81 / 155

Ponto de Corte em Representaes Binrias

Vamos considerar cromossomos binrios.


Pais so selecionados para gerar os filhos.
Ponto de corte uma posio no cromossomo onde este ser separado
para ser ligado no cromossomo do outro pai.
Cromossomos podem ser cortados de diversas maneiras.
Cruzamentos com um ponto de corte nico o modo mais comum.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 82 / 155


Exemplo de Cruzamento em um Ponto

Considere os dois indivduos abaixo, cada um com 8 bits (7 at 0).


Considere um ponto de corte no bit 5.

Pais Filhos

10110111 10100010
X X
01100010 01110111

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 83 / 155

Algoritmo de Cruzamento

Entrada: Cromossomos pais b1 e b2


Sada: Cromossomos filhos ~ b1 e ~
b2
incio
/* somos como nossos pais */
~
b1 = b1
~
b2 = b2
se rand() < pc ento
m = GerarMascaraBinaria()
para i = 0 at i < n faa
se m(i) = 1 ento
/* Troca bits */
~b1 (i) = b2 (i)
~b2 (i) = b1 (i)
fim se
fim para
fim se
fim

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 84 / 155


Gerao de Mscara em Cruzamentos com um Ponto

Sada: Mscara m para cruzamento


incio
// Seleciona ponto de cruzamento entre 0 e n 1
c = rand(0, n 1)
// Zera n bits da mscara
m(i) = 0, i = 0 . . . n 1
para i = c + 1 at i < n faa
m(i) = 1
fim para
fim

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 85 / 155

Cruzamento em dois pontos I

Existem alguns esquemas interessantes que o cruzamento em um


ponto no consegue preservar.
Considere que a soluo de um problema, codificada em 8 bits tem o
seguinte esquema:
1******1
Um operador de cruzamento em um ponto ir separar estes bits.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 86 / 155


Cruzamento em dois pontos II

Pais Filhos

10|0010 |11 10|0100 |11


X X

11|0100 |01 11|0010 |01

Neste exemplo podemos preservar os esquemas 10|****|11 e


11|****|01.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 87 / 155

Gerao de Mscara em Cruzamentos com dois Pontos

Sada: Mscara m para cruzamento


incio
// Seleciona primeiro ponto de cruzamento entre 0 e n 1
c1 = rand(0, n 1)
// Seleciona segundo ponto de cruzamento entre 0 e n 1
c2 = rand(0, n 1)
// Zera n bits da mscara
m(i) = 0, i = 0 . . . n 1
para i = c1 + 1 at c2 faa
m(i) = 1
fim para
fim

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 88 / 155


Cruzamento Uniforme

Uma mscara com n bits criada aleatoriamente.


pc a probabilidade de troca dos bits.
Se pc = 0.5 tem cada bit tem uma chance igual de ser trocado.
Algoritmo para gerar a mscara no cruzamento uniforme.

incio
//Zera os n bits da mscara
m(i) = 0, i = 0 . . . n 1
para i = 0 at i < n faa
se rand() pc ento
m(i) = 1
fim se
fim para
fim

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 89 / 155

Exemplo de Cruzamento Uniforme

Pais Mscara Filhos

10110111 10110110
00101011
01100010 01100011

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 90 / 155


Representao em Ponto Flutuante

Nmeros em ponto flutuante so usados para representar os indivduos.


Esta forma pode ser mais rpida e mais precisa.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 91 / 155

Operador de Cruzamento I

Considerar dois pais x1 e x2 .


Gerar trs candidatos:
x1 + x2 .
1.5x1 0.5x2 .
0.5x1 + 1.5x2 .
Escolher os dois melhores candidatos.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 92 / 155


Operador de Cruzamento II

Considerar dois pais x1 e x2 .


x2 deve ser melhor que x1 , ou seja f (x2 ) > f (x1 ) se for para achar
mximo de f .
xi = rand()(x2 x1 ) + x2
~
Operador direcional, sempre ~
xi > x2 .

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 93 / 155

Operador de Cruzamento III - Cruzamento Aritmtico

Este um operador que combina vrios pais. Vamos considerar l pais.

l1
X
xi =
~ k x k
k=0

onde
l1
X
k = 1
k=0

No caso de l = 2 temos ~
xi = x1 + (1 )x2 .
Se = 0.5 ento o filho a mdia aritmtica dos dois valores.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 94 / 155


Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 95 / 155

Por que?

Filhos podem ultrapassar seus pais caso herdem as melhores


caractersticas de cada pai.
E se os indivduos atuais no contm os genes da soluo?
Ser que temos os genes para telepatia?
A ideia aumentar a diversidade gentica da populao.
Evita que a populao entre em estagnao.
O valor da probabilidade da mutao deve ser muito baixo para evitar
que boas solues sejam muito distorcidas.
Cuidado deve ser tomado para evitar que a mutao gere um
cromossomo invlido.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 96 / 155


Problemas

Mutao capaz de alterar os cromossomos gerados por cruzamento.


Para representaes binrias a troca faz com que o valor passe de 0(1)
para 1(0).
A maneira mais comum trocar o valor do gene com uma
probabilidade baixa (taxa de mutao) pm .
Cada gene do cromossomo deve ser testado para verificar se pode
ocorrer uma mutao.
O valor da probabilidade da mutao deve ser muito baixa para evitar
que boas solues sejam muito distorcidas.
A probabilidade que um indivduo xi de n genes sofra mutao igual

P(xi ) = 1 (1 pm )n

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 97 / 155

Mutaes em binrios

Uniforme: posies de bits so escolhidas e estes bits so


complementados ou no com um probabilidade pm .
Ordenadamente: dois pontos do cromossomo sao escolhidos aleatoriamente
e somente os bits entre estes dois limites podem sofrem
mutao.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 98 / 155


Algoritmo para Mutao Uniforme

Entrada: Novo indivduo ~ bi



Sada: Novo indivduo b i aps sofrer mutao uniforme
incio
para j = 0 at n 1 faa
se rand() pm ento
// complementa bit
i (j)
bi (j) = b
fim se
fim para
fim

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 99 / 155

Algoritmo para Mutao Ordenada

Entrada: Novo indivduo ~ bi



Sada: Novo indivduo b i aps sofrer mutao uniforme
incio
// Seleciona primeiro ponto de mutao entre 0 e n 1
t1 = rand(0, n 1)
// Seleciona segundo ponto de mutao entre 0 e n 1
t2 = rand(0, n 1)
para j = t1 at t2 faa
se rand() pm ento
// complementa bit
i (j)
bi (j) = b
fim se
fim para
fim

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 100 / 155


Mutao Uniforme em Representaes Ponto Flutuante

xi + rand(0, xmax,i xi ) if rand() 0.5



xi =
xi rand(0, xi xmin,i ) if rand() > 0.5

Entrada: Novo indivduo xi


Sada: Novo indivduo xi aps sofrer mutao uniforme
incio
// Gera um nmero randmico entre 0 e 1.
t = rand()
se t 0.5 ento
xi = xi + rand(0, xmax,i xi )
seno
xi = xi rand(0, xi xmin,i )
fim se
fim

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 101 / 155

Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 102 / 155
Condies de Parada I

Limite de Geraes: o algoritmo para quando um nmero de geraes


predefinido atingido.
Limite de Tempo: o algoritmo para quando um tempo mximo predefinido
foi ultrapassado.
Limite de Aptido: o algoritmo para quando uma soluo aceitvel for
encontrada. Considere que x (t) representa um valor
aceitvel de soluo, se f (xi (t)) kf (x (t)) k o algoritmo
pode parar. Se o valor de for muito pequeno ento o
algoritmo pode no terminar.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 103 / 155

Condies de Parada II

Sem melhor: Se durante um nmero determinado de geraes nenhum


indivduo supera o melhor atual ento o algoritmo pode ser
interrompido.
Sem mudanas: Se durante um nmero determinado de geraes no h
mudanas na informao contida nos gentipos o algoritmo
pode parar.
Soluo no satisfatria: Se o melhor indivduo encontrado no agrada
ento alternativas podem ser procuradas.
Aumentar a taxa de mutao para expandir o espao de
explorao do algoritmo e tentar sair do possve mnimo
local.
Aplicar a tcnica do dilvio e destruir a populao atual
comeando do zero.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 104 / 155


Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 105 / 155

Paralelismo

Algoritmos genticos so facilmente paralelizveis.


Trs categorias principais podem ser identificadas:
Populaes nicas com avaliao de aptido sendo distribuda entre
vrios processadores.
Populaes nicas com cada indivduo avaliado por um processador.
Multipopulaes ou algoritmos genticos em ilhas.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 106 / 155


Ilhas

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 107 / 155

Ilhas

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 108 / 155


Ilhas

Mltiplas populaes so usadas, cada uma podendo ser resolvida em


paralelo.
Informao trocada entre populaes com uma poltica de migrao
definida.
Este mtodo tambm pode ser executado serialmente.
Seleo, cruzamento e mutao ocorrem independentemente nas
populaes das ilhas.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 109 / 155

Polticas de Migrao

Topologia da comunicao entre as ilhas.


Populaes isoladas dificultam troca de informaes
Permitem aparecimento de mltiplas solues.
Comunicao facilitada pode levar a convergncia prematura.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 110 / 155


Topologias

Exemplo simples: um anel.


Trocas entre vizinhos.
Trocas dinmicas
Origem e destino so encontrados probabilisticamente (por exemplo,
torneios).
Polticas de aceitao de migrantes so possveis.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 111 / 155

Taxa de migrao

Determina a frequncia da migrao.


Tambm necessrio determinar quando a migrao ir ocorrer.
Migrao usualmente ocorre quando cada populao convergiu.
Aps a troca de indivduos todas as populaes so reiniciadas.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 112 / 155


Seleo e Substituio

Quem ir migrar?
Quem ser substitudo?
Um bom migrante substitui um indivduo ruim.
Um bom migrante substitui um indivduo qualquer.
Um migrante qualquer substitui um indivduo ruim.
Um migrante qualquer substitui um indivduo qualquer.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 113 / 155

Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 114 / 155
Algoritmos Genticos Geracionais

Nos algoritmos mostrados at agora toda uma gerao de indivduos


substituda na fase de reproduo.
Este tipo de estratgia para reposio de indivduos chamada
geracional.
Algoritmos Genticos que empregam esta estratgia so chamados
Algoritmos Genticos Geracionais (AGG).
Isto no o que normalmente ocorre na natureza.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 115 / 155

Algoritmos Genticos de Estado Estacionrio

Nos algoritmos genticos de estado estacionrio (AGEE) h


cohabitao entre indivduos de geraes diversas.
Uma vez que um indivduo gerado e sofre mutao ocorre uma
deciso sobre entre a sobrevivncia do novo indivduo e algum da
populao atual.
O grau de cohabitao chamado de diferena entre geraes.
Isto no o que normalmente ocorre na natureza.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 116 / 155


Estratgias de Substituio

Pior: o novo indivduo substitui o pior indivduo da populao.


Aleatrio: o novo indivduo substitui um indivduo escolhido
aleatoriamente da populao atual.
Torneio da Morte: um grupo de indivduos selecionado aleatoriamente e
o pior indivduo deste grupo substitudo.
Torneio com Dupla: dois indivduos so selecionados e o pior indivduo
substitudo com probabilidade, 0.5 ps 1.
Substitui o mais Antigo: Substituir o indivduo mais antigo da populao.
Esta estratgia tem o inconveniente de ter alta probabilidade
de substituir um dos melhores.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 117 / 155

Estratgias de Substituio

Seleo Conservadora: Combina a substituio do mais antigo com o


torneio com duplas. Nesta estratgia ocorre um torneio entre
dois indivduos em que um deles sempre o mais antigo e o
pior substitudo pelo novo indivduo. Isto garante que o
mais antigo no ser substitudo se for o melhor de todos.
Pai-Filho: Uma estratgia de seleo qualquer usada para decidir se o
filho substitui um dos pais.
Elitismo: As estratgias acima podem usar elitismo para evitar que os
melhores indivduos so excludos do processo de substituio.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 118 / 155


O Algoritmo Estado Estacionrio

incio
Gera populao inicial P
Avalie cada indivduo da populao
t=0
enquanto condio de parada no satisfeita faa
Seleciona pais a partir de P
Recombine pais e gere filho
Aplique mutao no filho
Selecione indivduo a ser substitudo
Insira filho em P
t =t+1
fim enqto
Retorne melhor indivduo de P como soluo
fim

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 119 / 155

Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 120 / 155
Exemplo

Considere o problema de achar o mximo da funo


y = sin(10 x) sin(x).
Parmetros:
Populao = 20
Geraes = 30
Probabilidade de cruzamento=0.85
Probabilidade de mutao = 0.01
Bits para codificao = 8
Ex: ./ex1/roda.m

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 121 / 155

Representao

Usaremos um vetor binrio de 8 bits para representar os valores reais


da varivel x.
O domnio da varivel x = [0 . . . 3] tem comprimento 3 e escolhemos
uma representao com 8 bits.
8 bits dividem o domnio em 281 fatias
A converso de vetor binrio para real se faz em dois passos:
Converte o vetor binrio da base 2 para 10 (valor x).
Acha o valor de x:
x = 0 + x (3/(28 1))

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 122 / 155


Representao: exemplo

Considere x= 00010001.
Portanto: x= 17.
Logo: x = 0 + 17 (3/255) = 0.2

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 123 / 155

Populao inicial

Considere o tamanho da populao igual a 20.


Gerar aleatoriamente 20 nmeros binrios com 8 bits.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 124 / 155


Exemplo de populao inicial

Geracao: 1 Melhor: 01111111 > 0.69179 Media: 0.10544


1
y = sin(10x) * sin(x)
0.8

2 1
0.6
3
0.4 4
5 6
8 7
0.2
11 9 13 10
12
0
14 15
y

0.2

0.4 16 18 17
19
0.6

0.8
20
1
0 0.5 1 1.5 2 2.5 3 3.5
x

Figura: Exemplo de populao inicial.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 125 / 155

Exemplo de final ruim

Geracao: 30 Melhor: 01111101 > 0.83837 Media: 0.51607


1
y = sin(10x) * sin(x)
0.8 3
2
1
0.6 10
9
8
7
6
5
4
15
14
13
12
11
16
0.4 17
0.2
18
0
y

0.2 19
0.4 20
0.6

0.8

1
0 0.5 1 1.5 2 2.5 3 3.5
x

Figura: Exemplo de final ruim.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 126 / 155


Evoluo at final ruim

0.8

0.6

0.4

0.2
Fitness

0.2

0.4

0.6 Best
Average
0.8
Poorest
1
0 5 10 15 20 25 30
Generations

Figura: Evoluo at final ruim.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 127 / 155

Exemplo de final bom

Geracao: 30 Melhor: 01111001 > 0.98442 Media: 0.53111


1
13
2 y = sin(10x) * sin(x)
0.8 8
7 4
6
5
0.6
10
9
12
11
0.4
15
14
13
0.2 16
0
17 18
y

0.2
20
19
0.4

0.6

0.8

1
0 0.5 1 1.5 2 2.5 3 3.5
x

Figura: Exemplo de final bom.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 128 / 155


Evoluo at final bom

0.8

0.6

0.4

0.2
Fitness

0
Best
0.2
Average

0.4 Poorest

0.6

0.8

1
0 5 10 15 20 25 30
Generations

Figura: Evoluo at final bom.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 129 / 155

Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 130 / 155
Elitismo

Modificao no algoritmo de gerao da populao.


Os n melhores indivduos de cada gerao so levados para a prxima
gerao.
Por exemplo, em uma populao de p indivduos com elitismo n
somente p n indivduos precisam ser gerados por cruzamentos.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 131 / 155

Tabela de elitismo

Elitismo = 2.

Indivduo Ao
1 Mantido
2 Mantido
3 Livre para cruzamento
4 Livre para cruzamento
5 Livre para cruzamento
6 Livre para cruzamento
7 Livre para cruzamento
8 Livre para cruzamento

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 132 / 155


Exemplo com elitismo

Populao = 20, Elitismo = 2.

Geracao: 30 Melhor: 01111000 > 0.98719 Media: 0.97313


1
11
9
8
7
6
5
4
3
2
1
16
15
14
13
12
170
0.8
20
19
18 y = sin(10x) * sin(x)

0.6

0.4

0.2

0
y

0.2

0.4

0.6

0.8

1
0 0.5 1 1.5 2 2.5 3 3.5
x

Figura: Exemplo com elitismo.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 133 / 155

Evoluo com elitismo

0.8

0.6

0.4

0.2
Fitness

0
Best
0.2
Average

0.4 Poorest

0.6

0.8

1
0 5 10 15 20 25 30
Generations

Figura: Evoluo com elitismo.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 134 / 155


Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 135 / 155

Funo ga

Encontra o mnimo de uma funo usando algoritmos genticos.


Sintaxe bsica:
x = ga(fitnessfcn, nvars)
Encontra um mnimo x local sem restries, sujeito a funo
fitnessfcn.
nvars o nmero de variveis da funo.
A funo objetivo, fitnessfcn, aceita um vetor x de tamanho 1 por
nvars e retorna um escalar avaliado no ponto x.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 136 / 155


Funo ga completa

x = ga(fitnessfcn, nvars, A, b, Aeq, neq, LB, UB, nonlcon, options)


Restries: A x b, A tem tamanho m nvars e b vetor de
comprimento m.
Igualdades lineares: Aeq x = beq Aeq tem tamanho r nvars e beq
vetor de comprimento r .
Limites: LB e UB limites superiores e inferiores das variveis x.
Restries no lineares definidas em nonlincon
Opes: estrutura options com diversos parmetros que definem como
o algoritmo ser executado. Esta estrutura pode ser criada com a
funo gaoptimset.
Rodar ex1cMatlab.m

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 137 / 155

Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 138 / 155
Aprendendo estratgia

O dilema dos prisioneiros.


Dois prisioneiros em celas diferentes.
Impossvel se comunicarem.
Cada um deles pode acusar o outro (A) ou ficar calado/cooperar (C).
Resultados em Michalewicz apud Axelrod

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 139 / 155

Punies Prmios

Jogador 1 Jogador 2 Pontos J1 Pontos J2 Comentrio


Acusa Acusa 1 1 Punio
Acusa Coopera 5 0 Tentao
Coopera Acusa 0 5 Tentao
Coopera Coopera 3 3 Prmio

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 140 / 155


O dilema

Cada um dos prisioneiros deve decidir se deve cooperar com o outro


prisioneiro ou trair e procurar uma pena menor.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 141 / 155

Como jogar?

Jogo entre dois jogadores.


Em cada jogada os jogadores decidem o que fazer.
Pontos so atribudos de acordo com a tabela.
Aps um certo nmero de jogadas, o jogador com mais pontos vence.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 142 / 155


Representando as estratgias I

Considerar estratgias determinsticas.


Considerar os resultados das trs ltimas jogadas para decidir o que
fazer.
Desde que h 4 possibilidades temos 4x4x4=64 histrias diferentes.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 143 / 155

Representando as estratgias II

64 bits indicam o que fazer para cada uma histria possvel (acusar ou
cooperar)
Podemos usar seis bits para representar as trs jogadas iniciais
(imaginrias) para a primeira jogada.
Total de 70 bits.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 144 / 155


Representando as estratgias III

Possvel cromossomo: AACCA...ACC


Considerando o bit mais direita como a estratgia 1 (= C cooperar)
e o mais esquerda como estratgia 70 (=A acusar).
A estratgia 3 tem como prxima jogada A=acusar
Esta estratgia pode estar representando a histria: CC; AC; CA

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 145 / 155

Algoritmo I

Escolha uma populao inicial. Cada jogador recebe uma cadeia


aleatria de bits (As e Cs), representando uma estratgia.
Teste cada jogador para testar sua eficcia. O resultado de cada
jogador a mdia de todos os jogos.
Selecione os jogadores que iro reproduzir.
Um jogador mediano recebe um parceiro; um jogador acima de um
desvio padro acima da mdia recebe dois; um ruim nada.
Os jogadores so casados e usa-se mutao.
Assim temos uma nova gerao.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 146 / 155


Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 147 / 155

Ambientes Dinmicos

Otimizao de uma funo que varia com o tempo.


Aptido varia com tempo.
Considerar variaes suaves.
Reavaliaes dos indivduos no so desejveis pois so caras.
Soluo Proposta (Vinicius Santos): Algoritmos Genticos Estado
Estacionrio Adaptativo.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 148 / 155


Jogos como Ambientes Dinmicos

Considere a criao de um NPC (Non Player Character) para jogar


contra um humano.
Aptido do humano varia com tempo.
Considerar variaes suaves.
O NPC dever se adaptar a evoluo do jogador.
Reavaliaes dos indivduos no so desejveis pois so caras.
Soluo Proposta (Vinicius Santos): Algoritmo Gentico de Estado
Estacionrio Adaptativo.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 149 / 155

Modificaes

Alterao da funo de aptido.


Componente do tempo passa influenciar a soluo.
A avaliao de cada indivduo vai variar com o tempo.
Comentrio sobre notao.
Funo de avaliao antes: s (xi (t)), a funo de avaliao depende
somente do indivduo xi (t). O t apenas denota a gerao.
Funo de avaliao adaptativa dependente do tempo: sa (xi (t), t), a
funo de avaliao depende do indivduo xi (t) e do tempo t.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 150 / 155


Modificaes

sa (xi (t), t) = s (xi (t))h(ti , t)


O valor da avaliao vai ser alterado de acordo com uma funo do
tempo.
Uma possibilidade h(ti , t) = btti onde ti o tempo em que o
indivduo foi inserido na populao.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 151 / 155

Objetivos

Reduzir a chance de um indivduo ruim se reproduzir.


Reutilizar no novo contexto, a informao gerada anteriormente sobre
os indivduos da populao.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 152 / 155


Modelagem do Jogador Humano

r (t) = 1 (1 ri )e t
onde ri habilidade inicial do jogador e modela a velocidade com que o
jogador aprende.

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 153 / 155

Figura: Aprendizado Jogador

Section Summary
1 Introduo
2 Termos e Definies
3 Algoritmo Gentico
4 Codificao
5 Populao
6 Seleo
7 Cruzamento
8 Mutao
9 Condies de Parada
10 Island Genetic Algorithms
11 Separao de Geraes
12 Um exemplo simples
13 Elitismo
14 Exemplo simples com Matlab
15 Outro exemplo
16 Ambientes Dinmicos
17 O FIM
Adriano Cruz (DCC-UFRJ) AGs Maio 2013 154 / 155
The End

Adriano Cruz (DCC-UFRJ) AGs Maio 2013 155 / 155

Você também pode gostar