Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

58
1 Computação Evolutiva Computação Evolutiva Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP

Transcript of Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

Page 1: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

11Computação EvolutivaComputação Evolutiva

Computação Evolutiva

Eduardo do Valle Simões

Renato Tinós

ICMC - USP

Page 2: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

22Computação EvolutivaComputação Evolutiva

Principais Tópicos

Introdução Evolução Natural Computação Evolutiva Algoritmos Genéticos Aplicações Conclusão

Page 3: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

33Computação EvolutivaComputação Evolutiva

Introdução

http://www.formula-um.com/

Como otimizar soluções para um processo complexo com um grande número de variáveis?

Page 4: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

44Computação EvolutivaComputação Evolutiva

Evolução natural

A evolução natural pode ser vista como um processo de otimização no qual: Indivíduos e populações competem entre si por

recursosAlimentoÁguaAbrigo

Page 5: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

55Computação EvolutivaComputação Evolutiva

Evolução natural

(continuação) Indivíduos mais bem sucedidos na sobrevivência

e atração de um parceiro terão, relativamente, mais descendentes (espalham seus genes)

Indivíduos mal sucedidos geram poucos ou nenhum descendente

Page 6: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

66Computação EvolutivaComputação Evolutiva

Computação Evolutiva

Introdução Sistemas para a resolução de problemas que

utilizam modelos computacionais baseados na teoria da evolução natural

Pesquisas tiveram início na década de 50

Page 7: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

77Computação EvolutivaComputação Evolutiva

Algoritmos Genéticos (AGs)

Métodos adaptativos que podem ser utilizados para resolver problemas de busca e otimização São baseados nos processos genéticos de

organismos biológicosPopulações de soluções evoluem, ao longo das

gerações, de acordo com os princípios de seleção natural

Page 8: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

88Computação EvolutivaComputação Evolutiva

Algoritmos Genéticos

Desenvolvido por John Holland e sua equipe (popularizado por David Goldberg)

Objetivo: Desenvolver sistemas artificiais baseados nos

mecanismos dos sistemas naturais

Page 9: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

99Computação EvolutivaComputação Evolutiva

Algoritmos Genéticos

Podem “evoluir” soluções para problemas do mundo real Problemas devem ser adequadamente

codificados Deve haver uma forma de avaliar as soluções

apresentadas

Page 10: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

1010Computação EvolutivaComputação Evolutiva

Algoritmos Genéticos

População atual

Reprodução

Avaliação

Seleção

População inicial População final

Page 11: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

1111Computação EvolutivaComputação Evolutiva

Algoritmos Genéticos

Utilizam uma população de soluções candidatas (indivíduos)

Otimização ocorre em várias gerações A cada geração

Mecanismos de seleção selecionam os indivíduos mais aptos

Operadores de reprodução geram novos indivíduos

Page 12: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

1212Computação EvolutivaComputação Evolutiva

Algoritmos Genéticos

Cada indivíduo representa uma possível solução para um dado problema

A cada indivíduo é associado um escore de aptidão, que mede o quão boa é a solução que ele representa

Indivíduos mais aptos têm mais oportunidades de serem reproduzidos

Page 13: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

1313Computação EvolutivaComputação Evolutiva

Princípios básicos

Indivíduo Codificação Função de aptidão Reprodução

Page 14: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

1414Computação EvolutivaComputação Evolutiva

Indivíduo

Possível solução para um dado problema Também chamado de cromossomo ou string

Codificado como vetor de características População

Conjunto de indivíduos

Page 15: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

1515Computação EvolutivaComputação Evolutiva

Codificação

Cada indivíduo é codificado por um conjunto de parâmetros (genes) Genes podem assumir valores:

Binários (0; 1) Inteiros (-2; -1; 0 ; 1; 2; 3...) Reais (-2,33; 0; 3,45; 2,5 x 1024)

Parâmetros são combinados para formar strings ou vetores (cromossomos) Exemplo:

Xi = [ 2 1 8 0 -2 -4 1 ]

Page 16: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

1616Computação EvolutivaComputação Evolutiva

Codificação

Genótipo Conjunto de parâmetros representado por um

cromossomo

Fenótipo Produto da interação de todos os genes

Page 17: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

1717Computação EvolutivaComputação Evolutiva

Função de aptidão

Mede o grau de aptidão de um indivíduo

Aptidão = probabilidade do indivíduo sobreviver para a próxima geração

Ex. projeto de ponteMenor CustoMenor tempo de construçãoMaior capacidade de carga

Page 18: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

1818Computação EvolutivaComputação Evolutiva

Função de aptidão

É aplicada ao fenótipo do indivíduo O genótipo precisa ser decodificado,

recuperando o fenótipo associado

Cada aplicação tem sua própria função de aptidão

