Algoritmos Genéticos
Wilson Nascimento

19/01/2011
Introdução / Motivação

Como utilizar GAs

Exemplos
Função f6 de Schaffer
Modelo de Heston

Referências
O que são Algoritmos Genéticos (GAs)?
Definição
Algoritmos Genéticos são algoritmos de busca basedos na seleção
natural, onde a sobrevivência está vinculada a aptidão dos
indivíduos ao ambiente.

Seleção Natural
Os indivíduos mais aptos tem maior longevidade, e portanto,
tem maior probabilidade de reprodução.
Indivíduos com maior probabilidade de reprodução tem mais
descendentes, e portanto, mais chances de perpetuar seu
código genético ao longo das gerações.
O código genético constitui a identidade de cada indivíduo e
está representado no cromossoma.
Estes princípios são aplicados na construção de algoritmos que
buscam a solução ótima para um determinado problema.
Porque utilizar GAs?
Com tantos algoritmos de busca por aí, porque utilizar GAs?
GAs se aplicam a problemas com diversos parâmetros
GAs se aplicam a problemas não-lineares e com restrições
não-lineares
GAs se aplicam a problemas que não podem ser representados
matematicamente
GAs se aplicam a problemas com grandes espaços de busca
GAs são algoritmos de busca paralela – os métodos de busca
tradicionais atuam no valor da variável, varrendo o espaço de
busca seguindo uma regra que determine o ponto seguinte, os
GAs realizam a busca evoluindo uma população
Onde utilizar GAs?
Aplicações
Otimização de planejamento: alocação de espaço físico,
embarque de minério, localicação de poços de petróleo
Otimização de rota / Logística / Caixeiro viajante
Otimização de estratégias: alternativas de investimento,
exploração de petróleo sob condições de mercado
Otimização de layout de circuitos / Síntese de circuitos /
Nanotecnologia
Robótica / Síntese de programas assembly
Jogos
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ções
do problema (inerente ao problema)
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ções
do problema (inerente ao problema)
2. Codificação/Decodificação do cromossoma – transformação do
cromossoma em parâmetros do problema e vice-versa
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ções
do problema (inerente ao problema)
2. Codificação/Decodificação do cromossoma – transformação do
cromossoma 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 cromossoma
do indivíduo, se aproxima do objetivo (função objetivo)
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ções
do problema (inerente ao problema)
2. Codificação/Decodificação do cromossoma – transformação do
cromossoma 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 cromossoma
do indivíduo, se aproxima do objetivo (função objetivo)
4. Seleção dos indivíduos para as gerações seguintes
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ções
do problema (inerente ao problema)
2. Codificação/Decodificação do cromossoma – transformação do
cromossoma 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 cromossoma
do 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çã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ções
do problema (inerente ao problema)
2. Codificação/Decodificação do cromossoma – transformação do
cromossoma 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 cromossoma
do 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ção
6. Inicialização da população
Representação do cromossoma
As possíveis soluções do espaço de busca de um problema
determinam a representação que deve ser utilizada para codifica-las
em cromossomas.
Problemas
Numéricos, Inteiros
Numéricos
Baseados em ordem
Programas

Representação
Binária
Lista com números reais
Listas e Grafos
Árvores

Exemplo: representação binária
Encontrar o valor máximo da função f (x) = x2 , para x ∈ [0, 63].
Podemos representar as soluções do problema através de um
cromossoma de 6 bits.
C1
C2

0 0 1 0 0 1
0 0 0 1 0 0

representa x = 9
representa x = 4
Codificação / Decodificação do cromossoma
A representação do cromossoma é inerente ao problema em
questão, dessa forma é necessário construir a solução real do
problema 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 = 9
pela 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 é realizada
pela 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
C1
C2

Cromossoma
0 0 1 0 0 1
0 0 0 1 0 0

x
9
4

f (x) (fitness)
81
16
Seleção dos indivíduos para reprodução

O processo de seleção em algoritmos genéticos seleciona
indivíduos para reprodução
A seleção é baseada na seleção dos indivíduos de forma que os
mais aptos tem maior probabilidade de serem escolhidos para
reprodução
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 a
reprodução é dada por:
pi =

fi
N
j=1 fj
Operadores genéticos
Os indivíduos são selecionados aleatóriamente de acordo com
as probabilidades baseadas nas suas aptidões
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
C2

0 0 1
0 0 0

0 0 1
1 0 0

x=9
x=4

f (x) = 81
f (x) = 16

D1
D2

0 0 1
0 0 0

