algoritmos genéticos

35
Algoritmos Genéticos Wilson Nascimento 19/01/2011

Upload: wilson-freitas

Post on 24-Jun-2015

296 views

Category:

Economy & Finance


2 download

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

Page 1: Algoritmos Genéticos

Algoritmos Genéticos

Wilson Nascimento

19/01/2011

Page 2: Algoritmos Genéticos

Introdução / Motivação

Como utilizar GAs

ExemplosFunção f6 de SchafferModelo de Heston

Referências

Page 3: Algoritmos Genéticos

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

GA

Page 19: Algoritmos Genéticos

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

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

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

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

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

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

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

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

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

Resultados

Score da população

Page 29: Algoritmos Genéticos

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

∫ +∞

−∞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

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

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

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

Resultados

Score da população

Page 34: Algoritmos Genéticos

[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

Statistics and Computing, 1993.

[CiteSeer.IST] CiteSeer.ISThttp://citeseer.ist.psu.edu/cs