Você está na página 1de 15

27

3 Algoritmos Evolucionrios
3.1 Algoritmos Genticos Essencialmente, Algoritmos Genticos so mtodos de busca e otimizao que tem sua inspirao nos conceitos da teoria de seleo natural das espcies proposta por Darwin (Goldberg, 1989) (Koza, 1992) (Mitchell, 1994) (Back, 1996) (Fogel et al, 1966). Os sistemas desenvolvidos a partir deste princpio so utilizados para procurar solues de problemas complexos ou com espao de solues muito grande (espao de busca), o que os tornam problemas de difcil modelagem e soluo quando se aplicam mtodos de otimizao convencionais. Estes algoritmos so inspirados nos processos genticos de organismos
PUC-Rio - Certificao Digital N 0310415/CB

biolgicos para procurar solues timas ou sub-timas. Para tanto, procede-se da seguinte maneira: codifica-se cada possvel soluo de um problema em uma estrutura chamada de "cromossomo", que composta por uma cadeia de bits ou smbolos. Estes cromossomos representam indivduos, que so evoludos ao longo de vrias geraes, de forma similar aos seres vivos, de acordo com os princpios de seleo natural e sobrevivncia dos mais aptos, descritos pela primeira vez por Charles Darwin em seu livro "A Origem das Espcies". Emulando estes processos, os algoritmos genticos so capazes de "evoluir" solues de problemas do mundo real. Os cromossomos, ou indivduos, so ento submetidos a um processo evolucionrio que envolve avaliao, seleo, recombinao (crossover) e mutao. Aps vrios ciclos de evoluo a populao dever conter indivduos mais aptos. Os algoritmos genticos utilizam uma analogia direta deste fenmeno de evoluo na natureza, onde cada indivduo representa uma possvel soluo para um problema dado. A cada indivduo atribui-se um valor de avaliao: sua aptido, que indica quanto a soluo representada por este indivduo boa em relao s outras solues da populao. Desta maneira, o termo Populao refere-se ao conjunto de todas as solues com as quais trabalha o sistema. Aos indivduos mais adaptados dada uma probabilidade maior de se reproduzirem mediante cruzamentos com outros indivduos da populao, produzindo

28 descendentes com caractersticas de ambas as partes. A mutao tambm tem um papel significativo, ao introduzir na populao novos indivduos gerados de maneira aleatria. O processo de evoluo comea com a criao aleatria dos indivduos que formaro a populao inicial. A partir de um processo de seleo baseado na aptido de cada indivduo, so escolhidos indivduos para a fase de reproduo que cria novas solues utilizando-se, para isto, um conjunto de operadores genticos. Deste modo, a aptido do indivduo determina o seu grau de sobrevivncia e, assim, a possibilidade de que o cromossomo possa fazer parte das geraes seguintes. O procedimento bsico de um algoritmo gentico resumido na Figura 4 (Davis, 1996).

PUC-Rio - Certificao Digital N 0310415/CB

Inicio t1 inicializar populao P(t) avaliar populao P(t) enquanto (no condio_de_fim) faa tt+1 selecionar populao P(t) a partir de P(t-1) aplicar operadores genticos avaliar populao P(t) fim enquanto fim

Figura 4 Procedimento bsico do algoritmo gentico

Para determinar o final da evoluo pode-se fixar o nmero de geraes, o nmero de indivduos criados, ou ainda condicionar o algoritmo obteno de uma soluo satisfatria, isto , quando atingir um ponto timo. Outras condies para a parada incluem o tempo de processamento e o grau de similaridade entre os elementos numa populao (convergncia). As sees seguintes apresentam em mais detalhes cada um dos componentes de um algoritmo gentico.

29

3.1.1 Representao A representao um aspecto fundamental na modelagem de um algoritmo gentico para a soluo de um problema. Neste estgio define-se a estrutura do cromossomo, com os respectivos genes que o compem, de maneira que este seja capaz de descrever todo o espao de busca relevante do problema. Os principais tipos de representao so: grupamento de inteiros e baseadas em ordem. 3.1.2 Codificao e Decodificao A soluo de um problema pode ser representada por um conjunto de
PUC-Rio - Certificao Digital N 0310415/CB