1 0 0
0 0 1

x = 12
x=1

f (x) = 144
f (x) = 1

Os indivíduos selecionados cruzam com probabilidade pc (probabilidade de
cruzamento). Quando não há cruzamento os indivíduos selecionados vão para a
próxima geração.

A operação de crossover consome as características
instrínsecas da população
Operadores genéticos – Mutação
Os novos indivíduos gerados ainda podem sofrer mutações
alterando pontualmente as características herdadas na
operação de crossover

Exemplo: Mutação sobre o novo indivíduo D2
D2
D2

0 0 0 0 0 1
0 1 0 0 0 1

x=1
x = 19

f (x) = 1
f (x) = 361

O bit afetado pela mutação é selecionado aleatóriamente e a
mutação ocorre com probabilidade pm < 1% (probabilidade de
mutação)
A operação de mutação explora o espaço de soluções em
busca de características ausentes na população
GA
Mínimo da função F6 de Schaffer
Encontrar o ponto de mínimo da função F6 de Schaffer
f (x, y) =

0.5 + (sin( x2 + y 2 )2 − 0.5)
(1.0 + 0.001(x2 + y 2 ))2

1
0.9
0.8
0.7

f(x,0)

0.6
0.5
0.4
0.3
0.2
0.1
0
-100

-50

0
x

50

100
Análise do problema
Problema
Minimizar a função F6 de Schaffer
Os parâmetros: x ∈ [−100, 100] e y ∈ [−100, 100]

Representação
Utilizar representação binária para os parâmetros
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 real
Para utilizar uma tira de bits para representar um número real
é necessário definir a precisão desejada
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 de
busca quando definimos a precisão)
Dado que o parâmetro x tem M bits temos que a tira de bits
que representa x pode assumir 2M valores de forma que para a
precisão desejada temos:
2M ≥ (xmax − xmin )10p −→ p ≤ log10

2M
xmax − xmin

Para uma precisão de p = 4 casas decimais com
x ∈ [−100, 100] temos M = 22 bits
P recisao =

xmax − xmin
100 − (−100)
=
= 0.0000476
M −1
2
222 − 1
Código binário codificando um número real
Uma tira de bits de tamanho M possui 2M permutações que
vão de 0 a 2M − 1 na base 10
xbin é uma possível solução na representação binária, logo,
0 ≤ xbin ≤ 2M − 1
Dado que x ∈ [xm in, xmax ] a decodificação de binário para
real é dada por:
x = xbin

xmax − xmin
+ xmin
2M − 1

Exemplo
Seja xbin = 01011111110100100111102 = 156995010 , com
M = 22 temos:
x = 1569950

100 − (−100)
+ (−200) = −25.1389
222 − 1
Representação da solução da F6
Considerando a precisão de p = 4 casas decimais para os
parâ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!

-1.7930!

-12.3489!

Decodificado
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 + y 2 )2 − 0.5)
(1.0 + 0.001(x2 + y 2 ))2

Exemplo
O cromossoma
01111101101101000111010111000000110001011111
Variável
x
y

Binária
0111110110110100011101
0111000000110001011111

Na base 10
2059549
1838175

Decodificado
-1.7930
-12.3489

Fitness: f (x, y) = 0.3684

O objetivo é minimizar a F6, logo, quanto menor, melhor.
Configuração do GA

Operador de crossover: crossover de 1 ponto (demostrado
anteriormente)
Operador de mutação: troca 1 bit
A inicialização da população é aleatória
O melhor indivíduo de cada geração permanece na população
Taxa de crossover: 80%
Taxa de mutação: 5%
Tamanho da população: 100 indivíduos
Gerações: 1000
Total de indivíduos avaliados: 105
Resultados
Score do melhor indivíduo (x = 0.00024 e y = 0.00048)

0.35

0.3

0.25

Score

0.2

0.15

0.1

0.05

0
0

100

200

300

400

500
Gerações

600

700

800

900

1000
Resultados
Intervalo de scores (do melhor indivíduo ao pior indivíduo)

1

0.8

Score

0.6

0.4

0.2

0
0

100

200

300

400

500
Gerações

600

700

800

900

1000
Resultados
Score da população
Modelo de Heston
Calibrar os parâmetros (v, v , λ, η, ρ) do modelo de Heston para que os preços
¯
da 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

i
H(k + 2 , v, τ ; v , λ, η, ρ)
¯
1
k2 + 4

onde
H(k, v, τ ) = exp(W (k, τ ) + vV (k, τ ))

g(k) =
−d(k)τ

