algoritmos genéticoscz/aulas/algoritmos%20gen%e9ticos.pdf · algoritmos genéticos (conceitos...

77
1 Algoritmos Genéticos 1° Semestre de 2015 Cleber Zanchettin UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática

Upload: others

Post on 26-Jun-2020

35 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

1

Algoritmos Genéticos

1° Semestre de 2015

Cleber Zanchettin

UFPE - Universidade Federal de Pernambuco

CIn - Centro de Informática

Page 2: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

2

Page 3: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

3

Naturalistas: cada espécie havia sido criada separadamente por umser supremo ou através de geração espontânea.

Introdução

Darwin

• Charles Darwin apresentou em 1858 sua teoria de evolução através de seleção natural;

• Introduziu a idéia de evolução a partir de um ancestral comum, por meio de seleção natural.

- Oposição religiosa;

- A Ciência primava pelo materialismo absoluto,

apesar da falta de subsídios;

Page 4: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

4

Introdução

- Darwin consciente das implicações de seu trabalho sobre a tese

da imutabilidade das espécies e preceitos religiosos, metódica e

minuciosamente junta, durante mais de vinte anos, evidências

para provar a transformação dos seres vivos, e com isso começa

a escrever o livro "Natural Selection" (1856).

Page 5: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

5

Algoritmos Genéticos

São técnicas de busca e otimização.

É a metáfora da teoria da evolução das espécies

iniciada pelo Fisiologista e Naturalista inglês

Charles Darwin.

Desenvolvido por John Holland (1975) e seus

alunos.

Popularizado por David Goldberg (1989).

Page 6: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

6

Otimização

É a busca da melhor solução para um dado

problema.– Consiste em tentar vários soluções e usar a

informação obtida para conseguir soluções cada

vez melhores.

Exemplo de otimização:

– Telespectador através de ajuste na antena da

televisão otimiza a imagem buscando várias

soluções até alcançar uma boa imagem.

Page 7: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

7

Otimização

As técnicas de otimização, geralmente,

apresentam:

Espaço de busca: onde estão todas as possíveis

soluções do problema;

– Função objetivo: utilizada para avaliar as soluções

produzidas, associando a cada uma delas uma

nota.

Page 8: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

8

Características dos AGs

É um algoritmo estocástico (não é determinístico).

Trabalha com uma população de soluções

simultaneamente.

Utiliza apenas informações de custo e

recompensa. Não requer nenhuma outra

informação auxiliar (como por exemplo o

gradiente).

Page 9: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

9

Da Biologia para a Computação

Page 10: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

10

Trabalha-se com uma população de tamanho

fixo, cujas cadeias de caracteres estão

binariamente codificadas.

A seleção natural é proporcional ao fitness,

e se dá pelo algoritmo da roleta.

Utiliza-se cruzamento simples de um ponto,

segundo uma probabilidade pré-determinada.

Características dos AGs

Page 11: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

11

A mutação é pontual, segundo uma

probabilidade prédeterminada.

O problema a ser resolvido é capturado em

uma função objetivo que indica o fitness de

cada candidato à solução.

Características dos AGs

Page 12: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

12

Algoritmos Genéticos

(Conceitos Básicos)

Manipula uma população de indivíduos.

Individuos são possíveis soluções do problema.

Os indivíduos são combinados (crossover) uns

com os outros, produzindo filhos que podem

sofrer ou não mutação.

As populações evoluem através de sucessivas

gerações até encontrar a solução ótima.

Page 13: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

13

São fáceis de serem implementados em

computadores.

Adaptam-se bem a computadores paralelos.

São facilmente hibridizados com outras

técnicas.

Funcionam com parâmetros contínuos ou

discretos.

Características dos AGs

Page 14: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

14

Aplicações

Em problemas díficeis de otimização, quando não existe

nenhuma outra técnica especifica para resolver o

problema.

Otimização de funções numéricas em geral

Otimização combinatória

– Problema do caixeiro viajante

– Alocação de recursos

Aprendizado de Máquina

Page 15: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

15

O Algoritmo Genético

Binário

Page 16: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

16

Algoritmo Genético Tradicional

1. Gerar a população inicial.

2. Avaliar cada indivíduo da população.

3. Enquanto critério de parada não for satisfeito faça

3.1 Selecionar os indivíduos mais aptos.

3.2 Criar novos indivíduos aplicando os

operadores crossover e mutação.

3.3 Armazenar os novos indivíduos em uma

nova população.

3.4 Avaliar cada cromossomo da nova população.

Page 17: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

17

Problema 1

0

200

400

600

800

1000

0 5 10 15 20 25 30

2)( xxf

Problema: Use um AG

para encontrar o ponto

máximo da função:

x é inteiro

310 x

com x sujeito as seguintes

restrições:

Page 18: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

18

Indivíduo

Cromossomo– Estrutura de dados que representa uma possível

solução para o problema.

– Os parâmetros do problema de otimização são

representados por cadeias de valores.

– Exemplos:

• Vetores de reais, (2.345, 4.3454, 5.1, 3.4)

• Cadeias de bits, (111011011)

• Vetores de inteiros, (1,4,2,5,2,8)

• ou outra estrutura de dados.

Page 19: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

19

Individuo (II)

Aptidão

– Nota associada ao indíviduo que avalia quão boa é a

solução por ele representada.

Aptidão pode ser:

– Igual a função objetivo (raramente usado na prática).

– Resultado do escalonamento da função objetivo.

– Baseado no ranking do indíviduo da população.

Page 20: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

20

Cromossomo do Problema 1

Cromossomos binários com 5 bits:• 0 = 00000

• 31 = 11111

Aptidão – Neste problema, a aptidão pode ser a própria

função objetivo.

– Exemplo:

aptidão(00011) = f(3) = 9

Page 21: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

21

Seleção

Seleção

– Imitação da seleção natural.

– Os melhores indivíduos (maior aptidão) são

selecionados para gerar filhos através de crossover e

mutação.

– Dirige o AG para as melhores regiões do espaço de

busca.

Tipos mais comuns de seleção

– Proporcional a aptidão.

– Torneio.

Page 22: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

22

População Inicial do Problema 1

Probabilidade de seleção

proporcional a aptidão

Prob. de seleçãox f (x )

A 1 = 1 1 0 0 1 25 625 54,5%

A 2 = 0 1 1 1 1 15 225 19,6%

A 3 = 0 1 1 1 0 14 196 17,1%

A 4 = 0 1 0 1 0 10 100 8,7%

cromossomos

N

k k

ii

xf

xfp

1)(

)(

É aleatória (mas quando possível, o conhecimento da aplicação pode

ser utilizado para definir a população inicial)

Pop.

inicial

Page 23: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

23

Seleção proporcional

a aptidão (Roleta)

A1 = 1 1 0 0 1

A2 = 0 1 1 1 1

A2 = 0 1 1 1 1

A1 = 1 1 0 0 1

54,5%A1

8,7%A4

17,1%A3

19,6%A2

Pais selecionados

Page 24: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

24

Seleção por Torneio

Escolhe-se n (tipicamente 2) indivíduos aleatoriamente

da população e o melhor é selecionado.

Page 25: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

25

Crossover e Mutação

Combinam pais selecionados para produção de filhos.

Principais mecanismos de busca do AG.

Permite explorar áreas desconhecidas do espaço de

busca.

Page 26: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

26

Crossover de 1 ponto

1 1 0 0 1

0 1 1 1 1

1 1 0 1 1

0 1 1 0 1

Pais

Filhos

O Ponto de corte é

escolhido aleatóriamente

O crossover é aplicado

com uma dada

probabilidade

denominada taxa de

crossover (60% a 90%)

Se o crossover é aplicado os pais trocam suas

caldas gerando dois filhos, caso contrário os dois

filhos serão cópias exatas dos pais.

Page 27: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

27

Mutação

A mutação é aplicada com dada

probabilidade, denominada taxa

de mutação (~1%), em cada um

dos bits do cromossomo.

Mutação inverte os valores dos bits.

A taxa de mutação não deve ser nem alta nem baixa,

mas o suficiente para assegurar a diversidade de

cromossomos na população.

0 1 1 0 1

0 0 1 0 1

Antes da mutação

Depois

Aqui, apenas o 2o.bit

passou no teste de

probabilidade

Page 28: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

28

A primeira geração

do Problema 1

A1 = 1 1 0 0 1

A2 = 0 1 1 1 1

1 1 0 1 1

0 1 1 0 1

Pais

crossover mutação1 1 0 1 1

0 0 1 0 1

Filhos

A2 = 0 1 1 1 1

A1 = 1 1 0 0 1

0 1 1 1 1

1 1 0 0 1

crossover mutação1 0 1 1 1

1 1 0 0 1

Nova

pop.

Page 29: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

29

A primeira geração

do Problema 1 (II)

x f (x )prob. de

seleção

1 1 1 0 1 1 27 729 29,1%

2 1 1 0 0 1 25 625 24,9%

3 1 1 0 0 1 25 625 24,9%

4 1 0 1 1 1 23 529 21,1%

cromossomos

Page 30: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

30

As demais gerações

do Problema 1

x f (x )

1 1 1 0 1 1 27 729

2 1 1 0 0 0 24 576

3 1 0 1 1 1 23 529

4 1 0 1 0 1 21 441

x f (x )

1 1 1 0 1 1 27 729

2 1 0 1 1 1 23 529

3 0 1 1 1 1 15 225

4 0 0 1 1 1 7 49

Segunda Geração

Terceira Geração

Page 31: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

31

As demais gerações

do Problema 1 (II)

Quarta Geração

Quinta Geração

x f (x )

1 1 1 1 1 1 31 961

2 1 1 0 1 1 27 729

3 1 0 1 1 1 23 529

4 1 0 1 1 1 23 529

x f (x )

1 1 1 1 1 1 31 961

2 1 1 1 1 1 31 961

3 1 1 1 1 1 31 961

4 1 0 1 1 1 23 529

Page 32: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

32

Outros Crossover´s

001011000001101010001110101011

010 011000101011

001001110001101

pai1

pai2

filho1

filho2

Crossover de 2-pontos

Considerado melhor que o crossover de 1 ponto.

Page 33: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

33

Crossover de n-Pontos

0010100100011001100

1010011100101011001

101010010

0101001

001

001001110

0011011

100

pai1

pai2

filho1

fillho2

Crossover de 4-pontos

Page 34: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

34

Crossover Uniforme

O filho1 tem 50% de chance de levar um bit do pai1 e

50% de chance de levar um bit de pai2

1 1 0 1 0 1 1 0 1 0

1 1 1 0 1 1 0 1 1 0

1 1 1 0 0 1 0 1 1 0

0 1 1 0 0 0 1 1 0 0

pai1

pai2

filho1

Máscara de

bits aleatória

O filho2 leva o que sobra de pai1 e pai2

Page 35: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

35

Problema 2

0,1)10seno(x )( xxf

0,20,1 x

Achar o máximo da função utilizando Algoritmos Genéticos,

Restrita ao intervalo:

Page 36: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

36

Problema 2 (II)

Máximo global:

x = 1,85055

f(x) = 2,85027

x

f (x)

= x

sen(1

0

x)

+ 1

-1,0

0,0

1,0

2,0

3,0

-1,0 -0,5 0,0 0,5 1,0 1,5 2,0

Máximo global

Máximo local

Page 37: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

37

Problema 2 (III)

Função multimodal com vários pontos de máximo.

É um problema de otimização global (encontrar o

máximo global)

Não pode ser resolvido pela grande maioria dos

métodos de otimização convencional.

Há muitos métodos de otimização local, mas para

otimização global são poucos.

Page 38: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

38

O Cromossomo Problema 2

Representar o único parâmetro deste problema (a

variável x) na forma de um cromossomo:

– Quantos bits deverá ter o cromossomo?

– Quanto Mais bits melhor precisão númerica.

– Longos cromossomos são difíceis de manipular.

– Para cada decimal é necessário 3,3 bits

– Cromossomo com 22 bits

1000101110110101000111

Page 39: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

39

O Cromossomo Problema 2 (II)

Decodificação

– cromossomo = 1000101110110101000111

– b10 = (1000101110110101000111)2 = 2288967

– Valor de x precisa estar no intervalo [-1,0; 2,0]

12min)(maxmin 10

l

bx

637197,012

967.288.2)12( 1

22

x

Page 40: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

40

As Gerações do Problema 2

x

f(x)

= x

seno

(10

x)

+ 1

.0

-1,0

-0,5

0,0

0,5

1,0

1,5

2,0

2,5

3,0

-1,0 -0,5 0,0 0,5 1,0 1,5 2,0

População Inicial

População gerada aleatóriamente

Page 41: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

41

As Gerações do Problema 2 (II)

x

f (x )

= x

sen

(10

x ) +

1.0

-1,0

-0,5

0,0

0,5

1,0

1,5

2,0

2,5

3,0

-1,0 -0,5 0,0 0,5 1,0 1,5 2,0

Primeira Geração

Pouca melhoria

Page 42: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

42

As Gerações do Problema 2 (III)

x

f(x)

= x

sen

(10

x) +

1.0

-1,0

-0,5

0,0

0,5

1,0

1,5

2,0

2,5

3,0

-1,0 -0,5 0,0 0,5 1,0 1,5 2,0

Geração 25

A maioria dos indivíduos encontraram o máximo global

Page 43: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

43

As Gerações do Problema 2 (IV)

Geração

Fu

nçã

o o

bje

tiv

o

0,5

1,0

1,5

2,0

2,5

3,0

0 5 10 15 20 25

Média

Melhor

Na geração 15 o AG já encontrou o ponto máximo

Page 44: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

Problema 3 – TSP para 30 cidades

44

Prof. Aluízio Araújo - http://www.cin.ufpe.br/~aluizioa

Page 45: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

Problema 3 – Primeira solução

45

Prof. Aluízio Araújo - http://www.cin.ufpe.br/~aluizioa

Page 46: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

Problema 3 – Primeira solução

46

Prof. Aluízio Araújo - http://www.cin.ufpe.br/~aluizioa

Page 47: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

Problema 3 – Segunda solução

47

Prof. Aluízio Araújo - http://www.cin.ufpe.br/~aluizioa

Page 48: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

Problema 3 – Terceira solução

48

Prof. Aluízio Araújo - http://www.cin.ufpe.br/~aluizioa

Page 49: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

Problema 3 – Melhor solução

49

Prof. Aluízio Araújo - http://www.cin.ufpe.br/~aluizioa

Page 50: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

Problema 3 – Progresso da evolução

50

Prof. Aluízio Araújo - http://www.cin.ufpe.br/~aluizioa

Page 51: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

51

Elitismo

O crossover ou mutação podem destruir a melhor

indivíduo.

Por que perder a melhor solução encontrada?

Elitismo transfere a cópia do melhor indíviduo para a

geração seguinte.

Page 52: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

52

Elitismo no Problema 2F

un

ção

ob

jeti

vo

2,0

2,2

2,4

2,6

2,8

3,0

10

AG com elitismo

AG sem elitismo

0 5 15 20 25

Geração

AG com elitismo é melhor ?

Page 53: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

53

Critérios de Parada

Número de gerações.

Encontrou a solução (quando esta é conhecida).

Perda de diversidade.

Convergência

– nas últimas k gerações não houve melhora da na

aptidão

• Média

• Máxima

Page 54: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

54

Terminologia

Indivíduo

– Simples membro da população.

Cromossomo e Genoma e :

– Coleção de genes

– Estrutura de dados que codifica a solução de uma

problema.

Genótipo

Na biologia, representa a composição genética contida

no Genoma. Nos AGs, representa a informação

contida no cromossomo ou genoma.

Page 55: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

55

Terminologia

Fenótipo:

– Objeto ou estrutura construída a partir das informações do

genótipo.

– É o cromossomo decodificado.

• Exemplo: Se o cromossomo codifica as dimensões de um

edifício, então o fenótipo é o edifício construído.

Gene:

– Codifica um simples parâmetro do problema

Page 56: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

56

Exercício

Encontrar o valor de x para o qual a função

f(x) = x2 - 3x + 4 assume o valor mínimo.

– Assumir que x [-10, +10]

– Codificar X como vetor binário

– Criar uma população inicial com 4 indivíduos

– Aplicar Mutação com taxa de 1%

– Aplicar Crossover com taxa de 60%

– Usar seleção por torneio.

– Usar 5 gerações.

Page 57: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

57

Aspectos Práticos

Page 58: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

58

Principais Tópicos

– População Inicial

– Funções Objetivo de Alto Custo

– Convergência Prematura

– Diversidade

– Tipos de Substituição

– Problemas na Aptidão

Page 59: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

59

População Inicial (1/3)

Gerada Aleatoriatoriamente.

Gerada uniformente em uma grade.

Gerada com tendenciosidade para regiões

promissoras do espaço de busca

Page 60: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

60

População Inicial (2/3)

Para garantir que toda posição da cadeia tem

0 e 1 na população:

1) Gera a primeira metade da população

