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

AGs

Maio 2013

2 / 155

Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
O FIM
Adriano Cruz (DCC-UFRJ)

Section Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
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

Maio 2013

6 / 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

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

AGs

Maio 2013

12 / 155

Section Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
O FIM
Adriano Cruz (DCC-UFRJ)

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

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

C1

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
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

Adriano Cruz (DCC-UFRJ)

Gene Y

AGs

Gene Z

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

AGs

Maio 2013

32 / 155

Section Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
O FIM
Adriano Cruz (DCC-UFRJ)

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.
Neste caso a mxima acurcia

20
.
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.
x=

n1
X

bi 2n1i

i =0

x = (b)
x = xmin + x

Adriano Cruz (DCC-UFRJ)

AGs

(xmax xmin )
(2n 1)

Maio 2013

37 / 155

Maio 2013

38 / 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
x1 = 2 + 3
x2 = 0 + 51

Adriano Cruz (DCC-UFRJ)

2(2)
26 1
10
=
26 1

= 1.809
0.809

AGs

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

0
1
2
3
4
5
6
7

Binrio
000
001
010
011
100
101
110
111

Adriano Cruz (DCC-UFRJ)

Gray
000
001
011
010
110
111
101
100

AGs

Maio 2013

41 / 155

Maio 2013

42 / 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

Outras Representaes

Reais.
Inteiros.
Permutaes.
Estados Finitos.
rvores.

Adriano Cruz (DCC-UFRJ)

AGs

Maio 2013

43 / 155

AGs

Maio 2013

44 / 155

Section Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
O FIM
Adriano Cruz (DCC-UFRJ)

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

AGs

Maio 2013

50 / 155

Section Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
O FIM
Adriano Cruz (DCC-UFRJ)

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
b1
b2
b3

= 0001
= 0011
= 0100
= 0110

com
com
com
com

y
y
y
y

=1
=9
= 16
= 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 :
f (xi (t)) =

1
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]
f (xi (t)) =

Adriano Cruz (DCC-UFRJ)

1 + fmax

1
f (xi (t))

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

Maio 2013

60 / 155

Criando a Roleta
Calcular a avaliao de cada indivduo,
f (xi (t))
Calcular a avaliao total da populao,
S=

n1
X

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


s (xi (t)) =

n1
X

s (xl (t))

l=0

Adriano Cruz (DCC-UFRJ)

AGs

Exemplo de Roleta

x
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5

f (xi (t))
5.00
5.75
6.00
5.75
5.00
3.75
2.00
-0.25

f (xi (t)) fmin


5.5
6.25
6.50
6.25
5.50
4.25
2.50
0.25
37.00

s (xi (t))
0.149
0.169
0.176
0.169
0.149
0.115
0.068
0.007

s (xi (t))
0.149
0.318
0.493
0.662
0.811
0.926
0.993
1.000

Obs. Considere que fmin = 0.5

Adriano Cruz (DCC-UFRJ)

AGs

Maio 2013

61 / 155

AGs

Maio 2013

62 / 155

A Roleta

x
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5

s (xi (t))
0.149
0.169
0.176
0.169
0.149
0.115
0.068
0.007

Adriano Cruz (DCC-UFRJ)

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
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5

f (xi (t))
5.00
5.75
6.00
5.75
5.00
3.75
2.00
-0.25

Adriano Cruz (DCC-UFRJ)

f (xi (t)) fmin


5.5
6.25
6.50
6.25
5.50
4.25
2.50
0.25
37.00

AGs

s (xi (t))
0.149
0.169
0.176
0.169
0.149
0.115
0.068
0.007

s (xi (t))
0.149
0.318
0.493
0.662
0.811
0.926
0.993
1.000

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).
Se h n indivduos a probabilidade disto ocorrer

Adriano Cruz (DCC-UFRJ)

1
.
nk

AGs

Maio 2013

69 / 155

Maio 2013

70 / 155

Comparando Probabilidades de Escolha I


Vamos considerar o exemplo abaixo.
Indivduo
x1
x2
x3
x4
x5
x6
x7
x8
total

Adriano Cruz (DCC-UFRJ)

f (xi (t))
180
120
8000
120
80
10000
10
60
18750

AGs

s (xi (t)) (em %)


0.9
0.6
43.1
0.6
0.4
53.1
0.05
0.3

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.
Portanto, temos a probabilidade de

15
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
i (t))
2 + 2( 1) fc (x
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

AGs

Maio 2013

78 / 155

Section Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
O FIM
Adriano Cruz (DCC-UFRJ)

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

01100010

01110111

Adriano Cruz (DCC-UFRJ)

AGs

Maio 2013

83 / 155

AGs

Maio 2013

84 / 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)

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

Filhos

Pais
10|0010

|11

11|0100

10|0100

|11

|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

10110111

Filhos
10110110

00101011
01100011

01100010

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

Maio 2013

92 / 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

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.


~
xi =

l1
X

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
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 =

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


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

AGs

Maio 2013

102 / 155

Section Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
O FIM
Adriano Cruz (DCC-UFRJ)

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
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

AGs

Maio 2013

108 / 155

Ilhas

Adriano Cruz (DCC-UFRJ)

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
Um
Um
Um

bom migrante substitui um indivduo ruim.