binria, nmeros reais, inteiros,

parmetros (genes), unidos para formar uma cadeia de valores (cromossomo); a este processo chama-se codificao. As solues (cromossomos) so codificadas atravs de uma seqncia formada por smbolos de um sistema alfabtico. Originalmente, utilizou-se o alfabeto binrio (0, 1), porm, novos modelos de AGs codificam as solues com outros alfabetos, como, por exemplo, com nmeros reais (Michalevicz, 1996). A decodificao do cromossomo consiste basicamente na construo da soluo real do problema a partir do cromossomo. O processo de decodificao constri a soluo para que esta seja avaliada pelo problema. 3.1.3 Avaliao A avaliao permite ao algoritmo gentico determinar sua proximidade soluo tima do problema. Ela feita atravs de uma funo que melhor representa o problema e tem por objetivo oferecer uma medida de aptido de cada indivduo na populao corrente, que ir dirigir o processo de busca. Dado um cromossomo, a funo de avaliao consiste em se associar um valor numrico de adaptao, o qual supe-se proporcional sua "utilidade" ou "habilidade" do indivduo representado em solucionar o problema em questo.

30

3.1.4 Operadores Genticos Os operadores mais conhecidos nos algoritmos genticos so os de Reproduo, Cruzamento (Crossover) e Mutao. Reproduo: refere-se ao processo de selecionar e copiar um determinado cromossomo para a populao seguinte de acordo com sua aptido. Isto significa que os cromossomos mais aptos tm maior probabilidade de contribuir para a formao de um ou mais indivduos da populao seguinte. Existem basicamente os seguintes mtodos: troca de toda populao, troca de toda populao com elitismo, onde todos os cromossomos so substitudos, sendo o cromossomo mais apto da populao corrente copiado para populao seguinte, e troca parcial da populao (steady state), onde os M melhores indivduos da
PUC-Rio - Certificao Digital N 0310415/CB

populao corrente so copiados para populao seguinte (Goldberg, 1989) (Koza, 1992) (Michalevicz, 1996). Cruzamento: um operador baseado na troca de partes dos cromossomos (pais), formando-se duas novas solues (filhos). Este processo pode ser observado no exemplo a seguir (Figura 5), onde a soluo est codificada com alfabeto binrio.
Indivduos antes do Crossover Indivduo 1 Indivduo 2 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 1 Resultado aps o Crossover Filho 1 Filho 2 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1

Ponto de corte

Figura 5 Cruzamento de um ponto

O ponto onde ocorre o corte para a realizao do cruzamento escolhido aleatoriamente; no exemplo da Figura 3 utilizou-se um nico ponto, mas podem ser realizados cortes em mais de um ponto, caracterizando o multi-point crossover (Goldberg, 1989) (Michalevicz, 1996) (Holland, 1992). Para realizar o cruzamento, primeiro necessria a escolha, por sorteio, dos cromossomos pais. Em seguida ocorre a realizao ou no do cruzamento segundo um parmetro, denominado taxa de cruzamento. Deste modo, de acordo com a taxa de

31 cruzamento, pode ocorrer que os cromossomos pais sejam repassados sem modificao para a gerao seguinte, criando filhos idnticos a eles. A idia do operador de Cruzamento tirar vantagem (exploit) do material gentico presente na populao. Mutao: a troca aleatria do valor contido nos genes de um cromossomo por outro valor vlido do alfabeto. No caso de alfabeto binrio trocase de 0 para 1 e vice-versa. Da mesma forma que para o cruzamento, utiliza-se uma taxa de mutao que, para cada bit da seqncia de caracteres, sorteia-se se ocorrer ou no a mutao; no caso de ocorrncia, o bit ser trocado por outro valor vlido pertencente ao alfabeto (Figura 6).

Indivduo

Bit alterado

PUC-Rio - Certificao Digital N 0310415/CB

