Você está na página 1de 10

Mofos de AuIo - InfeIigncio ArfificioI 4I

5. Algoritmos Genticos

5.1. Introduo

Algoritmos Genticos so algoritmos de otimizao global, baseados
nos mecanismos da seleo natural e da gentica. Eles empregam uma
estratgia de busca paralela e estruturada, que voltada em direo ao
reforo da busca de pontos de "alta aptido", ou seja, pontos nos quais
a funo a ser maximizada tenha valores relativamente altos.
A busca de uma soluo no uma caminhada aleatria ou no
direcionada, pois explora informaes histricas para encontrar novos
pontos de busca onde so esperados melhores desempenhos. Isto feito
atravs de processos iterativos, onde cada iterao chamada de
gerao.
Em cada iterao, os princpios de seleo e reproduo so
aplicados a uma populao de candidatos cujo tamanho varia conforme a
complexidade do problema e os recursos computacionais disponveis.
Atravs da seleo, se determina quais indivduos (que so as solues
candidatas do problema) conseguiro se reproduzir, gerando um nmero
determinado de descendentes para a prxima gerao, com uma
probabilidade determinada pelo seu ndice de aptido. Ou seja, os
indivduos com maior aptido tm maiores chances de se reproduzir.

5.2. A inspirao original

Segundo a teoria da evoluo das espcies, de Charles Darwin, na
natureza os indivduos mais capacitados para a competio por recursos
so os que conseguem sobreviver em ambientes hostis. A capacidade de
adaptao a um ambiente permanentemente em mutao essencial
sobrevivncia das espcies, sendo que o conjunto de caractersticas de
um indivduo determina a sua capacidade de sobrevivncia. Estas
caractersticas, em geral, so determinadas pelo material gentico de
cada um e controladas por uma unidade bsica chamada gene. Um conjunto
de genes forma um cromossomo.
So as modificaes no material gentico das espcies que constituem
a essncia do processo de evoluo. A evoluo se d atravs da ao
conjunta da seleo natural e da recombinao de material gentico
durante a reproduo. Na natureza, a competio faz com que os
indivduos mais aptos tenham mais chances de sobreviver, enquanto os
menos favorecidos tendam a desaparecer. O mecanismo de seleo natural
leva sobrevivncia dos genes mais aptos.
O processo de evoluo inicia-se na recombinao do material
gentico proveniente dos pais durante a reproduo. Novas combinaes de
genes so geradas a partir das j existentes. A troca de material
gentico entre cromossomos chamada de crossover. Pedaos dos
cromossomos dos pais so trocados durante o crossover, criando a
possibilidade do surgimento de combinaes mais corretas de genes e,
consequentemente, de indivduos mais capacitados. A repetio do
processo de seleo e crossover ao longo das geraes permite a evoluo
contnua do material gentico da espcie e a gerao de indivduos que
sobrevivam em um ambiente competitivo.

Mofos de AuIo - InfeIigncio ArfificioI 4Z

5.3. Modelando a Evoluo com Algoritmos

