Você está na página 1de 13

Algoritmos Genticos

E. Q. Silva
Technical Report RT-INF_002-11 2011 Relatrio Tcnico

September

Setembro

The contents of this document are the sole responsibility of the authors. O contedo do presente documento de nica responsabilidade dos autores.

Instituto de Informtica Universidade Federal de Gois


www.inf.ufg.br

Algoritmos Genticos
Edjalma Queiroz da Silva
edjalma@ambientinformatica.com.br

Celso G. Camilo Jr
celso@inf.ufg.br

Introduo

Algoritmos genticos (GA) so, possivelmente, os primeiros modelos de algoritmos desenvolvidos para simular sistemas genticos. Primeiramente proposto por Fraser, e mais tarde por Bremermann e Reed et al., foi o extenso trabalho realizado por Holland que popularizou GAs. Em seguida, tambm devido ao seu trabalho que Holland geralmente considerado o pai de GAs.[1] A evoluo do modelo gentico, onde as caractersticas dos indivduos so expressos usando gentipos1 . Os operadores de conduo principal de um GA a seleo (o modelo de sobrevivncia do mais apto) e recombinao atravs da aplicao de um operador de crossover2 (para o modelo reproduo). Esta seo discute em detalhes GAs e operadores de sua evoluo.[6]

1.1

Histria

A histria dos algoritmos genticos se inicia na dcada de 40, quando os cientistas comeam a tentar seu inspirar na natureza para criar o ramo da inteligncia articial. A pesquisa se desenvolveu mais nos ramos da pesquisa cognitiva e na ucompreenso dos processos de raciocnio e aprendizado at o nal da dcada de 50, quando comeou-se a buscar modelos de sistemas genricos que pudessem gerar solues candidatas para problemas que eram difceis demais para resolver computacionalmente.[7] Uma das primeiras tentativas de se associar a evoluo natural a problemas de otimizao foi feita em 1957, quando Box apresentou seu esquema de operaes evolucionrias. Estas eram um mtodo de perturbar de forma sistemtia duas ou trs variveis de controle de uma instalao, de forma anloga ao que entendemos hoje como operadores de mutao e seleo (Goldberg, 1990). Logo depois, no comeo da dcada de 1960, Bledsoe e Bremmerman comearam a trabalhar com genes, usando tanto a representao binria quanto a inteira e a real, e desenvolvendo os precursores dos operadores de recombinao (crossover).[7] Uma tentativa de usar processos evolutivos para resolver problemas foi feita por I. Rechenberg, na primeira metade da dcada de 60, quando ele desenvolveu as estratgias evolucionria (evolutionary strategies) (Rechenberg, 1965). Esta mantinha uma populao de dois indivduos com cromossomos compostos de nmeros reais em cada instante, sendo que um dos dois era lho do outro, e era gerado atravs da aplicao exclusiva do operador de mutao. O processo descrito por Rechenberg tinha ampla fundamentao terica, sendo que a mutao
Mestrando em Cincia da Computao, INF-UFG Orientador 1 Ao conjunto dos genes de um indivduo damos o nome de gentipo. 2 Algo que se mistura

Algoritmos Genticos