Indivduo resultante aps da mutao

Figura 6 Mutao

A mutao garante a diversidade das caractersticas dos indivduos da populao e permite que sejam introduzidas informaes que no estiveram presentes em nenhum dos indivduos. Alm disto, proporciona uma busca aleatria (exploration) no AG, oferecendo oportunidade para que mais pontos do espao de busca sejam avaliados. 3.1.5 Parmetros da Evoluo Os parmetros que mais influenciam no desempenho do algoritmo gentico so: Tamanho da Populao: afeta o desempenho global e a eficincia dos Algoritmos Genticos. Uma populao muito pequena oferece uma pequena cobertura do espao de busca, causando uma queda no desempenho. Uma populao suficientemente grande fornece uma melhor cobertura do domnio do problema e previne a convergncia prematura para solues locais. Entretanto, com uma grande populao tornam-se necessrios recursos computacionais

32 maiores, ou um tempo maior de processamento do problema. Logo, deve-se buscar um ponto de equilbrio no que diz respeito ao tamanho escolhido para a populao. Taxa de Cruzamento: probabilidade de um indivduo ser recombinado com outro. Quanto maior for esta taxa, mais rapidamente novas estruturas sero introduzidas na populao. Entretanto, isto pode gerar um efeito indesejvel, pois a maior parte da populao ser substituda, causando assim perda de variedade gentica, podendo ocorrer perda de estruturas de alta aptido e convergncia a uma populao com indivduos extremamente parecidos, indivduos estes de soluo boa ou no. Com um valor baixo, o algoritmo pode-se tornar muito lento para oferecer uma resposta aceitvel. Taxa de Mutao: probabilidade do contedo de um gene do cromossomo ser alterado. A taxa de mutao previne que uma dada populao fique estagnada em um valor, alm de possibilitar que se chegue em qualquer
PUC-Rio - Certificao Digital N 0310415/CB

ponto do espao de busca. Porm, deve-se evitar uma taxa de mutao muito alta, uma vez que esta pode tornar a busca essencialmente aleatria, prejudicando fortemente a convergncia para uma soluo tima. Intervalo de Gerao: controla a porcentagem da populao que ser substituda durante a prxima gerao (substituio total, substituio com elitismo, substituio dos piores indivduos da populao atual, substituio parcial da populao sem duplicatas). Esse nmero de indivduos substitudos tambm conhecido como GAP. Nmero de geraes: representa o nmero total de ciclos de evoluo de um Algoritmo Gentico, sendo este um dos critrios de parada do algoritmo gentico. Um nmero de geraes muito pequeno causa uma queda no desempenho; um valor grande faz necessrio um tempo maior de processamento, mas fornece uma melhor cobertura do domnio do problema, evitando a convergncia para solues locais. 3.3 Co-evoluo Para se aplicar algoritmos evolucionrios com sucesso em problemas com complexidade cada vez maior, torna-se necessrio introduzir noes explcitas de

33 modularidade nas solues para que elas disponham de oportunidades razoveis de evoluir na forma de subcomponentes co-adaptados (Potter & Jong, 2000). Existem duas razes principais pelas quais algoritmos evolucionrios convencionais no so totalmente adequados para resolver este tipo de problema. Em primeiro lugar, os algoritmos genticos convencionais impedem, a longo prazo, a preservao de certos componentes da soluo pois, por estarem codificados por completo em um indivduo, eles so avaliados como um todo e apenas os subcomponentes que pertencem a indivduos com avaliaes altas sero preservados. Em segundo lugar, o fato da representao estar relacionada a uma soluo completa e por no haver interaes entre os membros da populao, no existe presso evolucionria para a ocorrncia de co-adaptao, ou seja, no existe presso para a adaptao de um subcomponente dada a ocorrncia de uma mudana em outro subcomponente (Potter & Jong, 1994) (Potter & Jong, 2000). A decomposio do problema no entanto tem um aspecto importante que
PUC-Rio - Certificao Digital N 0310415/CB

