Você está na página 1de 9

1

Implementao de um Algoritmo Gentico


Frederico G. Guimares e Marcelo C. Ramalho
fsicas e qumicas podem ser capazes de explicar a vida inteligente. Tcnicas de busca baseadas em alguma informao heurstica so empregadas em muitas aplicaes da Inteligncia Artificial. Quando o espao de busca grande demais para uma busca exaustiva, tambm denominada busca cega ou de fora bruta, e difcil identificar algum conhecimento que possibilite reduzir o espao de busca, no se tem outra escolha a no ser usar outras tcnicas de busca mais eficientes para alcanar solues timas. III. CONCEITOS BIOLGICOS A. As idias evolucionistas de Darwin (Darwinismo) Em meados do sculo XIX, Charles Darwin (18091882) revolucionou todo o pensamento acerca da evoluo da vida e de nossas origens, provocando a maior discusso que j houve a respeito de uma teoria cientfica. Em seus dois livros - Sobre a Origem das Espcies por Meio da Seleo Natural (1859), e A Descendncia do Homem e Seleo em Relao ao Sexo (1871) - Darwin defendia que o homem, tal qual os outros seres vivos, resultado da evoluo. Em seus estudos, Darwin concluiu que nem todos os organismos que nascem sobrevivem ou, o que mais importante, reproduzem-se. Os indivduos com mais oportunidades de sobrevivncia seriam aqueles com caractersticas mais apropriadas para enfrentar as condies ambientais. Esses indivduos teriam maior probabilidade de reproduzir-se e deixar descendentes. Nessas condies as variaes favorveis tenderiam a ser preservadas e as desfavorveis, destrudas. um lento e constante processo de seleo ao longo das geraes, atravs do qual as espcies podem se diversificar, tornando-se mais adaptadas ao ambiente em que vivem. Nascia assim o conceito de Seleo Natural, a grande contribuio de Darwin teoria da evoluo. O mecanismo de evoluo proposto por Darwin pode ser resumido em seis etapas: 1. Os indivduos de uma mesma espcie mostram muitas variaes na forma e na fisiologia; 2. Boa parte dessas variaes transmitida aos descendentes; 3. Se todos os indivduos de uma espcie se reproduzissem, as populaes cresceriam exponencialmente; 4. Como os recursos naturais so limitados, os indivduos de uma populao lutam por sua sobrevivncia e de sua prole; 5. Portanto, somente alguns, os mais aptos, sobrevivem e deixam descendentes. A sobrevivncia e a reproduo dependem das caractersticas desses indivduos que,
AbstractUma discusso sobre os Algoritmos Genticos, sua estrutura e seus componentes, apresentada neste trabalho. Um AG ser implementado e submetido a uma funo teste conhecida. Uma tcnica para gerar a populao inicial ser proposta e comparada com a distribuio aleatria. Index TermsAlgoritmos Genticos, algoritmos evolutivos, computao evolutiva, mtodos de otimizao, mtodos de populaes, mtodos estocsticos.
I.

INTRODUO

s Algoritmos Genticos, AGs, so tcnicas de busca baseadas nas Teorias da Evoluo. Nos AGs as variveis do problema so representadas como genes em um cromossomo, tambm denominado indivduo. Cada coordenada de um ponto no espao soluo pode ser entendida como um gene. O indivduo o prprio ponto, formado pelo conjunto de coordenadas (genes). Os AGs utilizam elementos como a sobrevivncia dos mais aptos e a troca de informao gentica de uma forma estruturada, porm aleatria. O AG apresenta um grupo de solues candidatas, denominada Populao, na regio de solues. Atravs de mecanismos como a seleo natural e o uso de operadores genticos, tais como a mutao e o cruzamento, os cromossomos com melhor aptido so encontrados. A seleo natural garante que os cromossomos mais aptos gerem descendentes nas populaes futuras. Usando um operador de cruzamento, o AG combina genes de dois cromossomos pais previamente selecionados para formar dois novos cromossomos, os quais tm uma grande possibilidade de serem mais aptos que os seus genitores.

II. COMPUTAO E VOLUTIVA A inteligncia natural o produto de milhes de anos de evoluo biolgica. Simular processos evolutivos biolgicos complexos pode nos levar a descobrir como a evoluo conduz sistemas vivos em direo inteligncia superior. Uma das reas da computao evolutiva que mais tem se destacado o campo dos Algoritmos Genticos (AGs), que so baseados no princpio evolutivo da seleo natural. A Modelagem da Imunidade e a Vida Artificial so disciplinas similares que se baseiam na idia de que leis

Trabalho referente disciplina de Otimizao do curso de graduao em Engenharia Eltrica da Universidade Federal de Minas Gerais, ministrada pelos professores Jaime Arturo Ramirez e Ricardo Hiroshi Caldeira Takahashi. Junho de 2001. Foi desenvolvido por: Frederico Gadelha Guimares, graduando em Engenharia Eltrica. Correio eletrnico: fredgadelha@yahoo.com.br Marcelo Cherem Ramalho, graduando em Engenharia Eltrica. Correio eletrnico: mccherem@yahoo.com.br