era aplicada a partir de uma distribuio gaussiana dos parmetros e foi usado com sucesso em vrios problemas prticos. Mesmo no incluindo conceitos amplamente aceitos atualmente, tais como populaes maiores e operador de crossover, o trabalho de Rechenberg pode ser considerado pioneiro, por ter introduzido a computao evolucionria s aplicaes prticas.[7] Em trabalhos posteriores as estratgias evolucionrias supririam estas falhas, sendo modicadas para incluir conceitos de populao e operador de crossover. A maneira como elas aplicam este operador interessante pois inclui a ideia de utilizar a mdia como operador alm de poder envolver muitos pais, idias estas que podem ser aplicadas aos algoritmos genticos quando usamos cromossomos com uma representao contnua. Entretanto, apesar de no ser o primeiro investigador da rea, aquele que seria designado o pai dos algoritmos genticos mostrou-se nalmente no nal da dcada de 60, quando John Holland inventa os Algoritmos Genticos, embora concentrado eminentemente na codicao discreta.[1] Holland estudou formalmente a evoluo das espcies e props um modelo heurstico computacional que quando implementado poderia oferecer boas solues para problemas extremamente dicieis que eram insolveis computacionalmente at aquela poca.[7] Em 1975 Holland publicou seu livro, Adptation in Natural and Articial Systems[1], no qual faz um estudo dos processos evolutivos, em vez de projetar novos algoritmos, como a maioria pensa. O trabalho de Holland apresenta os algoritmos genticos como uma metfora para os processos evolutivos, de forma que ele pudesse estudar a adaptao e a evoluo no mundo real, simulando-a dentro de computadores. Entretanto, os algoritmos genticos transcenderam o papel originalmente imaginado por Holland e transformaram-se em uma ferramenta de uso disseminado pelos cientistas da computao.[1] Um fato interessante quanto ao trabalho de Holland e sua inuncia na rea de AG que ele usou originalmente cromossomos binrios, cujos genes eram apenas zeros e uns. Esta limitao foi abolida por pesquisadores posteriores, mas ainda hoje muitos cientistas insistem em usar apenas a representao binria, mesmo quando h outras que podem se mostrar mais adequadas para a resoluo do problema em questo. Desde ento os algoritmos genticos comearam a se expandir por toda a comunidade cientca, gerando uma srie de aplicaes que puderam ajudar a resolver problemas extremamente importantes que talvez no fossem abordados de outra maneira.[7] Alm deste progresso cientico, tambm houve o desenvolvimento comercial: nos anos 80 surgiram pacotes comerciais usando algoritmos genticos. Muitos artigos armam que o primeiro pacote comercial desenvolvido foi o Evolver R , que j estava disponvel desde 1988 e que inclui um programa adicional para o Excel R e uma API (Interface de Programao de Aplicativos) para desenvolver programas que acessem dados provenientes de diferentes aplicativos. Hoje existem dezenas de outros aplicativos que tm as mesmas caractersticas. Na dcada de 80, o progresso dos algoritmos evolucionrios e sua popularizao no meio cientco zeram com que surgissem as primeiras conferncias dedicadas exclusivamente a estes tpicos. Hoje em dia, os algoritmos genticos tm se beneciado muito da interdisciplinaridade.Cada vez mais cientistas da computao buscam inspirao em outra rea de pesquisa de forma a absorver suas ideias e fazer com que os Gas sejam mais ecientes e inteligentes na resoluo de problemas.[7]

O que Algoritmo Gentico - AG?

Algoritmos genticos (GA) so um ramo dos algoritmos evolucionrios e como tal podem ser denidos como uma tcnica de busca baseada numa metfora do processo biolgico de evoluo natural. Os algoritmos genticos so tcnicas heursticas de otimizao global. A questo da otimizao global ope os GAs aos mtodos como gradiente (hill climbing), que

Algoritmos Genticos

seguem a derivada de uma funo de forma a encontrar o mximo de uma funo, cando retidos em mximos locais, como vemos na gura 1.[7]

Figura 1: Funo hipottica com um mximo local e outro global. Uma tcnica de gradiente (hill climbing) se inicia em qualquer um dos pontos de inicio marcados seguir o gradiente (direo de maior crescimento) e acabar presa no ponto de mximo local (onde a derivada zero). Algoritmos genticos no tm esta dependncia to forte dos valores iniciais. Nos algoritmos genticos populaes de indivduos so criados e submetidos aos operadores genticos: seleo, recombinao (crossover) e mutao. Estes operadores utilizam uma caracterizao da qualidade de cada indivduo como soluo do problema em questo chamada de avaliao e vo gerar um processo de evoluo natural destes indivduos, que eventualmente dever gerar um indivduo que caracterizar uma boa soluo (talvez at a melhor possvel) para o nosso problema.[7] Denindo de outra maneira, podemos dizer que algoritmos genticos so algoritmos de busca baseados nos mecanismos de seleo natural e gentica. Eles combinam a sobrevivncia entre os melhores com uma forma estruturada de troca de informao gentica entre dois indivduos para formar uma estrutura heurstica de busca. Como dito anteriormente, os GAs no so mtodos de hill climbing, logo eles no caram estagnados simplesmente pelo fato de terem encontrado um mximo local. Neste ponto, eles se parecem com a evoluo natural, que s porque encontrou um indivduo que instantaneamente o melhor de um certo grupo no pra de procurar outros indivduos ainda melhores.[7] Na evoluo natural isto tambm decorre de circunstancias que mudam de um momento para outro. Uma bactria pode ser a melhor em um ambiente livre de antibioticos, mas quando este so usados, outras que antes eram menos fortes tornam-se as nicas sobreviventes por serem as nicas adptadas. No caso dos algoritmos genticos, o ambiente normalmente um s. Entretanto, conforme as geraes vo se passando e os operadores genticos vo atuando, faz-se uma grande busca pelo espao de solues, busca esta que seria realizada pela evoluo natural (das bactrias ou de qualquer outro organismo) se elas cassem permanentemente em um ambiente imutvel. Mas, ao contrrio do que as pessoas costumam pensar, importante ser ressaltado que a evoluo natural no um processo dirigido obteno da soluo tima. Na verdade, o processo simplesmente consiste em fazer competir uma srie de indivduos e pelo processo de sobrevivncia do mais apto, os melhores indivduos tendem a sobreviver.[7] Um GA tem o mesmo comportamento que a evoluo natural: a competio entre os indivduos que determina as solues obtidas. Eventualmente, devido sobrevivncia do mais apto, os melhores indivduos prevalecero. claro que pode acontecer de uma gerao ser muito pior que a gerao que antecedeu, apesar de isto no ser muito comum (nem provvel).