Na dcada de 70, John Holland props os algoritmos genticos como
programas de computador que imitam o processo de evoluo encontrado na
natureza. Algoritmos genticos so muito eficientes para busca de
solues timas, ou aproximadamente timas, em uma grande variedade de
problemas, pois no impem muitas das limitaes encontradas nos mtodos
de busca tradicionais.
Os algoritmos genticos manipulam uma populao de solues
potenciais para um problema de busca ou otimizao. Eles operam sobre a
representao codificada de solues, equivalente ao material gentico
dos indivduos na natureza. O algoritmo gentico codifica as solues em
cadeias de bits e cada soluo associada a uma medida de qualidade ou
fitness, que reflete a capacitao de um indivduo em relao aos
demais. Assim como na natureza, um mecanismo de seleo fora a continua
evoluo da qualidade das geraes. Quanto maior a medida de fitness de
um indivduo, maiores as suas chances de se reproduzir e sobreviver
prxima gerao. A recombinao de material gentico simulada atravs
de um mecanismo de crossover que troca pedaos entre as cadeias de bits
dos pais. Outra operao, chamada de mutao, provoca alteraes
espordicas e randmicas nas cadeias de bits. A operao de mutao tem
o papel de reintroduzir na populao material gentico perdido.
Inicialmente gerada uma populao formada por um conjunto
aleatrio de indivduos que podem ser vistos como possveis solues do
problema. Durante o processo evolutivo, esta populao avaliada: para
cada indivduo dada uma nota, refletindo sua habilidade de adaptao a
determinado ambiente. Uma porcentagem dos mais adaptados mantida,
enquanto os outros so descartados. Os membros mantidos pela seleo
podem sofrer modificaes em suas caractersticas fundamentais atravs
de mutaes e cruzamentos, gerando descendentes para a prxima gerao.
Este processo, chamado de reproduo, repetido at que uma soluo
satisfatria seja encontrada.
Embora possam parecer simplistas do ponto de vista biolgico, estes
algoritmos so suficientemente complexos para fornecer mecanismos de
busca adaptativos poderosos e robustos.

5.4. A Estrutura dos Algoritmos

Durante a gerao t, o algoritmo mantm uma populao de solues
potenciais (cromossomos) P(t) = {v1,..,vn}. Cada soluo vi avaliada
para fornecer a medida de sua qualidade ou aptido. Uma nova populao
P(t+1) ento formada, selecionando-se, probabilisticamente, os
indivduos mais aptos de P(t). Alguns dos membros desta nova gerao
sofrem transformaes por meio de operaes de crossover e mutao, de
acordo com uma probabilidade pr-definida.
Assim, o projeto de um algoritmo gentico para uma dada aplicao
deve conter os seguintes componentes:
Uma representao na forma de cromossomos das solues potenciais
do problema.
Uma forma de criar uma populao inicial de solues vlidas.
projeto de uma funo de avaliao que classifique os indivduos em
funo de sua aptido.
Mofos de AuIo - InfeIigncio ArfificioI 43
Operadores genticos que alterem a composio dos filhos (crossover
e mutao).
Parmetros de controle do algoritmo: tamanho da populao,
probabilidade da aplicao dos operadores genticos, critrio de parada,
etc.

O algoritmo pode ser resumido em:

I. Criar aleatoriamente uma populao inicial de strings.

II. Enquanto o critrio de parada no for satisfeito:
a. Associar um grau de adaptao a cada indivduo da populao,
usando a medida de adaptao escolhida.
b. Criar uma nova populao, atravs da aplicao das trs
operaes genticas nos indivduos escolhidos, com
probabilidade baseada no grau de adaptao:
i. Reproduo de um indivduo atravs da insero de outra
cpia sua na populao.
ii. Recombinao de duas strings, usando a operao de
crossover, para formar dois novos indivduos.
iii. Mutao aleatria de um caractere, localizado em uma
posio escolhida tambm aleatoriamente, criando um novo
indivduo.

III. A string identificada pelo mtodo de indicao de resultado
escolhida como o resultado do AG. Esse resultado pode ser a
soluo ideal ou aproximada do problema.

Critrio de parada: pode-se utilizar o critrio do nmero mximo de
geraes, do tempo limite de processamento ou o critrio de estagnao
(parar quando h melhoria da populao aps um certo nmero de geraes
consecutivas).

5.5. Detalhando as operaes genticas

As operaes genticas utilizadas pelo algoritmo so:

Seleo: Baseada no princpio da sobrevivncia do mais adaptado.
Nessa operao, um indivduo selecionado probabilisticamente,
baseando-se no seu grau de adaptao. Os que forem selecionados sero
copiados, sem alteraes, na prxima gerao da populao, de forma tal
que, quanto mais adaptado, mais chance ele tem de ser selecionado. O
interessante que mesmo os pouco ou nada adaptados possuem alguma
chance de se reproduzirem.
Crossover: permite que novos indivduos sejam criados e testados.
A operao comea com dois pais selecionados probabilisticamente,
baseando-se nos seus graus de adaptao. Como na operao anterior, os
mais adaptados tm mais chance de serem selecionados porm mesmo os
pouco adaptados possuem alguma chance. A operao produz dois filhos,
cada um contendo algum material gentico dos pais.
Mutao: Permite a criao de novos indivduos, atravs da seleo
por adaptao e a escolha aleatria de um caractere da string para ser
invertido. O novo indivduo inserido na prxima gerao. Essa operao
Mofos de AuIo - InfeIigncio ArfificioI 44
deve ser utilizada de forma econmica durante a execuo do algoritmo
gentico.

5.5.1. Seleo

O propsito desta operao fazer a seleo dos pais para aumentar
a probabilidade de reproduzir membros da populao que tenham bons
valores da funo objetivo. Uma forma de implementao a roleta, uma
representao em que cada indivduo tem uma probabilidade de ser
selecionado que proporcional ao seu grau de fitness. Um estgio de
seleo ento seria anlogo a um giro dessa roleta, selecionando o
indivduo correspondente segundo o arco do crculo de onde est.
Para visualizar este mtodo, considere um crculo (ou roleta)
dividido em n regies (onde n o tamanho da populao), sendo a rea
de cada regio proporcional a aptido do indivduo. Aps cada giro da
roleta escolhe-se um indivduo. Este mtodo denominado amostragem
universal estocstica. Cada indivduo ocupa uma fatia proporcional ao
valor da funo objetivo. Assim, os indivduos cujas regies possuem
maior rea tero maior probabilidade de serem selecionados, inclusive,
mais de uma vez. Veja o exemplo na figura abaixo:

5.5.2. Crossover

Uma vez eleitos os pais, se utiliza um operador gentico de
cruzamento. O cruzamento responsvel pela recombinao de
caractersticas dos pais durante a reproduo, permitindo que as
prximas geraes herdem suas caractersticas. Ele considerado o
operador gentico predominante e aplicado com probabilidade dada pela
taxa de crossover Pc, que deve ser maior que a taxa de mutao. As
formas de utilizao desse operador so:
Um-ponto: um ponto de cruzamento escolhido e a partir deste ponto as
informaes genticas dos pais sero trocadas. Ex:

Individuo A: 1 0 0 1 0 1 1 0 0 1 0 0

Individuo B: 1 1 0 1 0 0 1 1 0 1 0 1


Multi-pontos: uma generalizao da idia de troca de material gentico
atravs de pontos, onde muitos pontos de cruzamento podem ser
utilizados.
Ponto de Crossover
Novos
indivduo
s
Mofos de AuIo - InfeIigncio ArfificioI 4b
Uniforme: no utiliza pontos de cruzamento, mas determina, atravs de um
parmetro global, qual a probabilidade de cada varivel ser trocada
entre os pais.

5.5.3. Mutao

Os operadores de mutao so necessrios para a introduo e
manuteno da diversidade gentica da populao, alterando
arbitrariamente um ou mais componentes de uma estrutura escolhida,
fornecendo assim, meios para a introduo de novos elementos na
populao. A mutao assegura que a probabilidade de se chegar a
qualquer ponto do espao de busca nunca ser zero. O operador de mutao
aplicado aos indivduos com uma probabilidade dada pela taxa de
mutao Pm, geralmente pequena, pois a mutao uma operao gentica
secundria.
No caso binrio a mutao consiste em substituir com certa
probabilidade (Pm) o valor de um bit. Escolhe-se aleatoriamente um bit
do cromossomo selecionado. A seguir, um nmero aleatrio entre 0 e 100
gerado e, se ele for menor do que a taxa Pm, esse bit invertido. Uma
variante , aps o procedimento descrito, gerar aleatoriamente o valor
(0 ou 1) do bit escolhido. Neste caso, a taxa de mutao de fato ser a
metade da taxa Pm. Ex.:

