Você está na página 1de 10

Um estudo sobre Algoritmos Genticos

Anderson Martiniano, Tiago Trocoli, Antonio Lucas Barros, Ctia Nascimento, Elane Pereira Instituto de Matemtica Departamento de Cincia da Computao Universidade Federal da Bahia (UFBA) Avenida Adhemar de Barros S/N Ondina Salvador Bahia Brasil
{martiniano,tiago062,antoniolucas,catia,elane062}@dcc.ufba.br
1

Resumo. O artigo ir explanar um alguns conceitos sobre os algoritmos genticos. Como foi pensado, qual foi a sua inspirao. Como funciona, e quais os mecanismos so usados. Porque funciona e se vivel usar. Objetivo desse artigo tentar aprofundar um pouco mais nesses tpico, porm nem todos contedo sobre algoritmos genticos poder ser abordada por ser muito amplo e ainda em expanso.

1. Introduo
Os Algoritmos Genticos (AGs) so mtodos adaptativos que podem se usados para resolver problemas de busca e otimizao. Esto inspirados no processo genrico e evolutivo dos organismos vivos [da Rocha Fernandes 2005]. Segundo John Holland (1970s) Algoritmos genticos so modelos computacionais que imitam os mecanismos da "evoluo natural"para resolver problemas de otimizao. 1.1. Algoritmos Genticos Os Algoritmos Genticos (AGs) so tcnicas de busca baseadas nas Teorias da Evoluo, nos quais as variveis so representadas como genes em um cromossomo (indivduo). Combinam a sobrevivncia dos mais aptos com a troca de informao de uma forma estruturada, mas aleatria. O AG apresenta um grupo de solues candidatas (Populao) na regio de solues. Por seleo natural e operadores genticos, mutao e 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. John Holland acreditava que a incorporao das caractersticas naturais de evoluo em um computador poderia produzir uma tcnica para solucionar problemas da mesma maneira como funcionam na natureza os processos de seleo e adaptao. A forma de codicao dos cromossomos biolgicos ainda no totalmente compreendida pela comunidade cientca, apesar dos enormes avanos conseguidos at os dias de hoje, mas existem algumas caractersticas gerais da teoria que so aceitas, tais como [DAVIS 1991]: Evoluo, Seleo natural, Reproduo e a Ausncia de memria.

1.2. Estrutura do Artigo Este artigo est estruturado da seguinte maneira: Na seo 2 mostraremos como os algoritmos genticos so estruturados. Isto , sua representao (codicao), como feita a inicializao da populao,funo de aptido, mtodos de seleo e mtodos de reproduo. Por m, na seo 3 explicaremos por que os algoritmos genticos funcionam.

2. Estrutura dos Algoritmos Genticos


Podemos visualisar os passos para a execuo de um algoritmo gentico na gura 1. Cada aspeto dela ser analisado nas prximas subsees.

Figura 1. Representao de um Algoritmo Gentico. [Andersson 2000]

Extrada de

2.1. Representao(codicao) O termo usado para representar uma possvel soluo em um algoritmo gentico cromossomo(embora tambm seja muito usada a palavra indivduo). Cada cromossomo composto de genes que representam cada um uma determinada propriedade(Tomando o homem como exemplo, os genes determinam a cor da pele, dos olhos, altura . . . ). Podemos ver o cromossomo como o conjunto de parmetros para uma possvel soluo, onde cada parmetro um gene[Chandran 1999]. A representao mais bsica de um indivduo uma string de bits, onde cada bit representa o valor para uma propriedade(ligado/desligado, adjacente/no adjacente, etc . . . ). Existem casos onde a representao binria no a mais adequada(embora isso dependa da implementacao do problema), ento podem ser usadas diferentes estruturas de dados para representar os genes de cada cromossomo. No existe um consenso com relao a uma codicao que seja universal, isto , a melhor para todos os problemas[Beasley et al. 1993a].