Algoritmos Genticos

Sendo assim, devemos salientear que um GAs, apesar do seu nome implicar no contrrio, no constituem um algoritmo de busca da soluo tima de um problema, mas sim uma heurstica que encontra boas solues a cada execuo, mas no necessriamente a mesma todas as vezes (podemos encontrar mximos - ou mnimos - locais, prximos ou no do mximo global).[7] A codicao da informao em cromossomos um ponto crucial dentro do GA, e , junto com a funo de avaliao, o que liga o GA ao problema a ser resolvido. Se a codicao for feita de forma inteligente, esta j incluir as idiossincrasias do problema (como por exemplo restries sobre quando podemos ligar ou desligar uma mquina etc.) e permitir que se evitem testes de viabilidade de cada uma das solues geradas. Ao m da execuo do nosso algoritmo a soluo deve ser decodicada para ser utilizada na prtica. Assim como na natureza, a informao deve ser codicada nos cromossomos (ou genomas) e a reproduo (que no caso dos GAs equivalente reproduo sexuada) se encarregar de fazer com que a populao evolua. A mutao cria diversidade, mudando aleatoriamente genes dentro de indivduos e, assim como na natureza, aplicada de forma menos frequente que a recombinao, que o fruto da reproduo (e que, dentro deste artigo ser chamada de crossover).[7] A reproduo e a mutao so aplicadas em indivduos selecionados dentro da nossa populao. A seleo deve ser feita de tal forma que os indivduos mais aptos sejam selecionados mais frequente do que aqueles menos aptos, de forma que as boas caractersticas daqueles passem a predominar dentro da nova populao de solues. De forma alguma os indivduos menos aptos tm que ser todos descartados da populao reprodutora. Isto causaria uma rpida convergncia gentica de todas as solues para um mesmo conjunto de caractersticas e evitaria uma busca mais ampla pelo espao de solues. A convergncia gentica se traduz em uma populao com baixa diversidade gentica que, por possuir genes similares, no consegue evoluir, a no ser pela ocorrncia de mutaes aleatrias que sejam positivas. Isto pode ser traduzido em outro conceito interessante, a perda da diversidade, que pode ser denida como sendo o nmero de indivduos que nunca so escolhidos pelo mtodo de seleo de pais. Quanto maior for a perda de diversidade, mais rpida ser a convergncia gentica de nosso GA (Blickle, 1997).

Esquema de um GA

Como vimos no tpico 2, os algoritmos genticos so um ramo da computao evolucionria, e, por conseguinte, pode ser resumido algoritmicamente atravs dos seguintes passos: [7] 1. Inicialize a populao de cromossomos. 2. Avalie cada cromossomo na populao. 3. Selecione os pais para gerar novos cromossomos. 4. Aplique os operadores de recombinao e mutao a estes pais de forma a gerar os indivduos da nova gerao. 5. Apague os velhos membros da populao. 6. Avalie todos os novos cromossomos e insira-os na populao. 7. Se o tempo acabou, ou o melhor cromossomo satisfaz, os requerimentos e desempenho, retorne-o, caso contrrio, volte para o passo 3.

