You are on page 1of 41

Algoritmos Genticos

Texto base: Stuart Russel e Peter Norving - Inteligncia Artificial


Material Adaptado

Professor Me. Stfano Schwenck

Algoritmo Gentico

Uma variante da busca em feixe estocstica Estado sucessor gerado pela combinao de dois estados pais Analogia com a seleo natural:

Busca em feixe estocstica reproduo assexuada Algoritmo gentico reproduo sexuada

Algoritmo Gentico

Comeam com um conjunto de k estados gerados aleatoriamente chamado de populao Um estado chamado de indivduo, ou cromossomo

Normalmente representado por uma cadeia de valores Ex: Um estado das 8 rainhas deve especificar a posio das 8 rainhas, cada uma em uma coluna de 8 quadrados Pode ser representado por 8 dgitos, variando de 1 a 8 Ou por uma cadeia de 24 bits = cada 3 bits = 1 posio

Exemplo indivduo 8 rainhas


2 4 7 4 8 5 5 2 = 001|011|110|011|111|100|100|001 3 2 7 5 2 4 1 1 = 010|001|110|100|001|011|000|000 * * * * * * * * 8 7 6 5 4 3 2 1 * * * * * * * *

8 7 6 5 4 3 2 1

Algoritmo Gentico

Cada estado (ou indivduo) avaliado pela funo de avaliao chamada de funo de fitness Quanto melhor o estado maior o valor da funo fitness

Ex. das 8 rainhas: n de pares de rainhas no atacantes 2 4 7 4 8 5 5 2 = 24 3 2 7 5 2 4 1 1= 23 2 4 4 1 5 1 2 4 = 20 3 2 5 4 3 2 1 3 = 11

Algoritmo Gentico

Se o mtodo de seleo dar maior probabilidade de um indivduo com maior valor de fitness ser escolhido... Temos as seguinte probabilidades de escolha:

2 3 2 3

4 2 4 2

7 7 4 5

4 5 1 4

8 2 5 3

5 4 1 2

5 1 2 1

2= 1= 4= 3=

24 23 20 11

=> => => =>

31% 29% 26% 14%

Algoritmo Gentico

Vamos supor que aleatoriamente (mas respeitando a probabilidade) foram selecionados os indivduos:

247|48552 327|52411 24415|124 32752|411

Normalmente, um ponto de crossover escolhido ao acaso

Algoritmo Gentico

E os filhos gerados por meio do crossover so:


327|48552 247|52411 24415|411 32752|124

Este processo de reproduo faz com que o algoritmo gentico explore estados longe dos estados pais, no comeo da execuo medida em que os melhores indivduos ficam na populao, a probabilidade de gerar um filho longe dos pais, diminui

Algoritmo Gentico

Os indivduos gerados podem sofre mutao com uma pequena probabilidade A idia que quando os pais so muito parecidos, a mutao possa trazer alguma caracterstica que ajude a escapar do timo local

327|48352 247|52411 24415|416 32652|124

Algoritmo Gentico - Geral


Funo ALGORITMO-GENTICO(populao, FN-FITNESS) retorna um indivduo Entradas: populao, um conjunto de indivduos FN_FITNESS, uma funo que mede a adaptao de um indivduo Repita nova_populao <- conjunto vazio para i<-1 at TAMANHO(populao) faa x <- SELEO-ALEATRIA(populao, FN-FITNESS) y <- SELEO-ALEATRIA(populao, FN-FITNESS) filho <- REPRODUZ(x,y) se (pequena probabilidade aleatria) ento filho <- MUTAO(filho) adicionar filho nova populao At algum critrio de parada Retornar o melhor indivduo da populao, de acordo com FN-FITNESS

Algoritmo Gentico

Troca informaes entre processos de busca paralelos A principal vantagem vem da operao de crossover:

Combinar grandes blocos de genes que evoluem de forma independente para executar funes teis Ex: a colocao da trs primeiras rainhas nas posies 2, 4 e 6 (em que elas no se atacam as outras) constitui um bloco til Estes blocos podem ser combinados com outros, para formar uma soluo

Algoritmo Gentico