2 por serem hereditrias, sero transmitidas aos seus filhos; 6. Atravs dessa seleo natural, as espcies sero representadas por indivduos cada vez mais adaptados. O principal problema da teoria darwiniana foi a falta de uma teoria satisfatria que explicasse a origem e a transmisso das variaes. Darwin no conseguiu responder adequadamente estas crticas e, somente com a posterior descoberta das Leis de Mendel e das Mutaes, foi que esses problemas puderam ser resolvidos. Apesar disso, no h dvida de que a teoria moderna da evoluo deve mais a Darwin do que a qualquer outro cientista, e seu conceito de seleo natural continua vlido at hoje. B. Seleo Natural A idia bsica de seleo natural foi apresentada por Charles Darwin e representa uma das maiores conquistas no campo cientfico, particularmente, na cincia biolgica. o mecanismo de seleo que impe uma certa ordem ao processo de evoluo. A primeira parte do processo, se caracteriza pela obteno de variedade gentica e realizada ao acaso. J a Segunda parte, composta pela seleo, em certo grau determinada pelos fatores ecolgicos do ambiente. Atravs da seleo natural, a freqncia de um gene vantajoso aumenta gradativamente na populao. A vantagem conferida pelo gene pode se refletir em um maior tempo de sobrevivncia do indivduo, aumentando assim a quantidade de filhos que ele produz. Pode implicar tambm uma fertilidade maior do indivduo que, mesmo sobrevivendo menos tempo, poder deixar um nmero maior de filhos que seu competidor. Finalmente, o gene poder aumentar a sua freqncia se ele fornecer ao indivduo maior capacidade de proteo. Assim, mesmo se ele tiver menos filhos, suas chances de atingir a poca de reproduo sero maiores. IV. REVISO HISTRICA A. Precursores dos AGs A primeira tentativa de representao, por meio de um modelo matemtico, da teoria de Darwin, surgiu com o livro The Genetic Theory of Natural Selection, escrito pelo bilogo evolucionista R. A. Fisher. A evoluo era, tal como a aprendizagem, uma forma de adaptao, diferindo apenas na escala de tempo. Em vez de ser o processo de uma vida, era o processo de geraes. Como era feita em paralelo por um conjunto de organismos, tornava-se mais poderosa que a aprendizagem. A seguir, John Holland dedicou-se ao estudo de processos naturais adaptveis, tendo inventado os AGs em meados da dcada de 60. Ele desenvolveu os AGs em conjunto com seus alunos e colegas da Universidade de Michigan nos anos 60 e 70, com o objetivo de estudar formalmente o fenmeno da adaptao como ocorre na natureza, e desenvolver modelos em que os mecanismos da adaptao natural pudessem ser importados para os sistemas computacionais. Como resultado do seu trabalho, em 1975, Holland edita [2] e, em 1989, David Goldberg edita [1], hoje considerados os livros mais importantes sobre AGs. V. O ALGORITMO GENTICO Os Algoritmos Genticos ocupam lugar de destaque entre os paradigmas da Computao Evolutiva devido a uma srie de razes dentre as quais: 1. Apresentam-se como o paradigma mais completo da Computao Evolutiva visto que englobam de forma simples e natural todos os conceitos nela contidos; 2. Apresentam resultados bastante aceitveis, com relao preciso e recursos empregados (fceis de implantar em computadores domsticos de porte mdio), para uma ampla gama de problemas de difcil resoluo por outros mtodos; 3. So muito flexveis, aceitam sem grandes dificuldades uma infinidade de alteraes na sua implementao e permitem fcil hibridizao (vantagem importante no caso de aprendizagem) inclusive com tcnicas no relacionadas Computao Evolutiva; 4. Em relao aos outros paradigmas da Computao Evolutiva, so os que exigem menor conhecimento especfico do problema em questo para o seu funcionamento , o que os torna altamente versteis e, alm disso, agregam conhecimento especfico com pouco esforo; 5. So o paradigma mais usado dentro da Computao Evolutiva e, junto com as Redes Neurais, os mais usados de toda a Computao Natural. Na prtica, ns podemos implementar facilmente um AG com o simples uso de strings de bits, no caso da codificao binria, ou caracteres para representar os cromossomos e, com simples operaes de manipulao de bits podemos implementar cruzamento, mutao e outros operadores genticos. Na fig. 1, podemos ver a simplicidade de representao de um indivduo composto por cinco cromossomos (as variveis do problema), cada um composto por seis genes (codificao binria utilizando-se seis bits), por meio de uma string de valores binrios. 110000 010101 101001 110100 001101
Fig. 1. Representao binria de um indivduo de cinco cromossomos (cinco variveis), cada cromossomo contendo seis genes.