2.2. Inicializao O operador de inicializao o primeiro a ser aplicado(o nome bem sugestivo). Nessa fase criada a populao inicial para a posterior aplicao dos outros operadores. A populao inicial pode ser gerada aleatria(com ou sem nicho) ou determinstica. Na forma aleatria, os cromossomos apenas so gerados randomicamente. Quando temos problemas que podem ter vrias solues que podem ser consideradas timas(como no caso de funes multi modais), precisamos usar de algum artifcio que nos permita encontrar todas elas, j que na abordagem tradicional, sempre se converge para um nico mximo. claro que esse o objetivo do algoritmo, mas, mesmo em casos quando temos diversos mximos com mesma avaliao, o algoritmo ir convergir para apenas um deles. Uma abordagem para a soluo dessa questo est na idia dos nichos, onde os indivduos so classicados a partir da sua semelhana com outros indivduos da mesma populao[Beasley et al. 1993b]. Na forma determinstica, usada uma funo heurstica para se gerar os cromossomos(em linhas gerais, isso feito quando a gerao aleatria produz resultados nais muito ruins). A populao inicial gerada de forma aleatria na maioria dos casos(exceto talvez quando a situao descrita anteriormente ocorre), pois aumenta a diversidade gentica, o que amplia o espao de busca. quando a diversidade gentica baixa, a populao pode convergir prematuramente, pois os indivduos sero bastante semelhantes, tornando difcil a escolha da melhor soluo para o problema[Rosa and Luz 2009]. Depois de criada, a populao inicial deve ser avaliada. A seo 2.3 trata desse ponto. 2.3. Funo de Aptido No contexto de algoritmos genticos, a funo de aptido surge para atribuir valores aos cromossomos ou indivduos que representam sua capacidade de adaptao e a um determinado ambiente. A partir desse valor, possvel avaliar as solues candidatas. A escolha da funo adequada fundamental para o bom desempenho da aplicao desenvolvida[Santos et al. 2007]. A funo de aptido serve como ligao entre o algoritmo gentico e o problema proposto, sendo especca para cada caso, alm do que deve ter conhecimento de todos os objetivos desejados [Rosa and Luz 2009]. Existe uma diferena fundamental entre as funes de avaliao e aptido. A primeira diz respeito probabilidade de um indivduo conseguir passar seus genes para a prxima populao usando para isso uma medida de desempenho [Lima 2008] apud([Rosa and Luz 2009]). J a segunda faz referncia aos outros indivduos da populao, sendo calculada em funo da avaliao do indivduo e da mdia de toda populao. Vale lembrar que a funo de aptido poder ser igual de avaliao ou ainda, estar baseada no ranking dos indivduos [Rosa and Luz 2009]. [Linden 2008] 2.4. Seleco A idia principal do operador de seleo em um algoritmo gentico, oferecer aos melhores indivduos da populao corrente, preferncia para o processo de reproduo, per-

mitindo 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 [SCHNEIDER 1998]. A maioria dos mtodos de seleo tem base na teoria da evoluo de Darwin, onde o melhor sobrevive para garantir a descendncia. H variados mtodos para selecionar o melhor pai, sendo que que eles podem ser classicados em trs grupos principais segundo o grau de inuncia da aleatoriedade no processo: Amostragem direta: seleo de um subconjunto de indivduos da populao mediante um critrio xo, no estilo de "os n melhores", "os n piores", "a dedo", etc... Amostragem aleatria simples ou equiprovvel: determinada a mesma probabilidade para todos os elementos da populao, de serem selecionados para a amostra. Amostragem estocstica: so atribudas probabilidades de seleo ou pontuaes aos elementos da populao com base na sua funo de aptido (tness). Existem muitos mecanismos de amostragem, dos quais explanaremos alguns a seguir: Seleo por Roleta ou Universal No mtodo de seleo por roleta os pais so selecionados de acordo com o seu grau de adequao. Quanto maior o grau de adequao maior a probabilidade do cromossoso ser selecionado. Os cromossomos so organizados em uma espcie de roleta, essa roleta divida em n sees (n tamanho da populao), o tamanho de cada seo denido pelo valor da adequao de cada cromossomo. Quanto maior o valor, mais larga a seo, quanto mais larga a seo maior ser a probabilidade dela ser selecionada.

