algoritmos genéticos adriano joaquim de o cruz ©2003 nce/ufrj [email protected]
TRANSCRIPT
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 2
Sumário
Introdução Aplicações Operadores Exemplos
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 3
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 4
O Problema? Existem problemas para os quais algoritmos
rápidos 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 5
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 6
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 7
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 8
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 9
Adaptação? Não seria mais apropriado
falar em melhor adaptação ao ambiente
Na natureza sobrevivem não os mais evoluídos e sim os mais adaptados a um determinado ambiente.
Termos e Definições
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 11
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 12
MecanismosNa natureza a competição por recursos escassos em ambientes hostis ou que se alteram 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 13
Seres Vivos - Cromossomos
Cadeias organizadas de ADN (DNA) e proteínas encontrados nas células
Contém informações que permitem a geração de um novo ser.
É uma peça de ADN contendo diversos genes, elementos reguladores e outras sequências de nucleotídeos.
A palavra cromossomo vem do grego chroma (cor) e soma (corpo) devido a propriedade de poder ser tingido facilmente. (fonte wikipedia)
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 14
Seres Vivos - Cromossomos
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 15
Seres Vivos - Genes Responsáveis por características específicas de cada
ser.
Podem assumir diferentes valores (alelos).
Diferentes combinações de valores (genótipos) levam a diferenças em características do ser (fenótipos).
Por exemplo, dois genes para olhos castanhos (fenótipo castanho), dois genes para olhos verdes (fenótipo verde), um gene para olhos verdes e outro para olhos castanhos (depende de como eles trabalham juntos).
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 16
Seres Vivos - Reprodução
Cromossomos são encontrados em pares. Indivíduos possuem duas cópias de seus genes
(reprodução sexuada). Gametas produzidos durante a fertilização possuem
um representante de cada par. Gametas de dois indivíduos se unem para formar
um novo indivíduo. Durante a produção dos gametas
– Recombinação: troca de parte das cadeias de um par– Mutação: alteração em uma ou mais posições dos
cromossomos.
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 17
Seres Vivos - Reprodução
Na Simulação
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 19
Cromossomo
Indivíduos representam soluções potenciais em uma população.
Em AG um indivíduo é representado por um único “cromossomo”.
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 20
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 xGene x Gene yGene y Gene zGene z
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 21
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 22
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 23
Fluxo do AGInício
Gera População
Inicial
AvaliaSeleciona
PaisGeração
Atual
GeraFilhos
Mutação
Cruzamento
PróximaGeração
OK?Não
Aleatoriamente
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 24
Componentes de um AG Uma representação das soluções potenciais. Uma forma de criar a população inicial. Uma função de avaliação que faz o papel do
ambiente e ordena as soluções por um critério de qualidade.
Operadores genéticos que alteram a composição dos filhos gerados.
Valores para os vários parâmetros: tamanho da população, probabilidades de aplicação dos operadores, número de gerações etc.
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 25
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(f(xx,,yy,,zz)) e que x=3x=3, y=1y=1, z=0z=0 O cromossomo de 12 bits com genes
de 4 bits seria 001100110001000100000000
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 26
Codificação de Soluções 1
A codificação determina a resolução da solução.
Considere uma variável codificada em 1616 bits.
Considere que esta variável pode assumir valores entre 0 e 2 inclusive.
A codificação divide o intervalo [0,2] em 221616-1-1 pedaços.
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 27
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 28
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 29
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 30
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 31
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 32
Cruzamento 2
Considere os dois indivíduos abaixo, cada um com 8 bits (7 até 0).
Considere um ponto de corte no bit 5.
1011011011110111
0110110001000010
PaisPais
xx1011010001000010
0110111011110111
FilhosFilhos
xx
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 33
Cruzamento 3
Filhos podem ultrapassar seus paisultrapassar 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 34
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 35
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 36
Representação Usaremos um vetor binário de 8 bits para
representar os valores reais da variável x. O domínio da variável x ([0..3]) tem comprimento 3
e escolhemos uma representação com 8 bits. 8 bits dividem o domínio em 28-1 fatias A conversão de vetor binário para real se faz em
dois passos: Converte o vetor binário da base 2 para 10 (valor
x'). Acha o valor de x: x = 0 + x' * (3/(28 - 1))
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 37
Representação exemplo
Considere x' = 00010001 x' = 17 x = 0 + 17 * ( 3 / 255) = 0.2
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 38
Representação resumindo Precisamos de D casas decimais T é o tamanho do intervalo 2(n - 1) < T * 10D < 2n
n será o número de bits Exemplo: D = 6 e T = 3 2097152=22 1 < 3000000 < 22 2=4194304 Intervalo: x
1..x
2 ---- n bits
x = x1 + x' * (x
2/(2n-1))
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 39
Função e o máximo
0 0.5 1 1.5 2 2.5 3
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1234567891011121314151617181920
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 40
Evolução OK
0 5 10 15 20 25 30-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Generations
Fitn
ess
Best AveragePoorest
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 41
Função e máximo não OK
0 0.5 1 1.5 2 2.5 3
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1234567891011121314151617181920
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 42
Evolução
0 5 10 15 20 25 30-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
Generations
Fitn
ess
Best AveragePoorest
@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 43
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 44
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 45
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 46
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 47
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 48
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 49
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 50
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 51
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.