Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ [email protected].

51
Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano @ nce . ufrj .br

Transcript of Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ [email protected].

Page 1: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

Algoritmos Genéticos

Adriano Joaquim de O Cruz

©2003

NCE/UFRJ

[email protected]

Page 2: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 2

Sumário

Introdução Aplicações Operadores Exemplos

Page 3: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 4: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 5: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 6: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 7: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 8: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 9: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 10: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

Termos e Definições

Page 11: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 12: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 13: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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)

Page 14: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 14

Seres Vivos - Cromossomos

Page 15: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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).

Page 16: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 17: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@2002 Adriano Cruz NCE e IM - UFRJ Algoritmos Genéticos 17

Seres Vivos - Reprodução

Page 18: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

Na Simulação

Page 19: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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”.

Page 20: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 21: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 22: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 23: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 24: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 25: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 26: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 27: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 28: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 29: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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).

Page 30: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 31: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 32: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 33: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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?

Page 34: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 35: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 36: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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))

Page 37: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 38: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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))

Page 39: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 40: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 41: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 42: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 43: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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).

Page 44: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 45: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 46: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 47: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 48: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.

Page 49: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 50: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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

Page 51: Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ adriano@nce.ufrj.br.

@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.