W (k, τ ) = λ¯ τ T− (k) −
v

1 − g(k)e
2
ln
η2
1 − g(k)
−d(k)τ

1−e
1 − g(k)e−d(k)τ
b(k) ± d(k)
T± (k) =
η2

T (k, τ ) = T− (k)

b(k) − d(k)
b(k) + d(k)

b(k) = λ + iρη k
d(k) =

b2 (k) + η 2 k(k − i)
O problema de Heston
Encontrar os valores para os parâmetros v, v , λ, η, ρ que minimizem
¯
a função
N

2

CH (Fi , Ki , τi ) − CBS (Fi , Ki , τi )

f (v, v , λ, η, ρ) =
¯
i=1

para uma superfície com N = 220 preços de opções.

Configuração do GA
Representação: lista de números reais, cada elemento da lista
representa 1 parâmetro
Taxa de crossover: 80%
Taxa de mutação: 2%
Tamanho da população: 80 indivíduos
Gerações: 100
Total de indivíduos avaliados: 800
Resultados
Score do melhor indivíduo (v = 0.15039, v = 0.03061, λ = 19.43169,
¯
η = 3.73731, ρ = 0.57450)
4500

4000

3500

Score

3000

2500

2000

1500

1000

500

0
0

10

20

30

40

50
Gerações

60

70

80

90

100
Resultados
Intervalo de scores (do melhor indivíduo ao pior indivíduo)

20000
18000
16000
14000

Score

12000
10000
8000
6000
4000
2000
0
0

10

20

30

40

50
Gerações

60

70

80

90

100
Resultados
Score da população
[Goldberg, 1989] David Edward Goldberg.
Genetic Algorithms in search, optimization, and machine
learning,
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: Why
Rank-Based Allocation of Reproductive Trials is Best (1989),
Proceedings of the Third International Conference on Genetic
Algorithms, 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.IST
http://citeseer.ist.psu.edu/cs