aleatoriamente.

2) Inverte todos os bits da primeira metade: tem-se a

segunda metade.

1a. metade 2 ª metade

1011010 0100101

0111011 1000100

0001101 1110010

1100110 0011001

Page 61: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

61

População Inicial (3/3)

Seeding: insere a solução obtida por outro

método de otimização na população inicial

(garante que AG não fará pior do que o outro

método)

Iniciar com uma larga população inicial e depois

reduzir o tamanho.

Page 62: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

62

Convergência Prematura (1/2)

O AG converge para um mínimo/máximo local.

Page 63: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

63

Convergência Prematura (2/2)

Causas:

– Excessivo números de filhos de um mesmo indivíduo

(o superindividuo)

– Perda de diversidade.

– Genetic Drift

• Desaparecimento de um determinado gene na população.

• Ocorre principalmente em pequenas populações.

– Alta pressão de seleção.

Page 64: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

64

Diversidade (1/2)

Combatendo a perda de diversidade

– Aumentar a taxa de mutação.

– Evitar cromossomos duplicatas na população.

– Diminuir a pressão da seleção.

Page 65: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

65

Diversidade (2/2)

Combatendo a perda de diversidade

– Controlar o número de filhos do superdividuo

(individuo com alta aptidão, mas não com aptidão

ótima) usando:

• Ranking.

• Escalomento.

• Seleção por torneio.

Page 66: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

66

Tipos de Substituição

Substituição Geracional

Substituição Geracional com Elitismo

Substituição de Estado Uniforme

Page 67: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

67

Substituição Geracional

Seja N o tamanho da população:

– Os N pais são substituídos pelos N filhos em cada

geração.

– Os N pais são substituídos por N individuos do

conjunto união de pais e filhos.

• Comentário: o segundo caso aumenta a pressão de

seleção.

Page 68: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

68

Substituição Geracional

com Elitismo

Os k < N melhores pais nunca são

substituidos.

Tipicamente k = 1

Aumentando k aumenta a pressão de seleção

(risco de convergência prematura).

Page 69: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

69

Substituição de

Estado Uniforme (1/2)

Em cada “geração” apenas 2 (ou 1) filhos são

gerados e substituem:

– Os 2 piores indivíduos da população.

– Os pais.

– Os 2 indivíduos mais velhos (i.e. que estão a mais

tempo da população), pois já transmitiram os seus

genes.

Taxa de crossover é geralmente alta (~1)

Page 70: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

70

Substituição de

Estado Uniforme (2/2)

Alternativamente, k < N filhos são gerados e

substituem os k piores indivíduos.

Evitar inserir um filho na população quando já

