You are on page 1of 26

1

ALGORITMOS GENTICOS E APLICAES


Hassan Sherafat

Departamento de Matemtica - UFS


hassan@ufs.br

Algoritmos Genticos
So tcnicas de busca e otimizao. So inspirados na teoria da evoluo das espcies iniciada pelo Fisiologista e Naturalista ingls Charles Darwin. Desenvolvido por John Holland (1975) e seus alunos. Popularizado por David Goldberg (1989).

Introduo
3

Algoritmos Genticos (AGs) fazem parte da classe de m todos meta- heursticos de otimizao So capazes de resolver problemas complexos de otimizao combinatria

Otimizao
As tcnicas de otimizao, geralmente, apresentam:
Espao de busca: onde esto todas as possveis solues do problema; Funo objetivo: utilizada para avaliar as solues produzidas, associando a cada uma delas uma nota.

Otimizao Combinatria
5

Exemplos de Problemas de OC:


Problema Problema Problema Problema Problema Etc. de do de de de Caixeiro Viajante; Carteiro Chins; Localizao de Facilidades; Mochila; Cobertura de Conjuntos

Otimizao Combinatria
6

A maior dificuldade na soluo de problemas de OC a armadilha de timos locais, e como fugir delas. A depender do problema, o nmero de timos locais pode ser astronmico.

Armadilha de timos locais:


7

Mximo Global Mximo Local

Algoritmos Genticos
8

Um Algoritmo Gentico (AG), conceitualmente, segue passos inspirados no processo biolgico de evoluo natural segundo a teoria de Darwin Algoritmos Genticos seguem a idia de SOBREVIVNCIA DO MAIS FORTE (melhores solues a cada gerao)

Ba ck gr ou n d
9

Cromossomos
Todo organismo vivo consiste de clulas. Em cada clula, existe o mesmo conjunto de cromossomos Cromossomos consistem de genes seqncias de DNA- que servem para determinar as caractersticas de um indivduo

Cromossomo

Ba ck gr ou n d ( Con t .)
11

Reproduo
Durante o processo de reproduo ocorre-se a recombinao (ou crossover cruzamento-). Genes dos pais se combinam para formar novos cromossomos. Os descendentes criados podem sofrer mutaes, ou seja, os elementos do DNA podem ser trocados A adaptao de um organismo pode ser medida pelo sucesso do mesmo em sua vida. O prmio do sucesso o direito de Reproduo

Ba ck gr ou n d ( Con t .)
12

Resultado
Uma nova gerao de indivduos criada. A nova gerao promete uma adaptao melhor ao ambiente do que a gerao dos pais E tudo se repete com essa nova gerao no que se refere a reproduo; Depois de muitas geraes, os indivduos sero mais perfeitos e completamente adaptados ao seu ambiente.

Inteligncia da Natureza
A evoluo das espcies mostra um mtodo extremamente inteligente que aperfeioa os espcies, independente de suas caractersticas iniciais, mas de acordo com as condies de seu ambiente. Foi assim que surgiu a variedade de plantas e animais.

Idia bsica
14

A metodologia usada pela natureza tem fundamentos matemticos slidos; Ela busca um timo global, e no um local; Pode ser simulada artificialmente por meio de um algoritmo.

Idia bsica
15

Dado um problema, uma soluo particular tem um conjunto de caractersticas que pode ser representado por um cromossomo; Comear com um conjunto de solues (cromossomos) chamado populao

Idia bsica
16

Solues de uma populao so escolhidas e usadas para formar uma nova populao (reproduo) Espera-se que a nova populao seja melhor que a anterior

Idia bsica
17

Solues que so escolhidas para formar novas solues (descendentes) so escolhidas de acordo com uma funo de adaptao (funo objetivo) O processo repetido at que uma condio seja satisfeita

Questes importantes
18

Como criar cromossomos e qual tipo de codificao usar? Como escolher os pais para a realizao do crossover? A gerao de uma populao a partir de duas solues pode causar a perda da melhor soluo. O que fazer?

Esboo do algoritmo
19