A combinao de blocos teis funciona usando a idia de esquema Um esquema uma sub-cadeia na qual algumas posies podem ser deixadas sem especificao Ex: 246***** Cadeias do tipo 24625176 so chamadas instncias do problema

Questes centrais

Como representar os indivduos? Quem a populao inicial? Como definir a funo objetivo? Quais so os critrios de seleo? Como aplicar/definir o operador de reproduo? Como aplicar/definir o operador de mutao? Como garantir a convergncia e ao mesmo tempo a soluo tima?

Exemplo 1
Problema: Use um AG para 1000 encontrar o ponto mximo 800 da funo:

f ( x) = x 2
com x sujeito as seguintes restries:

600 400 200 0 0 5 10 15 20 25 30

0 x 31 x inteiro

Indivduo

Cromossomo

Estrutura de dados que representa uma possvel soluo para o problema de forma no ambgua Os parmetros do problema de otimizao so 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.

Indivduo

Na implementao, cada indivduo tem um valor de fitness associado a ele Aptido pode ser:

Igual a funo objetivo Baseado no ranking do indivduo da populao

Cromossomo do Problema 1

Cromossomos binrios com 5 bits:


0 = 00000

31 = 11111

Aptido

Neste problema, a aptido pode ser a prpria funo objetivo. Exemplo: aptido(00011) = f(3) = 9

Populao Inicial do Problema 1


aleatria (mas quando possvel, o conhecimento da aplicao pode ser utilizado para definir populao inicial) cromossomos Pop. inicial A 1 =1 1 0 0 1 A 2 =0 1 1 1 1 A 3 =0 1 1 1 0 A 4 =0 1 0 1 0

x
25 15 14 10

f (x )
625 225 196 100

Prob. de seleo

54,5% 19,6% 17,1% 8,7%

Probabilidade de seleo proporcional a aptido

pi =

f ( xi )
N k=1

f ( xk )

Seleo

Seleo

Tem como objetivo propagar material gentico dos indivduos mais adaptados Os melhores indivduos (maior aptido) so selecionados para gerar filhos Dirige o AG para as melhores regies do espao de busca

Tipos mais comuns de seleo


Proporcional a aptido (roleta) Torneio Ranking (os n mais adaptados)

Seleo proporcional a aptido (Roleta)


8,7% A4 54,5% A1 17,1% A3 19,6% A2

Pais selecionados A1 = 1 1 0 0 1 A2 = 0 1 1 1 1 A2 = 0 1 1 1 1 A1 = 1 1 0 0 1

Problema: converge muito rpido por causa da variao pequena

Seleo

Torneio: escolhe-se n (tipicamente 2) indivduos aleatoriamente da populao e o melhor selecionado. Ranking: seleciona-se os n indivduos mais adaptados

Reproduo - Crossover

Funo:

combinar e/ou perpetuar material gentico dos indivduos mais adaptados Cria novos indivduos misturando caractersticas de dois ou mais indivduos pais (crossover) - variao

Em termos de busca:

Principais mecanismos de busca do AG Permite explorar reas desconhecidas do espao de busca

Crossover

Os filhos so formados a partir dos bits dos pais Cruzamento em um ponto Pai 1: 1010101011 | 0101010111 Pai 2: 0000100101 | 0101110010 Filho1: 10101010110101110010 Filho2: 00001001010101010111 Cruzamento multi-ponto Pai 1: 101010 | 101101 | 01010111 Pai 2: 000010 | 010101 | 01110010 Filho1: 000010 | 101101 | 01110010 Filho2: 101010 | 010101 | 01010111

Crossover

Os pontos de corte dos cruzamentos em um ponto ou multiponto podem ser estticos ou escolhidos aleatoriamente Quanto mais estruturada for a representao do cromossomo, mais difcil fica de se definir o cruzamento

Mutao

Objetivo:

gerar diversidade (p/ escapar de timos locais)

Tipos:

Gerativa Destrutiva Swap Swap de seqncia

Obs: Existe uma taxa de mutao (ex. % da populao selecionada) que pode diminuir com o tempo para garantir convergncia

Crossover e mutao do Problema 1


Pais A1 = 1 1 0 0 1 A2 = 0 1 1 1 1 Crossover (1 ponto) Crossover (1 ponto) Filhos 11011 01101 mutao mutao 11011 00101