O pseudocdigo de um AG bsico mostrado a seguir. Nele podemos ver que os AGs comeam com uma populao de N estruturas aleatrias (indivduos), onde cada estrutura codifica uma soluo do problema. O desempenho de cada indivduo avaliado com base numa funo de avaliao de aptido. Os melhores tendero a ser os progenitores da gerao seguinte, melhorando, de gerao para gerao, atravs da troca de informao.
Algoritmo Gentico: t 0; IniciaPopulao P(t); Avalia P(t); enquanto no parada faa t t+1; P SelecionaPares P(t); Recombina P; Muta P;

3
Avalia P; P(t+1) Sobreviventes P(t),P(t); fimenquanto fim

complexos tais como redes neurais e sistemas de inferncia nebulosos. A. Parmetros Genticos importante tambm, analisar de que maneira alguns parmetros influem no comportamento dos Algoritmos Genticos, para que se possa estabelec-los conforme as necessidades do problema e dos recursos disponveis. Sero listados a seguir alguns Parmetros Genticos utilizados. 1) Tamanho da Populao O tamanho da populao determina o nmero de cromossomos na populao, afetando diretamente o desempenho global e a eficincia dos AGs. Com uma populao pequena o desempenho pode cair, pois, deste modo, a populao fornece uma pequena cobertura do espao de busca do problema. Uma grande populao geralmente fornece uma cobertura representativa do domnio do problema, alm de prevenir convergncias prematuras para solues locais ao invs de globais. No entanto, para se trabalhar com grandes populaes, so necessrios maiores recursos computacionais, ou que o algoritmo trabalhe por um perodo de tempo muito maior. 2) Taxa de Cruzamento Quanto maior for esta taxa, mais rapidamente novas estruturas sero introduzidas na populao. Mas se esta for muito alta a maior parte da populao ser substituda e pode ocorrer perda de estruturas de alta aptido. Com um valor baixo, o algoritmo pode tornar-se muito lento. 3) Tipo de Cruzamento O tipo de cruzamento a ser utilizado determina a forma como se proceder a troca de segmentos de informao entre os casais de cromossomos selecionados para cruzamento. Mais adiante sero explanados alguns tipos de cruzamento utilizados mas deve-se levar em conta que existem muitas outras escolhas disponveis para usurios de AGs. O ideal seria testar diversos tipos de cruzamento em conjunto com as outras configuraes do AG em uso para verificar qual apresenta um melhor resultado. 4) Taxa de Mutao Determina a probabilidade em que uma mutao ocorrer. Mutao utilizada para dar nova informao para a populao e tambm para prevenir que a populao se sature com cromossomos semelhantes (Convergncia Prematura). 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 alm de aumentar muito a possibilidade de que uma boa soluo seja destruda. A melhor Taxa de Mutao dependente da aplicao mas, para a maioria dos casos entre 0,001 e 0,1. B. Estrutura e Componentes bsicos Como no h uma definio rigorosa para Algoritmo Gentico a qual seja aceita por todos os componentes da comunidade da computao evolutiva, podemos dizer que a maioria dos mtodos denominados AGs tm pelo menos os seguintes elementos em comum: Uma populao de cromossomos; Seleo de acordo com a aptido; Cruzamento (crossover) para gerar novas

Pelo que foi apresentado at o momento, pode-se notar que a principal inovao dos AGs em relao aos demais mtodos de busca a implementao de um mecanismo de seleo de solues no qual, em curto prazo, os melhores tm maior probabilidade de sobreviver e, em longo prazo, os melhores tm maior probabilidade de ter descendncia. Desta forma, o mecanismo de seleo se divide em dois segmentos: o primeiro escolhe os elementos que vo participar da transformao (operador de seleo) e o outro escolhe os elementos que vo sobreviver (operador de substituio). Cabe ainda destacar que os AGs so mtodos de busca: Cega: no tm conhecimento especfico do problema a ser resolvido, tendo como guia apenas a funo objetivo; Codificada: no trabalham diretamente com o domnio do problema e sim com representaes dos seus elementos; Mltipla: executa busca simultnea em um conjunto de candidatos; Estocstica: combinam regras probabilsticas e determinsticas com alguma proporo varivel. Esse conceito se refere tanto s fases de seleo como s de transformao. A vantagem principal dos AGs ao trabalharem com o conceito de populao, ao contrrio de muitos outros mtodos que trabalham com um s ponto, que eles encontram segurana na quantidade. Tendo uma populao de pontos bem adaptados, reduzida a possibilidade de alcanar um falso timo. Os AGs conseguem grande parte de sua amplitude simplesmente ignorando informao que no constitua parte do objetivo, enquanto outros mtodos se sustentam fortemente nesse tipo de informao e, em problemas nos quais a informao necessria no est disponvel ou se apresenta de difcil acesso, estes outros mtodos falham. Em suma, os AGs podem ser aplicados praticamente em qualquer problema. Apesar de aleatrios, eles no so caminhadas aleatrias no direcionadas, ou seja, buscas totalmente sem rumo, pois exploram 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. As principais vantagens dos AGs podem ser resumidas no que se segue: So procedimentos de busca paralela que podem ser implementados em mquinas de processamento paralelo, acelerando em muito o processo; So aplicveis a problemas de otimizao contnuos e discretos; So estocsticos e, portanto, menos sujeitos a ficarem presos em mnimos locais, freqentes em muitos problemas prticos de otimizao; Sua flexibilidade facilita a estruturao e identificao de parmetros em modelos

