SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Super resolution-review
Super resolution-reviewSuper resolution-review
Super resolution-reviewWoojin Jeong
 
Genetic Algorithms - Artificial Intelligence
Genetic Algorithms - Artificial IntelligenceGenetic Algorithms - Artificial Intelligence
Genetic Algorithms - Artificial IntelligenceSahil Kumar
 
33443223 system-software-unit-iv
33443223 system-software-unit-iv33443223 system-software-unit-iv
33443223 system-software-unit-ivShaniya Fathimuthu
 
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)Jun Hosokawa
 
Introduction to Optimization with Genetic Algorithm (GA)
Introduction to Optimization with Genetic Algorithm (GA)Introduction to Optimization with Genetic Algorithm (GA)
Introduction to Optimization with Genetic Algorithm (GA)Ahmed Gad
 
Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3stevemcauley
 
Define and expansion of cpp macro
Define and expansion of cpp macroDefine and expansion of cpp macro
Define and expansion of cpp macrodigitalghost
 
Genetic Algorithm
Genetic AlgorithmGenetic Algorithm
Genetic AlgorithmSHIMI S L
 
Classification of Compilers
Classification of CompilersClassification of Compilers
Classification of CompilersSarmad Ali
 
Combinatorial optimization CO-1
Combinatorial optimization CO-1Combinatorial optimization CO-1
Combinatorial optimization CO-1man003
 
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析Mr. Vengineer
 

Mais procurados (20)

Super resolution-review
Super resolution-reviewSuper resolution-review
Super resolution-review
 
Radial Basis Function
Radial Basis FunctionRadial Basis Function
Radial Basis Function
 
D2 Hdr
D2 HdrD2 Hdr
D2 Hdr
 
Ga
GaGa
Ga
 
Genetic Algorithms - Artificial Intelligence
Genetic Algorithms - Artificial IntelligenceGenetic Algorithms - Artificial Intelligence
Genetic Algorithms - Artificial Intelligence
 
33443223 system-software-unit-iv
33443223 system-software-unit-iv33443223 system-software-unit-iv
33443223 system-software-unit-iv
 
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
 
Introduction to Optimization with Genetic Algorithm (GA)
Introduction to Optimization with Genetic Algorithm (GA)Introduction to Optimization with Genetic Algorithm (GA)
Introduction to Optimization with Genetic Algorithm (GA)
 
Deep Learning for Computer Vision: Data Augmentation (UPC 2016)
Deep Learning for Computer Vision: Data Augmentation (UPC 2016)Deep Learning for Computer Vision: Data Augmentation (UPC 2016)
Deep Learning for Computer Vision: Data Augmentation (UPC 2016)
 
Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3
 
Define and expansion of cpp macro
Define and expansion of cpp macroDefine and expansion of cpp macro
Define and expansion of cpp macro
 
Genetic Algorithm
Genetic AlgorithmGenetic Algorithm
Genetic Algorithm
 
Classification of Compilers
Classification of CompilersClassification of Compilers
Classification of Compilers
 
Genetic algorithm
Genetic algorithmGenetic algorithm
Genetic algorithm
 
Digital Image Processing
Digital Image ProcessingDigital Image Processing
Digital Image Processing
 
Ga ppt (1)
Ga ppt (1)Ga ppt (1)
Ga ppt (1)
 
Combinatorial optimization CO-1
Combinatorial optimization CO-1Combinatorial optimization CO-1
Combinatorial optimization CO-1
 
Code generation
Code generationCode generation
Code generation
 
Genetic Algorithms
Genetic AlgorithmsGenetic Algorithms
Genetic Algorithms
 
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
 

Semelhante a Algoritmos Genéticos: Introdução e Exemplos

Algoritmos genéticos: princípios e aplicações
Algoritmos genéticos: princípios e aplicaçõesAlgoritmos genéticos: princípios e aplicações
Algoritmos genéticos: princípios e aplicaçõesXequeMateShannon
 
Programação Genética
Programação GenéticaProgramação Genética
Programação Genéticaiaudesc
 
Genetic Algorithm Applied In Travel Salesman Problem
Genetic Algorithm Applied In Travel Salesman ProblemGenetic Algorithm Applied In Travel Salesman Problem
Genetic Algorithm Applied In Travel Salesman Problemmarcelobeckmann
 
Reconhecimento de Caracteres com Redes Neuronais
Reconhecimento de Caracteres com Redes NeuronaisReconhecimento de Caracteres com Redes Neuronais
Reconhecimento de Caracteres com Redes NeuronaisFrancisco Moço
 
Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
Algoritmos Genéticos Aplicados ao Problema da Mochila MultidimensionalAlgoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
Algoritmos Genéticos Aplicados ao Problema da Mochila MultidimensionalBianca Dantas
 
Algorimos geneticos
Algorimos geneticosAlgorimos geneticos
Algorimos geneticosMISMATCXHE
 