existe uma duplicata dele na população.

Page 71: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

71

Problemas na Aptidão (1/3)

Aptidão negativa não funciona com a roleta

Aptidão excessivamente alta • Poucos individuos ocupando larga fatia da roleta

• Muitos individuos ocupando pequena fatia da roleta

• Causa convergência prematura

– Solução: controlar o número de filhos do superindividuo.

.

Page 72: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

72

Problemas na Aptidão (2/3)

Resolução insuficiente para diferenciar os

melhores dos piores individuos.

– A seleção torna-se aleatória (Passeio ao Acaso).

– Convergência lenta

Page 73: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

73

Problemas na Aptidão (3/3)

Exemplo:

Soluções

– Expandir o intervalo da aptidão (usando ranking)

– Seleção por torneio

E 2000,102002

Cromossomo

Função

objetivo

Probabilidade

de seleção

A 2000,999588

B 2000,826877C 2000,655533

D 2000,400148

20,004%

20,002%

20,001%

19,998%

19,995%

Page 74: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

74

Funções Objetivo

de Alto Custo (1/3)

Em muitos problemas do mundo real o custo

computacional do AG está concentrado na

avalição do individuo.

Exemplo:

– Simulação completa de um processo.

– Um treinamento de uma rede neural.

Page 75: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

75

Funções Objetivo

de Alto Custo (2/3)

Dicas para reduzir o números de reavaliações do

indivíduo:

– Evitar cromossomos iguais na população inicial.

– Verificar se o filho já existe nas populações passadas

e na atual.

– Verificar se filho = pai (e.g. checar se crossover e

mutação foi aplicado).

– Manter a população com cromossomos distintos.

Page 76: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

76

Funções Objetivo

de Alto Custo (3/3)

Simplificar a função objetivo (pelo menos nas

gerações iniciais)

Usar um método de subida de encosta quando o

AG já encontrou as regiões promissoras do

espaço de busca (nas gerações finais).

Page 77: Algoritmos Genéticoscz/aulas/Algoritmos%20Gen%e9ticos.pdf · Algoritmos Genéticos (Conceitos Básicos) Manipula uma população de indivíduos. Individuos são possíveis soluções

Applet: http://www.glauserweb.ch/gentore.htm

https://www.ads.tuwien.ac.at/raidl/tspga/TSPGA.html

http://math.hws.edu/eck/jsdemo/jsGeneticAlgorithm.html

http://www.ewh.ieee.org/soc/es/May2001/14/Begin.htm

77