4 populaes; Mutao aleatria para produzir novos indivduos. Os cromossomos componentes da populao de um AG, assumem tipicamente a forma de strings binrias. Cada posio dentro dessa string tem dois alelos possveis: 0 e 1. Cada cromossomo pode ser visto como um ponto no espao de busca das solues candidatas. O AG processa populaes de cromossomos, efetuando substituies sucessivas de uma populao por outra. Os AGs requerem uma funo de aptido que atribua um valor (valor de aptido ou fitness) para cada cromossomo da populao atual. O valor de aptido de cada cromossomo depende de quo bem este cromossomo resolve o problema dado. Um esquema grfico da estrutura de um AG bsico seria como o apresentado na fig. 2. Seleo
Populao Auxiliar

Populao

Transformao

Substituio

Descendncia

Fig. 2. Esquema grfico da estrutura de um AG bsico.

Como pode ser visto, uma populao Pop(t) que consta de M membros submetida a um processo de seleo onde ser gerada uma populao auxiliar PopAux(t) de C criadores. Dessa populao auxiliar ser extrado um subgrupo de indivduos denominados progenitores que so os que efetivamente vo se reproduzir. Fazendo uso dos operadores genticos, os progenitores passaro por uma srie de transformaes na fase de reproduo, por meio das quais sero gerados os S indivduos componentes da Descendncia. Para formar a nova populao, Pop(t+1), devem ser selecionados M sobreviventes dos C+S da populao auxiliar e da descendncia, o que feito na fase de Substituio. A fase de Seleo realizada em duas etapas com finalidade de emular as duas vertentes do princpio de seleo natural: seleo de criadores ou Seleo e seleo de sobreviventes para a prxima gerao ou Substituio. C. Mtodos e critrios para a implementao de um AG Para implementar-se um AG, necessrio definir de forma correta alguns mtodos e critrios. 1) Critrio de Codificao Tendo em vista que os AGs trabalham com manipulao de strings de determinados alfabetos (representao), deve-se especificar a codificao com a qual se faz corresponder cada ponto do domnio do problema com um Gene ou conjunto de Genes do Cromossomo. 2) Critrio de tratamento dos indivduos no factveis Nem sempre possvel estabelecer uma correspondncia ponto-a-ponto entre o domnio do problema e o conjunto de strings binrias (ou de outro alfabeto utilizado) usadas para resolv-lo. Como conseqncia, nem todas as strings (indivduos) codificam indivduos vlidos do espao de

busca e devem ser habilitados procedimentos teis para distingui-las. 3) Critrio de Parada Devem ser determinadas as condies nas quais se considera que o AG encontrou uma soluo aceitvel ou tenha fracassado no processo de busca e no faa sentido continuar. 4) Funes de avaliao e aptido Deve ser determinada a funo de avaliao mais apropriada para o problema, assim como a funo de aptido que utilizar o AG para resolv-lo. 5) Operadores Genticos Denominao dada aos operadores utilizados para efetuar a reproduo. Todo AG faz uso de pelo menos trs Operadores Genticos (levando em conta o AG bsico): seleo, cruzamento e mutao. Estes no so os nicos possveis e alm de tudo admitem variaes. 6) Critrios de Seleo A seleo deve dirigir o processo de busca em favor dos indivduos mais aptos. Isto pode ser feito de vrias maneiras como, por exemplo, por amostragem direta, por amostragem aleatria simples ou por amostragem estocstica. 7) Critrios de Substituio Os critrios com que se selecionam os criadores no necessariamente tm que ser os mesmos usados para selecionar os sobreviventes, logo a necessidade de especific-los separadamente. 8) Parmetros de Funcionamento Um AG precisa que sejam fornecidos certos parmetros de funcionamento tais como o tamanho da populao, as probabilidades de aplicao dos Operadores Genticos, a preciso da codificao, etc. VI. OPERADORES GENTICOS So os operadores genticos que transformam a populao atravs de sucessivas geraes, estendendo a busca at chegar a um resultado satisfatrio. Um algoritmo gentico padro evolui, em suas sucessivas geraes, mediante o uso de trs operadores bsicos: Seleo: realiza o processo de adaptabilidade e sobrevivncia. Cruzamento: representa o acasalamento entre os indivduos. Mutao: introduz modificaes aleatrias. Outros operadores tm sido propostos na literatura e entre eles o mais utilizado o Elitismo. A. Seleo A idia principal do operador de seleo em um algoritmo gentico oferecer aos melhores indivduos da populao corrente preferncia para o processo de reproduo, permitindo que estes indivduos possam passar as suas caractersticas s prximas geraes. Isto funciona como na natureza, onde os indivduos altamente adaptados ao seu ambiente possuem naturalmente mais oportunidades para reproduzir do que aqueles indivduos considerados mais fracos. B. Cruzamento Pode-se dizer que a principal caracterstica de distino

