Escolar Documentos
Profissional Documentos
Cultura Documentos
Estfane G. M. de Lacerda
DCA/UFRN
Outubro/2008
Introduo
Algoritmos Genticos
Algoritmos Genticos
So tcnicas de busca e otimizao.
a metfora da teoria da evoluo das
espcies iniciada pelo Fisiologista e
Naturalista ingls Charles Darwin.
Desenvolvido por John Holland (1975) e
seus alunos.
Popularizado por David Goldberg (1989).
Algoritmos Genticos
Teoria da Evoluo
1859 - Charles Darwin publica o livro A
Origem das Espcies:
Teoria da Evoluo
.
Gregor
Mendel
Otimizao
Exemplo de otimizao:
Telespectador atravs de ajuste na antena da
televiso otimiza a imagem buscando vrias
solues at alcanar uma boa imagem.
Algoritmos Genticos
Otimizao
Algoritmos Genticos
Caractersticas dos
Algoritmos Genticos
um algoritmo estocstico (no
determinstico).
Trabalha com uma populao de
solues simultaneamente.
Utiliza apenas informaes de custo e
recompensa. No requer nenhuma outra
informao auxiliar (como por exemplo o
gradiente).
Algoritmos Genticos
Caractersticas dos
Algoritmos Genticos (II)
So fceis de serem implementados em
computadores.
Adaptam-se bem a computadores
paralelos.
So facilmente hibridizados com outras
tcnicas.
Funcionam com parmetros contnuos
ou discretos.
Algoritmos Genticos
Algoritmos Genticos
(Conceitos Bsicos)
AG manipula uma populao de indivduos.
Individuos so possveis solues do
problema.
Os indivduos so combinados (crossover)
uns com os outros, produzindo filhos que
podem sofrer ou no mutao.
As populaes evoluem atravs de
sucessivas geraes at encontrar a
soluo tima.
Algoritmos Genticos
Aplicaes
Otimizao multiobjetivo
Algoritmos Genticos
O Algoritmo Gentico
Binrio
Algoritmos Genticos
Problema 1
Problema: Use um AG
para encontrar o ponto
mximo da funo:
f ( x) x 2
com f(x) sujeita as seguintes
restries:
0 x 31
x inteiro
1000
800
600
400
200
0
0 5 10 15 20 25 30
Algoritmos Genticos
Indivduo
Cromossomo
Estrutura de dados que representa uma possvel
soluo para o problema.
Os parmetros do problema de otimizao so
representados por cadeias de valores.
Exemplos:
Vetores de reais, (2.345, 4.3454, 5.1, 3.4)
Cadeias de bits, (111011011)
Vetores de inteiros, (1,4,2,5,2,8)
ou outra estrutura de dados.
Algoritmos Genticos
Individuo (II)
Aptido
Nota associada ao indviduo que avalia quo
boa a soluo por ele representada.
Cromossomo do Problema 1
Aptido
Por simplicidade, a aptido ser a prpria funo
objetivo.
Exemplo:
aptido(00011) = f(3) = 9
Algoritmos Genticos
Seleo
Seleo
Imitao da seleo natural.
Os melhores indivduos (maior aptido) so
selecionados para gerar filhos atravs de
crossover e mutao.
Dirige o AG para as melhores regies do
espao de busca.
Pop.
inicial
cromossomos
f (x)
A1 = 1 1 0 0 1
A2 = 0 1 1 1 1
A3 = 0 1 1 1 0
A4 = 0 1 0 1 0
25
15
14
10
625
225
196
100
Probabilidade de seleo
proporcional a aptido
pi
Prob. de seleo
54,5%
19,6%
17,1%
8,7%
f ( xi )
N
k 1
f ( xk )
Algoritmos Genticos
Seleo proporcional
a aptido (Roleta)
Pais selecionados
8,7%
A4
54,5%
A1
A1 = 1 1 0 0 1
17,1%
A3
A2 = 0 1 1 1 1
A2 = 0 1 1 1 1
19,6%
A2
A1 = 1 1 0 0 1
Algoritmos Genticos
Algoritmos Genticos
Aptido
625
225
196
100
A4
A3
A2
A3
Os individuos so selecionados
para os torneios com igual
probabilidade.
Torneios
x
x
x
x
A1
A2
A4
A3
pais selecionados
A1
A2
A2
A3
Algoritmos Genticos
Crossover e Mutao
Algoritmos Genticos
Crossover de 1 ponto
O crossover aplicado
com uma dada
probabilidade
denominada taxa de
crossover (60% a 90%)
Pais
Filhos
11001
O ponto de
corte
escolhido
aleatriamente
01111
11011
01101
Mutao
Mutao inverte os valores dos bits.
A mutao aplicada com dada
probabilidade, denominada taxa
de mutao (~1%), em cada um
dos bits do cromossomo.
Antes da 0 1 1 0 1
mutao
Depois 0 0 1 0 1
Aqui, apenas o 2o.bit
passou no teste de
probabilidade
A primeira gerao
do Problema 1
Pais
A1 = 1 1 0 0 1
Filhos
crossover
A1 = 1 1 0 0 1
crossover
01111
11001
11011
00101
01101
A2 = 0 1 1 1 1
A2 = 0 1 1 1 1
11011
mutao
mutao
Nova
pop.
10111
11001
Algoritmos Genticos
A primeira gerao
do Problema 1 (II)
cromossomos
1
2
3
4
11011
11001
11001
10111
f (x )
27
25
25
23
729
625
625
529
prob. de
seleo
29,1%
24,9%
24,9%
21,1%
Algoritmos Genticos
As demais geraes
do Problema 1
Segunda
Gerao
Terceira
Gerao
1
2
3
4
1
2
3
4
11011
11000
10111
10101
11011
10111
01111
00111
f (x )
27
24
23
21
729
576
529
441
f (x )
27
23
15
7
729
529
225
49
Algoritmos Genticos
As demais geraes
do Problema 1 (II)
Quarta
Gerao
Quinta
Gerao
1
2
3
4
1
2
3
4
11111
11011
10111
10111
11111
11111
11111
10111
f (x )
31
27
23
23
961
729
529
529
f (x )
31
31
31
23
961
961
961
529
Algoritmos Genticos
Outros Crossovers
Crossover de 2-pontos
pai1 010 011000101011
pai2 001 001110 001101
filho1 010001110101011
filho2 001011000001101
Considerado melhor que o crossover de 1 ponto.
Algoritmos Genticos
Crossover de n-Pontos
pai1 101
001
01001001010 01
pai2 00100111000110 11100
filho1 1010011100101011001
fillho2 0010100100011001100
Crossover de 4-pontos
Algoritmos Genticos
Crossover Uniforme
Mscara de
bits aleatria 1 1 0 1 0 1 1 0 1 0
pai 1 1 1 1 0 1 1 0 1 1 0
filho 1 1 1 1 0 0 1 0 1 1 0
pai2 0 1 1 0 0 0 1 1 0 0
Problema 2
Achar o mximo da funo utilizando um
Algoritmo Gentico:
f ( x ) x seno(10x ) 1,0
Restrita ao intervalo:
1,0 x 2,0
Algoritmos Genticos
Problema 2 (II)
Mximo global
f(x) = x sen(10 x) + 1
3,0
Mximo local
2,0
1,0
0,0
-1,0
-1,0
Mximo global:
x = 1,85055
f(x) = 2,85027
-0,5
0,0
0,5
x
1,0
Algoritmos Genticos
1,5
2,0
Problema 2 (III)
Algoritmos Genticos
O Cromossomo Problema 2
Decodificao
cromossomo = 1000101110110101000111
b10=(1000101110110101000111)2 = 2288967
Valor de x precisa estar no intervalo [-1,0; 2,0]
b10
x min (max min) l
2 1
2 .288.967
x 1 (2 1)
0 ,637197
22
2 1
Algoritmos Genticos
As Geraes do Problema 2
3,0
Populao Inicial
2,5
2,0
1,5
1,0
0,5
0,0
-0,5
-1,0
-1,0
-0,5
0,0
0,5
1,0
x
Populao gerada aleatriamente
Algoritmos Genticos
1,5
2,0
Primeira Gerao
2,5
2,0
1,5
1,0
0,5
0,0
-0,5
-1,0
-1,0
-0,5
Pouca melhoria
0,0
0,5
1,0
x
Algoritmos Genticos
1,5
2,0
Gerao 25
2,5
2,0
1,5
1,0
0,5
0,0
-0,5
-1,0
-1,0
-0,5
0,0
0,5
1,0
1,5
2,0
Mdia
Melhor
Funo objetivo
2,5
2,0
1,5
1,0
0,5
10
15
20
25
Gerao
Elitismo
Algoritmos Genticos
Elitismo no Problema 2
3,0
AG com elitismo
AG sem elitismo
Funo objetivo
2,8
2,6
2,4
2,2
2,0
0
15
10
Gerao
20
25
Critrios de Parada
Nmero de geraes.
Encontrou a soluo (quando esta
conhecida).
Perda de diversidade.
Convergncia
nas ltimas k geraes no houve melhora na
aptido
Mdia
Mxima
Algoritmos Genticos
Terminologia
Gentipo
Na biologia, representa a composio gentica do
organismo. Nos AGs, representa a informao
contida no cromossomo.
Algoritmos Genticos
Terminologia
Fentipo:
Objeto ou estrutura construda a partir das informaes
do gentipo.
o cromossomo decodificado.
Exemplo: se o cromossomo codifica as dimenses de um
edifcio, ento o fentipo o edifcio construdo.
Gene:
Codifica um simples parmetro do problema
Algoritmos Genticos
Terminologia
Alelos:
Valores que o gene pode assumir.
Ex.: um gene representando a cor de um objeto pode
ter alelos como azul, preto, verde etc...
Epistasia:
Biologia: interao entre genes do cromossomo
cujo efeito desativar o outro gene.
Um gene episttico quando sua presena
desativa um gene em outra posio no
cromossomo.
No AG significa no linearidade.
Algoritmos Genticos
Exerccio
Minimize a funo:
2
f x=x 3 x4
Assumir que x [-10, +10]
Codificar x como vetor binrio
Criar uma populao inicial com 4 indivduos
Aplicar Mutao com taxa de 1%
Aplicar Crossover com taxa de 60%
Usar seleo por torneio.
Usar 5 geraes.
Algoritmos Genticos