Indivduo escolhido: 1 0 0 1 0 1 mutao 1 0 0 0 0 1

Bit escolhido

5.5.4. Esquema grfico do algoritmo gentico















5.6. O ajuste dos parmetros genticos

tambm importante analisar de que maneira alguns parmetros influem
no comportamento dos algoritmos genticos.

Tamanho da Populao: o tamanho da populao afeta o desempenho
global e a eficincia dos algoritmos genticos. Uma populao pequena
oferece uma pequena cobertura do espao de busca, causando uma queda no
desempenho. Uma grande populao fornece uma melhor cobertura do domnio
do problema e previne a convergncia prematura para solues locais.

POPULAO

S
E
L
E


O

Crossover
Mutao
Cpia

CANDIDATOS
G
E
N

T
I
P
O
S

G I
E N
R I
A C
I
A
O L

Mofos de AuIo - InfeIigncio ArfificioI 4o
Entretanto, com uma populao muito grande h necessidade de recursos
computacionais maiores, ou um tempo maior de processamento.

Taxa de Cruzamento: quanto maior for esta taxa, mais rapidamente
novas estruturas sero introduzidas na populao. Entretanto, isto pode
gerar um efeito indesejado pois a maior parte da populao ser
substituda podendo ocorrer perda de estruturas de alta aptido. Com um
valor baixo, o algoritmo pode tornar-se muito lento.

Taxa de Mutao: uma baixa taxa de mutao previne que uma dada
posio fique estagnada em um valor, alm de possibilitar que se chegue
em qualquer ponto do espao de busca. Com uma taxa muito alta a busca se
torna essencialmente aleatria.

Intervalo de Gerao: controla a porcentagem da populao que ser
substituda durante a prxima gerao.

Probabilidades: Em relao s probabilidades de recombinao e
mutao, estudos tm mostrado que bons resultados geralmente so obtidos
com altos valores de probabilidade de recombinao (>0,7) e baixos
valores para probabilidade de mutao (<0,01).


5.7. O problema da representao

O ponto de partida para a utilizao de algoritmos genticos para a
soluo de problemas a escolha da forma de representao destes
problemas. Se um problema pode ser representado por um conjunto de
parmetros (genes), estes podem ser unidos para formar uma cadeia de
valores (cromossomo), no processo chamado codificao.
Tradicionalmente, os indivduos so representados por vetores
binrios, onde cada elemento de um vetor denota a presena (1) ou
ausncia (0) de uma determinada caracterstica: o seu gentipo.
Outra forma de representao muito comum a de codificar valores
inteiros em nmeros binrios. Os elementos podem ser combinados formando
as caractersticas reais do indivduo, ou o seu fentipo.
Por exemplo, para um problema de maximizar uma funo de trs
variveis, F(X, Y, Z), poderia-se representar cada varivel por um
nmero binrio de 10 bits, obtendo-se assim um cromossomo de 30 bits e 3
genes.

Existem vrios aspectos relacionados com a codificao de um
problema a serem levados em conta:

Deve-se utilizar um alfabeto o menor possvel para representar
os parmetros. Normalmente se utiliza um dgito binrio.
As variveis que representam os parmetros do problema devem
ser discretisadas, de forma a constiturem cadeias de bits.
A maior parte dos problemas tratados com algoritmos genticos
so no lineares e muitas vezes existem relaes "ocultas" entre as
variveis que formam a soluo.
O tratamento dos gentipos invlidos deve ser tomado em conta
para o desenho da codificao.
Mofos de AuIo - InfeIigncio ArfificioI 47

5.8. A funo de fitness