Algoritmos Genéticos

  • 1.
  • 2.
    Introdução / Motivação Comoutilizar GAs Exemplos Função f6 de Schaffer Modelo de Heston Referências
  • 3.
    O que sãoAlgoritmos Genéticos (GAs)? Definição Algoritmos Genéticos são algoritmos de busca basedos na seleção natural, onde a sobrevivência está vinculada a aptidão dos indivíduos ao ambiente. Seleção Natural Os indivíduos mais aptos tem maior longevidade, e portanto, tem maior probabilidade de reprodução. Indivíduos com maior probabilidade de reprodução tem mais descendentes, e portanto, mais chances de perpetuar seu código genético ao longo das gerações. O código genético constitui a identidade de cada indivíduo e está representado no cromossoma. Estes princípios são aplicados na construção de algoritmos que buscam a solução ótima para um determinado problema.
  • 4.
    Porque utilizar GAs? Comtantos algoritmos de busca por aí, porque utilizar GAs? GAs se aplicam a problemas com diversos parâmetros GAs se aplicam a problemas não-lineares e com restrições não-lineares GAs se aplicam a problemas que não podem ser representados matematicamente GAs se aplicam a problemas com grandes espaços de busca GAs são algoritmos de busca paralela – os métodos de busca tradicionais atuam no valor da variável, varrendo o espaço de busca seguindo uma regra que determine o ponto seguinte, os GAs realizam a busca evoluindo uma população
  • 5.
    Onde utilizar GAs? Aplicações Otimizaçãode planejamento: alocação de espaço físico, embarque de minério, localicação de poços de petróleo Otimização de rota / Logística / Caixeiro viajante Otimização de estratégias: alternativas de investimento, exploração de petróleo sob condições de mercado Otimização de layout de circuitos / Síntese de circuitos / Nanotecnologia Robótica / Síntese de programas assembly Jogos Seleção de modelos / Síntese de modelos
  • 6.
    Como utilizar GAs? Dadoque 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ções do problema (inerente ao problema)
  • 7.
    Como utilizar GAs? Dadoque 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ções do problema (inerente ao problema) 2. Codificação/Decodificação do cromossoma – transformação do cromossoma em parâmetros do problema e vice-versa
  • 8.
    Como utilizar GAs? Dadoque 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ções do problema (inerente ao problema) 2. Codificação/Decodificação do cromossoma – transformação do cromossoma 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 cromossoma do indivíduo, se aproxima do objetivo (função objetivo)
  • 9.
    Como utilizar GAs? Dadoque 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ções do problema (inerente ao problema) 2. Codificação/Decodificação do cromossoma – transformação do cromossoma 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 cromossoma do indivíduo, se aproxima do objetivo (função objetivo) 4. Seleção dos indivíduos para as gerações seguintes
  • 10.
    Como utilizar GAs? Dadoque 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ções do problema (inerente ao problema) 2. Codificação/Decodificação do cromossoma – transformação do cromossoma 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 cromossoma do 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ção
  • 11.
    Como utilizar GAs? Dadoque 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ções do problema (inerente ao problema) 2. Codificação/Decodificação do cromossoma – transformação do cromossoma 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 cromossoma do 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ção 6. Inicialização da população
  • 12.
    Representação do cromossoma Aspossíveis soluções do espaço de busca de um problema determinam a representação que deve ser utilizada para codifica-las em cromossomas. Problemas Numéricos, Inteiros Numéricos Baseados em ordem Programas Representação Binária Lista com números reais Listas e Grafos Árvores Exemplo: representação binária Encontrar o valor máximo da função f (x) = x2 , para x ∈ [0, 63]. Podemos representar as soluções do problema através de um cromossoma de 6 bits. C1 C2 0 0 1 0 0 1 0 0 0 1 0 0 representa x = 9 representa x = 4
  • 13.
    Codificação / Decodificaçãodo cromossoma A representação do cromossoma é inerente ao problema em questão, dessa forma é necessário construir a solução real do problema 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 = 9 pela 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 }
  • 14.
    Avaliação dos indivíduos Aavaliação é o elo entre o GA e o mundo externo e é realizada pela 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 C1 C2 Cromossoma 0 0 1 0 0 1 0 0 0 1 0 0 x 9 4 f (x) (fitness) 81 16
  • 15.
    Seleção dos indivíduospara reprodução O processo de seleção em algoritmos genéticos seleciona indivíduos para reprodução A seleção é baseada na seleção dos indivíduos de forma que os mais aptos tem maior probabilidade de serem escolhidos para reprodução 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 a reprodução é dada por: pi = fi N j=1 fj
  • 16.
    Operadores genéticos Os indivíduossão selecionados aleatóriamente de acordo com as probabilidades baseadas nas suas aptidões 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 C2 0 0 1 0 0 0 0 0 1 1 0 0 x=9 x=4 f (x) = 81 f (x) = 16 D1 D2 0 0 1 0 0 0 1 0 0 0 0 1 x = 12 x=1 f (x) = 144 f (x) = 1 Os indivíduos selecionados cruzam com probabilidade pc (probabilidade de cruzamento). Quando não há cruzamento os indivíduos selecionados vão para a próxima geração. A operação de crossover consome as características instrínsecas da população
  • 17.
    Operadores genéticos –Mutação Os novos indivíduos gerados ainda podem sofrer mutações alterando pontualmente as características herdadas na operação de crossover Exemplo: Mutação sobre o novo indivíduo D2 D2 D2 0 0 0 0 0 1 0 1 0 0 0 1 x=1 x = 19 f (x) = 1 f (x) = 361 O bit afetado pela mutação é selecionado aleatóriamente e a mutação ocorre com probabilidade pm < 1% (probabilidade de mutação) A operação de mutação explora o espaço de soluções em busca de características ausentes na população
  • 18.
  • 19.
    Mínimo da funçãoF6 de Schaffer Encontrar o ponto de mínimo da função F6 de Schaffer f (x, y) = 0.5 + (sin( x2 + y 2 )2 − 0.5) (1.0 + 0.001(x2 + y 2 ))2 1 0.9 0.8 0.7 f(x,0) 0.6 0.5 0.4 0.3 0.2 0.1 0 -100 -50 0 x 50 100
  • 20.
    Análise do problema Problema Minimizara função F6 de Schaffer Os parâmetros: x ∈ [−100, 100] e y ∈ [−100, 100] Representação Utilizar representação binária para os parâmetros 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
  • 21.
    Código binário codificandoum número real Para utilizar uma tira de bits para representar um número real é necessário definir a precisão desejada 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 de busca quando definimos a precisão) Dado que o parâmetro x tem M bits temos que a tira de bits que representa x pode assumir 2M valores de forma que para a precisão desejada temos: 2M ≥ (xmax − xmin )10p −→ p ≤ log10 2M xmax − xmin Para uma precisão de p = 4 casas decimais com x ∈ [−100, 100] temos M = 22 bits P recisao = xmax − xmin 100 − (−100) = = 0.0000476 M −1 2 222 − 1
  • 22.
    Código binário codificandoum número real Uma tira de bits de tamanho M possui 2M permutações que vão de 0 a 2M − 1 na base 10 xbin é uma possível solução na representação binária, logo, 0 ≤ xbin ≤ 2M − 1 Dado que x ∈ [xm in, xmax ] a decodificação de binário para real é dada por: x = xbin xmax − xmin + xmin 2M − 1 Exemplo Seja xbin = 01011111110100100111102 = 156995010 , com M = 22 temos: x = 1569950 100 − (−100) + (−200) = −25.1389 222 − 1
  • 23.
    Representação da soluçãoda F6 Considerando a precisão de p = 4 casas decimais para os parâ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! -1.7930! -12.3489! Decodificado
  • 24.
    Avaliação do cromossomada F6 A avaliação do cromossoma da função F6 é própria função F6 f (x, y) = 0.5 + (sin( x2 + y 2 )2 − 0.5) (1.0 + 0.001(x2 + y 2 ))2 Exemplo O cromossoma 01111101101101000111010111000000110001011111 Variável x y Binária 0111110110110100011101 0111000000110001011111 Na base 10 2059549 1838175 Decodificado -1.7930 -12.3489 Fitness: f (x, y) = 0.3684 O objetivo é minimizar a F6, logo, quanto menor, melhor.
  • 25.
    Configuração do GA Operadorde crossover: crossover de 1 ponto (demostrado anteriormente) Operador de mutação: troca 1 bit A inicialização da população é aleatória O melhor indivíduo de cada geração permanece na população Taxa de crossover: 80% Taxa de mutação: 5% Tamanho da população: 100 indivíduos Gerações: 1000 Total de indivíduos avaliados: 105
  • 26.
    Resultados Score do melhorindivíduo (x = 0.00024 e y = 0.00048) 0.35 0.3 0.25 Score 0.2 0.15 0.1 0.05 0 0 100 200 300 400 500 Gerações 600 700 800 900 1000
  • 27.
    Resultados Intervalo de scores(do melhor indivíduo ao pior indivíduo) 1 0.8 Score 0.6 0.4 0.2 0 0 100 200 300 400 500 Gerações 600 700 800 900 1000
  • 28.
  • 29.
    Modelo de Heston Calibraros parâmetros (v, v , λ, η, ρ) do modelo de Heston para que os preços ¯ da 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 i H(k + 2 , v, τ ; v , λ, η, ρ) ¯ 1 k2 + 4 onde H(k, v, τ ) = exp(W (k, τ ) + vV (k, τ )) g(k) = −d(k)τ W (k, τ ) = λ¯ τ T− (k) − v 1 − g(k)e 2 ln η2 1 − g(k) −d(k)τ 1−e 1 − g(k)e−d(k)τ b(k) ± d(k) T± (k) = η2 T (k, τ ) = T− (k) b(k) − d(k) b(k) + d(k) b(k) = λ + iρη k d(k) = b2 (k) + η 2 k(k − i)
  • 30.
    O problema deHeston Encontrar os valores para os parâmetros v, v , λ, η, ρ que minimizem ¯ a função N 2 CH (Fi , Ki , τi ) − CBS (Fi , Ki , τi ) f (v, v , λ, η, ρ) = ¯ i=1 para uma superfície com N = 220 preços de opções. Configuração do GA Representação: lista de números reais, cada elemento da lista representa 1 parâmetro Taxa de crossover: 80% Taxa de mutação: 2% Tamanho da população: 80 indivíduos Gerações: 100 Total de indivíduos avaliados: 800
  • 31.
    Resultados Score do melhorindivíduo (v = 0.15039, v = 0.03061, λ = 19.43169, ¯ η = 3.73731, ρ = 0.57450) 4500 4000 3500 Score 3000 2500 2000 1500 1000 500 0 0 10 20 30 40 50 Gerações 60 70 80 90 100
  • 32.
    Resultados Intervalo de scores(do melhor indivíduo ao pior indivíduo) 20000 18000 16000 14000 Score 12000 10000 8000 6000 4000 2000 0 0 10 20 30 40 50 Gerações 60 70 80 90 100
  • 33.
  • 34.
    [Goldberg, 1989] DavidEdward Goldberg. Genetic Algorithms in search, optimization, and machine learning, 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: Why Rank-Based Allocation of Reproductive Trials is Best (1989), Proceedings of the Third International Conference on Genetic Algorithms, 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,
  • 35.
    Statistics and Computing,1993. [CiteSeer.IST] CiteSeer.IST http://citeseer.ist.psu.edu/cs