Figura 2. Representao grca da roleta

O Algoritmo da roleta descrito abaixo: 1. [Soma] Calcule a soma dos valores de adequao de todos os cromossomas da populao - soma S. 2. [Seleo] Gere um nmero aleatrio no intervalo (0,S) - r. 3. [Repetio] Percorra toda a populao e some a adequao de 0 - soma s. Quando a soma s for maior que r, pare e retorne o cromossoma atual. O passo 1 somente realizado uma vez para cada populao. Seleco por Classicao (Ranking)

O mtodo de seleo por roleta tem problemas quando h grandes diferenas entre os valores de adequao. Por exemplo, se a melhor adequao dos cromossomas 90% da soma de todas as adequaes, ento haver cromossomas com chances muito baixas de serem selecionados. A Seleo por Classicao primeiro classica a populao e ento atribui a cada cromossomo um valor de adequao determinado pela sua classicao. O pior ter adequao igual a 1, o segundo pior 2 etc. de forma que o melhor ter adequao igual a N (nmero de cromossomos na populao). As guras abaixo mostram como a situao muda depois de alterar a adequao pelos nmeros determinados pela adequao.

Figura 3. Situao antes de Classicao (grco de adequeo)

Figura 4. Situao depois de Classicao (grco dos nmeros de ordem)

Dessa forma todos os cromossomas tem uma chance de serem selecionados. Entretanto, este mtodo pode resultar em menor convergncia, porque os melhores cromossomos no se distinguem muito dos outros. Seleo por torneio O processo usado neste mtodo extremamente simples. Cada elemento da amostra e selecionado elegendo o melhor indivduo de um conjunto de elementos tomados aleatoriamente na populao base; isto repetido o nmero de vezes necessrias para completar a amostra. O valor do parmetro costuma ser um valor inteiro pequeno e relao ao tamanho total da populao base, sendo em geral 2 ou 3. Seleo por Truncada

No mtodo de seleo truncada apenas os melhores x% da populao podero ser escolhidos como pais da prxima gerao. Este valor x um parmetro do algoritmo que pode variar de 1% a 100%. Os valores mais usuais para x so aqueles na faixa [10%-50%]. O problema desse mtodo que ele pode causar uma convergncia gentica mais veloz, e uma rpida perda da diversidade, quando x um valor pequeno. Aps a seleo do valor de x os indivduos so ordenados de forma descrecente de acordo com sua avaliao, ento aqueles cujas posies estiverem entre 1 a posio de corte (x) podero participar da seleo. Essa ordenao tem complexidade mnima de tempo de O(nlogn). Elitismo O metdo de Elitismo foi primeiramente introduzido por Kenneth De Jong (1975) e uma adio aos vrios mtodos de seleo que fora os AGs a reter 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. O Elitismo consiste basicamente de realizar a etapa de seleo em duas partes: 1. Seleciona uma elite de membros entre os melhores da populao inicial, os quais sero incorporados diretamente populao nal, sem passar pela populao auxiliar. 2. A populao auxiliar selecionada entre os 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 ou por sorteio 2.5. Reproduo Nesta fase os indivduos selecionados so recombinados de forma que produzam novos indivduos. O objetivo que a nova gerao, composta por esses indivduos, seja diversicada, porm, mantenha as caractersticas de adaptao adquirida pela gerao anterior. Essa operao deve ser aplicada sucessivas vezes, obtendo novas geraes, at que um resultado satisfatrio seja alcanado. Tal recombinao feita atravs de operadores genticos como crossover e mutao. Crossover o operador mais utilizado para recombinao e consiste em trocar segmentos entre os pares de cromossomos. H vrios tipos de crossover, no entanto os quatro mais conhecidos so: crossover de um-ponto, crossover de dois-pontos, crossover de n-pontos e crossover uniforme [Livramento 2004]. Crossover de um ponto: Seja n o tamanho do cromossomo pai, um ponto de corte k escolhido aleatoriamente e cada lho ser composto pelo prexo de tamanho k de um pai e do suxo de tamanho n-k do outro pai. Veja gura abaixo. Crossover de dois pontos: Semelhante ao crossover de um ponto, no entanto, duas posies so selecionadas e apenas os bits que esto entre essas posies so trocados. Crossover de n pontos: A diferena entre esse mtodo e os anteriores que n posies so selecionadas e apenas os bits localizados entre as posies mpares e pares so trocados. Os bits entre as posies pares e mpares permanecem inalterados.