A2 = 0 1 1 1 1 A1 = 1 1 0 0 1

01111 11001

10111 11001

Adio dos filhos nova populao

Objetivo: garantir uma convergncia adequada Tipos: simples: a nova gerao substitui a antiga elitista ou steady-state: a nova gerao se mistura com a antiga
, preservando, pelo menos, o melhor indivduo entre a antiga e a nova gerao.

Critrios de substituio no caso elitista: os piores os mais semelhantes

para evitar convergncia prematura

os melhores os pais aleatoriamente, ...

A primeira gerao do Problema 1


Substituio Simples
EXERCCIO: fazer a subtituio baseada em Elitismo Total, ou seja, juntar a populao antiga com a nova populao (formada pelos filhos), depois, fazer a ordenao desta juno. Os primeiros individuos continuaro no processo. A quantidade de indivduos que continuaro no processo ser a mesma quantidade da populao inicial.

cromossomos

x
27 25 25 23

f (x )
729 625 625 529

1 2 3 4

11011 11001 11001 10111

prob. de seleo 29,1% 24,9% 24,9% 21,1%

As demais geraes do Problema 1


x
Segunda Gerao
1 2 3 4 11011 11000 10111 10101 27 24 23 21

f (x )
729 576 529 441

x
Terceira Gerao
1 2 3 4 11011 10111 01111 00111 27 23 15 7

f (x )
729 529 225 49

As demais geraes do Problema 1


x
Quarta Gerao
1 2 3 4 11111 11011 10111 10111 31 27 23 23

f (x )
961 729 529 529

x
Quinta Gerao
1 2 3 4 11111 11111 11111 10111 31 31 31 23

f (x )
961 961 961 529

Problema 2
Achar o mximo da funo utilizando Algoritmos Genticos

f ( x ) = x seno(10 x ) + 1,0
Restrita ao intervalo:

1,0 x 2,0

Problema 2
3,0 f(x) = x sen(10 x) + 1 Mximo local 2,0 1,0 0,0 -1,0 -1,0 -0,5 0,0 Mximo global

Mximo global: x = 1,85055 f(x) = 2,85027

0,5 x

1,0

1,5

2,0

Problema 2

Funo multimodal com vrios pontos de mximo. um problema de otimizao global (encontrar o mximo global) No pode ser resolvido pela grande maioria dos mtodos de otimizao convencional. H muitos mtodos de otimizao local, mas para otimizao global so poucos.

O Cromossomo Problema 2

Representar o nico parmetro deste problema (a varivel x) na forma de um cromossomo:

Quantos bits dever ter o cromossomo? Quanto mais bits melhor preciso numrica Longos cromossomos so difceis de manipular

Cromossomo com 22 bits

1000101110110101000111

As Geraes do Problema 2
3,0

f(x) = x seno(10x) + 1.0

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

Populao Inicial

0,0

0,5

1,0

1,5

2,0

x Populao gerada aleatoriamente

As Geraes do Problema 2
3,0

f(x) = x sen(10x) + 1.0

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

Primeira Gerao

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

Pouca melhoria

As Geraes do Problema 2
3,0 2,5

f(x) = x sen(10x) + 1.0

Gerao 25

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

x A maioria dos indivduos encontraram o mximo global

As Geraes do Problema 2
3,0
Funo objetivo

2,5 2,0 1,5 1,0 0,5 0 5 10


Gerao

Mdia Melhor

15

20

25

Na gerao 15 o AG j encontrou o ponto mximo

Elitismo

A substituio simples da gerao antiga pela nova podem destruir a melhor indivduo Por que perder a melhor soluo encontrada? Elitismo transfere cpias dos melhores indivduos para a gerao seguinte

Elitismo no Problema 2
3,0 2,8 Funo objetivo 2,6 2,4 2,2 2,0 0 5

AG com elitismo AG sem elitismo

15 10 Gerao

20

25

Critrios de Parada

Nmero de geraes Encontrou a soluo (quando esta conhecida) Perda de diversidade (estagnao) Convergncia

nas ltimas k geraes no houve melhora na aptido