Escolar Documentos
Profissional Documentos
Cultura Documentos
Contedo
Computao Evolutiva ...........................................................................................................1
1.
Introduo ......................................................................................................................3
2.
Algoritmos Genticos.....................................................................................................5
2.1
Populao ............................................................................................................... 7
Indivduos....................................................................................................................... 8
2.2
Avaliao de Aptido (Fitness).............................................................................. 8
2.3
Seleo ................................................................................................................... 8
2.4
Operadores Genticos .......................................................................................... 11
Cruzamento (Crossover) .............................................................................................. 11
Mutao........................................................................................................................ 12
2.5
Gerao ................................................................................................................ 13
2.6
Consideraes finais sobre AGs........................................................................... 13
3.
4.
5.
1. INTRODUO
2. ALGORITMOS GENTICOS
Populao
Avaliao de Aptido
Seleo
Cruzamento
Mutao
No
Operadores
genticos
Critrio de
Parada ?
Sim
Retornar Melhor
Indivduo
2.1
Populao
A populao de um algoritmo gentico o conjunto de indivduos que esto sendo
cogitados como soluo e que sero usados para criar o novo conjunto de indivduos para
anlise. O tamanho da populao pode afetar o desempenho global e a eficincia dos
algoritmos genticos. Populaes muito pequenas tm grandes chances de perder a
diversidade necessria para convergir a uma boa soluo, pois fornecem uma pequena
cobertura do espao de busca do problema. Entretanto, se a populao tiver muitos
indivduos, o algoritmo poder perder grande parte de sua eficincia pela demora em
avaliar a funo de aptido de todo o conjunto a cada iterao, alem de ser necessrio
trabalhar com maiores recursos computacionais.
Indivduos
O ponto de partida para a utilizao de um algoritmo gentico como ferramenta para
soluo de problemas a representao destes problemas de maneira que os algoritmos
genticos possam trabalhar adequadamente sobre eles. Uma das principais formas
representar cada atributo como uma sequncia de bits e o indivduo como a concatenao
das sequncias de bits de todos os seus atributos. Outras variaes de codificaes binrias
podem ser encontradas em (Holland 1975; Caruana 1988).
A codificao usando o prprio alfabeto do atributo que se quer representar (letras,
cdigos, nmeros reais, etc.) para representar um indivduo tambm muito utilizada.
Alguns exemplos podem ser encontrados em (Meyer 1992; Kitano 1994).
Diversas outras formas so possveis, normalmente a forma mais apropriada est
fortemente ligada ao tipo de problema.
2.2
2.3
Seleo
Dada uma populao em que a cada indivduo foi atribudo um valor de aptido,
existe vrios mtodos para selecionar os indivduos sobre os quais sero aplicados os
Inicio
T = soma dos valores de aptido de todos os indivduos da populao
Repita N vezes para selecionar n indivduos
r = valor aleatrio entre 0 e T
Percorra sequencialmente os indivduos da populao, acumulando
em S o valor de aptido dos indivduos j percorridos
Se S >= r ento
Selecione o indivduo corrente
Fim se
Fim Repita
Fim
Figura 3 Algoritmo bsico do mtodo de seleo por Roleta
2.4
Operadores Genticos
O principio bsico dos operadores genticos transformar a populao atravs de
Cruzamento (Crossover)
Este operador considerado o operador gentico predominante. Atravs do
cruzamento so criados novos indivduos misturando caractersticas de dois indivduos
"pais". Esta mistura feita tentando imitar (em um alto nvel de abstrao) a reproduo de
genes em clulas. Trechos das caractersticas de um indivduo so trocados pelo trecho
equivalente do outro. O resultado desta operao um indivduo que potencialmente
combine as melhores caractersticas dos indivduos usados como base.
Alguns tipos de cruzamento bastante utilizados so o cruzamento em um ponto e o
cruzamento em dois pontos, mostrados nas Figuras 5 e 6:
Com dois pontos de cruzamento, um dos descendentes fica com a parte central de
um dos pais e as partes extremas do outro pai e vice versa (Figura 6).
Mutao
Esta operao simplesmente modifica aleatoriamente alguma caracterstica do
indivduo sobre o qual aplicada (ver Figura 7). Esta troca importante, pois acaba por
criar novos valores de caractersticas que no existiam ou apareciam em pequena
quantidade na populao em anlise. O operador de mutao necessrio para a introduo
e manuteno da diversidade gentica da populao. Desta forma, a mutao assegura que a
probabilidade de se chegar a qualquer ponto do espao de busca possivelmente no ser
zero. O operador de mutao aplicado aos indivduos atravs de uma taxa de mutao
geralmente pequena.
2.5
Gerao
A cada passo, um novo conjunto de indivduos gerado a partir da populao
anterior. A este novo conjunto d-se o nome de "Gerao". atravs da criao de uma
grande quantidade de geraes que possvel obter resultados dos Algoritmos Genticos.
2.6
melhorias devem ser feitas no algoritmo bsico. Muitas aproximaes foram propostas com
o objetivo comum de melhorar AGs. O primeiro grupo de estudos foca na manuteno da
diversidade na populao (De Jong 1989)(Eshelman 1991)(Goldberg 1989)(Goldberg
1990)(Tsutsui1993)(Tsutsui 1994) e inclui: mtodos de compartilhamento de recursos que
utilizam algumas funes sharing para evitar a convergncia de indivduos semelhantes,
mtodos crowding que obrigam a substituio de indivduos novos, restries de
cruzamento, etc.
O segundo grupo visa melhorar o desempenho da capacidade de busca de
algoritmos genticos usando hibridizao (Costa1995)(Glover 1994) (Glover 1995) (Kitano
1990)(Malek
1989)(Mantawy
1999)(Muhlenbein
1998)(Muhlenbein
1992)(Powel
Entretanto, a maioria dos estudos na literatura tm focado na busca global atravs de AGs,
enquanto a busca local tem sido feita por outros mtodos.
O ltimo grupo de estudos foca em problemas de funes de otimizao, ou em
problemas para encontrar solues timas de Pareto (Cantu-Paz 1999)(Coelho 1999)(
Schaffer 1985)(Srinivas 1993)(Tamaki 1996)(Fonseca 1993)(Hiroyasu 1999)(Horn 1993).
Estes estudos incluem: mtodos para dividir indivduos em subgrupos, cada um
representando uma funo objetivo, combinao de torneio e mtodos de compartilhamento
de recursos, mtodos para dividir solues de Pareto em algumas reas, entre outros.
3.1
1.0
Share
s(d)
0.0
Distncia
dij = ||xi xj||
Share
s(d(xi, xj))
j=1
Onde f(xi ) o valor de aptido do indivduo que est sendo avaliado, s(d(xi, xj))
uma funo de compartilhamento como a apresentada na figura 8.
Como resultado, este mecanismo limitar o crescimento descontrolado de espcies
particulares dentro de uma populao. A estrutura bsica de um algoritmo gentico com
sharing pode ser vista a seguir:
Sharing()
{
Iniciar a
Avaliar o
reduzindo
identicos
populao aleatoriamente
valor de aptido dos indivduos da populao,
o valor de acordo com a quantidade de indivduos
ou similares dentro da populao
3.2
Evoluo Cooperativa
Outra abordagem que lida com problemas complexos a evoluo cooperativa,
proposta por Potter e De Jong (2000). Esta arquitetura modela um ecossistema consistindo
de duas ou mais espcies. Nesta tcnica, as espcies so geneticamente isoladas, ou seja,
indivduos somente cruzam com outros membros de sua espcie. Restries de cruzamento
so foradas simplesmente por evoluir as espcies em populaes separadas. As espcies
interagem entre si dentro de um modelo de domnio compartilhado e tm um
relacionamento cooperativo. O modelo bsico desta abordagem mostrado na figura 10:
Espcie -1
indivduo
Espcie -2
Espcie -1
AE
AE
Populao
Populao
AE
Populao
aptido
Modelo do
Domnio
representante
indivduo
AE
aptido
representante
Espcie 1 - Avaliao
Espcie -3
AE
representante
Populao
Espcie 2 - Avaliao
Espcie -1
Espcie -2
AE
AE
Populao
Populao
representante
Populao
Modelo do
Domnio
Espcie -3
representante
Espcie -2
Modelo do
Domnio
representante
Espcie -3
AE
aptido
indivduo
Espcie 3 - Avaliao
Populao
AE
Populao
Neste modelo cada espcie evoluda em sua prpria populao. A figura 10 mostra
a fase de avaliao de aptido de cada uma das trs espcies. Para avaliar uma populao
so formadas colaboraes com representantes de cada espcie.
H muitos mtodos possveis para escolher os representantes com os quais
colaborar. Em alguns casos apropriado permitir que o melhor indivduo corrente de cada
populao seja o representante. Em outros casos, estratgias alternativas so preferidas.
Um algoritmo bsico desta tcnica pode ser visto na figura 11:
Inicio
{
t = 0
Para cada espcie S
Inicializar Pt(S) com indivduos aleatrios
Para cada espcie S
Avaliar o valor de aptido de cada indivduo em Pt (S)
Repita Enquanto condio de termino falsa
{
Inicio
Para cada espcie S
Inicio
Selecionar indivduos para reproduo de
Pt(S) baseado no valor de aptido
Aplicar operadores genticos ao grupo de
reproduo para produzir descendentes
Avaliar o valor de aptido dos descendentes
Substituir os membros de Pt (S) com os
descendentes para produzir Pt+1(S)
Fim
t = t + 1
Fim
}
}
Fim
Inicio
{
Escolher representante de cada uma das outras espcies
Para cada indivduo i de S faa avaliao
Inicio
Formar colaborao entre i e representantes de outras
espcies
Avaliar o valor de aptido de colaborao atravs do
problema objetivo
Atribuir o valor de aptido de colaborao a i
Fim
}
Fim
Figura
}
}
3.3
Abordagens Hibridas
Os algoritmos geneticos tradicionais, apesar de robustos, no so os algoritmos de
Remover x de N (x)
No
Adicionar a T
x' T ?
Sim
No
x = x
No
Trmino
Critrio de
Aspirao
Satisfeito
Sim
O processo inicia selecionando uma soluo aleatria (x). Uma busca local ento
realizada, procurando todas as solues vizinhas, N(x). A partir dessas solues, selecionase a melhor soluo (x), no sendo necessrio que a mesma seja melhor que a soluo
inicial. A soluo inicial ento movida para a melhor soluo vizinha adicionando-se a
nova soluo lista Tabu. A partir dessa nova soluo, realiza-se novamente uma busca
local e novamente a melhor soluo vizinha selecionada como candidata para o prximo
movimento.
Para evitar que um movimento reverso seja realizado, verificam-se os movimentos
das iteraes anteriores armazenados na lista de restries. Se o movimento no se encontra
na lista Tabu ou se satisfeito o critrio de aspirao, o movimento aceito, seno testa-se a
prxima melhor soluo. Esse processo executado at encontrar uma soluo vizinha que
no se encontre na lista Tabu. Enquanto no satisfeito um critrio de trmino, o processo
repetido.
Kurahashi e Terano (2000) propem um Algoritmo Gentico utilizando-se de
mltiplas listas Tabu, auxiliando o algoritmo a alcanar a soluo em problemas
multimodais ou com mais de uma funo objetivo a otimizar.
A maioria dos mtodos convencionais utiliza algoritmos genticos para explorar
candidatos globais e algoritmos adicionais para explorar pontos timos locais. O trabalho
de Kurahashi e Terano prope um novo algoritmo para diretamente armazenar indivduos
dentro de mltiplas listas.
A idia geral do algoritmo a utilizao de duas listas de restries: Lista Longa,
com tamanho m e Lista Curta, com tamanho n, onde m e n so ajustados de acordo com o
problema. Estas listas tero o objetivo de armazenar os melhores indivduos das geraes
anteriores, manter o elitismo, manter a diversidade populacional e evitar a convergncia a
um ponto timo local.
A dinmica dos algoritmos baseia-se na idia que ao final de cada gerao, o melhor
indivduo ser armazenado em ambas as listas. Quando se inicia a prxima gerao e novos
indivduos so selecionados para a reproduo, as listas de restries no deixam que
indivduos similares presentes nas mesmas sejam selecionados. Estas listas de restries
podem ser aplicadas para somente um dos indivduos escolhidos para gerar os
descendentes.
Na Lista Curta sero armazenados apenas os indivduos das iteraes mais recentes.
Quando a lista preenchida completamente, para que um novo indivduo seja adicionado
mesma, o indivduo mais antigo dever ser retirado. Os indivduos pertencentes a esta lista
podem ter o mesmo gentipo.
Na Lista Longa, sero armazenados indivduos de todas as geraes anteriores. Os
indivduos presentes na lista no podero ter gentipo idntico ou similar. Caso surja um
indivduo com um gentipo similar a ser adicionado na Lista Longa, este somente ser
adicionado, se possuir um valor de aptido superior e mediante a retirada do outro
indivduo. Este indivduo retirado da lista sofrer mutao e ser recolocado na populao a
fim de participar das prximas geraes.
Assim, as solues sero gradualmente armazenadas na Lista Longa, ou seja, at no
mximo m solues. Ao final do processo, o conjunto soluo, ser formado pelos
indivduos presentes na Lista Longa.
Testes de otimizaes de funes realizados por este algoritmo foram feitos por
Kurahashi e Terano (2000). Algumas de suas concluses parciais relatam que, com a
adoo desta estratgia, o algoritmo gentico utilizando listas de restries conseguiu cobrir
uma rea maior do espao de busca, se comparado a um algoritmo gentico puro. Para
evitar que as solues convirjam a um pico em uma funo multimodal, eles definem uma
medida de distancia entre um indivduo na lista tabu e um novo candidato. So empregadas
trs medidas de distncia, entre elas a distncia de Hamming, onde calculada a diferena
de bits entre dois gentipos (conforme formula a seguir), e que ser utilizada na
implementao desse algoritmo para comparao com as outras tcnicas.
n
AG Restrito()
{
Iniciar populao aleatoriamente
Avaliar o valor de aptido dos indivduos da populao
Enquanto no atingir o nmero de geraes ou o objetivo
do problema
{
Selecionar o melhor indivduo da populao
Retornar indivduo da lista longa que seja similar ao
melhor indivduo da populao
Se limiar de distncia entre o melhor indivduo
da populao e o indivduo similar da lista < d
Inserir indivduo na Lista Longa
Seno
Verificar se indivduo selecionado possui valor de
aptido > que indivduo da lista
Se sim
Retirar indivduo da lista
Aplicar mutao
Colocar indivduo retirado da lista
longa na nova populao
Colocar indivduo selecionado na Lista
Longa
Seno
Descartar indivduo selecionado
}
Se Lista Curta no estiver completa
Inserir indivduo na Lista Curta
Seno
{
Descartar o indivduo mais antigo
Inserir novo indivduo na Lista Curta
}
Enquanto no atingir o nmero de indivduos da
populao
{
Selecionar indivduos para reproduo e verificar
se o primeiro indivduo selecionado no possui
indivduos idnticos ou similares na Lista Curta
ou na Lista Longa
Aplicar operadores genticos para produzir
descendentes
}
Avaliar o valor de aptido dos indivduos da nova
populao
Substituir a populao com os descendentes
}
selecionado e cada um dos indivduos da lista est dentro de uma distncia pr-definida, os
dois indivduos selecionados so descartados e uma nova seleo executada
A estrutura bsica deste algoritmo pode ser vista na Figura 15. No AG Restrito
possvel visualizar as modificaes que foram efetuadas no algoritmo gentico tradicional
para implementao desta tcnica. Aps a populao ter sido criada aleatoriamente e o
valor de aptido ter sido calculado, o melhor indivduo da populao selecionado para
fazer parte das listas de restries. Obedecidos aos critrios de insero na lista longa e na
lista curta, o prximo passo selecionar indivduos para reproduo, verificando se o
primeiro indivduo selecionado no possui indivduos idnticos ou similares nas listas.
Caso negativo, aplicam-se operadores genticos, seno dois novos indivduos so
selecionados. Este processo repetido at que o nmero de indivduos na nova populao
seja atingido. Por fim, o valor de aptido dos indivduos calculado e a populao
substituda pelos novos descendentes.
4. PROGRAMAO GENTICA
Neste captulo fornecida uma explicao sobre a origem, funcionamento e
principais componentes da Programao Gentica e algumas de suas extenses. Vrios
aspectos importantes so detalhados, tais como a gerao da populao inicial e avaliao
dos programas.
O paradigma da Programao Gentica foi desenvolvido por John Koza (Koza
1989; Koza 1992) com base nos trabalhos de John Holland em Algoritmos Genticos
(Holland 1975). Atualmente representa uma rea muito promissora de pesquisa em
Inteligncia Artificial devido a sua simplicidade e robustez. Seu uso tem sido estendido a
problemas de diversas reas do conhecimento, como por exemplo: biotecnologia,
engenharia eltrica, anlises financeiras, processamento de imagens, reconhecimento de
padres, minerao de dados, linguagem natural, dentre muitas outras (Willis 1997)
A Programao Gentica a evoluo de um conjunto de programas com o
objetivo de aprendizagem por induo (Banzhaf 1998). A idia ensinar computadores a se
programar, isto , a partir de especificaes de comportamento, o computador deve ser
capaz de induzir um programa que as satisfaa (Koza 1992). A cada programa associado
um valor de mrito (fitness) representando o quanto ele capaz de resolver o problema.
Basicamente, a Programao Gentica mantm uma populao de programas de
computador, usa mtodos de seleo baseados na capacidade de adaptao (fitness) de cada
programa (escolha dos melhores), aplica operadores genticos para modific-los e
convergir para uma soluo. O objetivo encontrar uma soluo no espao de todos os
programas possveis (candidatos) usando apenas um valor de fitness como auxlio no
processo de busca (Gathercole 1998).
O mecanismo de busca da Programao Gentica pode ser descrito como um
ciclo criar-testar-modificar (Figura 16), muito similar a forma com que os humanos
desenvolvem seus programas. Inicialmente, programas so criados baseados no
conhecimento sobre o domnio do problema. Em seguida, so testados para verificar sua
4.1
resumidamente como:
Atingiu Critrio de
Trmino ?
Retorna com o
melhor programa
Seleo
Reprodu
o
Cruzament
o
Mutao
4.2
A representao feita por uma rvore de sintaxe abstrata como mostrado na Figura 18.
*
x
2
x
4.3
Fechamento e Suficincia
Para garantir a viabilidade das rvores de sintaxe abstrata, John Koza definiu a
de
representar
uma
soluo
para
problema
(Koza
1992).
Isto implica que deve existir uma forte evidncia de que alguma composio de funes e
terminais possa produzir uma soluo. Dependendo do problema, esta propriedade pode ser
bvia ou exigir algum conhecimento prvio de como dever ser a soluo.
4.4
Populao Inicial
Tradicionalmente, a populao inicial composta por rvores geradas
mtodos,
sendo
os
mais
comuns
(Luke 2001):
ramped-half-and-half
Dados:
Profundidade mxima D
Conjunto de funes F e de terminais T
Faa:
rvore = GROW(0)
GROW(profundidade d)
Retorna: uma rvore de profundidade mxima D - d
Se d = D
Retorne aleatoriamente um terminal de T
Seno
Escolha aleatoriamente um elemento e { F T }
Se e F
Para cada argumento a de e
Preencha a com GROW(d + 1)
Retorne f com todos os argumentos preenchidos
Figura 19: Algoritmo Grow
2
tendncia
gerar
maior
rvore
possvel
ao
aplicar grow;
O mtodo random-branch (Chellapilla 1997) permite que se informe qual o
tamanho mximo da rvore (e no a sua profundidade). O algoritmo est na Figura 20.
rvores
possveis
de
serem
geradas
para
cada
tamanho
desejado.
terminal, de forma a produzir uma rvore de tamanho esperado Etree. A obteno do valor
de p feita pela frmula a seguir:
1
Etree
p=
qn bn
1
(1)
nN
Dados:
Profundidade mxima D
Conjunto de funes F e de terminais T
A probabilidade p de escolher uma funo
As probabilidades qt e qf para cada t T e f F
Faa:
rvore = PTC1(0)
PTC1(profundidade d)
Retorna: uma rvore de profundidade mxima D - d
Se d = D
Retorne aleatoriamente um terminal de T baseado em qt
Seno
Com probabilidade p, Se uma funo deve ser escolhida
Escolha aleatoriamente f F baseado em qf
Para cada argumento a de e
Preencha a com PTC1(d + 1)
Retorne f com todos os argumentos preenchidos
Seno
Retorne aleatoriamente um terminal de T baseado em qt
Figura 21: Algoritmo PTC1
PTC1 garante que as rvores sero geradas dentro de um tamanho esperado.
Uma variante deste mtodo (PTC2) usa um tamanho mximo S e uma distribuio de
probabilidades w1, w2, ...ws para cada rvore de tamanho 1 a S. Alm do controle sobre o
tamanho esperado da rvore, tem-se um controle sobre a distribuio destes tamanhos.
4.5
Funo de Aptido
Na natureza os seres vivos so selecionados naturalmente com base no seu grau
mais comum de aptido nata a avaliao do erro cometido, isto , a soma de todas as
diferenas absolutas entre o resultado obtido pelo programa e o seu valor correto.
2) Aptido padronizada (standardized fitness): Devido ao fato da aptido nata depender
do domnio do problema, uma valor bom pode ser um valor pequeno (quando se avalia
o erro) ou um valor grande (quando se avalia a taxa de eficincia). A avaliao da
aptido padronizada feita atravs de uma funo de adaptao do valor da aptido nata
de forma que quanto melhor o programa, menor deve ser a aptido padronizada . Desta
forma, o melhor programa apresentar o valor zero (0) como aptido padronizada,
independentemente do domnio do problema.
3) Aptido ajustada (adjusted fitness): obtida atravs da aptido padronizada. Se
s(i, t) representa a aptido padronizada do indivduo i na gerao t, ento a aptido
ajustada a(i, t) calculada da seguinte forma:
a (i, t ) =
1
1 + s (i, t )
(2)
Percebe-se que a aptido ajustada varia entre zero (0) e um (1), sendo que os maiores
valores representam os melhores indivduos. A aptido ajustada tem o benefcio de
exagerar a importncia de pequenas diferenas no valor da aptido padronizada quando
esta se aproxima de zero (Koza 1992).
4) Aptido normalizada (normalized fitness): se a(i, t) a aptido ajustada do indivduo
i na gerao t, ento sua aptido normalizada n(i, t) ser obtida da seguinte forma:
n (i , t ) =
a (i , t )
m
a (k , t )
(3)
k =1
fcil perceber que a soma de todas as aptides normalizadas dentro de uma populao
vale um (1).
Para uma melhor comprenso de como pode ser feita a avaliao de fitness, suponha
os seguintes valores de fitness cases mostrados na Tabela 1.
ENTRADA
SADA
FITNESS CASE 1
FITNESS CASE 2
FITNESS CASE 3
17
FITNESS CASE 4
37
FITNESS CASE 5
65
Com base neste conjunto, deseja-se descobrir um programa que seja capaz de
produzir as sadas para cada entrada informada. fcil perceber que a funo
f(x) = x2+1 uma soluo vlida neste caso.
A aptido nata (raw fitness) para este tipo de problema pode ser a soma das
diferenas absolutas da resposta do programa pela sada correta (Minkowski distance). Para
cada programa p pertencente a populao P, associa-se um valor fp que representa o seu
fitness obtido na avaliao dos n fitness cases informados. O valor de fp obtido pela
frmula:
f p = pi si
(4)
f p = ( pi si )
(5)
i =1
Qual o real impacto do uso destas funes de fitness? Para melhor esclarecer,
considere que o programa x2 + x est sendo avaliado. A Tabela 2 mostra os resultados
obtidos em cada uma das funes para os valores da Tabela 1.
ENTRADA
SADA
PROGRAMA
ERRO ABSOLUTO
ERRO QUADRTICO
FITNESS CASE 1
FITNESS CASE 2
FITNESS CASE 3
17
20
FITNESS CASE 4
37
42
25
FITNESS CASE 5
65
72
49
17
85
Valor de fitness
4.6
Mtodos de Seleo
O mtodo de seleo tem por objetivo escolher quais programas devero sofrer a
ao dos operadores genticos e compor uma nova gerao. Dado que a qualidade de um
programa dada pelo seu valor de fitness, a seleo deve preferenciar, de alguma forma, os
programas que apresentem os melhores valores de fitness.
Os mtodos atualmente usados so (Blickle 1995): Seleo Proporcional,
Seleo por Torneio, Seleo por Truncamento, Seleo por Nivelamento Linear e Seleo
por Nivelamento Exponencial.
1) Seleo Proporcional (fitness-proportionate selection): Apresentada por John Holland
(Holland 1975) para Algoritmos Genticos, foi o mtodo escolhido por John Koza no
seu primeiro livro (Koza 1992). Usa a aptido normalizada disposta em uma roleta,
sendo que cada indivduo da populao ocupa uma fatia proporcional a sua aptido
normalizada. Em seguida produzido um nmero aleatrio entre zero (0) e um (1). Este
nmero representar a posio ocupada pela agulha da roleta. Apesar de seu grande
sucesso devido a sua simplicidade, este mtodo muito afetado pela escalabilidade da
aptido normalizada (Blickle 1995).
2) Seleo por Torneio (tournament selection): Apresentada por David Goldberg
(Goldberg 1991) para Algoritmos Genticos, foi utilizada em vrios problemas por John
Koza no seu segundo livro (Koza 1994). A seleo por torneio feita da seguinte
forma: t indivduos so escolhidos aleatoriamente da populao e o melhor deles o
escolhido. Este processo repetido at que se tenha uma nova populao. O valor de t
conhecido como o tamanho do torneio.
3) Seleo por Truncamento (truncation selection): Com base em um valor de limiar
(threshold) T entre zero (0) e um (1), a seleo feita aleatoriamente entre os T
melhores indivduos (Muhlenbein 1993). Por exemplo, se T = 0.4, ento a seleo
feita entre os 40 % melhores indivduos e os outros 60 % so descartados.
4) Seleo por Nivelamento Linear (linear ranking selection): Sugerido por Baker
(Baker 1989) para eliminar as srias desvantagens do uso de seleo proporcional. Para
tal, os indivduos so ordenados de acordo com os valores de fitness e o nvel N
pi =
O valor de
n+
N
onde i {1,2,...N},
1
+
i 1
n + (n n )
N
N 1
n- 0 e n+ + n- = 2
(6)
n
N
, a do
pior ser escolhido. interessante perceber que cada indivduo pertence a um nico
nvel, isto , mesmo que dois indivduos tenham o mesmo fitness, eles apresentam
probabilidades diferentes de serem escolhidos.
5) Seleo por Nivelamento Exponencial (exponential ranking selection): A seleo por
nivelamento exponencial se diferencia do Nivelamento Linear apenas no fato das
probabilidades pi serem exponencialmente ponderadas (Baker 1989). Um parmetro c
entre zero (0) e um (1) usado como base. Quanto mais prximo de um, menor a
exponencialidade da seleo. Tal como no Nivelamento Linear, os indivduos so
ordenados de acordo com os valores de fitness e o nvel N associado ao melhor
indivduo e o nvel 1, ao pior. Em seguida, a cada indivduo i associada uma
probabilidade pi de ser selecionado.
pi =
4.7
c 1 N i
c
onde i {1,2,...N}
c N 1
(7)
Operadores Genticos
Uma vez que os indivduos tenham sido selecionados, deve-se aplicar um dos
+
x
4.8
Critrio de Trmino
responsvel por interromper o lao de repetio do processo evolutivo que,
idealmente, no teria fim. O critrio mais comum limitar o nmero mximo de geraes
ou at que uma soluo satisfatria seja encontrada (Koza 1992), porm existem critrios
baseados no prprio acompanhamento do processo evolutivo, isto , enquanto houver
melhoria na mdia da populao, o processo evolutivo prossegue (Kramer 2000)
4.9
Limitaes
A obrigatoriedade da propriedade de fechamento (closure) limita os domnios a
A funo especial & faz o mesmo que a funo soma (+). A funo xsin
definida como tendo dois argumentos (arg0 e arg1) e seu clculo arg1*sin(arg2*x),
sendo que o valor de arg2 arredondado para o inteiro mais prximo. De forma
semelhante, define-se a funo xcos.
Estas restries tornam-se necessrias pois uma Srie de Fourier tem a forma:
Referindo-se a funo de diviso protegida, isto , % idntica a / com exceo de que uma diviso por zero
resulta em um (Koza 1992)
5.1
Motivao
Tradicionalmente, a linguagem alvo usada para Programao Gentica o LISP
(Banzhaf 1998). Graas a sua sintaxe simples e ao fato de tanto dados como programas
terem o mesmo formato (S-expressions), tornou-se a linguagem ideal para evoluir
programas (Angeline 1994). As S-expressions podem ser:
Para avaliar uma lista, assume-se que o primeiro elemento uma funo,
sendo os elementos seguintes, seus argumentos.
No Anexo A apresentamos um resumo sobre gramticas para facilitar o entendimento deste captulo.
qualquer
problema
cuja
soluo
possa
ser
em
forma
de
um
programa,
Frederic Gruau (Gruau 1996) props o uso de gramticas. A generalizao se torna possvel
pelo fato de atualmente as linguagens de programao serem facilmente descritas por uma
gramtica.
Para o uso de gramticas em Programao Gentica, tornam-se necessrias
modificaes na forma de criao da populao inicial e na atuao dos operadores
genticos. Estas alteraes visam a preservao da consistncia sinttica dos programas
durante o processo evolutivo e representam extenses dos originais com S-expressions
(Whigham 1996).
As principais modificaes com relao a Programao Gentica tradicional so
explicadas nas sees que seguem. Inicialmente, mostra-se a representao dos programas
atravs de rvore de derivao. Posteriormente, o algoritmo de criao da populao inicial
detalhado. As alteraes necessrias ao comportamento dos operadores genticos so
apresentadas no final do captulo.
5.2
= { X, +, -, *, / }
<exp>
P = { <exp> <var> |
(<exp> <op> <exp>)
<op>
<var>
+ | - | * | /
x }
5.3
Populao Inicial
O processo de criao de um programa baseado em uma gramtica simples.
evitar
rejeio
de
rvores
recm
criadas,
Peter
Whigham
(Whigham 1996) props um mtodo que se baseia em duas fases7. A primeira se preocupa
em calcular o nmero mnimo de derivaes de cada produo e a segunda, gera as rvores
com base na profundidade desejada.
O algoritmo da primeira fase est na Figura 24.
Este mtodo tambm foi usado por Alain Ratle e Michele Sebag em (Ratle 2000)
Dados:
Profundidade mxima D
Conjunto de produes P
Smbolo inicial S
Faa:
rvore = GROW(S, D)
GROW(smbolo inicial S, profundidade mxima d)
Retorna: uma rvore de derivao com profundidade mxima d
Se d = 1
Retorne aleatoriamente uma produo S x onde x *
Seno
Selecione aleatoriamente uma produo S onde {N }* onde
MIN_DERIV(S) d
Para cada no-terminal A
Anexe a rvore retornada por GROW(A, d-1)
Retorne a rvore de derivao cuja raiz o no-terminal S
5.4
Operadores Genticos
A atuao dos operadores de cruzamento e mutao devem respeitar a gramtica
usada, a fim de produzir programas vlidos. Para o cruzamento, necessrio que os pontos
de
cruzamento
sejam
do
mesmo
tipo,
isto
pertencer
ao
mesmo
<exp>
<exp>
<exp>
<op>
<exp>
<fun>
<var>
<kte>
sin
<exp>
<exp>
<op>
<exp>
<var>
<var>
<exp>
<exp>
<exp>
<op>
<var>
<exp>
<var>
<exp>
<op>
<exp>
<fun>
<exp>
<kte>
sin
<var>
Dados:
Duas rvores de derivao P1 e P2
Profundidade mxima D
Faa:
CROSSOVER(P1, P2, D)
CROSSOVER(rvore de derivao P1, rvore de derivao P2,
profundidade mxima d)
Retorna: duas rvores derivao com profundidade mxima d
Selecione aleatoriamente um n no-terminal A P1
Construa uma lista de ns pertencentes a P2 cuja no-terminal seja A
Se a lista resultar vazia
Retorne com P1 e P2
Seno
Selecione aleatoriamente um n da lista
Permute as rvores de derivao abaixo de ambos os ns,
gerando dois novos programas P1 e P2
Se a profundidade de P1 maior que d
Copie P1 em P1
Se a profundidade de P2 maior que d
Copie P2 em P2
Retorne com P1 e P2
REFERNCIAS BIBLIOGRFICAS
(Aho 1995) AHO, A. V.; ULLMAN, J. D. & SETHI, R.. Compiladores: princpios, tcnicas
e ferramentas . ISBN 8521610572. LTC, 1995.
(Andre 1994) ANDRE, D. Evolution of map making: learning, planning, and memory
using genetic programming. Proceedings of the First IEEE Conference on
Evolutionary Computation. Vol I. pp. 250-255. IEEE Press, 1994.
(Angeline 1993) ANGELINE, P. J. & POLLACK, J. Evolutionary module acquisition.
Proceedings of the 2nd Annual Conference on Evolutionary Programming, pp. 154163, 1993.
(Angeline 1994) ANGELINE, P. J. Genetic programming and emergent intelligence.
Advances in Genetic Programming, ISBN 0262111888. pp 75-98. MIT Press, 1994.
(Baker 1989) BAKER, J. E. An analysis of the the effects of selection in genetic algorithms
PhD thesis, Graduate Schol of Vanderbilt University. Nashiville, Tennessee, 1989.
(Banzhaf 1998) BANZHAF, W; NORDIN, P.; KELLER, R. E. & FRANCONE, F. D.
Genetic Programming: an introduction. ISBN 155860510X. Morgan Kaufmann,
1998.
(Barreto 1997) BARRETO, J. Inteligncia Artificial. No Limiar do Sculo XXI.
ISBN 859003822X. Edies, 1997.
(Blickle 1995) BLICKLE, T. & THIELE, L. A comparision of selection schemes used in
genetic algorithms. TIK-Report nr 11 version 2, Computer Engineering and
Communication Networks Lab. Swiss Federal Institute of Technology (ETH), Zurich,
Switzerland, December, 1995.
(Bohm 1996) BOHM, W. & GEYER-SCHULZ, A. Exact unifrom initialization for genetic
programming. Foundations of Genetic Algorithms IV (FOGA 4). ISBN 155860460X.
pp 379-407. Morgan Kaufmann, 1996.
(Brameier 1998) BRAMEIER, M.; KANTSCHIK, W.; DITTRICH, P. & BANZHAF, W.
SYSGP: A C++ library of different GP variants. Series Computational Intelligence,
Internal
Report
of
SFB
531,
University
of
Dortmund,
ISSN 1433-3325, Dortmund, 1998.
(Bruce 1995) BRUCE, W. S. The application of genetic programming to the automatic
generation of object-oriented programs. PhD thesis. School of Computer and
Information Sciences, New Southeastern University, 1995
(Cantu-Paz 1999) CANTU-PAZ, E. Topologies, migration rates, and multi-population
parallel genetic algorithms, In: Proceedings GENETIC AND EVOLUTIONARY
COMPUTATION CONFERENCE, 1, 1999, p.91-98.
(Caruana 1988) CARUANA, R. A.; SCHAFFER, J. D. Representation and hidden bias:
Gry vs. binary coding for genetic algorithms. In: Proceedings INTERNATIONAL
CONFERENCE ON MACHINE LEARNING, 5, 1988. Morgan Kaufmann, 1988.
(Cavicchio 1970) CAVICCHIO, JR., D. J. Adaptive search using simulated evolution.
Doctoral dissertation, University of Michigan, Ann Arbor, MI. (University Microlms
No. 25-199), 1970.
(Chellapilla 1997) CHELLAPILLA, K. Evolving computer programs without sub-tree
crossover IEEE Transactions on Evolutionary Computation. Vol. 1 Issue 3. pp 209216. IEEE Press, September, 1997.
(Glover 1995) GLOVER, F.; KELLY, J.; LAGUNA, M. Genetic algorithms and tabu
search: hybrid for optimization. Computers and Operations Research, v. 22(1), p.111134, 1995.
(Goldberg 1987) GOLDBERG, D. E.; RICHARDSON, J. Genetic algorithms with sharing
for multimodal function optimization. In: Proceedings INTERNATIONAL
CONFERENCE ON GENETIC ALGORITHMS, 2. 1987.
(Goldberg 1989) GOLDBERG, D. E. Genetic algorithms in search, optimization and
machine learning. Alabama: Addison Wesley, 1989. 413p.
(Goldberg 1990) GOLDBERG, D. E. A note on Boltzman tournament selection for genetic
algorithms and population oriented simulated annealing. Complex Systems, v. 4,
p.445-460, 1990.
(Goldberg 1991) GOLDBERG, D. E. & DEB, K. A comparative analysis of selection
schemes used in genetic algorithms. Foundations of Genetic Algorithms (FOGA).
ISBN 1558601708. pp 69-93. Morgan Kaufmann, 1991.
(Goldberg 1991) GOLDBERG, D. E.; DEB, K. A comparative analysis of selection
schemes used in genetic algorithms. In: RAWLINS, G. (Ed.), Foundations of Genetic
Algorithms. San Francisco, CA: Morgan Kaufmann. 1991.
(Gritz 1993) GRITZ, L. A C++ implementation of genetic programming. Department of
Electrical Engeneering and Computer Science. The George Washington University,
Washington, DC.
(Gruau 1995) GRUAU, F. & WHITLEY, D. A programming language for artificial
development. Proceedings of the Fourth Annual Conference on Evolutionary
Programming, San Diego, CA. pp 415-434. MIT Press, 1995.
(Gruau 1996) GRUAU, F. On syntactic constraints with genetic programming. Advances in
Genetic
Programming
II.
ISBN
0262011581.
pp.
377-394.
MIT Press, 1996.
(Hiroyasu 1999) HIROYASU, T.; MIKI, M.; WATANABE, S. Divided range genetic
algorithms
in
multiobjective
optimization
problems.
In:Proceedings
INTERNATIONAL WORKSHOP ON EMERGENT SYNTHESIS, p.57-66, 1999.
(Holland 1975) HOLLAND, J. H. Adaptation in natural and artificial systems.
The University of Michigan Press, Ann Arbor, MI, 1975.
(Horn 1993) HORN, J.; NAFPLIOTIS, N. Multiobjective optimization using the niched
pareto genetic algorithm. Technical Report IlliGAl Report 93005, University of
Illinois at Urabama-Champaign, 1993
(Horner 1996) HORNER, H. A C++ class library for genetic programming. Technical
Report. The Vienna University of Economics, Vienna, Austria, 1996.
(Kinnear Jr 1994) KINNEAR, K. E. Alternatives in automatic function definition:
a comparision of performance. Advances in Genetic Programming,
ISBN 0262111888. pp 119-141. MIT Press, 1994.
(Kitano 1990) KITANO, H. Empirical studies on the speed of convergence of neural
network training using genetic algorithms, In: Proceedings NATIONAL
CONFERENCE ON ARTIFICIAL INTELLIGENCE, 8, 1990.
(Kitano 1994) KITANO, H. Neurogenetic learning: an integrated method of designing and
training neural networks using genetic algorithms. Physica D, Amsterdam, v. 75, p.
225-238, 1994.
for
the
breeder
genetic
algorithms.
Evolutionary
Computation
coadapted
subcomponents.
In:
Proceedings
EVOLUTIONARY
(Powell 1989) POWELL, D.; TONG, S.; SKOLNICK, M. EnGENEous: Domain Independent
machine learning for design optimization. In: Proceedings. INTERNATIONAL
CONFERENCE ON GENETIC ALGORITHMS, 3, p.151-159 1989.
(Ratle 2000) RATLE, A. & SEBAG, M. Genetic programming and domain knowledge:
beyond the limitations of grammar-guided machine discovery. In Proceedings of the
Sixth Conference on Parallel Problems Solving from Nature, LNCS, pp. 211-220.
Springer-Verlag, 2000
(Rodrigues 2001) RODRIGUES, E.; POZO, A.; VERGILIO, S. & MUSICANTE, M.
Chameleon:
uma
ferramenta
de
induo
de
programas.
SCCC
2001
Advances
in
Genetic
Programming
II.
ISBN
0262011581.
1996)
SETHI,
R.
Programming
languages
concepts
and
constructs.
Advances
in
Genetic
Programming
II..
ISBN
0262011581.
ON
B. &
Innovations
and
Applications
1997
(GALESIA
97).