Anda di halaman 1dari 41

Algoritmos Genticos

Ricardo Prudncio

Algoritmos Genticos
Estefane Lacerda Introduo aos Algoritmos
Referncia
Bsica
da
Aula
Genticos. Em Sistemas Inteligentes Aplicaes a
Recursos Hdricos e Cincias Ambientais, 1999
http://www.dca.ufrn.br/~estefane/metaheuristicas/
index.html

Roteiro

Introduo

Algoritmos Genticos

Otimizao
Representao
Seleo
Operadores Geneticos

Aplicao

Caixeiro Viajante

Introduo

Algoritmos Genticos (AGs), so mtodos


de otimizao inspirados em evoluo

J. Holland (1975), D. Goldberg (1989)

Teoria da Evoluo

Indivduos mais adaptados sobrevivem e


transmitem suas caractersticas para as geraes
seguintes
Charles Darwin (Origem das Espcies, 1859)

Otimizao - Definio

Espao de Busca

Funo Objetivo

Possveis solues de um problema

Avalia cada soluo com uma nota

Tarefa:

Encontrar a soluo que corresponda ao ponto de


mximo (ou mnimo) da funo objetivo

Otimizao - Exemplo

Achar ponto mximo da funo

f(x) = xsen(10x) + 1, -1 x 2

Otimizao - Dificuldades

Alguns problemas podem ter espaos


de busca muito grandes

Muitos algoritmos no so capazes de


localizar timo global na presena de
mltiplos timos locais

Ex.: Hill Climbing

Algoritmos Genticos

Gerao de um conjunto inicial de solues


que so iterativamente melhoradas

Populao de indivduos (cromossomos)

Busca de solues seguem um processo


evolutivo

Seleo dos mais aptos +


Transmisso de caractersticas

Algoritmos Genticos

Passo 1: Gerao de uma populao inicial com


indivduos escolhidos aleatoriamente

Passo 2: Avaliao dos indivduos

Clculo da funo de fitness (usando funo objetivo)

Passo 3: Seleo de indvduos mais aptos

Passo 4: Gerao de uma nova populao a partir dos


indivduos selecionados e ir para Passo 2

Operadores de busca (crossover e mutao)

Algoritmos Genticos

Algoritmos Genticos

AGs so algoritmos de busca Meta-Heurstica

I.e., algoritmo de alto nvel customizvel a uma


ampla quantidade de problemas

Pontos importantes a definir:

Representao dos invivduos


Estratgia de seleo
Operadores de busca

Representao de Indivduos

Um cromossomo representa (codifica) um


conjunto de parmetros da funo objetivo

E.g., na funo f(x) = xsen(10x) + 1, um


cromossomo codifica um valor do parmetro x

A representao de uma soluo do espao de


busca dependente do problema de otimizao

Porm, alguns esquemas de representao podem ser


reaproveitados

Representao Binria

Cromossomo representado por uma cadeia de


bits (0 ou 1)

Cada sequncia de bits mapeada para uma


soluo do espao de busca

Representao tradicional, fcil de manipular


atravs de operadores de busca

Representao Binria - Exemplo

Codificao de -1 x 2 com 22 bits

222 valores possveis (tamanho do espao)

S1 = 1000101110110101000111 na base 10 seria


igual a 2288967

Mapeado para intervalo [-1; 2] representaria a


soluo:

x1 = min + (max min)*b10/(222-1) =


-1 + (2+1)*228896/(222-1) = 0,637197

Representao Real

Para otimizao de parmetros contnuos a


representao binria no adequada

Muitos bits para obter boa preciso numrica

Parmetros numricos podem ser codificados


diretamente nos cromossomos

Ex.: S1 = 0,637197

Seleo

AGs selecionam indivduos aptos de uma populao


para gerar novos indivduos

Cromossomos filhos (novas solues)

Em geral, indivduos pais so selecionados com uma


probabilidade proporcional a seus valores de fitness

Probabilidade de seleo

pi

fi
N

i 1

fi

Seleo Roda da Roleta


Ind. Aptido
i

fi

Aptido
Acumulada
(fi)

3
4
5

2,0
1,6
1,4
0,7
0.3

2,0
3,6
5,0
5,7
6,0

1. Ordenar aptides da populao


2. Calcular aptides acumuladas
3. Gerar nmero aleatrio entre
[0; Ultima aptido acumulada]
4. Indivduo selecionado o primeiro
com aptido acumulada maior
que o nmero aleatrio gerado

Exemplo: gerar nmero aleatrio entre [0; 6]. Se 4.2 for


o nmero gerado selecione indivduo 2

Seleo Roda da Roleta

Observao importante:

No funciona para valores negativos da funo de


objetivo
Nesse caso, deve-se funo aptido para valores
positivos ou realizar Seleo por Torneio

Seleo por Torneio

Passo 1: Escolher inicialmente com a mesma


probabilidade n indivduos

Passo 2: Selecionar cromossomo com maior


aptido dentre os n escolhidos

Passo 3: Repetir passos 1 e 2 at preencher


populao desejada

Operadores Genticos

A etapa de seleo, gera uma populao


intermediria de potenciais cromossomos pais

Na nova gerao, escolhe-se aleatoriamente


dois pais para aplicao de operadores
genticos (crossover e mutao)

Produo de filhos feita at completar o


tamanho da populao desejada