5 do AG em relao s outras tcnicas o uso do cruzamento. O operador Cruzamento utilizado aps o de seleo. Esta fase marcada pela troca de segmentos entre casais de cromossomos selecionados para dar origem a novos indivduos que formaro a populao da prxima gerao. A idia central do cruzamento a propagao das caractersticas dos indivduos mais aptos da populao por meio de troca de informaes entre os mesmos o que dar origem a novos indivduos. Existem dois tipos mais comuns de reproduo sexual em AGs, que dependem do tipo de representao das variveis. 1) Cruzamento Binrio Na representao binria pode-se escolher um ponto de quebra da string de bits e trocar os segmentos entre os dois indivduos, gerando dois indivduos diferentes. 2) Cruzamento Real No cruzamento real traado um segmento de reta unindo os dois pontos (indivduos). So gerados aleatoriamente dois novos indivduos sobre este segmento de reta. Pode-se criar um mecanismo de extrapolao, em que este segmento de reta tem suas extremidades no em cima de cada parceiro, mas um pouco alm destes. Podemos tambm aplicar maior probabilidade dos descendentes nascerem mais prximos do melhor parceiro. Combinando estes dois mecanismos, teremos o Cruzamento Real Polarizado. C. Mutao A mutao geralmente vista como um operador de background, responsvel pela introduo e manuteno da diversidade gentica na populao [2]. Ela trabalha alterando arbitrariamente um ou mais componentes de uma estrutura escolhida entre a descendncia, logo aps o cruzamento, fornecendo dessa forma meios para a introduo de novos elementos na populao. Assim, 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. Como foi visto no item Parmetros Genticos, geralmente se utiliza uma taxa de mutao pequena, justamente por ser um operador gentico secundrio. O operador de mutao tambm depende do tipo de representao utilizada. 1) Mutao Binria Na representao binria podemos realizar a mutao simplesmente escolhendo aleatoriamente um bit para sofrer mutao, ou seja, ser mudado. A mudana de um bit no indivduo pode faz-lo representar outro ponto completamente diferente do espao. 2) Mutao Real Na representao real, podemos realizar a mutao mudando o indivduo para outro ponto do espao de acordo com uma probabilidade gaussiana de mdia no prprio indivduo e com um certo desvio padro dado. D. Elitismo O mtodo mais utilizado para melhorar a convergncia dos AGs o Elitismo. Ele foi primeiramente introduzido por Kenneth De Jong em 1975 e uma adio aos vrios mtodos de seleo que fora os AGs a reterem um certo nmero de melhores indivduos em cada gerao. Tais indivduos podem ser perdidos se eles no forem selecionados para reproduo ou se eles forem destrudos por cruzamento ou mutao. Muitos pesquisadores tm encontrado no elitismo vantagens significativas para a performance dos AGs [3]. O Elitismo consiste basicamente em realizar a etapa de seleo em duas partes: 1. Seleciona-se uma elite de E membros entre os melhores da populao inicial, os quais sero incorporados diretamente populao final, sem passar pela populao auxiliar; 2. A populao auxiliar selecionada entre os N - E membros restantes da populao inicial. Em geral, a elite tem um tamanho reduzido, 1 ou 2 para N=50, e a sua amostragem pode ser direta, escolhendo-se simplesmente os melhores, ou por sorteio, escolhendo-se os melhores entre os melhores da populao. O esquema grfico do Elitismo pode ser visualizado na fig. 3. Seleo
Populao Auxiliar

Populao

Elite

Transformao

Substituio

Descendncia

Fig. 3. Esquema grfico da estrutura de um AG com Elitismo.

VII. O PROBLEMA DA DIVERSIDADE DOS AGS Um ponto fundamental para o bom funcionamento de um AG a existncia de diversidade entre os indivduos. Ou seja, deve existir um certo grau de diversidade entre as aptides dos indivduos que compe o conjunto de possveis solues pois, do contrrio, com um conjunto de indivduos muito semelhantes, o operador de cruzamento perde em muito a capacidade de troca de informaes teis entre os indivduos da populao o que faz a busca em certos casos progredir muito lentamente ou praticamente estacionar. A necessidade de ter a diversidade controlada dentro de uma determinada populao tem, como um dos seus maiores obstculos, a necessidade de populaes finitas e no muito grandes. Caso contrrio, uma tcnica de AG poderia tornar-se no aplicvel na prtica, visto que, controlar uma populao absurdamente grande, a qual tenha clculos muito complexos para determinar a aptido, poderia ocasionar um esforo computacional muito grande. Devemos lembrar que o esforo computacional ser relativo ao tipo de aplicao pois, por exemplo, se tratando do controle de um rob mvel que dependa de respostas em tempo real para desvio de obstculos, um atraso de 1 segundo na tomada de uma deciso pode ser catastrfico. Em suma, para que a seleo seja efetiva, a populao deve conter, a todo instante, uma certa variedade de aptides, o que, como foi visto com relao ao tamanho da populao, implica tambm em no ter uma disparidade muito grande de aptides, pois costuma afetar