Algoritmos Genticos

Essa somente uma viso de alto nvel de nosso algoritmo. O que ela esconde a complexidade do processo de obteno dos seguintes elementos, os quais sero apresentados nos prximos tpicos. Entretanto o GA altamente genrico. Vrios de seus componentes so invariveis de um problema para outro. Isto favorece sua implementao em uma linguagem orientada a objeto, permitindo o reaproveitmaneto do cdigo para soluo de vrios problemas diferentes. [7]

Figura 2: Esquema de um algoritmo gentico

Representao cromossomial

A representao cromossomial fundamental para o algoritmo gentico apresentado no tpico 3. Basicamente, ela consiste em uma maneira de traduzir a informao do nosso problema em uma maneira vivel de ser tratada pelo computador. Quanto mais ela for adequada ao problema, maior a qualidade dos resultados obtidos. [7] Cada pedao indivisvel desta representao chamada de um gene 3 , por analogia com as partes fundamentais que compem um cromossomo biolgico. [7] importante notar que a representao cromossomial completamente arbitrria, cando sua denio de acordto com o gosto do programador e com a adequao ao problema. interessante apenas que algumas regras gerais sejam seguidas: [7] 1. A representao deve ser a mais simples possvel;
Na denio da gentica clssica, a unidade fundamental da hereditariedade. Cada gene formado por uma sequncia especca de cidos nuclicos - biomolculas mais importantes do controle celular, pois contm a informao gentica.
3

Algoritmos Genticos

2. Se houver solues proibidas ao problema, ento elas no devem ter uma representao; 3. Se o problema impuser condies de algum tipo, estas devem estar implicitas dentro da nossa representao. A representao mais simples e mais usada pelos praticandes da rea dos algoritmos genticos a binria, isto , um cromossomo nada mais do que uma sequncia de bits (e cada gene somente um bit). Essa representao foi adotada inicialmente por Holland em seu livro seminal (Holland, 1975) e, hoje em dia, por estes motivos histricos e pelo fato de ser muito simples, ela amplamente adotada por pesquisadores da rea de GA. Podemos usar uma representao binria para representar dois nmeros (poderamos estender esta representao para n nmeros, usando mais bits ou atribuindo menos bits para cada nmero).[7] A representao binria boa pois para ela os operadores genticos so extremamente simples e o computador lida com ela de forma extremamente natural. Outras representao tambm so possveis e podem at obter resultados melhores.[5] Uma funo para inicializar estes cromossomos seria a seguinte (por exemplo):

Figura 3: Mtodo para inicializar Elementos - AG

Escolha da populao inicial

A inicializao da populao, na maioria dos trabalhos feitos na rea, feita da forma mais simples possvel, fazendo-se uma escolha aleatria independente para cada indivduo da populao inicial. A lei das probabilidades sugere que teremos uma distribuio que cobre praticamente todo o espao de solues, mas isto no pode ser garantido, pois a populao tem tamanho nito. [5] A prtica da rea, como dito antes, usar a estratgia mais simples de inicializao, que consiste em simplesmente escolher n indivduos de forma aleatria. Isto se deve ao fato, de forma geral, o processo gera uma boa distribuio das solues no espao de busca e o uso do operador de mutao de forma ecaz garante uma boa explorao (componente exploration) de todo o espao de busca.[7]

Funo de avaliao

A funo de avaliao a maneira utilizada pelos GAs para determinar a qualidade de um indivduo como soluo do problema em questo.[7]

Algoritmos Genticos

Dada a generalidade dos GAs, a funo de avaliao, em muitos casos, a nica ligao verdadeira do programa com o problema real. Isto decorre do fato que a funo de avaliao s julga a qualidade da soluo que est sendo apresentada por aquele indivduo, sem armazenar qualquer tipo de informao sobre as tcnicas de resoluo do problema. Isto leva concluso de que o mesmo GA pode ser usado para descobrir o mximo de toda e qualquer funo de n variveis sem nenhuma alterao das estruturas de dados e procedimentos adotados, alterandose, apenas, a funo de avaliao.[4][7] O mais importante conceito a ter em mente que a funo de avaliao deve reetir os objetivos a serem alcanados na resoluo de um problema e derivada diretamente das condies impostas por este problema e sempre reete os objetivos do problema de forma numrica.[3]