Algorimos geneticos
Algorimos geneticosAlgorimos geneticos
Algorimos geneticosMISMATCXHE
 
Inteligência Artificial - Aula15 - Algoritmos Genéticos
Inteligência Artificial - Aula15 - Algoritmos GenéticosInteligência Artificial - Aula15 - Algoritmos Genéticos
Inteligência Artificial - Aula15 - Algoritmos GenéticosRafael Pinto
 
Algorítimos Genéticos
Algorítimos GenéticosAlgorítimos Genéticos
Algorítimos Genéticosiaudesc
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismosdiogoa21
 
Algoritmo Genético para busca de máximo de função
Algoritmo Genético para busca de máximo de funçãoAlgoritmo Genético para busca de máximo de função
Algoritmo Genético para busca de máximo de funçãoDiego Souza Silva
 
Classificação: Dimensão VC e Máquinas de Vetores Suporte (SVMs)
Classificação: Dimensão VC e Máquinas de Vetores Suporte (SVMs)Classificação: Dimensão VC e Máquinas de Vetores Suporte (SVMs)
Classificação: Dimensão VC e Máquinas de Vetores Suporte (SVMs)Ben Hur Bahia do Nascimento
 
Analytics - Data Science - Arvores de decisao
Analytics - Data Science - Arvores de decisaoAnalytics - Data Science - Arvores de decisao
Analytics - Data Science - Arvores de decisaoVitor Nunes
 
TCC - BCC 2000 (Rubens Altimari)
TCC - BCC 2000 (Rubens Altimari)TCC - BCC 2000 (Rubens Altimari)
TCC - BCC 2000 (Rubens Altimari)Rubens Altimari
 
Algoritmos Evolucionários: Estudo comparativo AG e ED
Algoritmos Evolucionários: Estudo comparativo AG e EDAlgoritmos Evolucionários: Estudo comparativo AG e ED
Algoritmos Evolucionários: Estudo comparativo AG e EDLuiz Eduardo de Oliveira
 

Semelhante a Algoritmos Genéticos: Introdução e Exemplos (19)

Algoritmos genéticos: princípios e aplicações
Algoritmos genéticos: princípios e aplicaçõesAlgoritmos genéticos: princípios e aplicações
Algoritmos genéticos: princípios e aplicações
 
Algoritmo Genetico
Algoritmo GeneticoAlgoritmo Genetico
Algoritmo Genetico
 
Algoritmo genético
Algoritmo genéticoAlgoritmo genético
Algoritmo genético
 
Programação Genética
Programação GenéticaProgramação Genética
Programação Genética
 
Genetic Algorithm Applied In Travel Salesman Problem
Genetic Algorithm Applied In Travel Salesman ProblemGenetic Algorithm Applied In Travel Salesman Problem
Genetic Algorithm Applied In Travel Salesman Problem
 
Reconhecimento de Caracteres com Redes Neuronais
Reconhecimento de Caracteres com Redes NeuronaisReconhecimento de Caracteres com Redes Neuronais
Reconhecimento de Caracteres com Redes Neuronais
 
Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
Algoritmos Genéticos Aplicados ao Problema da Mochila MultidimensionalAlgoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
 
Algorimos geneticos
Algorimos geneticosAlgorimos geneticos
Algorimos geneticos
 
Algorimos geneticos
Algorimos geneticosAlgorimos geneticos
Algorimos geneticos
 
Inteligência Artificial - Aula15 - Algoritmos Genéticos
Inteligência Artificial - Aula15 - Algoritmos GenéticosInteligência Artificial - Aula15 - Algoritmos Genéticos
Inteligência Artificial - Aula15 - Algoritmos Genéticos
 
Algorítimos Genéticos
Algorítimos GenéticosAlgorítimos Genéticos
Algorítimos Genéticos
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismos
 
Algoritmos Genéticos com Arduino
Algoritmos Genéticos com ArduinoAlgoritmos Genéticos com Arduino
Algoritmos Genéticos com Arduino
 
Algoritmo Genético para busca de máximo de função
Algoritmo Genético para busca de máximo de funçãoAlgoritmo Genético para busca de máximo de função
Algoritmo Genético para busca de máximo de função
 
Classificação: Dimensão VC e Máquinas de Vetores Suporte (SVMs)
Classificação: Dimensão VC e Máquinas de Vetores Suporte (SVMs)Classificação: Dimensão VC e Máquinas de Vetores Suporte (SVMs)
Classificação: Dimensão VC e Máquinas de Vetores Suporte (SVMs)
 
03 números proporcionais
03 números proporcionais03 números proporcionais
03 números proporcionais
 
Analytics - Data Science - Arvores de decisao
Analytics - Data Science - Arvores de decisaoAnalytics - Data Science - Arvores de decisao
Analytics - Data Science - Arvores de decisao
 
TCC - BCC 2000 (Rubens Altimari)
TCC - BCC 2000 (Rubens Altimari)TCC - BCC 2000 (Rubens Altimari)
TCC - BCC 2000 (Rubens Altimari)
 