6 negativamente a diversidade da populao. VIII. REPRESENTAO E CODIFICAO DOS AGS As partes que relacionam um AG a um problema dado so a codificao e a funo de avaliao. Se um problema pode ser representado por um conjunto de parmetros (genes), estes podem ser unidos para formarem uma cadeia de valores (cromossomo), este processo se chama codificao. Em gentica, este conjunto representado por um cromossomo em particular referenciado como gentipo, contendo a informao necessria para construir um organismo, conhecido como fentipo. Estes mesmos termos se aplicam em AG. Por exemplo, para se desenhar um prdio, um conjunto de parmetros especificando o desenho da planta o gentipo, e a construo final o fentipo. A adaptao de cada indivduo depende de seu fentipo, no qual se pode inferir seu gentipo. Por exemplo, para um problema de maximizar uma funo de trs variveis, se poderia representar cada varivel por um nmero binrio de 10 bits, obtendo-se um cromossomo de 30 bits de longitude. Existem vrios aspectos relacionados com a codificao de um problema a serem levados em conta no momento de sua realizao: Deve ser utilizado um alfabeto o mais pequeno possvel para representar os parmetros. Normalmente utilizam-se dgitos binrios; As variveis que representam os parmetros do problema devem ser discretizadas para poder representar as strings de bits; A maior parte dos problemas tratados com AG's so no lineares e muitas vezes existem relaes ocultas entre as variveis que formam a soluo; O tratamento dos gentipos invlidos deve ser levado em conta para o desenho da codificao. IX. A IMPLEMENTAO Implementamos um AG no Matlab, utilizando codificao real para os indivduos da populao. A tabela a seguir relaciona os parmetros genticos adotados na implementao.
PARMETROS GENTICOS

B. Gerao da Populao Inicial 1) Inicializao Aleatria da Populao Neste tipo de inicializao da populao, os N indivduos so distribudos aleatoriamente dentro do espao soluo. Possui a desvantagem de possibilitar a ocorrncia de regies com concentrao de pontos e outras sem indivduos. Entretanto, a distribuio aleatria permite uma maior variabilidade dos resultados obtidos. Podemos obter informao adicional a cada vez que rodarmos o algoritmo para o problema. 2) Inicializao Determinstica da Populao A populao distribuda uniformemente dentro do espao soluo. Possui a vantagem de cobrir bem o espao soluo porm, execues sucessivas no trazem informao adicional, pois o estado de inicializao sempre o mesmo. 3) Inicializao Aleatria com Nicho A fim de solucionar o problema da possvel ocorrncia de concentrao de pontos devido a Inicializao Aleatria da Populao, pode-se utilizar a tcnica de nichos. Nesta tcnica, estabelecida uma regio de cobertura para cada indivduo, chamada de nicho do indivduo. No momento que estamos gerando a populao inicial, se dois ou mais indivduos aparecerem muito prximos, um deles eliminado e outro gerado aleatoriamente. O processo repetido at que todos os indivduos estejam sozinhos dentro de seu nicho. Este processo garante que no haver, na populao inicial, indivduos prximos uns dos outros, porm, no garante que todo o espao soluo esteja sendo coberto inicialmente. 4) Inicializao implementada Na inicializao da populao que implementamos, mesclamos as tcnicas anteriores. Inicialmente, geramos uma populao uniformemente distribuda dentro do espao soluo. Em seguida, aplicamos uma perturbao aleatria em cada indivduo. A perturbao mxima permitida determinada pelo nicho de cada indivduo. Dessa maneira, unimos as vantagens das tcnicas anteriores, isto , garantimos uma cobertura ampla do espao soluo e a variabilidade caracterstica da distribuio aleatria. A fig. 4 ilustra esta tcnica onde 16 indivduos so distribudos uniformemente dentro do espao soluo definido por:

100 Tamanho da Populao Nmero Mximo de Geraes 200 60% Taxa de Cruzamento Real Polarizado Tipo de Cruzamento 20% Taxa de Extrapolao 5% Taxa de Mutao A seguir, so especificados outros aspectos implementao.

x1 [0,7.5] x 2 [0,5]

da

A. Critrio de Parada O algoritmo pra ou quando o nmero mximo de geraes foi alcanado, ou quando os dez ltimos timos no variaram mais que um certo . O valor adotado para foi de 0,0001.

7
Distribui o uniforme da popula o 5 4.5 4 3.5

Coordenada x2

3 2.5 2 1.5 1 0.5 0 0 1 2 3 4 5 6 7 Coordenada x1