[ Incio] Gerao aleatria de uma populao de n cromossomos [ Adaptao] Verificar a funo objetivo f(x) de cada cromossomo x [ Populao] Cria uma nova populao -se pela repetio a seguir:

Esboo do algoritmo
20

1.

2.

3.

4.

5. 6.

7. 8.

[Seleo] Selecione pares de cromossomos da populao de acordo com a adaptao de cada um (os mais bem adaptados tem maior chance de serem escolhidos) [Crossover] Produza dois descendentes (filhos) realizando crossover com os cromossomos dos pais. O ponto para a realizao do crossover deve ser aleatrio. [Mutao] Com uma certa probabilidade, o descendente sofre mutao em cada locus (posio no cromossomo). [Aceitao] Coloque os descendentes em uma nova populao, juntamente com a melhor soluo da gerao velha [Troca] Substitua a populao velha pela nova [Teste] Se a condio de finalizao satisfeita, pare, e retorne a melhor soluo da populao atual [Adaptao] Verifique a adaptao da nova gerao [Lao] Volte ao passo 1

Codificao
21

Como realizar a codificao de cromossomos? a primeira pergunta que deve ser feita ao resolver um problema com AG A codificao depender fortemente do problema

Codificao binria
22

a mais comum devido a sua simplicidade Cada cromossomo uma string de bits 0 ou 1
Crom: A = 1 0 1 1 0 0 1 0 1 1 Crom: B = 1 1 1 1 0 1 0 0 1 0

Exemplo de uso: problema da mochila Codificao: Cada bit diz se um elemento est ou no na mochila

Codificao por permutao


23

Mais usado em problemas de ordenao Cada cromossomo uma string de nmeros que representa uma posio numa seqncia
Crom A: 1 5 3 2 6 4 7 9 8 Crom B: 8 5 6 7 2 3 1 4 9

Exemplo de uso: problema do Caixeiro Viajante Codificao: os cromossomos descrevem a ordem em que o Caxeiro ir visitar as cidades

Codificao por valor


24

Usado em problemas onde valores mais complicados so necessrios Cada cromossomo uma seqncia de valores
Crom A: 1.2324 5.3243 0.4556 2.3293 2.4545 Crom B: ABDJEIFJDHDIERJFDLDFLFEGT Crom C: (back), (back), (right), (forward), (left)

Crossover
25

A operao deve ser realizada sobre os cromossos dos pais para a criao de descendentes; Para cada par de cromossomos feito sorteio para escolher o ponto de corte.
Crom1: 1001000100110110 Crom2: 1101111000011110 Filho 1:1001011000011110 Filho 2:1101100100110110

Crossover de dois pontos


26

Alternativamente podem ser escolhidos dois pontos de corte pelo sorteio.


Crom1: 1001000100110110 Crom2: 1101111000011110 Filho 1:1001011000010110 Filho 2:1101100100111110

Outras Formas de Crossover


27

Alterao da seqncia de genes numa reproduo mono sexual:


Pai: Filho: HJBEAIFCDG HJBECFIADG

Mutao
28

O objetivo da mutao evitar a formao de uma gerao homogenia de indivduos. Filho1 antes : 1101111000011110 Filho2 antes : 1101100100110110 Filho1 depois : 1100111000011110 Filho2 depois : 1101101100110110

Aptido
Aptido (ou Fitness):
Nota associada ao indivduo que avalia quo boa a soluo por ele representada.

Aptido pode ser:


Igual a funo objetivo (raramente usado na prtica). Resultado do escalonamento da funo objetivo. Baseado no ranking do indviduo na populao.

Critrio de Parada
A seqncia de Geraes pode ser encerrada numa das seguintes condies: Atingindo um determinado no. de geraes; Encontrar uma determinada soluo; Perda de diversidade; Convergncia:
nas ltimas k geraes no houve melhora da na aptido Mdia Mxima

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

1000 800 600

f ( x)

400 200 0 0 5 10 15 20 25 30

com x sujeito as seguintes restries:

0 x 31 x inteiro