deve ser levado em conta e que est relacionado com a evoluo de subcomponentes interdependentes. Se for possvel decompor o problema em subcomponentes independentes, cada um deles pode evoluir sem haver necessidade de se preocupar com os outros. Pode-se visualizar isto imaginando-se que cada subcomponente evolui no seu prprio espao de busca, desacoplado do espao de busca dos outros componentes. Entretanto, a maioria dos problemas s pode ser decomposta em subcomponentes que possuem uma interdependncia complexa. O efeito de mudar um desses subcomponentes provoca uma deformao no espao de buscas dos outros subcomponentes que esto acoplados por esta interdependncia. possvel visualizar isto graficamente da seguinte forma: suponha que se deseje minimizar uma funo de duas variveis e que essas duas variveis formem dois subcomponentes interdependentes. Esta funo pode ser por exemplo descrita pela equao:

f ( x, y ) = x 2 + ( x + y )

(1)

O grfico desta equao mostrado a seguir.

34

Figura 7 Grfico da equao

Supondo que se deseje encontrar o valor mnimo desta funo, que ocorre quando x e y so iguais a zero (sendo ento f(x,y) igual a zero), o espao de busca
PUC-Rio - Certificao Digital N 0310415/CB

da varivel y assume a seguinte forma quando x igual a 40:

Figura 8 Grfico para x igual a 40

Quando a varivel x por outro lado, assume o valor -40, o espao de busca da varivel y se deforma e assume a seguinte forma:

35

Figura 9 Grfico para x igual a -40

Da Figura 8 para a Figura 9 pode-se notar a deformao do espao de busca da varivel y quando muda-se o valor da varivel x. No primeiro caso, o
PUC-Rio - Certificao Digital N 0310415/CB

mnimo no espao de buscas de y encontra-se em -40 enquanto que no segundo caso o mnimo encontra-se em 40. Espera-se, portanto, que com o desacoplamento e com a capacidade de adaptao dos algoritmos evolucionrios os mesmos consigam se adaptar facilmente a este tipo de dinmica do problema. Vrias pesquisas foram feitas visando estender o modelo evolucionrio bsico de modo que o mesmo suportasse subcomponentes co-adaptados. Uma das primeiras extenses feitas foi o modelo de sistemas classificadores (Holland, 1978) (Holland, 1986). Em Giordana et al. (1994) tem-se um sistema (chamado REGAL) que aprende regras de classificao e que utiliza um operador chamado voto universal (universal suffrage) para fazer a decomposio do problema. Em Giordana & Neri (1996) o desempenho do sistema REGAL foi melhorado atravs do uso de ilhas populacionais semi-isoladas. Modelos com mltiplas espcies, ou seja, que incorporam populaes geneticamente isoladas tambm tm sido usados para evoluir subcomponentes co-adaptados. Trabalhos nesta rea incluem modelos hospedeiros-parasitas (host-parasite) para redes de ordenao onde uma espcie (os hospedeiros) evolui redes de ordenao para serem aplicadas em casos de teste representados pela outra espcie (os parasitas) como uma lista de nmeros a serem ordenados (Hillis, 1991). Outros modelos com duas espcies competindo foram

36 usados para solucionar problemas de aprendizado de jogos, fazendo com que cada uma das espcies representasse um dos jogadores (Rosin & Belew, 1995). Alguns outros pesquisadores exploraram o uso de modelos com espcies em cooperao como, por exemplo, para a funo de trs bits de Goldberg (Paredis, 1995) e para a otimizao de funes (Potter & Jong, 1994). Finalmente, em Potter & Jong (2000), procurou-se definir um modelo co-evolucionrio cooperativo genrico. Nesta arquitetura duas ou mais espcies diferentes formam um ecossistema. Como na natureza, as espcies so geneticamente isoladas ou seja, os indivduos s podem se reproduzir com outros indivduos da mesma espcie. Isto feito simplesmente isolando-se as espcies em populaes separadas. As espcies somente interagem umas com as outras atravs de um domnio compartilhado e tm uma relao apenas de cooperao. O modelo co-evolucionrio cooperativo genrico (Potter & Jong, 2000)
PUC-Rio - Certificao Digital N 0310415/CB