Seleo de pais

O mtodo de seleo de pais deve simular o mecanismo de seleo natural que atua sobre as espcies biolgicas, em que os pais mais capazes geram mais lhos, ao mesmo tempo em que os pais menos aptos tambm podem gerar descendentes. Consequentemente, temos que privilegiar os indivduos com funo de avaliao alta, sem desprezar completamente aqueles indivduos com funo de avaliao extremamente baixa. Esta deciso razovel pois at indivduos com pssima avaliao podem ter caractersticas genticas que sejam favorveis criao de um indivduo qu eseja a melhor soluo para o problema que est sendo atacado, caractersticas estas que podem no estar presentes em nenhum outro cromossomo de nossa populao. [7] importante entender que se deixarmos apenas os melhores indivduos se reproduzirem, a populao tender a ser composta de indivduos cada vez mais semelhantes e faltar diversidade a esta populao para que a evoluo possa prosseguir de forma satisfatria. A este efeito denominamos convergncia gentica, e selecionando de forma justa os indivduos menos aptos da populao podemos evit-lo, ou pelo menos minimiz-lo.

Operador

Ser demonstrado a verso mais simples dos operadores genticos, na qual eles atuam em conjunto, como se fossem um s. O objetivo fazer com que sejam claros os conceitos dos operadores.

8.1

Crossover

Operadores de crossover pode ser dividido em trs categorias principais com base na aridade (ou seja, o nmero de pais usados) do operador. Isso resulta em trs classes principais de operadores de crossover:[6] assexuada, onde um lho gerado de um pai. sexuada, onde os dois pais so usados para produzir um ou dois lhos. multi-recombinao, onde mais de dois pais so usados para produzir um ou mais lhos.

Algoritmos Genticos

Operadores de crossover so ainda classicados com base no esquema de representao utilizado. Por exemplo, operadores binrios especcos tm sido desenvolvidos para representaes de sequncia binria, e operadores especcos para representaes de ponto utuante. [6] Os pais so selecionados usando qualquer um dos esquemas de seleo: Presso seletiva, Seleo aleatria, Seleo proporcional, Seleo de Torneio, Seleo Baseada em Rank, Seleo de Boltzmann, entre outras. No entanto, os pais no so necessariamente companheiros, pois a recombinao aplicada de maneira probabilistica. Cada par (ou grupo) de pais tm uma probabilidade, de produzir descendentes. Normalmente, uma alta probabilidade de cruzamento (tambm referida como a taxa de crossover) usado.[6] Na seleo dos pais, os seguintes aspectos precisam ser considerados: Devido seleo probabilstica dos pais, pode acontecer que o mesmo indivduo selecionado como ambos os pais, caso em que a prole gerada ser uma cpia do pai. O processo de seleo pai deve, portanto, incorporar um teste para evitar que tais operaes desnecessrias. Tambm possvel que um mesmo indivduo participa em mais de uma aplio do operador de crossover. Quando so usadas tcnicas de adequao proporcional, isso se torna um problema. Alm da seleo dos pais e o processo de recombinao, o operador de crossover considera uma poltica de substituio. Se um lho gerado, o lho pode substituir o pior pai. Essa substituio pode ser baseado na restrio de que a prole deve ser mais apto do que o pior pai, ou pode ser forada. Alternativamente, a Seleo de Boltzmann pode ser usada para decidir se os lhos devem substituir o pior pai. Operadores de crossover tambm tm sido implementadas quando a prole substitui o pior indivduo da populao. Uma estratgia similiar pode ser usada para o caso de dois lhos. [6]

8.2

Mutao

O objetivo da mutao introduzir novo material gentico em um indivduo j existentes; isto , incluir a diversidade das caractersticas genticas da populao. Mutao utilizado em apoio ao crossover para assegurar que toda a gama de alelo acessvel para cada gene. Mutao aplicado a uma certa probabilidade p M para cada gene dos descendentes, X i (t), para produzir a prole mutante, Xi (t). A probabilidade de mutao, tambm referida como a taxa de mutao, geralmente um valor pequeno, entre 0 e 1, para garantir que boas solues no so distorcidas demais.[6] Depois de compostos os lhos, entra em ao o operador de mutao. Este opera da seguinte forma: ele tem associada uma probabilidade extremamente baixa (da ordem de 0.5 por cento) e ns sorteamos um nmero entre 0 e 1. Se ele for menor que a probabilidade predeterminada ento o operador atua sobre o gene em questo, alterando-lhe o valor aleatoriamente. Repete-se ento o processo para todos os genes componentes dos dois lhos.[7] O valor da probabilidade que decide se o operador de mutao ser ou no aplicado um dos parmetros do GA que apenas a experincia pode determinar.[7]