1) Amostragem Aleatria Simples ou Equiprovvel Neste critrio todos os indivduos tm chances iguais de serem sorteados. So sorteados P indivduos dentro dos N integrantes da populao para formarem a populao de progenitores, que iro efetivamente cruzar. P determinado pela taxa de cruzamento. 2) Amostragem Estocstica por Torneio Neste critrio so sorteados trs indivduos da populao e realizado um torneio entre eles para escolher-se qual ir efetivamente fazer parte da populao de progenitores. Em nossa implementao determinamos como vencedor do torneio aquele indivduo que possui maior aptido, no caso, o que possui menor valor da funo objetivo. F. Critrios de Substituio Foram implementados e verificados quatro tipos diferentes de substituio da populao anterior pela nova. 1) Substituio Imediata Os descendentes substituem seus progenitores. 2) Substituio por Fator Cheio Os descendentes substituem aqueles membros da populao mais parecidos com eles. 3) Substituio por Insero Os M descendentes substituem M membros da populao anterior, geralmente os M piores. A seleo dos piores foi feita por torneio 4) Substituio por Incluso Os descendentes so somados aos progenitores em uma nica populao e, desta, so selecionados os N melhores. Da mesma forma, a seleo dos melhores foi feita por torneio. X. COMPARAO Vamos comparar a tcnica de gerao da populao inicial que propusemos na seo anterior com a Inicializao Aleatria. Vamos submeter dois algoritmos genticos, que diferem na maneira de gerar a populao inicial, seguinte funo teste, ilustrada na fig. 6.

Fig. 4. Distribuio uniforme de 16 indivduos dentro do espao soluo.

Na fig. 4 mostrada uma cruz maior sobre um dos indivduos. Esta cruz estabelece a faixa para cada coordenada, no caso x1 e x2, dentro da qual estaro as coordenadas do indivduo quando ele sofrer uma perturbao aleatria. A fig. 5 ilustra a populao da fig. 4 aps a perturbao.
Popula o Inicial ap s perturba o 5 4.5 4 3.5

Coordenada x2

3 2.5 2 1.5 1 0.5 0 0 1 2 3 4 Coordenada x1 5 6 7

Fig. 5. Populao aps a perturbao aleatria.

Podemos observar na fig. 5 que a nova populao manteve a caracterstica de nicho para cada indivduo e o espao soluo foi amplamente coberto pela populao inicial. C. Reflexo Eventualmente, aps os processos de cruzamento e mutao da populao alguns indivduos podem sair do espao soluo, caindo em pontos no factveis. Com o mtodo da Reflexo, estes indivduos so refletidos para dentro do espao soluo, voltando para pontos factveis do problema. D. Elitismo Em nossa implementao utilizamos o Elitismo escolhendo apenas um indivduo para integrar a Elite: o melhor. Este indivduo ser includo na prxima gerao diretamente. E. Critrios de Seleo Foram implementados e verificados dois tipos diferentes de seleo dos indivduos que iro efetivamente cruzar.

Fig. 6. A funo peaks.

A funo teste a funo peaks, que j vem definida no Matlab e possui a caracterstica de ser multimodal. Os algoritmos utilizados para teste utilizam ambos a Amostragem Estocstica por Torneio como critrio de seleo e a Substituio por Insero como critrio de substituio.

8 XI. RESULTADOS A fig. 7 ilustra a evoluo da populao inicial para a populao final. Pode-se observar que a populao converge para a regio do timo global. A populao inicial, cujos indivduos so mostrados na fig. 7 marcados com um x, foi gerada pela tcnica proposta. Pode-se observar, como foi comentado anteriormente, que a populao cobre todo o espao de busca e no h concentrao de indivduos em uma determinada regio.
Evolu o da Popula o Inicial para a Final 3 10 2 0 0 1 20 40 60 80 100 120 140 160 180 200 N m e r o d e G e r a e s Histograma - Inicializa o Aleat ria 60

50

40

Amostras

30

20

Coordenada y

Fig. 8. Histograma das amostras para o AG com Inicializao Aleatria da populao.

-1

-2

-3 -3

-2

-1

0 Coordenada x

Pode-se observar neste histograma que em 57% das vezes o AG alcanou o timo global em menos de 40 geraes. A barra mais direita do histograma corresponde ao nmero de vezes, no caso 18%, em que o algoritmo rodou entre 180 e 200 geraes e no alcanou o timo global. B. Inicializao Implementada Os resultados obtidos pelo AG utilizando a Inicializao proposta so relacionados na tabela a seguir. A populao tambm continha 25 indivduos.
RESULTADO DO TESTE

Fig. 7. Evoluo da populao inicial, com 25 indivduos, para a populao final dentro do espao de busca do timo para a funo peaks. Marcados com um x na figura esto os indivduos da populao inicial utilizando-se a tcnica proposta de inicializao. Marcados com um crculo, esto os indivduos da populao final.

Os dois algoritmos foram rodados cem vezes com a funo peaks utilizando inicialmente uma populao de cem indivduos. Ambos tiveram percentual de acerto de 100%. A seguir, o nmero de indivduos na populao foi reduzido at encontrarmos um percentual de acerto inferior a 100%. Com uma populao de 25 indivduos, o AG utilizando a tcnica proposta de gerao da populao inicial obteve percentual de acerto de 99%. Com esse mesmo nmero de indivduos, o AG com inicializao aleatria obteve percentual de acerto de 82%. Alm desta diferena no percentual de acerto, o resultado do teste mostrou uma diferena em relao velocidade de convergncia para o timo global da funo objetivo. Estes resultados so detalhados a seguir. A. Inicializao Aleatria da Populao A tabela a seguir relaciona os resultados obtidos pelo AG utilizando Inicializao Aleatria da Populao e com uma populao de 25 indivduos. Para o clculo da mdia do nmero de geraes que este AG levou para alcanar o timo global foram consideradas, dentre as cem rodadas do algoritmo, somente as que ele acertou.
RESULTADO DO TESTE