mostrado na Figura 10.

Figura 10 Modelo co-evolucionrio genrico

Apesar de serem mostradas apenas duas espcies neste modelo, o mesmo pode ser usado para n espcies diferentes. Cada espcie evolui em sua prpria populao (pois como j foi mencionado, elas so isoladas geneticamente) e se adaptam ao ambiente atravs de repetidas aplicaes do algoritmo evolucionrio. Para se calcular a aptido dos indivduos de uma determinada espcie, deve-se submet-lo ao modelo do domnio (que contm a funo de avaliao) juntamente

37 com um ou mais colaboradores de cada uma das outras espcies (de modo a formar a soluo completa).
3.4 Estratgias de avaliao multi-objetivo

Embora a maioria dos problemas do mundo real requerem a otimizao simultnea de mltiplos, freqentemente competitivos, critrios (ou objetivos), a soluo para tais problemas usualmente computada atravs da combinao dos objetivos em um nico critrio a ser otimizado, de acordo com alguma funo. Em vrios casos, porm, a melhor forma de efetuar a combinao de objetivos no conhecida antes do processo de otimizao. Ento o problema deve ser tratado como um Problema de Otimizao Multi-Objetivo com objetivos no comensurveis.
PUC-Rio - Certificao Digital N 0310415/CB

Um problema de otimizao Multi-Objetivo trabalha com mais de uma funo objetivo. Tcnicas tradicionais de otimizao tm sido usadas para solucionar estes problemas no passado. Estas tcnicas originalmente foram formuladas para trabalhar com uma nica funo objetivo e encontrar uma soluo tima. Mas novas tcnicas para considerar os objetivos separadamente esto sendo aplicadas. Assim, os vrios objetivos no so combinados em uma nica funo. Um resumo dessas tcnicas ser mostrado nesta seo (Deb, 2001).

3.4.1 Formulao

Um problema de otimizao multi-objetivo possui um nmero de funes objetivo a serem otimizadas (maximizar ou minimizar). Alm disso, possui restries que devem ser satisfeitas por qualquer soluo factvel. O enunciado otimizao multi-objetivo o seguinte: maximizar/minimizar f m ( x), restrita a g j ( x) 0, m = 1,2,..., M j = 1,2,..., J ; hk ( x) = 0, k = 1,2,..., K ; xi( L ) xi xi(U ) , i = 1,2,..., n.

(2)

38 onde x o vetor de n variveis de deciso x = ( x1 , x 2 ,..., x n ) T . Os

valores xi( L ) e xi(U ) , representam o mnimo e o mximo valor respectivamente para a varivel xi . Estes limites definem o espao de variveis de deciso ou espao de deciso D. O vetor x ser referido tambm como soluo. As J desigualdades ( g j ) e as K igualdades ( hk ) so chamadas de funes de restrio. Uma soluo x factvel ser aquela que satisfaa as J + K funes de restrio e os 2n limites. Caso contrrio a soluo ser no factvel. O conjunto de todas as solues factveis formam a regio factvel ou espao de busca S. Cada uma das M funes objetivo
f1 ( x), f 2 ( x),..., f M ( x) pode ser

maximizada ou minimizada. Porm, para trabalhar com os algoritmos de otimizao, necessrio converter todas para serem maximizadas ou minimizadas. O vetor funes objetivo f(x) conforma um espao multiPUC-Rio - Certificao Digital N 0310415/CB

dimensional chamado espao de objetivos Z. Esta uma diferena fundamental em relao otimizao de objetivos simples, cujo espao de objetivos unidimensional. O mapeamento acontece, ento, entre um vetor x (n-dimencional) e um vetor f(x) (M-dimensional). Por exemplo, se cada elemento de x e f(x) so nmeros reais, ento f(x) estaria mapeada como f(x) : n M .
3.4.2 Solues Pareto-timas