Operador Crossover
Aplicado a um par de cromossomos retirados da
Representao Binria
populao intermediria para gerar filhos

Filhos herdam caractersticas dois pais

Crossover de um ponto

Cortar pais em uma posio aleatria e recombinar as


partes geradas

Operador Crossover
Crossover de dois pontos
Representao
Binria

Cortar pais em duas posies aleatrias e recombinar as


partes geradas

Operador Crossover
Crossover uniforme
Representao
Binria

Gerar uma mscara de bits aleatrios e combinar os bits


dos pais de acordo com a mscara gerada

Operador Crossover
Na representao real, crossover obtido atravs de
Representao
Real
operaes aritmticas sobre os pais

Crossover mdia aritmtica

Filho = (pai1 + pai2)/2

Crossover mdia geomtrica

Filho = raiz(p1*p2)

Operador Crossover
Operadores de mdia tendem a diminuir muito a
Representao
Real
diversidade dos filhos

Filhos sempre vo estar no meio do intervalo dos pais

Operador BLX-

Filho = pai1 + *(pai2 pai1)


onde um nmero aleatrio entre [- , 1+ ]
Parmetro controla o diversidade dos filhos

Operador Crossover
Operador BLX-
Representao
Real
= 0 equivale a gerar filhos aleatoriamente no intervalo

numrico entre os pais (I = pai2 pai1)


Se > 0, o intervalo dos possveis filhos extendido em
*I em ambos os lados

Operador Crossover

Geralmente, crossover aplicado somente com uma


dada probabilidade (taxa de crossover)

Taxa de mutao normalmente alta (entre 60% e 90%)

Durante a aplicao do operador, gerado um


nmero aleatrio r entre 0 e 1 e aplica-se teste:

Se r < taxa de crossover, ento operador aplicado


Seno, os filhos se tornam iguais aos pais para permitir
que algumas boas solues sejam preservadas

Operador Mutao
Aplicado sobre os cromossomos filhos para
Representao Binria
aumentar a variabilidade da populao

Operador para representao binria:

Para cada bit realize teste de mutao e troque o valor do


bit caso o teste seja satisfeito
Obs.: Taxa de mutao
deve ser pequena (< 5%)
apenas o suficiente para
aumentar diversidade

Operador Mutao
Mutao Uniforme:
Representao
Real
Realiza teste de mutao para cada parmetro codificado

Substituir parmetro por um nmero aleatrio escolhido


uniformemente em um intervalo [a; b]

Filho = U(a;b)

Mutao Gaussiana:

Realiza teste de mutao para cada parmetro codificado


Substituir parmetro por um nmero aleatrio escolhido
usando uma distribuio Normal

Filho = N(;)

Operador Mutao
Mutao Creep:
Representao Real

Adiciona um pequeno nmero aleatrio ao valor


atual do parmetro armazenado no cromossomo; ou
Multiplica valor atual por nmero prximo de um
Observaes:

Operador menos destrutivo que os anteriores


Usado para explorar localmente o espao de busca
Pode ser aplicado em uma taxa um pouco mais alta

Algoritmos Genticos
Operador Crossover considera caractersticas
Observaes Importantes
importantes presentes nos pais

Aplicado a uma taxa relativamente alta, mas cuidado com


efeitos destrutivos

Operador Mutao explora novas caractersticas nos


indivduos que seriam possivelmente teis

Aplicado a uma taxa relativamente baixa, mas


dependendo do problema e operador use taxas mais altas

Algoritmos Genticos
Convergncia Prematura
Observaes Importantes

Em algumas execues, AG pode convergir para


solues iguais

Cromossomos com boa aptido (mas ainda no


timos) que geram filhos com pouca diversidade

Nesses casos, aconselha-se:

Aumento da taxa de mutao e crossover


Evitar a insero de filhos duplicados

Algoritmos Genticos
Critrios de Parada
Observaes Importantes

Nmero mximo de geraes


Funo objetivo com valor timo alcanado
(quando esse valor conhecido)
Convergncia na funo objetivo (i.e., quando
no ocorre melhoria significativa da funo)

Algoritmos Genticos
Populao inicial
Observaes Importantes

No pode ser excessivamente pequena

No pode ser excessivamente grande

Pouca representatividade do espao de busca


Demora na convergncia

Para melhorar a representatividade populao


inicial pode possuir indivduos igualmente
espaados no espao de busca

Algoritmos Genticos
Caixeiro Viajante

O Problema

Dado um nmero de cidades, encontrar o caminho


mais curto passando por todas as cidades uma
nica vez

Funo Objetivo = Distncia Total Percorrida

Representao

Crossover

Crossover baseado em posio

So selecionadas n cidades. Cada filho mantm a posio das cidades selecionadas de


um pai

Crossover

Crossover baseado em ordem

So selecionadas n cidades. Cada filho herda a ordem das cidades selecionadas


de um pai

Mutao

Mutao baseada na troca de posio de uma cidade

Mutao baseada na troca da ordem de duas cidades

Algoritmos Genticos
Estefane Lacerda Introduo aos Algoritmos
Referncia
Bsica
da
Aula
Genticos. Em Sistemas Inteligentes Aplicaes a
Recursos Hdricos e Cincias Ambientais, 1999
http://www.dca.ufrn.br/~estefane/metaheuristicas/
index.html

Anda mungkin juga menyukai