Algoritmos Genéticos
-
Upload
wilson-freitas -
Category
Economy & Finance
-
view
296 -
download
2
description
Transcript of Algoritmos Genéticos
![Page 1: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/1.jpg)
Algoritmos Genéticos
Wilson Nascimento
19/01/2011
![Page 2: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/2.jpg)
Introdução / Motivação
Como utilizar GAs
ExemplosFunção f6 de SchafferModelo de Heston
Referências
![Page 3: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/3.jpg)
O que são Algoritmos Genéticos (GAs)?
DefiniçãoAlgoritmos Genéticos são algoritmos de busca basedos na seleçãonatural, onde a sobrevivência está vinculada a aptidão dosindivíduos ao ambiente.
Seleção Natural
I Os indivíduos mais aptos tem maior longevidade, e portanto,tem maior probabilidade de reprodução.
I Indivíduos com maior probabilidade de reprodução tem maisdescendentes, e portanto, mais chances de perpetuar seucódigo genético ao longo das gerações.
I O código genético constitui a identidade de cada indivíduo eestá representado no cromossoma.
Estes princípios são aplicados na construção de algoritmos quebuscam a solução ótima para um determinado problema.
![Page 4: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/4.jpg)
Porque utilizar GAs?
Com tantos algoritmos de busca por aí, porque utilizar GAs?
I GAs se aplicam a problemas com diversos parâmetrosI GAs se aplicam a problemas não-lineares e com restrições
não-linearesI GAs se aplicam a problemas que não podem ser representados
matematicamenteI GAs se aplicam a problemas com grandes espaços de buscaI GAs são algoritmos de busca paralela – os métodos de busca
tradicionais atuam no valor da variável, varrendo o espaço debusca seguindo uma regra que determine o ponto seguinte, osGAs realizam a busca evoluindo uma população
![Page 5: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/5.jpg)
Onde utilizar GAs?
Aplicações
I Otimização de planejamento: alocação de espaço físico,embarque de minério, localicação de poços de petróleo
I Otimização de rota / Logística / Caixeiro viajanteI Otimização de estratégias: alternativas de investimento,
exploração de petróleo sob condições de mercadoI Otimização de layout de circuitos / Síntese de circuitos /
NanotecnologiaI Robótica / Síntese de programas assemblyI JogosI Seleção de modelos / Síntese de modelos
![Page 6: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/6.jpg)
Como utilizar GAs?
Dado que exista um problema para o qual se deseja obter a soluçãoótima, para utilizar GAs é necessário definir (nessa ordem):
1. Indivíduo/Cromossoma – criar a representação das soluçõesdo problema (inerente ao problema)
2. Codificação/Decodificação do cromossoma – transformação docromossoma em parâmetros do problema e vice-versa
3. Avaliação do indivíduo – medir o quanto a solução,representada pelos parâmetros decodificados do cromossomado indivíduo, se aproxima do objetivo (função objetivo)
4. Seleção dos indivíduos para as gerações seguintes5. Operadores de reprodução e mutação6. Inicialização da população
![Page 7: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/7.jpg)
Como utilizar GAs?
Dado que exista um problema para o qual se deseja obter a soluçãoótima, para utilizar GAs é necessário definir (nessa ordem):
1. Indivíduo/Cromossoma – criar a representação das soluçõesdo problema (inerente ao problema)
2. Codificação/Decodificação do cromossoma – transformação docromossoma em parâmetros do problema e vice-versa
3. Avaliação do indivíduo – medir o quanto a solução,representada pelos parâmetros decodificados do cromossomado indivíduo, se aproxima do objetivo (função objetivo)
4. Seleção dos indivíduos para as gerações seguintes5. Operadores de reprodução e mutação6. Inicialização da população
![Page 8: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/8.jpg)
Como utilizar GAs?
Dado que exista um problema para o qual se deseja obter a soluçãoótima, para utilizar GAs é necessário definir (nessa ordem):
1. Indivíduo/Cromossoma – criar a representação das soluçõesdo problema (inerente ao problema)
2. Codificação/Decodificação do cromossoma – transformação docromossoma em parâmetros do problema e vice-versa
3. Avaliação do indivíduo – medir o quanto a solução,representada pelos parâmetros decodificados do cromossomado indivíduo, se aproxima do objetivo (função objetivo)
4. Seleção dos indivíduos para as gerações seguintes5. Operadores de reprodução e mutação6. Inicialização da população
![Page 9: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/9.jpg)
Como utilizar GAs?
Dado que exista um problema para o qual se deseja obter a soluçãoótima, para utilizar GAs é necessário definir (nessa ordem):
1. Indivíduo/Cromossoma – criar a representação das soluçõesdo problema (inerente ao problema)
2. Codificação/Decodificação do cromossoma – transformação docromossoma em parâmetros do problema e vice-versa
3. Avaliação do indivíduo – medir o quanto a solução,representada pelos parâmetros decodificados do cromossomado indivíduo, se aproxima do objetivo (função objetivo)
4. Seleção dos indivíduos para as gerações seguintes
5. Operadores de reprodução e mutação6. Inicialização da população
![Page 10: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/10.jpg)
Como utilizar GAs?
Dado que exista um problema para o qual se deseja obter a soluçãoótima, para utilizar GAs é necessário definir (nessa ordem):
1. Indivíduo/Cromossoma – criar a representação das soluçõesdo problema (inerente ao problema)
2. Codificação/Decodificação do cromossoma – transformação docromossoma em parâmetros do problema e vice-versa
3. Avaliação do indivíduo – medir o quanto a solução,representada pelos parâmetros decodificados do cromossomado indivíduo, se aproxima do objetivo (função objetivo)
4. Seleção dos indivíduos para as gerações seguintes5. Operadores de reprodução e mutação
6. Inicialização da população
![Page 11: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/11.jpg)
Como utilizar GAs?
Dado que exista um problema para o qual se deseja obter a soluçãoótima, para utilizar GAs é necessário definir (nessa ordem):
1. Indivíduo/Cromossoma – criar a representação das soluçõesdo problema (inerente ao problema)
2. Codificação/Decodificação do cromossoma – transformação docromossoma em parâmetros do problema e vice-versa
3. Avaliação do indivíduo – medir o quanto a solução,representada pelos parâmetros decodificados do cromossomado indivíduo, se aproxima do objetivo (função objetivo)
4. Seleção dos indivíduos para as gerações seguintes5. Operadores de reprodução e mutação6. Inicialização da população
![Page 12: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/12.jpg)
Representação do cromossomaAs possíveis soluções do espaço de busca de um problemadeterminam a representação que deve ser utilizada para codifica-lasem cromossomas.
Problemas RepresentaçãoNuméricos, Inteiros Binária
Numéricos Lista com números reaisBaseados em ordem Listas e Grafos
Programas Árvores
Exemplo: representação bináriaEncontrar o valor máximo da função f(x) = x2, para x ∈ [0, 63].Podemos representar as soluções do problema através de umcromossoma de 6 bits.
C1 0 0 1 0 0 1 representa x = 9C2 0 0 0 1 0 0 representa x = 4
![Page 13: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/13.jpg)
Codificação / Decodificação do cromossoma
A representação do cromossoma é inerente ao problema emquestão, dessa forma é necessário construir a solução real doproblema a partir do cromossoma.
Exemplo: decodificação representação binária para f(x) = x2
O cromossomo 0 0 1 0 0 1 é decodificado para a solução x = 9pela expressão:
x = 0× 25 + 0× 24 + 1× 23 + 0× 22 + 0× 21 + 1× 20 = 9
Exemplo: codificação representação binária para f(x) = x2
A codificado da solução x = 9 é dada pelo algoritmo:
for (i=0 ; i<6 ; i++) {cromossoma[i] = (x >> i) and 1}
![Page 14: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/14.jpg)
Avaliação dos indivíduos
A avaliação é o elo entre o GA e o mundo externo e é realizadapela função que melhor representa o problema (função objetivo),definindo portanto, a aptidão (fitness) do indivíduo.
Avaliando os indivíduos para o problema f(x) = x2
Indivíduo Cromossoma x f(x) (fitness)C1 0 0 1 0 0 1 9 81C2 0 0 0 1 0 0 4 16
![Page 15: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/15.jpg)
Seleção dos indivíduos para reprodução
I O processo de seleção em algoritmos genéticos selecionaindivíduos para reprodução
I A seleção é baseada na seleção dos indivíduos de forma que osmais aptos tem maior probabilidade de serem escolhidos parareprodução
I Seja fi a aptidão do indivíduo i na população de N indivíduos.A probabilidade do indivíduo i ser selecionado para areprodução é dada por:
pi =fi∑Nj=1 fj
![Page 16: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/16.jpg)
Operadores genéticosI Os indivíduos são selecionados aleatóriamente de acordo com
as probabilidades baseadas nas suas aptidõesI Novos indivíduos são criados a partir do cruzamento
(crossover) das informações dos indivíduos selecionados
Exemplo: Cruzamento Crossover de um ponto de corte
C1 0 0 1 0 0 1 x = 9 f(x) = 81C2 0 0 0 1 0 0 x = 4 f(x) = 16
D1 0 0 1 1 0 0 x = 12 f(x) = 144D2 0 0 0 0 0 1 x = 1 f(x) = 1
Os indivíduos selecionados cruzam com probabilidade pc (probabilidade decruzamento). Quando não há cruzamento os indivíduos selecionados vão para apróxima geração.
I A operação de crossover consome as característicasinstrínsecas da população
![Page 17: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/17.jpg)
Operadores genéticos – Mutação
I Os novos indivíduos gerados ainda podem sofrer mutaçõesalterando pontualmente as características herdadas naoperação de crossover
Exemplo: Mutação sobre o novo indivíduo D2
D2 0 0 0 0 0 1 x = 1 f(x) = 1D2 0 1 0 0 0 1 x = 19 f(x) = 361
O bit afetado pela mutação é selecionado aleatóriamente e amutação ocorre com probabilidade pm < 1% (probabilidade demutação)
I A operação de mutação explora o espaço de soluções embusca de características ausentes na população
![Page 18: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/18.jpg)
GA
![Page 19: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/19.jpg)
Mínimo da função F6 de SchafferEncontrar o ponto de mínimo da função F6 de Schaffer
f(x, y) =0.5 + (sin(
√x2 + y2)2 − 0.5)
(1.0 + 0.001(x2 + y2))2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
-100 -50 0 50 100
f(x,0
)
x
![Page 20: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/20.jpg)
Análise do problema
ProblemaI Minimizar a função F6 de SchafferI Os parâmetros: x ∈ [−100, 100] e y ∈ [−100, 100]
Representação
I Utilizar representação binária para os parâmetrosI Teremos 1 tira de bits para cada parâmetro que serão
concatenadas para formar o cromossoma do indivíduo
Parâmetro x (M bits) Parâmetro y (N bits)
Cromossoma
![Page 21: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/21.jpg)
Código binário codificando um número realI Para utilizar uma tira de bits para representar um número real
é necessário definir a precisão desejadaI Para que x ∈ [−100, 100] tenha precisão de p casa decimais é
necessário que o intervalo [xmin, xmax] seja particionado em(xmax − xmin)10p soluções (estamos limitando o espaço debusca quando definimos a precisão)
I Dado que o parâmetro x tem M bits temos que a tira de bitsque representa x pode assumir 2M valores de forma que para aprecisão desejada temos:
2M ≥ (xmax − xmin)10p −→ p ≤ log102M
xmax − xmin
I Para uma precisão de p = 4 casas decimais comx ∈ [−100, 100] temos M = 22 bits
Precisao =xmax − xmin
2M − 1=
100− (−100)
222 − 1= 0.0000476
![Page 22: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/22.jpg)
Código binário codificando um número real
I Uma tira de bits de tamanho M possui 2M permutações quevão de 0 a 2M − 1 na base 10
I xbin é uma possível solução na representação binária, logo,0 ≤ xbin ≤ 2M − 1
I Dado que x ∈ [xmin, xmax] a decodificação de binário parareal é dada por:
x = xbinxmax − xmin
2M − 1+ xmin
ExemploSeja xbin = 01011111110100100111102 = 156995010, comM = 22 temos:
x = 1569950100− (−100)
222 − 1+ (−200) = −25.1389
![Page 23: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/23.jpg)
Representação da solução da F6Considerando a precisão de p = 4 casas decimais para osparâmetros x e y temos o seguinte cromossoma para solução da F6
Parâmetro x (22 bits) Parâmetro y (22 bits)
Na representação binária
0111110110110100011101! 0111000000110001011111!
Na base 10
2059549! 1838175!
Decodificado
-1.7930! -12.3489!
![Page 24: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/24.jpg)
Avaliação do cromossoma da F6
A avaliação do cromossoma da função F6 é própria função F6
f(x, y) =0.5 + (sin(
√x2 + y2)2 − 0.5)
(1.0 + 0.001(x2 + y2))2
Exemplo
I O cromossoma
01111101101101000111010111000000110001011111
Variável Binária Na base 10 Decodificadox 0111110110110100011101 2059549 -1.7930y 0111000000110001011111 1838175 -12.3489
I Fitness: f(x, y) = 0.3684
O objetivo é minimizar a F6, logo, quanto menor, melhor.
![Page 25: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/25.jpg)
Configuração do GA
I Operador de crossover: crossover de 1 ponto (demostradoanteriormente)
I Operador de mutação: troca 1 bitI A inicialização da população é aleatóriaI O melhor indivíduo de cada geração permanece na populaçãoI Taxa de crossover: 80%I Taxa de mutação: 5%I Tamanho da população: 100 indivíduosI Gerações: 1000I Total de indivíduos avaliados: 105
![Page 26: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/26.jpg)
ResultadosScore do melhor indivíduo (x = 0.00024 e y = 0.00048)
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0 100 200 300 400 500 600 700 800 900 1000
Scor
e
Gerações
![Page 27: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/27.jpg)
ResultadosIntervalo de scores (do melhor indivíduo ao pior indivíduo)
0
0.2
0.4
0.6
0.8
1
0 100 200 300 400 500 600 700 800 900 1000
Scor
e
Gerações
![Page 28: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/28.jpg)
Resultados
Score da população
![Page 29: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/29.jpg)
Modelo de HestonCalibrar os parâmetros (v, v̄, λ, η, ρ) do modelo de Heston para que os preçosda call Européia segundo Heston "casem"com os preços líquidos do mercado(segundo Black & Scholes).
Call Européia (undiscounted) segundo Heston
CH(F,K, τ ; v, v̄, λ, η, ρ) = F −√KF
2π
∫ +∞
−∞dke−ikX
H(k + i2, v, τ ; v̄, λ, η, ρ)
k2 + 14
onde
H(k, v, τ) = exp(W (k, τ) + vV (k, τ))
W (k, τ) = λv̄
[τT−(k)− 2
η2ln
(1− g(k)e−d(k)τ
1− g(k)
)]T (k, τ) = T−(k)
(1− e−d(k)τ
1− g(k)e−d(k)τ
)T±(k) =
b(k)± d(k)
η2
g(k) =b(k)− d(k)
b(k) + d(k)
b(k) = λ+ iρη k
d(k) =√b2(k) + η2k(k − i)
![Page 30: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/30.jpg)
O problema de HestonEncontrar os valores para os parâmetros v, v̄, λ, η, ρ que minimizema função
f(v, v̄, λ, η, ρ) =
√√√√ N∑i=1
(CH(Fi,Ki, τi)− CBS(Fi,Ki, τi)
)2
para uma superfície com N = 220 preços de opções.
Configuração do GA
I Representação: lista de números reais, cada elemento da listarepresenta 1 parâmetro
I Taxa de crossover: 80%I Taxa de mutação: 2%I Tamanho da população: 80 indivíduosI Gerações: 100I Total de indivíduos avaliados: 800
![Page 31: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/31.jpg)
Resultados
Score do melhor indivíduo (v = 0.15039, v̄ = 0.03061, λ = 19.43169,η = 3.73731, ρ = 0.57450)
0
500
1000
1500
2000
2500
3000
3500
4000
4500
0 10 20 30 40 50 60 70 80 90 100
Scor
e
Gerações
![Page 32: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/32.jpg)
ResultadosIntervalo de scores (do melhor indivíduo ao pior indivíduo)
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
20000
0 10 20 30 40 50 60 70 80 90 100
Scor
e
Gerações
![Page 33: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/33.jpg)
Resultados
Score da população
![Page 34: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/34.jpg)
[Goldberg, 1989] David Edward Goldberg.Genetic Algorithms in search, optimization, and machinelearning,Addison Wesley Longman, Inc, 1989.
[Lawrence, 1991] Lawrence Davis.Handbook of Genetic Algorithms,Van Nostrand Reinhold, 1991.
[Whitley, 1989] Darrel Whitley.The GENITOR Algorithm and Selection Pressure: WhyRank-Based Allocation of Reproductive Trials is Best (1989),Proceedings of the Third International Conference on GeneticAlgorithms, 1989.
[Whitley, 1992] Darrel Whitley.An Executable Model of a Simple Genetic Algorithm,Foundations of Genetic Algorithms 2, 1992.
[Whitley, 1993] Darrel Whitley.A Genetic Algorithm Tutorial,
![Page 35: Algoritmos Genéticos](https://reader035.fdocumentos.tips/reader035/viewer/2022070321/5589c986d8b42a3a578b4740/html5/thumbnails/35.jpg)
Statistics and Computing, 1993.
[CiteSeer.IST] CiteSeer.ISThttp://citeseer.ist.psu.edu/cs