Figura 5. Crossover com apenas um ponto de corte

Figura 6. Crossover com dois pontos de corte

Crossover Uniforme: Neste mtodo, cada bit do primeiro pai pode ser trocado aleatoriamente com o bit correspondente do segundo pai com probabilidade de 0,5.

Figura 7. Crossover uniforme

Nem todos os cromossomos selecionados para a reproduo so submetidos a esse operador gentico. Geralmente, faz-se uma escolha aleatria, aplicando uma probabilidade de crossover entre 0,6 e 1,0 [Beasley et al. 1993a]. Desta forma, permite que alguns indivduos transra toda sua carga gentica para a prxima gerao, sem o rompimento do crossover. Mutao Cada gene do cromossomo pode ser alterado de forma aleatria. considerado um operador gentico secundrio, sendo aplicado aps o crossover em poucos indivduos da populao, geralmente com uma probabilidade de 0,001 [Beasley et al. 1993a]. Essa escolha arbitrria garante a diversidade gentica da populao e ajuda a garantir que nenhum ponto do espao de busca tenha probabilidade zero de ser examinado. A gura 8

mostra o quinto gene do cromossomo sendo alterado.

Figura 8. Mutao no quinto gene do cromossomo

3. Por que AGs Funcionam?


3.1. Teorema do Esquema O teorema do esquema foi proposto por [HOLLAND 1992] como uma forma de explicar o porque dos algoritmos genticos funcionarem. Um esquema uma representao capaz de descrever vrios cromossomos simultaneamente. Para isso em um alelo existir uma representao que simboliza que aquele alelo pode assumir qualquer valor dentro do alfabeto de genes. Dessa forma possvel gerar subconjuntos da mesma do esquema com valores similares [CASTRO and ZUBEN 2002]. Para car mais claro, o exemplo a seguir ser um esquema com um cromossomo de tamanho sete e que pode ter dois valores 1 ou 0 e tem como simbolo de representao de qualquer valor *.

Figura 9. Exemplo de esquema. Fonte: prpria

Nesse caso, cada esquema pode representar 2r cromossomos, onde r o numero de smbolos * existente no esquema. Assim podemos ter no mximo um esquema que represente 2m cromossomos, no qual m o comprimento do cromossomo. A ordem do esquema a quantidade de posies xas no esquema. E o comprimento denitrio a maior distncia entre as posies xas. Com essas informaes e mais alguns valores de probabilidade sobre os crossover e mutao, uma equao matemtica foi montada. Por ser bastante complexa, no ser exporta, mas sim a as consequncias da sua analise.