Page 19: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

1919Computação EvolutivaComputação Evolutiva

Reprodução

Permite obtenção de novos indivíduos

Utiliza operadores genéticos

Transformam a população Crossover (cruzamento ou recombinação) Mutação

Page 20: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

2020Computação EvolutivaComputação Evolutiva

Crossover

Recombinação de características dos pais durante a reprodução Permite que as próximas gerações herdem

essas características Funcionamento

Escolhe dois indivíduos e troca trechos dos cromossomos entre eles

Exploração rápida do espaço de busca

Page 21: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

2121Computação EvolutivaComputação Evolutiva

Crossover

Diversas variações Um ponto

Mais comum Dois pontos Multi-pontos Uniforme

Page 22: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

2222Computação EvolutivaComputação Evolutiva

Crossover 1 ponto

Filhos

10 0 0 0 11 0 10 00 1 1

10 0 0 0 110 1000 1 1

Pais

Pai 1 Pai 2

Filho A Filho B

Ponto de crossover

Page 23: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

2323Computação EvolutivaComputação Evolutiva

Crossover de 2 pontos

Filhos

10 0 0 0 11 0 10 00 1 1

10 0 0 00 1010 1 1

Pais

Pai 1 Pai 2

Filho A Filho B

0 1

Page 24: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

2424Computação EvolutivaComputação Evolutiva

Crossover uniforme

Filhos

10 0 0 0 11 0 10 00 1 1

10 0 110 0000 1 1

Pais

Pai 1 Pai 2

Filho A Filho B

Mascara: 0 1 0 1 0 0 0

1 0

Page 25: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

2525Computação EvolutivaComputação Evolutiva

Mutação

Introdução e manutenção da diversidade genética Aplicado a cada indivíduo após crossover

Altera aleatoriamente um ou mais genes no cromossomo

Assegura que a probabilidade de atingir qualquer ponto do espaço de busca nunca será zero

Taxa de mutação pequena Pm 0.001

Page 26: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

2626Computação EvolutivaComputação Evolutiva

Mutação

10 0 0 0 11

10 1 10 0 1

Antes da mutação

Após a mutação

Page 27: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

2727Computação EvolutivaComputação Evolutiva

Seleção

Escolhe preferencialmente, embora não exclusivamente, indivíduos com maiores notas de aptidão Procura manter a diversidade da população

Indivíduos mais aptos têm mais oportunidades de serem reproduzidos

Page 28: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

2828Computação EvolutivaComputação Evolutiva

Seleção pela roleta

Indivíduo Si

S3 11110

S4 01001

S5 00110

S1 10110

S2 11000

Aptidãof(Si)

1.05

3.35

1.69

2.23

7.27

AptidãoRelativa

0.14

0.47

0.07

0.21

0.11

S1

S2S3

S4

S5

Método da Roleta baseado em Aptidão Relativa

Page 29: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

2929Computação EvolutivaComputação Evolutiva

Elitismo

Indivíduo de maior desempenho é automaticamente selecionado

Evita modificações deste indivíduo pelos operadores genéticos Utilizado para que os melhores indivíduos não

desapareçam da população pela manipulação dos operadores genéticos

Page 30: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

3030Computação EvolutivaComputação Evolutiva

Espaço de Busca

-1 -0,6

2

-0,2

4 0,14 0,

52 0,9

-1

-0,8

6

-0,7

2

-0,5

8

-0,4

4

-0,3

-0,1

6

-0,0

2

0,120,260,

4

0,540,680,820,96

-1

-0,8

-0,6

-0,4

-0,2

0

0,2

0,4

0,6

0,8

1

xy

Better solution

Page 31: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

3131Computação EvolutivaComputação Evolutiva

Observações

Se o AG estiver corretamente implementado, a população deve evolui em gerações sucessivas

Aptidão do melhor indivíduo e da média da população devem aumentar em direção a um ótimo global

Importância da codificação na convergência

Page 32: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

3232Computação EvolutivaComputação Evolutiva

Critério de parada

Tempo de execução Número de gerações Valor de aptidão mínimo e/ou médio Convergência

Nas últimas k iterações não houve melhora nas aptidões

Page 33: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

3333Computação EvolutivaComputação Evolutiva

Escolha de parâmetros

Escolhidos de acordo com o problema Quantos cromossomos em uma população

Poucos efeito pequeno do crossoverMuitos aumenta tempo de computação

Taxa de mutaçãoBaixa mudanças lentasAlta traços desejados não são mantidos (caos)

Page 34: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

3434Computação EvolutivaComputação Evolutiva

Escolha de parâmetros

Outros parâmetros Quantos indivíduos selecionados para

reprodução? Quantos pontos de crossover? Critério para medir aptidão?