Geralmente a aptido do indivduo determinada atravs do clculo
da funo objetivo, ou funo de avaliao, que depende das
especificaes de projeto. Dado um cromossomo, a funo de avaliao
consiste em associar um valor numrico de "adaptao" do indivduo
representado. Muito importante que ela seja de clculo rpido, j que
vai ser aplicada para cada indivduo de cada populao, nas sucessivas
geraes. Grande parte do tempo gasto por um algoritmo gentico se deve
ao clculo da funo de avaliao.
A presso seletiva est implicitamente relacionada com a diversidade
da populao. Alta presso seletiva tende a fazer a diversidade cair
rapidamente, levando a populao a convergir em poucas geraes, o que
pode resultar em convergncia prematura. Por outro lado, uma baixa
presso seletiva pode tornar o processo de busca extremamente lento.
Mtodos de escalamento evitam que alguns super-indivduos dominem a
populao no inicio da busca e, geralmente, produzem melhores
resultados. A funo clssica de medida de fitness tem a forma:

F = (Cx Cx
min
) / (Cx
max
- Cx
min
)

5.9. A convergncia do algoritmo

Se o algoritmo gentico for corretamente implementado, a populao
evoluir ao longo de sucessivas geraes at que a adaptao do melhor
indivduo convirja para um timo global. A convergncia uma progresso
uniforme. Um gene ser convertido quando em 95% da populao tiver o
mesmo valor. A populao converge quando todos os genes de cada
indivduo convergirem.
O algoritmo gentico procura uma soluo no espao de busca
definido pelas strings possveis de serem construdas, de forma a
encontrar a mais adaptada e utilizando para isso, apenas os valores
numricos de adaptao. Independentemente da complexidade e do domnio
do problema em particular, os algoritmos genticos executam sempre as
mesmas operaes simples de reproduo, recombinao e mutao. Alm
disso, os algoritmos genticos so surpreendentemente rpidos e
eficientes em espaos de buscas complexos, no lineares e
multidimensionais.

5.10. Exemplos de aplicaes

5.10.1. Encontrar o valor mximo de uma funo

Seja a funo:
f(x) = -x
2
+ 33x, onde x [0, 31] e x um nmero inteiro.

O primeiro passo consiste em codificar o parmetro x como uma cadeia
de bits de tamanho finito. Usando codificao binria, necessitamos de 5
bits. A seguir, devemos gerar aleatoriamente uma populao de cadeias.
Neste caso, usaremos uma populao de tamanho m = 4. Por exemplo:

00101 11000 01000 10011

Mofos de AuIo - InfeIigncio ArfificioI 48
A seguir, calculamos os valores da funo objetivo para cada cadeia
(f(x)):

Cadeia x f(x) % do total % acumulado
OO1O1 5 140 17,03163 17,03163017
11OOO 24 216 26,27737 43,30900243
O1OOO 8 200 24,3309 67,63990268
1OO11 19 266 32,3601 100
Total 822 100


Somando os valores da funo objetivo individual de cada cadeia,
chegamos ao valor 822, a partir do qual encontramos a participao da
funo objetivo individual de cada cadeia (% do total).
O processo de seleo ou rolagem da roleta inicia-se com a gerao
de um nmero aleatrio n [0,100). A seguir, consulta-se qual
elemento esse nmero n corresponde, na tabela de probabilidades
acumuladas (veja a figura abaixo).














Dessa maneira, cadeias com maior valor de funo objetivo tem maior
chance de serem selecionadas para sobreviver. O processo repetido at
que m cadeias sejam selecionadas.
Supondo que os quatro nmeros gerados foram: 35; 52; 91 e 66. Assim,
temos que:
35 est entre 17,03 e 43,31, correspondendo cadeia 11000;
52 corresponde cadeia 01000;
91 corresponde cadeia 10011; e,
66 corresponde cadeia 01000.
Assim, conseguimos as seguintes cadeias de candidatos
sobrevivncia: 11000, 01000, 10011, 01000.