bom migrante substitui um indivduo qualquer.
migrante qualquer substitui um indivduo ruim.
migrante qualquer substitui um indivduo qualquer.

Adriano Cruz (DCC-UFRJ)

AGs

Maio 2013

113 / 155

AGs

Maio 2013

114 / 155

Section Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
O FIM
Adriano Cruz (DCC-UFRJ)

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

AGs

Maio 2013

120 / 155

Section Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
O FIM
Adriano Cruz (DCC-UFRJ)

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

Maio 2013

124 / 155

Populao inicial

Considere o tamanho da populao igual a 20.


Gerar aleatoriamente 20 nmeros binrios com 8 bits.

Adriano Cruz (DCC-UFRJ)

AGs

Exemplo de populao inicial


Geracao: 1 Melhor: 01111111 > 0.69179 Media: 0.10544
1
y = sin(10x) * sin(x)
0.8
0.6
0.4
0.2

11
14

2
4
8

3
5

9
15

6
7
13 10
12

0.2

16
19

0.4

18 17

0.6
0.8
1

20
0

0.5

1.5

2.5

3.5

Figura: Exemplo de populao inicial.

Adriano Cruz (DCC-UFRJ)

AGs

Maio 2013

125 / 155

Maio 2013

126 / 155

Exemplo de final ruim


Geracao: 30 Melhor: 01111101 > 0.83837 Media: 0.51607
1
y = sin(10x) * sin(x)

3
2
1

0.8

10
9
8
7
6
5
4
15
14
13
12
11
16
17

0.6
0.4
0.2

18

19
20

0.2
0.4
0.6
0.8
1

0.5

1.5

2.5

3.5

Figura: Exemplo de final ruim.

Adriano Cruz (DCC-UFRJ)

AGs

Evoluo at final ruim

1
0.8
0.6
0.4

Fitness

0.2
0
0.2
0.4
0.6

Best
Average

0.8

Poorest
1

10

15
Generations

20

25

30

Figura: Evoluo at final ruim.

Adriano Cruz (DCC-UFRJ)

AGs

Maio 2013

127 / 155

Maio 2013

128 / 155

Exemplo de final bom


Geracao: 30 Melhor: 01111001 > 0.98442 Media: 0.53111

13
2
8
7

1
0.8

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

4
6
5
10
9
12
11

0.6

15
14
13

0.4

16

0.2

17

0
0.2

18

20
19

0.4
0.6
0.8
1

0.5

1.5

2.5

3.5

Figura: Exemplo de final bom.

Adriano Cruz (DCC-UFRJ)

AGs

Evoluo at final bom

1
0.8
0.6
0.4

Fitness

0.2
0
Best
0.2

Average
Poorest

0.4
0.6
0.8
1

10

15
Generations

20

25

30

Figura: Evoluo at final bom.

Adriano Cruz (DCC-UFRJ)

AGs

Maio 2013

129 / 155

AGs

Maio 2013

130 / 155

Section Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
O FIM
Adriano Cruz (DCC-UFRJ)

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

Maio 2013

132 / 155

Tabela de elitismo

Elitismo = 2.
Indivduo
1
2
3
4
5
6
7
8

Adriano Cruz (DCC-UFRJ)

Livre
Livre
Livre
Livre
Livre
Livre

Ao
Mantido
Mantido
para cruzamento
para cruzamento
para cruzamento
para cruzamento
para cruzamento
para cruzamento

AGs

Exemplo com elitismo


Populao = 20, Elitismo = 2.
Geracao: 30 Melhor: 01111000 > 0.98719 Media: 0.97313

11
9
8
7
6
5
4
3
2
1
16
15
14
13
12
0
17
20
19
18

1
0.8

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

0.6
0.4
0.2
y

0
0.2
0.4
0.6
0.8
1

0.5

1.5

2.5

3.5

Figura: Exemplo com elitismo.


Adriano Cruz (DCC-UFRJ)

AGs

Maio 2013

133 / 155

Maio 2013

134 / 155

Evoluo com elitismo

1
0.8
0.6
0.4

Fitness

0.2
0
Best
0.2

Average
Poorest

0.4
0.6
0.8
1

10

15
Generations

20

25

30

Figura: Evoluo com elitismo.

Adriano Cruz (DCC-UFRJ)

AGs

Section Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
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

AGs

Maio 2013

138 / 155

Section Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
O FIM
Adriano Cruz (DCC-UFRJ)

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
Acusa
Acusa
Coopera
Coopera

Jogador 2
Acusa
Coopera
Acusa
Coopera

Adriano Cruz (DCC-UFRJ)

Pontos J1
1
5
0
3

AGs

Pontos J2
1
0
5
3

Comentrio
Punio
Tentao
Tentao
Prmio

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
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

Maio 2013

154 / 155

Figura: Aprendizado Jogador

Section Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Introduo
Termos e Definies
Algoritmo Gentico
Codificao
Populao
Seleo
Cruzamento
Mutao
Condies de Parada
Island Genetic Algorithms
Separao de Geraes
Um exemplo simples
Elitismo
Exemplo simples com Matlab
Outro exemplo
Ambientes Dinmicos
O FIM
Adriano Cruz (DCC-UFRJ)

AGs

The End

Adriano Cruz (DCC-UFRJ)

AGs

Maio 2013

155 / 155