Nmero de amostras Porcentagem de acerto Mdia do no. de geraes Valor mximo Valor mnimo

100 99 33,4040 177 1

Na fig. 9 ilustrado o histograma das amostras. A partir dele podemos observar que em 75% das vezes o AG atingiu a soluo tima em menos de 40 geraes.
Histograma - Inicializa o Proposta 60

50

40

Amostras

30

20

10

0 0 20 40 60 80 100 120 140 160 180 200 N m e r o d e G e r a e s

Nmero de amostras Porcentagem de acerto Mdia do no. de geraes Valor mximo Valor mnimo

100 82 37,0366 200 2

Fig. 9. Histograma das amostras para o AG com Inicializao da populao proposta.

A fig. 8 mostra o histograma das amostras. As amostras so o nmero de rodadas do algoritmo. Em cada rodada, o nmero de geraes foi registrado.

Foi observado que mesmo reduzindo a populao para 16 indivduos, o AG com inicializao proposta obteve percentual de acerto de 96%, um resultado ainda bem melhor que o obtido pelo AG com Inicializao aleatria.

9 XII. CONCLUSES A partir dos resultados podemos observar que a tcnica proposta neste trabalho para gerar a populao inicial do algoritmo gentico contribui para uma melhor eficincia do algoritmo. Conforme se pode observar nos dados anteriores, a tcnica proposta obteve, na mdia, um nmero menor de geraes para atingir a soluo do problema. Alm disso, entre as cem rodadas do algoritmo, o maior nmero de geraes obtido foi menor do que na inicializao aleatria. A soluo tima foi encontrada, no geral, com um nmero menor de geraes na maioria das vezes, mostrando que a tcnica proposta possui uma convergncia mais rpida para o timo global. Isto pode ser visualizado nos histogramas da fig. 8 e da fig. 9. Entretanto, apesar de ser importante para o desempenho do AG, o mtodo de gerao da populao inicial no o fator mais significativo. Os componentes estruturais do AG mais significativos em relao ao desempenho so os critrios de seleo, substituio, mutao e cruzamento. Estes componentes so os que mais fortemente influem no resultado do AG pois afetam diretamente a evoluo da populao em direo soluo do problema. Porm, a inicializao proposta neste trabalho tem a vantagem de cobrir todo o espao soluo, mas mantendo a variabilidade caracterstica da inicializao aleatria. O fato de j cobrir inicialmente todo o espao soluo, aumenta a probabilidade de termos pelo menos um indivduo prximo ou dentro da bacia do timo global. A convergncia se torna mais rpida pois, a populao no necessita migrar rumo ao mnimo global caso a gerao aleatria tenha, por azar, colocado os indivduos distantes do ponto timo. O processo de evoluo se reduz a apenas convergir a populao para a regio do timo atravs do cruzamento dos indivduos. Como o operador de cruzamento tem o efeito de reduzir a regio de abrangncia da populao, se j garantirmos inicialmente que a populao est distribuda por todo o espao soluo, podemos iniciar com uma taxa de cruzamento mais alta e uma taxa de mutao mais baixa, pois estaremos interessados apenas em concentrar a populao e no mais em explorar o espao de busca. A importncia de diminuir o nmero de geraes, ou seja, de iteraes, para se alcanar a soluo e, portanto, aumentar a velocidade de convergncia do AG que necessitaremos de menos avaliaes da funo objetivo. Isso representa uma reduo no custo computacional inerente a certos problemas de otimizao e do tempo de execuo do algoritmo. Por fim, para se obter concluses mais concretas testes mais exaustivos, com um maior nmero de amostras, e com funes objetivo diversas deveriam ser realizados. Porm, com base no teste feito neste trabalho, podemos ver que a tcnica de inicializao da populao sugerida contribui para a melhora do desempenho do AG e para uma reduo do nmero de avaliaes da funo objetivo. XIII. REFERNCIAS
[1] [2] GOLDBERG, David E. Genetic Algorithms in Search, Optimization and Machine Learning Addison-Wesley Co. Massachusetts, 1989. HOLLAND, John H. Adaptation in Natural and Artificial Systems University of Michigan Press Ann Arbor, 1975. [3] [4] [5] MITCHELL, Melanie. An Introduction to Genetic Algorithms MIT Press Massachusetts, 1996. JANG, Jyh-Shing R., SUN, Chuen-Tsai, MIZUTANI, Eiji. NeuroFuzzy and Soft Computing Prentice Hall, Inc., 1997. Notas de Aula da disciplina Otimizao