Algoritmos Genéticos
Adriano Joaquim de O Cruz
©2003
NCE/UFRJ
[email protected]
Sumário




Introdução
Aplicações
Operadores
Exemplos
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 2
Algoritmos Genéticos

Nas minhas investigações debaixo do
sol, vi ainda que a corrida não é para
os ágeis, nem a batalha para os
bravos, nem o pão para os prudentes,
nem a riqueza para os inteligentes,
nem o favor para os sábios: todos
estão à mercê das circunstâncias e da
sorte.
Eclesiastes 9,12
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 3
O Problema?




Existem problemas para os quais algoritmos
rápidos de solução não são conhecidos.
Encontrar a solução é buscar em um espaço
onde vivem potenciais soluções a que melhor
resolve o nosso problema.
Quando este espaço é muito grande encontrar
a melhor solução pode levar tempo demais
É possível obter soluções aproximadamente
ótimas usando algoritmos probabilísticos.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 4
Algoritmos Genéticos



Técnica prática e robusta de busca e
otimização
Baseados nos conceitos da seleção
natural
É um método
estocástico de busca
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 5
Exemplos de problemas



Encontrar o máximo (mínimo) de uma
função.
Encontrar um bom conjunto de regras
para um sistema nebuloso.
Encontrar o melhor agente para atuar
como jogador digital.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 6
A Metáfora


A metáfora que está por trás dos AGs é
a da seleção natural.
Na natureza, o problema de cada
espécie é o de encontrar as melhores
adaptações que a façam sobreviver em
um ambiente complicado, muitas vezes
hostil e que está sempre mudando.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 7
Evolução?


Há na natureza evolução no sentido de
melhoria?
Evolução pressupõe caminhar em
direção a um indivíduo ideal.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 8
Adaptação?

Não seria mais apropriado
falar em melhor adaptação
ao ambiente

@2002 Adriano Cruz
Na natureza sobrevivem
não os mais evoluídos e
sim os mais adaptados a
um determinado ambiente.
NCE e IM - UFRJ
Algoritmos Genéticos 9
Adaptação

O conjunto de características de um
indivíduo, que o distingue dos demais,
determina sua capacidade de
sobrevivência.

Estas características são determinadas
pelo seu material genético.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 10
Mecanismos



Na natureza a competição por recursos
escassos faz com que os mais aptos
sobrevivam e consigam se reproduzir.
Através da reprodução com parceiros os
genes destes indivíduos são então
transmitidos aos seus descendentes.
Este processo contínuo de seleção e
reprodução dos mais aptos pode conduzir a
indivíduos cada vez mais adaptados.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 11
Termos e Definições
Cromossomo



Usualmente, cada possível solução é
codificada como uma cadeia de bits, o
cromossomo ou genótipo.
Cada parametro codificado na solução
é chamado de um gene.
F(x,y,z)
Gene x
@2002 Adriano Cruz
Gene y
NCE e IM - UFRJ
Gene z
Algoritmos Genéticos 13
População


AGs mantém um conjunto de indivíduos
formando populações de soluções.
Indivíduos devem ser avaliados
segundo uma função de aptidão.
 Indivíduos
mais aptos
terão mais chances de
propagar sua
informação genética.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 14
Gerações



A cada geração o AG cria uma nova
população.
Esta criação de indivíduos é baseada
em operadores genéticos.
A evolução de uma geração para outra
é feita em três fases: avaliação da
aptidão, seleção dos mais aptos e
reprodução.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 15
Fluxo do AG
Início
Aleatoriamente
Gera
População
Inicial
Geração
Atual
Mutação
Avalia
Seleciona
Pais
Gera
Filhos
Próxima
Geração
Cruzamento
OK?
Não
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 16
Codificação de Soluções




A codificação transforma pontos no
espaço de soluções em cadeias de bits.
Codificações são maneiras de traduzir
o conhecimento sobre o problema para
o ambiente dos AGs.
Considere f(x,y,z) e que x=3, y=1, z=0
O cromossomo de 12 bits com genes
de 4 bits seria 001100010000
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 17
Codificação de Soluções 1




A codificação determina a resolução da
solução.
Considere uma variável codificada em
16 bits.
Considere que esta variável pode
assumir valores entre 0 e 2 inclusive.
A codificação divide o intervalo [0,2] em
216-1 pedaços.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 18
População Inicial



A população inicial é gerada
aleatoriamente.
Em algumas soluções várias
populações são criadas.
Estas populações podem evoluir
paralelamente de forma cooperativa ou
não.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 19
Avaliação da Aptidão


O primeiro passo após gerar uma
população de soluções e calcular a
aptidão de cada solução.
Em um problema de maximização de
funções esta avaliação significa
calcular o valor da função para cada
indivíduo.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 20
Seleção



Após a avaliação deve-se gerar uma
nova população a partir da atual.
A seleção escolhe que indivíduos
participarão deste processo.
A probabilidade de um indivíduo ser
selecionado é proporcional a sua
aptidão (método da roleta).
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 21
Cruzamento