Manter limites no tamanho da população e complexidade da análise Algoritmo pode se tornar ineficiente

Page 35: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

3535Computação EvolutivaComputação Evolutiva

Aplicações

Otimização de função numérica Otimização combinatória

Determinação de Árvores Filogenéticas

Projetos Projeto de pontes

Aprendizado de Máquina Determinação dos parâmetros de Redes Neurais

Artificiais em problemas de Bioinformática

Page 36: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

3636Computação EvolutivaComputação Evolutiva

Exemplo1: preparo de biscoitos

Otimizar quantidade de açúcar e farinha de trigo para preparar biscoitos

Passos Criar população inicial Codificar strings ou cromossomos Definir função de aptidão Reprodução

Page 37: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

3737Computação EvolutivaComputação Evolutiva

Exemplo1: preparo de biscoitos

  1 2 3 4 5 6 7 8 9

1 1 2 3 4 5 4 3 2 1

2 2 3 4 5 6 5 4 3 2

3 3 4 5 6 7 6 5 4 3

4 4 5 6 7 8 7 6 5 4

5 5 6 7 8 9 8 7 6 5

6 4 5 6 7 8 7 6 5 4

7 3 4 5 6 7 6 5 4 3

8 2 3 4 5 6 5 4 3 2

9 1 2 3 4 5 4 3 2 1

farinha (kg)

açúcar (kg)

Qualidade do biscoito (q):

Page 38: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

3838Computação EvolutivaComputação Evolutiva

Exemplo1: preparo de biscoitos

Codificação do cromossomo Quantidade de farinha de trigo e de açúcar

2 4

farinha (kg)açúcar (kg)

Page 39: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

3939Computação EvolutivaComputação Evolutiva

Exemplo1: preparo de biscoitos

CROMOSSOMO GRAU APT. PADRÃO

1 4 4 0.4

3 1 3 0.3

1 2 2 0.2

1 1 1 0.1

fq

qii

jj

•Função de aptidão:

Page 40: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

4040Computação EvolutivaComputação Evolutiva

Exemplo1: preparo de biscoitos

•Mutação:

2 5Pai:

3Filho: 5

±1

Page 41: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

4141Computação EvolutivaComputação Evolutiva

Exemplo1: preparo de biscoitos

• Regras:

Cada cromossomo pode aparecer somente uma vez

Tamanho máximo da população: 4

Nova população: melhor indivíduo (elitismo) + indivíduos restantes escolhidos aleatoriamente

Page 42: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

4242Computação EvolutivaComputação Evolutiva

Exemplo1: preparo de biscoitosCaso 1 (sem crossover)

CromossomoQualidade

• Geração 0: [1 1] 1

Filho Qualidade

[1 2] 2

[1 3] 3[1 2]

[1 4] 4[2 2] 3[2 1] 2

[2 4] 5[2 3] 4[1 3][3 1] 3

• Geração 1: [1 2] 2[1 1]

1• Geração 2: [1 3] 3

[1 2]2

[1 1]1• Geração 3: [1 4] 4

[1 3]3

[1 2]2

[2 1]2

Page 43: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

4343Computação EvolutivaComputação Evolutiva

[2 5] 6[1 5] 5[2 3] 4[2 2] 3

• Geração 4: [2 4] 5[1 4]

4[1 3]

3[2 1]

2

Exemplo1: preparo de biscoitosCaso 1 (sem crossover)

[3 5] 7[1 4] 6[2 2][3 2] 4

• Geração 5: [2 5] 6[1 5]

5[2 3]

4[2 2]

3• Geração 8: [5 5] 9[4 5]

8[2 5]

6[2 1]

2

Page 44: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

4444Computação EvolutivaComputação Evolutiva

Exemplo1: preparo de biscoitosCaso 1 (sem crossover)

  1 2 3 4 5 6 7 8 9

1 1 2 3 4 5 4 3 2 1

2 2 3 4 5 6 5 4 3 2

3 3 4 5 6 7 6 5 4 3

4 4 5 6 7 8 7 6 5 4

5 5 6 7 8 9 8 7 6 5

6 4 5 6 7 8 7 6 5 4

7 3 4 5 6 7 6 5 4 3

8 2 3 4 5 6 5 4 3 2

9 1 2 3 4 5 4 3 2 1

farinha (kg)

açúcar (kg)

Qualidade do biscoito (q):

Page 45: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

4545Computação EvolutivaComputação Evolutiva

Exemplo1: preparo de biscoitos

  1 2 3 4 5 6 7 8 9

1 1 2 3 4 5 4 3 2 1

2 2 0

00 0 0 0 0 0 2

3 3 0 0 0 0 0 0 0 3

4 4 0 0 7 8 7 0 0 4

5 5 0 0 8 9 8 0 0 5