Algoritmos Evolucionários: Estudo comparativo AG e ED
Algoritmos Evolucionários: Estudo comparativo AG e EDAlgoritmos Evolucionários: Estudo comparativo AG e ED
Algoritmos Evolucionários: Estudo comparativo AG e ED
 

Mais de Wilson Freitas

Finanças Quantitativas com python
Finanças Quantitativas com pythonFinanças Quantitativas com python
Finanças Quantitativas com pythonWilson Freitas
 
bizdays: Dias Úteis em Qualquer Calendário
bizdays: Dias Úteis em Qualquer Calendáriobizdays: Dias Úteis em Qualquer Calendário
bizdays: Dias Úteis em Qualquer CalendárioWilson Freitas
 
Análise dos campeões da Corrida de São Silvestre com Python
Análise dos campeões da Corrida de São Silvestre com PythonAnálise dos campeões da Corrida de São Silvestre com Python
Análise dos campeões da Corrida de São Silvestre com PythonWilson Freitas
 
APIs de Visualização em Python
APIs de Visualização em PythonAPIs de Visualização em Python
APIs de Visualização em PythonWilson Freitas
 
Um modelo de formação de preços para um mercado artificial com redes neurais ...
Um modelo de formação de preços para um mercado artificial com redes neurais ...Um modelo de formação de preços para um mercado artificial com redes neurais ...
Um modelo de formação de preços para um mercado artificial com redes neurais ...Wilson Freitas
 
Sobre o comportamento endógeno do mercado de ações: simulações e experimentos
Sobre o comportamento endógeno do mercado de ações: simulações e experimentosSobre o comportamento endógeno do mercado de ações: simulações e experimentos
Sobre o comportamento endógeno do mercado de ações: simulações e experimentosWilson Freitas
 
Apreçando Opções Utilizando a Função Característica
Apreçando Opções Utilizando a Função CaracterísticaApreçando Opções Utilizando a Função Característica
Apreçando Opções Utilizando a Função CaracterísticaWilson Freitas
 
Redes neurais em finanças
Redes neurais em finançasRedes neurais em finanças
Redes neurais em finançasWilson Freitas
 
Expansão em caos polinomial
Expansão em caos polinomialExpansão em caos polinomial
Expansão em caos polinomialWilson Freitas
 

Mais de Wilson Freitas (9)

Finanças Quantitativas com python
Finanças Quantitativas com pythonFinanças Quantitativas com python
Finanças Quantitativas com python
 
bizdays: Dias Úteis em Qualquer Calendário
bizdays: Dias Úteis em Qualquer Calendáriobizdays: Dias Úteis em Qualquer Calendário
bizdays: Dias Úteis em Qualquer Calendário
 
Análise dos campeões da Corrida de São Silvestre com Python
Análise dos campeões da Corrida de São Silvestre com PythonAnálise dos campeões da Corrida de São Silvestre com Python
Análise dos campeões da Corrida de São Silvestre com Python
 
APIs de Visualização em Python
APIs de Visualização em PythonAPIs de Visualização em Python
APIs de Visualização em Python
 
Um modelo de formação de preços para um mercado artificial com redes neurais ...
Um modelo de formação de preços para um mercado artificial com redes neurais ...Um modelo de formação de preços para um mercado artificial com redes neurais ...
Um modelo de formação de preços para um mercado artificial com redes neurais ...
 
Sobre o comportamento endógeno do mercado de ações: simulações e experimentos
Sobre o comportamento endógeno do mercado de ações: simulações e experimentosSobre o comportamento endógeno do mercado de ações: simulações e experimentos
Sobre o comportamento endógeno do mercado de ações: simulações e experimentos
 
Apreçando Opções Utilizando a Função Característica
Apreçando Opções Utilizando a Função CaracterísticaApreçando Opções Utilizando a Função Característica
Apreçando Opções Utilizando a Função Característica
 
Redes neurais em finanças
Redes neurais em finançasRedes neurais em finanças
Redes neurais em finanças
 
Expansão em caos polinomial
Expansão em caos polinomialExpansão em caos polinomial
Expansão em caos polinomial
 

Algoritmos Genéticos: Introdução e Exemplos

  • 2. Introdução / Motivação Como utilizar GAs Exemplos Função f6 de Schaffer Modelo de Heston Referências
  • 3. 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.
  • 4. 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
  • 5. 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
  • 6. 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)
  • 7. 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
  • 8. 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)
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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 }
  • 14. 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
  • 15. 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
  • 16. 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
  • 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. GA
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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.
  • 25. 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
  • 26. 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
  • 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
  • 29. 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)
  • 30. 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
  • 31. 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
  • 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
  • 34. [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,
  • 35. Statistics and Computing, 1993. [CiteSeer.IST] CiteSeer.IST http://citeseer.ist.psu.edu/cs