Cromossomo para o Exemplo


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
aleatria (mas quando possvel, o conhecimento da aplicao pode ser utilizado para definir populao inicial) cromossomos Pop. inicial A1 = 1 1 0 0 1 A2 = 0 1 1 1 1 A3 = 0 1 1 1 0 A4 = 0 1 0 1 0

x
25 15 14 10
pi

f (x)
625 225 196 100

Probabilidade Prob. de seleo 54,5% 19,6% 17,1% 8,7%

Probabilidade de seleo proporcional a aptido

f ( xi ) N f ( xk ) k 1

Seleo Proporcional a Aptido (Roleta)

Pais selecionados

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

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

Crossover de 1 ponto
O Ponto de corte escolhido aleatoriamente 11001 01111 11011 01101

O crossover pode ser aplicado com uma dada probabilidade denominada taxa de crossover (70% a 100%)

Pais

Filhos

Mutao
Mutao inverte os valores dos bits. A mutao aplicada com dada probabilidade, denominada taxa de mutao (~1%), em cada um dos bits do cromossomo. Antes da 0 1 1 0 1 mutao Depois 0 0 1 0 1 Aqui, apenas o 2o.bit passou no teste de probabilidade

A taxa de mutao no deve ser nem alta nem baixa, mas o suficiente para assegurar a diversidade de cromossomos na populao.

A primeira gerao
Pais crossover A1 = 1 1 0 0 1 A2 = 0 1 1 1 1 crossover A2 = 0 1 1 1 1 A1 = 1 1 0 0 1 01111 11001 11011 01101 mutao 10111 11001 mutao 11011 00101 Nova pop. Filhos

A primeira gerao
cromossomos Nova Gerao A1 = 1 1 0 1 1 A2 = 0 0 1 0 1 A3 = 1 0 1 1 1 A4 = 1 1 0 0 1

x
27 5 23 25

f (x)
729 25 529 625 287 477

Probabilidade Prob. de seleo 38,2% 1,3% 27,7% 32,8%

Adaptao mdia dos pais: Adaptao mdia da gerao atual:

As demais geraes
x f (x )
729 576 529 441

Segunda Gerao

1 2 3 4

11011 11000 10111 10101

27 24 23 21

f (x )
729 529 225 49

Terceira Gerao

1 2 3 4

11011 10111 01111 00111

27 23 15 7

As demais geraes
x f (x )
961 729 529 529

Quarta Gerao

1 2 3 4

11111 11011 10111 10111

31 27 23 23

f (x )
961 961 961 529

Quinta Gerao

1 2 3 4

11111 11111 11111 10111

31 31 31 23

Problema 2
Achar o mximo da funo utilizando Algoritmos Genticos,

f ( x)

x seno( 10 x ) 1,0

Restrita ao intervalo:

1,0

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
Funo 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
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 nmerica. Longos cromossomos so difceis de manipular. Para cada decimal necessrio 3,3 bits Cromossomo com 22 bits
1000101110110101000111

O Cromossomo
Decodificao
cromossomo = 1000101110110101000111 b 10 = (1000101110110101000111)2 = 2288967 Valor de x precisa estar no intervalo [-1,0; 2,0]

x
x

min (max min)


2.288.967 2 22 1

b10 2l 1

1 (2 1)

0,637197

As Geraes do Problema 2
3,0

f(x) = x seno(10 x) + 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 aleatriamente

As Geraes do Problema 2
3,0

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

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

Primeira Gerao

-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(10 x) + 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
O crossover ou mutao podem destruir a melhor indivduo. Por que perder a melhor soluo encontrada? Elitismo transfere a cpia do melhor indivduo para a gerao seguinte.

Elitismo no Problema 2
3,0 2,8 Funo objetivo 2,6 2,4 2,2 2,0 0 5 15 10 Gerao 20 25

AG com elitismo AG sem elitismo

AG com elitismo melhor ?

Referncias
52

Barbosa, C.M. Algoritmos Genticos , em:

http://www.linux.ime.usp.br/~cleberc/

Ludermir, T. B. Algoritmos Genticos , em: http://www.cin.ufpe.br/~tbl/Aulas/SI/ag-tbl.ppt

You might also like