Cruzamento e o operador genético
aplicado a pares selecionados de pais.
Deste cruzamento espera-se que as
boas características de prévias
gerações sejam passadas as próximas.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 22
Cruzamento 1

Cruzamentos em um ponto é o modo
mais comum.

Cruzamentos ocorrem com uma
probabilidade.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 23
Cruzamento 2


Considere os dois indivíduos abaixo,
cada um com 8 bits (7 até 0).
Considere um ponto de corte no bit 5.
Pais
Filhos
10110111
10100010
x
01100010
@2002 Adriano Cruz
x
01110111
NCE e IM - UFRJ
Algoritmos Genéticos 24
Cruzamento 3



Filhos podem ultrapassar seus pais
caso herdem as melhores
características de cada pai.
E se os indivíduos atuais não contém
os genes da solução?
Será que temos os genes para
telepatia?
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 25
Mutação




Mutação é capaz de gerar novos
cromossomos espontaneamente.
A maneira mais comum é trocar o valor de
um bit com uma probabilidade, geralmente,
igual a um valor baixo (taxa de mutação).
Evita que a população entre em estagnação.
Moradores de uma ilha no meio do oceano.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 26
Exemplo







Considere o problema de achar o
máximo da função y = sen(10*x)*sen(x)
Parâmetros:
População = 20
Gerações = 30
Probabilidade de cruzamento=1.0
Probabilidade de mutação = 0.01
Bits para codificação = 8
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 27
Função e o máximo
90
8
7
6
5
4
3
2
1
15
14
13
12
11
20
19
18
17
16
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
0
@2002 Adriano Cruz
0.5
1
1.5
NCE e IM - UFRJ
2
2.5
3
Algoritmos Genéticos 28
Evolução OK
1
Best
Average
Poorest
0.8
0.6
0.4
Fitness
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
@2002 Adriano Cruz
5
10
15
Generations
NCE e IM - UFRJ
20
25
30
Algoritmos Genéticos 29
Função e máximo não OK
0.8
20
1
9
8
7
6
5
4
19
18
17
16
15
14
13
12
11
20
3
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
0
@2002 Adriano Cruz
0.5
1
1.5
NCE e IM - UFRJ
2
2.5
3
Algoritmos Genéticos 30
Evolução
0.8
Best
Average
Poorest
0.6
0.4
Fitness
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
@2002 Adriano Cruz
5
10
15
Generations
NCE e IM - UFRJ
20
25
30
Algoritmos Genéticos 31
Aprendendo Estratégia




O dilema dos prisioneiros.
Dois prisioneiros em celas diferentes.
Impossível se comunicarem.
Cada um deles pode acusar o outro (A)
ou ficar calado/cooperar (C).
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 32
Punições x Prêmios
Jog 1
Jog 2
P1
P2
Comentário
Acusa
Acusa
1
1
Punição
Acusa
Coopera 5
0
Tentação
Coopera Acusa
0
5
Tentação
Coopera Copera
3
3
Prêmio
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 33
O Dilema

Cada um dos prisioneiros deve decidir
se deve cooperar com o outro
prisioneiro ou trair e procurar uma pena
menor.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 34
Como jogar?




Jogo entre dois jogadores.
Em cada jogada os jogadores decidem
o que fazer.
Pontos são atribuídos de acordo com a
tabela.
Após um certo número de jogadas, o
jogador com mais pontos vence.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 35
Representando as estratégias



Considerar estratégias determinísticas.
Considerar os resultados das três
últimas jogadas para decidir o que
fazer.
Desde que há 4 possibilidades temos
4x4x4=64 histórias diferentes.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 36
Representando as estratégias 1



64 bits indicam o que fazer para cada
uma história possível (acusar ou
cooperar)
Podemos usar seis bits para
representar as três jogadas iniciais
(imaginárias) para a primeira jogada.
Total de 70 bits.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 37
Representando as estratégias 2




Possível cromossomo: AACCA...ACC
Considerando o bit mais à direita
como a estratégia 1 (=C cooperar) e
o mais à esquerda como estratégia
70 (=A acusar).
A estratégia 3 tem como próxima
jogada A=acusar
Esta estratégia pode estar
representando a história: CC; AC; CA
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 38
Algoritmo



Escolha uma população inicial. Cada
jogador recebe uma cadeia aleatória de
bits (As e Cs), representando uma
estratégia.
Teste cada jogador para testar sua
eficácia. O resultado de cada jogador é
a média de todos os jogos.
Selecione os jogadores que irão
reproduzir
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 39
Algoritmo 1



Um jogador mediano recebe um
parceiro; um jogador acima de um
desvio padrão acima da média recebe
dois; um ruim nada.
Os jogadores são casados e usa-se
mutação.
Assim temos uma nova geração.
@2002 Adriano Cruz
NCE e IM - UFRJ
Algoritmos Genéticos 40
Download

Operações de Zadeh com Conjuntos Nebulosos