6 4 0 0 7 8 7 0 0 4

7 3 0 0 0 0 0 0 0 3

8 2 0 0 0 0 0 0 0 2

9 1 2 3 4 5 4 3 2 1

farinha (kg)

açúcar (kg)

Qualidade do biscoito (q):

Page 46: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

4646Computação EvolutivaComputação Evolutiva

Exemplo1: preparo de biscoitos

•Crossover:

2 5

1 4

Pai 1:

Pai 2:

5

2

1

4

Filho 1:

Filho 2:

Page 47: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

4747Computação EvolutivaComputação Evolutiva

Exemplo1: preparo de biscoitosCaso 2 (com crossover)

CromossomoQualidade

• Geração 0: [1 1] 1

Filho Qualidade

[1 2] 2

• Geração 1: [2 1] 2[1 1]

1

[3 1] 3[1 2][2 1][1 1]

• Geração 7: [5 5] 9[1 4]

4[3 1]

2[5 2]

0

Page 48: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

4848Computação EvolutivaComputação Evolutiva

Exemplo1: preparo de biscoitosCaso 2 (com crossover)

  1 2 3 4 5 6 7 8 9

1 1 2 3 4 5 4 3 2 1

2 2 0

00 0 0 0 0 0 2

3 3 0 0 0 0 0 0 0 3

4 4 0 0 7 8 7 0 0 4

5 5 0 0 8 9 8 0 0 5

6 4 0 0 7 8 7 0 0 4

7 3 0 0 0 0 0 0 0 3

8 2 0 0 0 0 0 0 0 2

9 1 2 3 4 5 4 3 2 1

farinha (kg)

açúcar (kg)

Qualidade do biscoito (q):

Page 49: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

4949Computação EvolutivaComputação Evolutiva

Teste de um critério definidoe interrompimento do processoquando um desempenho aceitável é produzido.

Ambiente1o Grupo de

Agentes

2o Grupo deAgentes

Combinação dosMelhores Agentes

Ambiente

Exemplo2: Robótica Evolutiva

Sistemas Evolutivos

Page 50: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

5050Computação EvolutivaComputação Evolutiva

Exemplo2: Robótica Evolutiva

Page 51: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

5151Computação EvolutivaComputação Evolutiva

Exemplo2: Robótica Evolutiva

Circuito de Controle

Configuração da Rede Neural

Morfologia

Velocidade de movimento

Seleção dos Sensores

Material GenéticoMaterial Genético MemóriaMemória

Page 52: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

5252Computação EvolutivaComputação Evolutiva

Exemplo2: Robótica Evolutiva

ooo

ooo

ooo

Controlador

Sen

sore

s

Motor1

Motor2

Rede Neural Arquitetura do Robô

Page 53: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

5353Computação EvolutivaComputação Evolutiva

Exemplo2: Robótica Evolutiva

Objetivo: Navegação sem Colisões

Robôs

Simples Complexo

Page 54: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

5454Computação EvolutivaComputação Evolutiva

Exemplo2: Robótica Evolutiva

Simple Environment

0

50

100

150

200

250

300

350

400

1 21 41 61 81 101

Generations

Fit

nes

s

Complex Environment

0

50

100

150

200

250

300

350

1 21 41 61 81 101

Generations

Fit

nes

s 120 Gerações: (1 min.) Pontuação do Melhor Robô

Média da População

Page 55: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

5555Computação EvolutivaComputação Evolutiva

Exemplo2: Robótica Evolutiva

Simple Environment

0

50

100

150

200

250

300

350

400

1 21 41 61 81 101

Generations

Fit

nes

s

Complex Environment

0

50

100

150

200

250

300

350

1 21 41 61 81 101

Generations

Fit

nes

s ”Espécie” 1 – Um sensor frontal

“Espécie” 2 – Dois sensores, um frontal e outro lateral

“Espécie” 3 – Três sensores, um frontal e dois laterais

Page 56: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

5656Computação EvolutivaComputação Evolutiva

A B C D EGF

S1

Pai1

C

D

E

G

S2

Pai2

A

BF

C D EGF

S2

Filho

A

BF

A

BF

Podar

Exemplo3: Árvore Filogenética

Page 57: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

5757Computação EvolutivaComputação Evolutiva

Conclusão

Conceitos básicos Evolução Natural Algoritmos genéticos

Codificação Função de aptidão Operadores Genéticos Reprodução

Page 58: Computação Evolutiva 1 Eduardo do Valle Simões Renato Tinós ICMC - USP.

5858Computação EvolutivaComputação Evolutiva

http://www.icmc.usp.br/~simoes/web/seminars/semi.html

email: Eduardo Simões – [email protected] Tinós – [email protected]

Cópia das transparências e referências bibliográficas podem ser obtidas no site:

FIM