A tomada de decises implica num processo que consiste em vrios fatores, com o objetivo de encontrar a melhor soluo. Em alguns casos, podem aparecer vrias solues boas, das quais nenhuma quantitativamente melhor que a outra. Por exemplo, na hora de comprar um carro suponha-se que se est procurando o preo e conforto. A Figura 11 ilustra vrias alternativas de escolha.

39

Figura 11 Exemplo que ilustra vrias opes de compra de carro (1-5), considerando o seu custo e conforto

O objetivo minimizar o custo e maximizar o conforto. Neste caso tem-se cinco possveis opes de compra. Intuitivamente, descarta-se a soluo 1, j que
PUC-Rio - Certificao Digital N 0310415/CB

a soluo 5 fornece mais conforto por igual preo. A soluo 2 descartada pela mesma razo. Tem-se ento trs solues: 3,4,5, que so boas alternativas de compra. Em termos quantitativos nenhuma melhor que a outra, pois uma mais confortvel mas menos barata, e vice-versa. Existe ento um compromisso entre os objetivos. Quanto maior o conforto, maior o preo caro e vice-versa. Diz-se que uma soluo domina uma outra se seus valores so melhores em todos os objetivos. Por exemplo, a soluo 5 domina a soluo 1. J a soluo 5 no dominada por nenhuma outra. O mesmo acontece com as solues 3 e 4. Se no se conhece a priori a importncia relativa de cada objetivo, pode-se dizer que as solues 3,4, e 5 so igualmente boas. Portanto, existe um conjunto de solues timas; este conjunto chamado de conjunto no dominado. As outras solues (1, e 2) formam o conjunto dominado. Estes conjuntos tm as seguintes propriedades:
1. Qualquer par de solues do conjunto no dominado deve ser no-

dominado um em relao ao outro.


2. Quaisquer das solues no pertencentes ao conjunto no-dominado,

devem ser dominadas por no mnimo uma soluo no conjunto nodominado.

40

Se os pontos no dominados esto em um espao contnuo, pode-se desenhar uma curva. Todos os pontos contidos na curva formam a Frente de Pareto ou Fronteira de Pareto. Quando a informao adicional sobre importncia dos objetivos desconhecida, todas as solues Pareto-timas so igualmente importantes. Deb assinala duas importantes metas em Otimizao Multi-Objetivo (Deb, 2001):
1. Encontrar um conjunto de solues o mais prximo possvel da

Fronteira de Pareto.
2. Encontrar um conjunto de solues com a maior diversidade possvel.

A primeira meta comum para qualquer processo de otimizao. Solues


PUC-Rio - Certificao Digital N 0310415/CB

muito distantes da Fronteira de Pareto no so desejveis. Porm, encontrar a maior diversidade dentro das solues uma meta especfica para Otimizao Multi-Objetivo. Na Figura 12a mostra-se uma boa distribuio de solues na fronteira de Pareto, enquanto que na Figura 12b as solues esto distribudas apenas em algumas regies. necessrio assegurar a maior cobertura possvel da fronteira, j que isso implica em ter um bom conjunto de solues comprometidas com os objetivos desejados. Como em Problemas de Otimizao Multi-Objetivo trabalha-se com o espao de decises e o espao de objetivos, desejvel que as solues tenham uma boa diversidade nestes espaos. Normalmente, uma boa diversidade em um destes espaos garante tambm a diversidade no outro. Entretanto, em alguns problemas isto no acontece.

41

Figura 12 Distribuio de Solues na Fronteira de Pareto

Geralmente, necessrio um critrio adicional para diferenciar as solues encontradas no conjunto Pareto-timo, de modo que se tenha uma nica soluo
PUC-Rio - Certificao Digital N 0310415/CB

tima. Isso pode ser feito por algum especialista, aps o processo de otimizao ter descoberto um conjunto de solues no-dominadas, ou pode-se adotar algum critrio que diferencie as solues do conjunto Pareto-timo durante o processo de otimizao. No prximo captulo ser descrito o modelo de otimizao desenvolvido nesta pesquisa e as tcnicas utilizadas para tratar os objetivos separadamente.