algoritmos genéticos
DESCRIPTION
Breve introdução a Algoritmos Genéticos que apresenta a abordagem discreta (representação binária) para a busca de pontos de mínimo em funções multimodais. Apresenta ainda a representação real (números reais) na calibragem dos parâmetros do Modelo de Heston.TRANSCRIPT
Algoritmos Genéticos
Wilson Nascimento
19/01/2011
Introdução / Motivação
Como utilizar GAs
ExemplosFunção f6 de SchafferModelo de Heston
Referências
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.
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
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
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
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
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
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
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
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
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
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}
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
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
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
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
GA
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
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
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
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
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!
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.
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
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
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
Resultados
Score da população
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)
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
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
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
Resultados
Score da população
[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,
Statistics and Computing, 1993.
[CiteSeer.IST] CiteSeer.ISThttp://citeseer.ist.psu.edu/cs