Professional Documents
Culture Documents
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
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.
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
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
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
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.
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:
f ( x)
400 200 0 0 5 10 15 20 25 30
0 x 31 x inteiro
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
f ( xi ) N f ( xk ) k 1
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
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
As demais geraes
x f (x )
729 576 529 441
Segunda Gerao
1 2 3 4
27 24 23 21
f (x )
729 529 225 49
Terceira Gerao
1 2 3 4
27 23 15 7
As demais geraes
x f (x )
961 729 529 529
Quarta Gerao
1 2 3 4
31 27 23 23
f (x )
961 961 961 529
Quinta Gerao
1 2 3 4
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
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
b10 2l 1
1 (2 1)
0,637197
As Geraes do Problema 2
3,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
As Geraes do Problema 2
3,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
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
As Geraes do Problema 2
3,0
Funo objetivo
Mdia Melhor
15
20
25
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
Referncias
52
http://www.linux.ime.usp.br/~cleberc/