Algoritmos Genticos

Variantes de Algoritmo Gentico

Com base no GA geral, implementaes diferentes de um GA pode ser obtido utilizando diferentes combinaes de seleo (tness), crossover, e operadores de mutao.

9.1

Mtodo de gerao - GAP

Os GAs como discutido at agora diferem de modelos biolgicos de evoluo em que os tamanhos populacionais so xos. Isso permite que o processo de seleo possa ser descrito em duas etapas: Seleo de pais Uma estratgia de seleo que decide quem se ir substituir a prole dos pais. Duas classes principais de GAs so identicados com base na estratgia de reposio utilizada, ou seja, Algoritmos Genticos Geracional (GGA) e Algoritmos Genticos de Estado Estacionrio (PIG), tambm referidos como GAs incremental. Para GGAS a estratgia de substituio substitui todos os pais com seus lhos depois que todos os lhos foram criados e modicados. Isso resulta em nenhuma sobreposio entre a populao atual e a nova populao (assumindo que o elitismo no usado). Para SSGAs, uma deciso tomada imediatamente aps um lho ser gerado, gerado mutantes, dessa gerao com o objetivo de saber se o pai ou o lho sobrevive para a prxima gerao. Assim, existe uma sobreposio entre as populaes atuais e as novas. A quantidade de sobreposio entre as populaes atuais e as novas referido como a diferena entre geraes. GGAS possuem um conito de geraes zero, enquanto SSGAs geralmente tm lacunas gerao de grande porte. [6]

9.2

Algoritmos Genticos Sujo - mGA

Para um espao de busca nx-dimensional, usar populaes GAs padro, onde todos os indivduos so de tamanho xo, um GA padro pode encontrar uma soluo atravs da aplicao dos operadores evolutivos. Pode acontecer que as pessoas boas so encontradas, mas pode acontecer tambm que alguns dos genes desses indivduos no seja o ideal. Pode ser difcil encontrar o ideal para tais genes atravs da aplicao de crossover e mutao no indivduo inteiro. Pode at acontecer que haja perda de genes ou grupos de genes, no cruzamento otimizado.[6] Goldberg [2] desenvolveu o GA messy (sujo) (mGA) que encontra solues ideais pela evoluo blocos de construo e combinando blocos de construo. Aqui, um bloco de construo refere-se a um grupo de genes. Indivduos em um bagunado GA so de comprimento varivel, e especicadas por uma lista de posio-valor pares. A posio especica o ndice do gene, e o valor especica o alelo para esse gene. Estes pares so referidos como genes bagunado. Como exemplo, se nx = 4, ento o indivduo, ((1, 0) (3, 1), (4, 0) (1, 1)), representa o indivduo 0 * 10. [6] A representao messy pode resultar em indivduos que esto sobre-especicado ou subespecicado. O exemplo acima ilustra ambos os casos. O indivduo sobre-especicado porque um gene ocorre duas vezes. sub-especicado porque gene 2 no ocorre, e no tem valor atribudo. Avaliao da aptido dos indivduos desorganizados exige estratgias para lidar com tais indivduos. Para sobre-especicado indivduos, uma abordagem: primeiro a chegar o primeiro a ser servido, em seguida o primeiro valor especicado atribudo ao gene da repetio. Para indivduos sub-especicado, um gene alelo em falta obtido a partir de um

Algoritmos Genticos

10