Para ver mais sobre esse clculo ver [CASTRO and ZUBEN 2002]. A equao conhecida como equao de crescimento reprodutivo do esquema. Esta equao de crescimento mostra que a seleo aumenta a amostragem de esquemas cujo a funo de aptido est acima da mdia da populao, e este aumento exponencial. O crossover e a mutao pode apresentar um efeito destrutivo, mas no signicativo se o esquema curto e de baixa ordem. Assim temos que Teorema dos Esquemas: Esquemas com comprimento denitrio curto, de ordem baixa, e com funo de aptido acima da mdia, tm um aumento exponencial de sua participao em geraes consecutivas de um algoritmo gentico. [CASTRO and ZUBEN 2002]. Isso quer dizer que os algoritmos genticos exploram o espao mesmo tendo esquemas curtos e de baixa ordem. Esse teorema ainda mostra que uma populao de tamanho m tem pelo menos m3 so processados de forma til [CASTRO and ZUBEN 2002]. Assim uma hiptese de blocos construtivos foi criado, buscando desempenho quase-timo atravs da justaposio de esquemas curtos, de baixa ordem e alto desempenho . Porm, foi provado que essa propriedade s pode ser aplicada a uma classe de problemas onde o tamanho da populao deve ser proporcional a 2L onde L metade da multiplicao entre o tamanho da populao e probabilidade de ocorrer um crossover no esquema. Porm, alguns problemas os blocos construtivos podem direcionar erroneamente o algoritmo, levando-o a convergir a pontos sub-timos. Assim, a hiptese dos blocos construtivos no fornece uma explicao denitiva do porqu os algoritmos genticos funcionam. Ela apenas uma indicao do porqu os algoritmos genticos funcionam para uma certa classe de problemas. 3.2. Diversicao e Intensicao Segundo [Livramento 2004], qualquer algoritmo de otimizao eciente deve usar duas tcnicas para encontrar um mximo (mnimo) global: diversicao e intensicao. A diversicao o processo de visitar novos pontos do espao de busca, necessrio para investigar as regies desconhecidas, enquanto que a intensicao explora o espao de busca usando informaes dos pontos anteriores visando encontrar pontos melhores. utilizado pelo mtodo subida/descida da encosta. O ideal que um bom algoritmo de busca encontre um equilbrio entre as duas tcnicas. A combinao feita de forma simultnea: Seleo : intensicao Mutao e crossover: diversicao Essa combinao, teoricamente, pode ser tima. Isto deve-se ao fato de que em prtica para que esse resultado seja alcanado algumas suposies devem ser feitas [Livramento 2004]: que o tamanho da populao innito; que a funo de avaliao reete precisamente a utilidade de uma soluo; que os genes de um cromossomo no interagem signicativamente.

4. Concluso
Algoritmos genricos se mostram uma ferramenta eciente quando no se tem o domnio completo do problema e quando se tem um espao de busca muito grande, pois no usam apenas infomaes locais e tentam explorar o maior espao de busca possvel. Assim os AGs so tcnicas muitos boas para solucionar problemas de dicil otimizao, e quando

no existe nenhuma outra tcnica especica para resolver tal problema. Como exemplo, problemas de exploso combinatria como o do caixeiro viajante e a alocao de recursos (job shop scheduling), alm de aprendizado de mquina.

Referncias
Andersson, J. (2000). A survey of multiobjective optimization in engineering design. Beasley, D., Bull, D. R., and Martin, R. R. (1993a). An overview of genetic algorithms: part 1, fundamentals. University Computing, 15(2):5869. Beasley, D., Bull, D. R., and Martin, R. R. (1993b). An overview of genetic algorithms: Part 2, research topics. University Computing, 15(4):170181. CASTRO, L. d. and ZUBEN, F. V. (2002). Algoritimos genticos. Chandran, R. V. (1999). An introduction to genetic algorithms. Bell Labs Development Center, Lucent Technologies. da Rocha Fernandes, A. M. (2005). Inteligncia articial: noes gerais. Florianpolis: VisualBooks. DAVIS, L. (1991). Handbook of Genetics Algorithms. New York: Van Nostraud Reinhold. HOLLAND, J. (1992). Adaptation in natural and articial systems. 2nd edition, The MIT Press. Linden, R. (2008). Algoritmos Genticos. Brasport, 2 edition. Livramento, S. (2004). Algoritmo gentico para o problema de localizao de recursos em rede telefnica. Masters thesis, Universidade Estadual de Campinas. Rosa, T. d. O. and Luz, H. S. (2009). Conceitos bsicos de algoritmos genticos: Teoria e prtica. In XI Encontro de Estudantes de Informtica do Tocantins, pages 2737. Anais do XI Encontro de Estudantes de Informtica do Tocantins, Centro Universitrio Luterano dePalmas. Santos, J. C., de Freitas Oliveira, J. R., Dutra, L. V., SantAnna, S. J. S., and Renn, C. D. (2007). Seleo de atributos usando algoritmos genticos para classicao de regies. SCHNEIDER, A. M. (1998). Algoritmo adaptativo gentico para acompanhamento da trajetria de alvos mveis. Porto Alegre: Instituto de Informtica - Universidade Federal do rio Grande do Sul.

Você também pode gostar