Você está na página 1de 48

Algoritmos Genticos

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:

As espcies evoluem pelo


principio da seleo
natural e sobrevivncia do
mais apto.
Charles
Darwin
Algoritmos Genticos

Teoria da Evoluo

.
Gregor
Mendel

1865- Gregor Mendel apresenta


experimentos do cruzamento
gentico de ervilhas.
Pai da gentica.

A Teoria da Evoluo comeou


a partir da conceituao
integrada da seleo natural
com a Gentica.
Algoritmos Genticos

Otimizao

a busca da melhor soluo para um


dado problema.
Consiste em tentar vrios solues e usar a
informao obtida para conseguir solues cada
vez melhores.

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

As tcnicas de otimizao, geralmente,


apresentam:
Espao de busca: onde esto todas as
possveis solues do problema;
Funo objetivo: utilizada para avaliar as
solues produzidas, associando a cada
uma delas uma nota.

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

Em problemas dficeis de otimizao, quando


no existe nenhuma outra tcnica especifica
para resolver o problema.
Otimizao de funes numricas em geral
Otimizao combinatria
Problema do caixeiro viajante
Problema de transporte, alocao
Problemas de conexo (rvore, emparelhamento,
caminhos).

Otimizao multiobjetivo
Algoritmos Genticos

O Algoritmo Gentico
Binrio

Algoritmos Genticos

Algoritmo Gentico Tradicional


1. Gerar a populao inicial.
2. Avaliar cada indivduo da populao.
3. Enquanto critrio de parada no for satisfeito
faa
3.1 Selecionar os indivduos mais aptos.
3.2 Criar novos indivduos aplicando os
operadores crossover e mutao.
3.3 Armazenar os novos indivduos em uma
nova populao.
3.4 Avaliar cada indivduo da nova
populao.
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.

Aptido pode ser:


Igual a funo objetivo.
Resultado do escalonamento da funo
objetivo.
Baseado no ranking do indviduo da
populao.
Algoritmos Genticos

Cromossomo do Problema 1

Cromossomos binrios com 5 bits:


0 = 00000
31 = 11111

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.

Tipos mais comuns de seleo


Seleo proporcional a aptido.
Seleo por torneio.
Algoritmos Genticos

Populao Inicial do Problema 1


aleatria (mas quando possvel, o conhecimento da
aplicao pode ser utilizado para definir populao inicial)

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

Seleo por Torneio

Escolhe-se n (tipicamente 2) indivduos


aleatoriamente da populao e o melhor
selecionado.

Algoritmos Genticos

Seleo por Torneio


Indivduos
A1
A2
A3
A4

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

Combinam pais selecionados para


produo de filhos.

Principais mecanismos de busca do


AG.

Permite explorar reas desconhecidas


do espao de busca.

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

Se o crossover aplicado os pais trocam suas caldas


gerando dois filhos, caso contrrio os dois filhos sero
cpias exatas dos pais.
Algoritmos Genticos

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 taxa de mutao no deve ser nem alta nem baixa, mas o


suficiente para assegurar a diversidade de cromossomos na
populao.
Algoritmos Genticos

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

O filho1 possui 50% de chance de levar um bit do


pai1 e 50% de chance de levar um bit de pai2
O filho2 leva o que sobra de pai1 e pai2
Algoritmos Genticos

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)

Funo multimodal com vrios pontos


de mximo.

um problema de otimizao global


(encontrar o mximo global)
No pode ser resolvido pela grande
maioria dos mtodos de otimizao
convencional.
H muitos mtodos de otimizao local,
mas para otimizao global so poucos.

Algoritmos Genticos

O Cromossomo Problema 2

Representar o nico parmetro deste


problema (a varivel x) na forma de um
cromossomo:
Quantos bits dever ter o cromossomo?
Quanto mais bits melhor preciso numrica.
Longos cromossomos so difceis de manipular.
Para cada decimal necessrio cerca de 3,3 bits
Exemplo de cromossomo com 22 bits
1000101110110101000111
Algoritmos Genticos

O Cromossomo Problema 2 (II)

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

f(x) = x seno(10x) + 1.0

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

As Geraes do Problema 2 (II)


3,0

Primeira Gerao

f(x) = x sen(10x) + 1.0

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

As Geraes do Problema 2 (III)


3,0

Gerao 25

f(x) = x sen(10x) + 1.0

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

A maioria dos indivduos encontraram o mximo global


Algoritmos Genticos

As Geraes do Problema 2 (IV)


3,0

Mdia
Melhor

Funo objetivo

2,5
2,0
1,5
1,0
0,5

10

15

20

25

Gerao

Na gerao 15 o AG j encontrou o ponto mximo


Algoritmos Genticos

Elitismo

O crossover ou mutao podem


destruir a melhor indivduo.

Por que perder a melhor soluo


encontrada?

Elitismo transfere a cpia do melhor


indviduo para a gerao seguinte.

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

AG com elitismo melhor ?


Algoritmos Genticos

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

Indivduo (simples membro da populao).


Cromossomo e Genoma:
Coleo de genes
Estrutura de dados que codifica a soluo de uma
problema.

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

Você também pode gostar