O operador de cruzamento agora aplicado mediante a seleo
aleatria de q pares de cadeias, as quais trocaro material entre si (o
valor de q depende do valor da taxa de crossover, Pc, definida).
Para realizar o cruzamento, o processo mais elementar consiste na
escolha do ponto de cruzamento, representado por um nmero inteiro
aleatrio k entre 1 e (tamanho_da_cadeia 1).
As cadeias podem manter a parte inicial e trocar entre si a parte
posterior posio k. Caso as cadeias selecionadas sejam 11000 e 10011
e k = 3, ento 110 | 00 e 100 | 11 trocaro material , gerando 11011 e
10000.
% do total de cada elemento
O1OOO
24%
1OO11
33%
11OOO
26%
OO1O1
17%
Mofos de AuIo - InfeIigncio ArfificioI 49
O operador de mutao atua ao nvel de bit, usando uma probabilidade
de troca de Pm. No exemplo, se Pm = 1%, quando uma cadeia for escolhida
a mesma varrida bit a bit. Para cada bit desta, gera-se um nmero
aleatrio entre [1,100]. Se, o nmero for igual 1, o bit invertido,
se no, ele mantido (se a probabilidade Pm fosse 3%, inverteramos o
bit se o nmero gerado aleatoriamente fosse 3).
A aplicao dos operadores de crossover e mutao est resumida na
tabela abaixo:


Seleo Cross
point
Aps o
cruzamento
Aps a
mutao
x f(x)=-x2+33x
110|00 3 11011 11011 27 162
01000 - 01000 010(1)0 10 230
100|11 3 10000 10000 16 272
01000 - 01000 01000 8 200
Total 864

Podemos verificar que a funo objetivo mxima cresceu de 266 para
272 e a soma das aptides dos indivduos da populao cresceu de 822
para 864. Na populao atual poderia at ocorrer uma queda no valor
mximo da funo objetivo, mas a tendncia de crescimento sempre
esperada, o que pode ser observado pelo valor total. O mecanismo de
seleo aumenta a probabilidade de reproduo de indivduos com melhor
aptido, assim sendo esperado o crescimento do valor total.
O algoritmo continua at que a condio de parada seja atihgida
(haja pouca evoluo, um valor absoluto seja atingido ou um nmero fixo
de geraes tenham sido produzidas).

5.10.2. O jogo das oito Rainhas

Problema: Colocar 8 rainhas num tabuleiro de 8x8
casas, de tal modo que as rainhas no se possam atacar
mutuamente.
Uma idia para representar o problema, pode ser
criar para cada coluna um cromossomo com a posio em
que aparece a rainha naquela coluna. Assim uma posio
qualquer do tabuleiro (fentipo) equivaleria a um
gentipo de oito posies, como ilustrado abaixo:













Mofos de AuIo - InfeIigncio ArfificioI b0
S3
25%
0%
S2
33%
S1
42%
A mutao pode ser feita, ao contrrio do caso anterior, trocando-se
elementos aleatoriamente dentro do gentipo:
O crossover pode ser feito com ponto nico:









Funo de avaliao (fitness): cada rainha penalizada pelo nmero
de outras rainhas que pode atacar. A qualidade da soluo dada pela
soma da quantidade de rainhas que podem ser atacadas.
Naturalmente, como o ideal neste caso que a quantidade de rainhas
atacadas seja zero, a qualidade da avaliao ser tanto melhor quanto
menor for o nmero dado pela funo de avaliao.
Assim, para fazermos com que a rea ocupada na roleta seja
proporcional qualidade da soluo, podemos fazer a rea de uma
configurao igual diferena entre o valor da funo de avaliao e
soma das penalidades de todas as rainhas, sobre o valor desta soma.
Ex:
Fitness(S
1
) = 2
Fitness(S
1
) = 4
Fitness(S
1
) = 6






Realizando as operaes genticas utilizando parmetros adequados, o
algoritmo tende a encontrar a soluo que, neste caso, minimiza a
funo de custo (fitness).

Você também pode gostar