Você está na página 1de 29

Algoritmos Genticos

Prof. Jlio Cesar Nievola


PPGIA
PUC PR
Computao Evolucionria
Considera a Teoria da Evoluo Darwiniana
como um processo adaptativo de otimizao

Usa populaes de estruturas computacionais
que evoluem

Busca uma melhora na adequabilidade da
populao com respeito ao ambiente
Paradigmas de Computao
Evolucionria
Algoritmos Genticos
Programao Evolucionria
Estratgias Evolucionrias
Programao Gentica
Sistemas Classificadores
Problema de Otimizao
Dada uma funo f : R
n
R
n
e um espao de
busca S _ R
n
:


Em termos de problemas de busca, o problema
pode ser escrito como:

( ) S x x f maximizar e
( ) ( ) S x x f x f x encontrar e > - - ,
Mtodos de Otimizao
Probabilsticos: usam a idia da busca probabilstica,
no sendo baseados totalmente em sorte como
mtodos aleatrios
Numricos
Analticos: quando a funo explicitamente conhecida e
derivvel
Clculo Numrico: usando Pesquisa Operacional ou tcnicas
de gradiente ou estatstica de alta ordem
Enumerativos: examinam os pontos do espao de
busca, um a um, em busca dos pontos timos
Definio de Algoritmos Genticos
Algoritmos Genticos (AGs) so mtodos computacionais
de busca baseados nos mecanismos de evoluo
natural e na gentica. Em AGs uma populao de
possveis solues para o problema em questo evolui
de acordo com operadores probabilsticos concebidos a
partir de metforas biolgicas de modo que h uma
tendncia de que, na mdia, os indivduos representem
solues cada vez melhores medida que o processo
evolutivo continua.
Caractersticas Primrias de AGs
Operam em uma populao de pontos
Operam em um espao de solues codificadas
Necessitam somente de informao sobre o
valor de uma funo objetivo para cada membro
da populao
Usam transies probabilsticas
Representao Cromossmica
Cada possvel soluo _ no espao de busca
representada por uma seqncia de smbolos s
gerados a partir de um alfabeto (e.g. binrio)
Cada seqncia s corresponde a um
cromossomo
Cada elemento de s equivalente a um gene
Indivduo cromossomo
Fluxo Bsico de um Algoritmo
Gentico
begin
t 0
inicializar P(t)
avaliar P(t)
while (not Condio_Terminal) do
begin
t t + 1
selecionar P(t) a partir de P(t 1)
recombinar e mutar P(t)
avaliar P(t)
end
end
Inicializao
Populao inicial de n indivduos
Gerao aleatria ou por processo heurstico
A populao inicial deve cobrir a maior rea do
espao de busca
Avaliao e Adequabilidade
AGs necessitam de uma funo objetivo para
cada indivduo da populao
Fitness (adequabilidade) deve ser um valor
no-negativo
O fitness indica o quo bem adaptado ao
ambiente um indivduo est
Seleo
Emula os processos de reproduo assexuada e
seleo natural
Gera-se uma populao temporria de N
indivduos extrados com probabilidade
proporcional ao fitness de cada um na
populao:

( )
( )

=
=
N
i
i
sel
s a
s a
p
1
Processo de seleo
Processo de seleo para
uma populao de 8
indivduos, resultando na
extino de 2 deles.
Indviduos com alto
fitness tem alta
probabilidade de ter
cpias.
Crossover (recombinao)

Envolve a troca de
fragmentos entre pares
de cromossomos
A forma mais simples
um processo aleatrio
com probabilidade fixa
p
rec
Mutao
Equivale busca
aleatria
Seleciona-se uma
posio num
cromossomo e muda-se
o valor do gene para
outro valor possvel, com
probabilidade p
mut
.
Funo Multimodal
Condies de Trmino
Ideal = ponto timo
Prtica = funes multimodais
Critrios:
Nmero mximo de geraes
Tempo limite de processamento
Estagnao: quando no se observa melhorias na
populao aps vrias geraes consecutivas
Exemplo de Aplicao (1)
Considere-se maximizar a
funo f : R R dada
por



no intervalo 2 s x s 2
( ) ( )
4 2
20 cos
3
x
x
x x f + =
Exemplo de Aplicao (2)
Para 4 casas decimais de preciso precisa-se
de 10.000[2 (-2)] = 40.000 pontos
So necessrios cromossomos com 16 bits
Decodificao do cromossomo s de base 2:

x b b b b b b s
i
i
i
= = =

=
15
0
0 1 2 14 15
2 ] [
x
x x
x x
1 2
16
min max
min

+ =
Exemplo de Aplicao (3)
Rtulo s x a(s)
s
1
0101000000000000 0,4924 0,3443
s
2
1110101100001010 1,6725 2,9669
s
3
0001101010111010 -1,5824 3,5244
s
4
1000111000010101 0,2201 4,7445
Populao inicial, N=50 indivduos
Exemplo de Aplicao (4)
Fitness = funo de adequabilidade
Deve ser positivo e para um dado indivduo e,
quanto maior for, maiores devem ser as chances
de sobrevivncia e reproduo. Neste caso:

O fitness relativo calculado como:

( ) ( ) 4 + = x f s a
( )
( )
( )

=
=
N
j
j
i
i rel
s a
s a
s a
1
Exemplo de Aplicao (5)

O mtodo de seleo
mais comum a roleta
A possibilidade de um
indivduo morrer ou
sobreviver
proporcional ao seu
fitness


Exemplo de Aplicao (6)
Rtulo a
rel
(s) (%) n
esp
n
obt
s
1
0,1935 0,0968 0
S
2
1,6676 0,8338 1
S
3
1,9809 1,9809 2
S
4
2,6667 1,3336 1
Resultados da seleo de alguns indivduos da populao inicial
Exemplo de Aplicao (7)
Resultados usando:
p
rec
= 0,8
recombinao aleatria
de um ponto
p
mut
= 0,01
50 geraes
x* = 1,8893
reas de Aplicao
Problema do Caixeiro Viajante
Planejamento de tarefas (job-shop scheduling)
Sntese de Redes Neurais
Anlise de dados: agrupamento (clustering)
Controle de processos: controle timo
Robtica
Modelos econmicos, ecolgicos e sociais
Sistemas Classificadores
So basicamente sistemas de regras de
produo adaptativas
Regras do tipo if-then evoluem de acordo com
um AG
Cada regra um classificador
Populaes de classificadores so manipulados
por AGs
Programao Gentica
Cada cromossomo representa uma rvore
computacional com tamanho varivel
Cada estrutura cromossmica representa um
programa (e.g. em Lisp)
Cada rvore equivale a um indivduo e uma
populao de programas evolui com os Ags
Realiza a gerao automtica de programas
computacionais para resoluo de programas
Vida Artificial
Trabalha com a biologia sinttica

Usa uma metfora evolucionria

Seres abstratos (programas computacionais)
evoluem em ambientes cibernticos
Famlia de Mtodos Computacionais
VA = vida artificial
GF = geometria de fractais
AC = autmatas celulares
CSC = cincias de sistemas
complexos
SLF = sistemas de lgica flexvel
IC = inteligncia computacional
PG = programao gentica
EE = estratgias evolucionrias
CE = computao evolucionria
AE = algoritmos evolucionrios

Você também pode gostar