modelo competitivo. O modelo competitivo uma soluo tima local. Como exemplo, se 1101 o modelo, a aptido de 0 * 10 avaliada como a aptido de 0101. O objetivo do SMG evoluir blocos de construo ideal, e de forma incremental combinar blocos de construo otimizados para formar uma soluo tima. Um MGA implementado usando dois laos. O loop interno consiste em trs etapas: [6] Inicializao para criar uma populao de blocos de construo de um comprimento especicado, nm . Primordial, que tem como objetivo gerar pequenas,porm, promissores blocos de construo. Justapostas, para combinar blocos de construo. O loop externo especica o tamanho dos blocos de construo a serem considerados, comeando com o menor tamanho de um, e gradativamente aumentando o tamanho at que um tamanho mximo seja atingido, ou uma soluo aceitvel encontrada. O loop externo tambm dene a melhor soluo obtida a partir da justaposio passo que o modelo competitivo para a prxima iterao. [6]

9.3

Evoluo Interativa - IE

No GAs padro (e todos os EAs para essa matria), o usurio humano desempenha um papel passivo. A seleo baseada em uma funo denida explicitamente analtica, utilizada para quanticar a qualidade de uma soluo candidata. , no entanto, o caso de que tal funo no pode ser denido para certas reas de aplicao, por exemplo, evoluo da arte, msica, animaes, etc. Para reas de aplicao, tais julgamento subjetivo necessria, baseada na intuio humana, valores estticos ou gosto. Isto requer a interao de um avaliador humano como a funo de tness. [6] Interativa evoluo (IE) envolve um usurio humanos online em processos de seleo e variao. O processo de busca agora dirigida por meio da seleo de solues interativas pelo usurio humano, em vez de uma funo aptido absoluta. Dawkins foi o primeiro a considerar a evoluir biomorfos IE, que so como rvores de representaes de duas dimenses grcas. Sims proporciona avanos na aplicao de IE para evoluir complexas estruturas simuladas, texturas e movimentos. [6] Alm de atuar como mecanismo de seleo, o usurio tambm pode especicar interativamente os operadores de reproduo e parmetros populacionais. Em vez de o usurio realizar a seleo humana, a interao pode ser da forma em que o usurio atribui uma pontuao de tness para os indivduos. A Seleo automtica ento aplicada, usando essas medidas de qualidade atribuida pelo usurio.[6]

9.4

Algoritmos Genticos Ilha

GAs utilizam-se da implementao paralela. Trs categorias principais de GA paralelas foram identicadas [6]: GAs de nica populao mestre-escravo, onde a avaliao de aptido distribuda por vrios processadores.

Algoritmos Genticos

11

GAs de nica populao de granulao na, onde cada indivduo atribudo a um processadores, e cada processador atribudo um nico indivduo. Um bairro pequeno denido para cada indivduo, e seleo e reproduo so restritas aos bairros. Whitley refere-se a estes AGs como celular. Multi-populao, ou ilha GAs, onde as vrias populaes so utilizadas, cada uma em um processador separado. As informaes so trocadas entre as populaes atravs de uma poltica de migrao. Embora desenvolvido para aplicao em paralelo, GAs ilha pode ser implementado em um sistema nico processador. Em um GA modelo Ilha, uma srie de sub-populaes so evoluidas em paralelo, em um quadro de cooperao. Neste modelo de GA, um nmero de ilhas ocorre, onde cada ilha representa uma populao. Cruzamento, seleo e mutao ocorre em cada subpopulao independentemente do subpopulaes outros. Alm disso, os indivduos esto autorizados a migrar entre as ilhas (ou subpopulaes).[6]

10

Concluso

Os algoritmos genticos so apropriados para problemas complexos, mas algumas 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 (Costa 1995)(Glover 1994) (Glover 1995) (Kitano 1990)(Malek 1989)(Mantawy 1999)(Muhlenbein 1998)(Muhlenbein 1992)(Powel 1989)(Ulder 1991). Nesta abordagem algoritmos genticos so usados com um dos seguintes paradigmas: busca tabu, redes neurais articiais, simulated annealing, etc. 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.

Referncias
[1] Adaptation in Natural and Articial Systems. HOLLAND, J.H, 1975. [2] Genetic Algorithms in Search. D. E. Goldberg, 1989. [3] Genetic Programming: On the Programming of Computers by means of Natural Selection. J.R. Koza, 1992. [4] Evolution Strategy. I. Rechenberg, 1994.

Algoritmos Genticos

12

[5] Genetic algorithms + data structures = evolution programs. Michalewicz, Zbigniew, 1996. [6] Computational Intelligence - An Introduction. Andries P. Engelbrecht, 2007. [7] Algoritmos genticos. Ricardo Linden, 2008.