Você está na página 1de 11

Algoritmos Genticos e Modificaes na Seo urea

Narjara Ynghrid Silva Cardoso


Matemtica Computacional - PET - UFMG

Orientador: Ricardo Takahashi 16 de fevereiro de 2011

Departamento de Matemtica - UFMG

* homepage: http://www.mat.ufmg.br/~taka

Sumrio
1 Algoritmos Genticos 1.1 Otimizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Algoritmos Evolutivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Algoritmos Genticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 1.4 NSGA-II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 2 Modificando a Seo urea 2.1 O mtodo original. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Uma alterao no mtodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Anlise comparativa dos resultados . . . . . . . . . . . . . . . . . . . . . . . . . 7 3 Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

1 Algoritmos Genticos
1.1 Otimizao
Otimizao envolve uma tcnica ou modelo matemtico que busca uma soluo tima dentre, em geral, um conjunto bastante extenso de possveis solues candidatas, que pode, inclusive, ser infinito (no caso de uma otimizao contnua em !n). Numa otimizao de uma funo f: S -> !n, sendo S um sub-conjunto qualquer n de ! , estamos interessados em encontrar um x*, pertencente a S, tal que: Os mtodos de otimizao so classificados em duas categorias: mtodos determinsticos e probabilsticos. Os primeiros so geralmente baseados em heursticas, que indicam uma direo (mtodos de direo de busca) ou regies a serem excludas a cada iterao (mtodos de barreiras de penalidades). Por outro lado, os mtodos probabilsticos fazem anlises estatsticas para chegarem ao timo procurado, muitas vezes valendo-se de buscas estocsticas em todo o domnio do problema. Neste trabalho, vamos nos ater segunda categoria.

1.2 Algoritmos Evolutivos


Nos algoritmos evolutivos (AE), assim como na maioria dos mtodos de otimizao, a funo objetivo no precisa necessariamente ser conhecida, a priori, em sua forma analtica. Basta que sejamos capazes de, durante todo o processo de otimizao, saber o valor de retorno, ou resposta, de determinadas instncias arbitrrias do problema. Podemos comparar isso a uma caixa preta e dizer que, na otimizao, no precisamos saber de tudo o que tem dentro da caixa, nem ao menos da relao entre os seus elementos na formao do todo, mas precisamos apenas saber identificar um elemento qualquer depois que ele foi escolhido e retirado da caixa. Este elemento pode at nos dar uma pequena idia do que mais possa ter dentro da caixa (ou da sua vizinhana, j referenciando otimizao de funo contnua), porm o fato de se encontrar um elemento A na caixa no a impede de conter elementos Z ou ainda outros A. Essa classe de algoritmos baseia-se nas teorias Darwinistas da evoluo natural, segundo a qual os seres vivos passaram por uma srie de processos de mutao e recombinao gentica (cruzamentos) at chegar ao seu estado atual. Neles, o que temos no incio uma populao inicial de soluo candidatas, geradas de forma aleatria. A partir dessa idia, os AE utilizam essas ferramentas (mutao, cruzamento e seleo) e vai evoluindo a populao de solues. A cada etapa do algoritmo, denotada por gerao, fazendo analogia teoria da evoluo biolgica, o algoritmo altera a populao de solues candidatas. O princpio aproximar este conjunto tanto quanto possvel da soluo tima ou do conjunto paretotimo, no caso de estarmos tratando de otimizao multiobjetivo. Eles fazem uso de operadores para a evoluo da populao de solues, os quais se denominam de operadores genticos. uma rea bastante ampla e rica em variedades de tcnicas, sendo passvel a inmeros estudos e anlises experimentais, j que envolve uma grande quantidade de parmetros. Tm-se desenvolvido nas ltimas dcadas em diferentes formas: algoritmos genticos (AG), estratgicas evolucionrias e programao evolucionria. Embora 2

tenhamos mtodos e particularidades bem definidas em cada uma delas, so baseadas nos mesmos princpios de evoluo natural. Se valem de tcnicas probabilsticas, o que contrasta com os demais algoritmos de otimizao, repletos de determinismo. Devido a isso, se executarmos diversas vezes um AE, em geral, ele nos dar um resultado ligeiramente diferente a cada execuo (to diferente quando os parmetros do algoritmo permitirem). Isso, no entanto, no deve ser levado como um ponto negativo do algoritmo, muito pelo contrrio. Devido exatamente ao seu grande lado probabilstico que ele capaz de explorar melhor o domnio pesquisado e possui tambm muito menos risco de se estagnar num mnimo local, perdendo a sua viso da completude do espao e no encontrando mais o timo global, como pode ocorrer em diversas ocasies com muitos dos algoritmos deterministas (aqui chamamos deterministas todos os demais algoritmos de otimizao que no so AE).

1.3 Algoritmos Genticos


Depois de se estudar os princpios bsicos dos AE, seria preciso agora focar e especificar melhor a rea de estudo, devido sua vasta extenso quando se fala simplesmente nos AE, conforme j mencionado. Assim, tratamos neste trabalho apenas dos Algoritmos Genticos. Mtodos de pesquisa em Algoritmos Genticos esto enraizados em mecanismos de evoluo e gentica natural. O interesse em algoritmos de busca heurstica com bases em processos naturais e fsicos comeou logo em 1970, quando Holland props pela primeira vez os AG.1 Alm de inspirados no processo de evoluo das espcies, os AG fazem uso de tcnicas inspiradas na biologia evolutiva. A cada gerao do AG fazem-se alteraes na populao como um todo, atravs de mutaes, cruzamentos (crossing over) e seleo dos indivduos. So bastante genricos tambm. Como todos os AE, eles no necessitam de nenhum conhecimento especfico ou aprofundado do problema em questo, apenas de uma forma de avaliao do resultado, ou seja, no precisamos sequer conhecer a forma analtica da funo a qual queremos otimizar. Devido aos benefcios que j foram expostos, atualmente notvel o crescimento contnuo da sua utilizao. uma tecnologia emergente. O AG inspirado pelo mecanismo da seleo natural, o processo biolgico no qual os indivduos mais fortes so vencedores no ambiente de competio. Foi implementado um algoritmo gentico com os operadores de cruzamento, mutao, seleo, elitismo. A preciso estabelecida foi de 10-4 e o domnio inicial para a populao aleatria foi [ -10, 10 ] x [ -10, 10 ]. Os demais parmetros utilizados foram: raio de mutao de 0.1 e 500 indivduos na populao inicial aleatria (nmero que se mantm ao longo de toda a execuo do algoritmo). Com estes parmetros fixos, puderam-se obter os seguintes resultados, depois de uma mdia de 1000 execues: Funo: F(x, y) = x + y Mdia de iteraes: 65,792 Soluo encontrada: [ -0,002102 -0,001310 ] = 0,000006

Funo: F(x, y) = (x-1)4 + y6 Mdia de iteraes: 65,006 Soluo encontrada: [ 0,999141 -0,000666 ] = 0,000000 Funo: F(x, y, z) = x + (y-2)4 + (z+3) Mdia de iteraes: 71,785 Soluo encontrada: [ -0,006197 1,947909 -3,002184 ] = 0,000051 Funo: F(x, y, z, w) = ( x + 2y + z + w ) Mdia de iteraes: 64,159 Soluo encontrada: [ -3,179797 -2,031674 -2,752111 -0,725490 ] = 0,002589 Agora a anlise dos resultados com uma funo que o quadrado da funo anterior: Funo: F(x, y, z, w) = ( x + 2y + z + w )4 Mdia de iteraes: 63,409 Soluo encontrada: [ -3,238156 -1,902926 -2,668651 -0,625779 ] = 0,000022 Ento se verifica que o AG converge mais rapidamente e com maior preciso quanto maior for o grau da funo objetivo (no caso de funes polinomiais). O algoritmo gentico um mtodo eficiente e de boa convergncia, nos inmeros casos em que pode ser aplicado, j que ele no impe muitas das limitaes encontradas nos mtodos tradicionais de otimizao. Outra grande vantagem a sua simplificao, facilidade de implementao e melhor adaptao ao problema, comparado com os mtodos tradicionais. O controle dos parmetros do algoritmo tem fundamental influncia no seu desempenho. Em determinados problemas, torna-se necessrio o uso de algoritmos hbridos, ou seja, que misturam tcnicas dos AG com outras tcnicas tradicionais de otimizao. No entanto, em problemas com uma grande quantidade de variveis e populaes de tamanho tambm elevado, com alto nmero de geraes para a cobertura do espao de solues, os AG possuem um custo computacional elevado. Existem atualmente diversos tipos de AG, cada qual mais adaptado para determinados tipos de problema. Na prxima seo, veremos um dos mais famosos tipos, se no o mais: o NSGA-II. Devido no exigir o conhecimento da funo objetivo em sua forma analtica, os AG possuem um grande nmero de possveis aplicaes, dentre as quais destacamos: Otimizao evolutiva multiobjetivo; Problemas complexos de otimizao; Engenharia de Sistemas Neurais Artificiais; Controle de Sistemas Dinmicos; Simulao de modelos biolgicos.

1.4 NSGA-II
Nondominated Sorting Genetic Algorithm II (NSGA-II) um tipo de algoritmo gentico voltado para a otimizao multiobjetivo, em casos onde a soluo procurada

um conjunto de solues distintas igualmente timas, ou seja, no dominadas, chamado de conjunto Pareto-timo. A primeira verso do NSGA apresentou as seguintes deficincias: complexidade computacional elevada na classificao de no-dominncia (devido esse processo de classificao precisar ser refeito totalmente a cada gerao), falta de elitismo e necessidade de especificao dos parmetros. Ele foi um dos primeiros algoritmos evolutivos e, em 2002, foi proposta uma nova verso, o NSGA-II. Nessa nova verso, foram acrescentadas duas caractersticas importantes: estratgica de evoluo de Paretos-arquivados e fora-Pareto do AE em termos de encontrar um conjunto diversificado de solues e em convergncia prxima do verdadeiro conjunto paretotimo. Como todos os AG, eles so tambm altamente modificveis com relao aos ajustes dos parmetros, o que proporciona uma maior eficincia em situaes-problema especficas. Quando aplicado a difceis problemas de otimizao multiobjetivo, ele encontra melhores solues e melhor convergncia, mais prxima do verdadeiro conjunto Paretotimo, quando comparado s demais estratgicas evolutivas. Na literatura, foram feitos estudos comparativos do seu desempenho com muitos outros algoritmos de otimizao multiobjetivo e observado um desempenho muito melhor do NSGA-II. A principal diferena dos NSGAs, em particular do NSGA-II, para os demais AG modo como ele evolui com a populao. Atravs de uma anlise de dominncia dos pontos entre si, ele faz a separao da populao de solues candidatas em cascas, isto , em conjuntos disjuntos de pontos no dominados dentre si, um ranking de dominncia. Desse modo, primeiro faz-se uma casca de pontos no dominados, depois a casca de pontos que s so dominados por pontos pertencentes casca anterior, e assim sucessivamente, de modo que os pontos da casca i so no dominados com relao a todos os pontos das demais cascas de ndice maior do que i, mas dominado por todos os pontos das cascas com ndice inferior a i.

Figura 1: Fast nondominated sort

Aps todo esse processo de separao das cascas segue-se outro importantssimo mecanismo, agora para garantir a preservao da diversidade da populao total de solues candidatas: o clculo da crowding-distance. Nesta altura do algoritmo a preocupao de que a populao esteja bem distribuda pelo domnio, de modo que no haja muitos pontos agrupados numa mesma rea. Assim a crowding-distance serve para eliminar pontos muito prximos, j que eles no acrescentariam grande informao a mais para o algoritmo.

Figura 2: Crowding-distance.

2 Modificando a Seo urea


Nessa segunda parte deste trabalho, mudamos o foco mais especfico, porm ainda trabalhando com otimizao. Voltamos-nos agora para os mtodos tradicionais de otimizao contnua, mtodos baseados em avaliao de vetor gradiente, aproximaes de funo, etc. Dentre este tipo de mtodos poderamos citar vrios exemplos: aproximaes quadrticas, mtodos de Direes de Busca, Newton, QuasiNewton, Barreiras, Penalidades, etc. No entanto, vamos agora nos ater ao nosso objeto de estudo: o mtodo da Seo urea, implementado dentro do mtodo do Gradiente, um mtodo de Direo de Busca.

2.1 O mtodo original


O mtodo da Seo urea visa a otimizao unidimensional. Em vista disso, ele freqentemente aplicado juntamente como outro mtodo de otimizao da classe dos mtodos de Direo de Busca. Assim, qualquer que seja a dimenso inicial do problema tratado, quando o mtodo j calculou a direo a qual se deve procurar pelo mnimo, o problema ento se torna unidimensional. A tarefa da seo urea a de descartar, a cada passo, um trecho do segmento considerado no qual o mnimo necessariamente no se encontra. Ela faz isso usando uma estratgica bastante especfica, de forma a maximinizar o comprimento do segmento descartado a cada iterao. Pode ser considerado que se atingiu a convergncia do mtodo para o ponto de mnimo quando o segmento encontra-se suficientemente pequeno. Neste caso, a preciso do algoritmo ser igual metade do comprimento final. A estratgia baseada num nmero que j explorado a milnios: a razo urea ( 0,618 ). Assim, a cada iterao descartado 61,8% ou 38,2% do tamanho total do intervalo considerado. O fator 0,618 corresponde razo urea, utilizada pelos antigos gregos para definir a razo dos lados adjacentes de um retngulo que seria perfeita sob o ponto de vista esttico.4

2.2 Uma alterao no mtodo


Agora propomos uma modificao no mtodo, visando o aumento da sua eficincia (convergncia mais rpida e/ou maior preciso). Resolvemos acrescentar ao mtodo, a cada iterao, um chute inicial de onde estaria o mnimo da funo. A partir da implementamos uma distribuio de 6

probabilidades de cada elemento do intervalo considerado ser ou no o mnimo da funo e da aplicar a razo urea sobre as probabilidades e no mais sobre as distancias. Para isso, fizemos uso do mtodo de interpolao de funes contnuas via Polinmios de Lagrange. Ou seja, utilizaremos uma funo conhecida (calculada pelo mtodo de interpolao) que aproxima a funo objetivo trabalhada tanto melhor quanto maior for o nmero de pontos utilizados. Ao valor mnimo da funo de interpolao daremos o valor mximo da funo de distribuio de probabilidades (fdp), pois se espera que a funo original do problema em questo tenha comportamento, em geral, parecido com o comportamento da interpolao. Ento criamos uma fdp que, a partir do ponto de valor mximo, diminua linearmente o seu valor at atingir valor nulo nos dois extremos do intervalo considerado, conforme ilustrado abaixo.

Figura 3: A funo de distribuio de probabilidades (fdp).

A cada iterao a nuvem de pontos existentes aumenta, melhorando a preciso do mtodo de interpolao e, portanto, a convergncia do algoritmo como um todo, medida que o mnimo interpolado se aproxima cada vez mais do mnimo da funo objetivo.

2.3 Anlise comparativa dos resultados


Agora vamos fazer um estudo comparativo dos resultados obtidos pelos dois mtodos, o original e o modificado. O nosso objetivo, com a modificao do mtodo da Seo urea, era o de melhorar a convergncia do mtodo, bem como a sua eficincia (nmero de iteraes). No entanto, em um primeiro momento, foi verificado exatamente o oposto disso, ou seja, o novo mtodo era mais lento e menos preciso que o anterior. No obstante, testes diferenciados e com um nmero maior de dimenses verificaram que, em alguns casos, houve sim a melhora do mtodo. Os dados colocados aqui foram obtidos a partir da execuo do programa com os parmetros: - Delta: 10-10. - Preciso: 10-5. O primeiro a distancia entre quaisquer dois pontos criados pela seo urea, dentro do intervalo [a, b] e o segundo o valor mximo para a diferena entre o valor de cada varivel na iterao k para a iterao k+1 que far que o algoritmo pare. Todos os resultados expressos aqui representam uma mdia de 1000 execues do programa, exceto nos casos em que indicarem explicitamente um valor diferente deste.

As tabelas a seguir mostram os resultados obtidos para N = 2 e com uma funo objetivo quadrtica simples. Nelas pode-se notar que o mtodo original obteve um melhor desempenho, j que sua preciso foi maior e convergiu mais rapidamente.
Media de iteraes Soluo encontrada 4 1,000000 -0,000000 0,000000 Tabela 1: F(x,y) = (x-1) + y, mtodo original. Media de iteraes Soluo encontrada 0,000000 47,192000 1,000003 0,000003 Tabela 2: F(x,y) = (x-1) + y, mtodo modificado.

O aumento bastante significativo na quantidade mdia de iteraes pode ser explicado pelo fato de que o algoritmo original j era timo, desde que fosse vlida a premissa de uniformidade da distribuio de probabilidades da localizao do ponto de timo. Quando se aumenta da dimenso do problema, o mtodo modificado comea a dar sinais de melhoria com relao ao mtodo original, chegando a ficar at mesmo melhor que o original a partir de um certo nmero de dimenses, que varia de acordo com a funo objetivo do problema. O primeiro caso analisado foi com a funo objetivo F(X) = ! xi2, de i = 0 at n, com n = 15. Com o mtodo original, obtivemos o seguinte resultado mdio: Media de iteraes: 47.400000 Solucao encontrada: [ -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000006 0.000025 0.000073 0.000178 0.000372 0.000638 0.000609 ] = 0.000001 J com o mtodo modificado a mdia dos resultados obtidos foi: Media de iteraes: 32,139 Solucao encontrada: [ -0.000001 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 0.000001 ] = 0.000000. Ou seja, neste caso, a modificao na Seo urea provocou uma convergncia mais rpida e melhor, em mdia, mesmo utilizando os mesmos valores de Delta e Preciso, j indicados anteriormente. Os resultados para n = 10, com a mesma funo objetivo do exemplo anterior, foram. Mtodo original: Media de iteraes: 21.417000 Solucao encontrada: [ -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 ] = 0.000000 E mtodo modificado: Media de iteraes: 18.358000 Solucao encontrada: [ 0.000158 0.000198 0.000149 0.000276 0.000248 0.000325 0.000070 0.000146 0.000272 0.000096 ] = 0.000000. Agora veja que com n = 9, j obtemos melhoria no mtodo modificado. Observe tambm o quando variam os resultados de n = 10 para n = 9, principalmente com relao ao nmero mdio de iteraes. Mtodo original: Media de iteraes: 18.648000 Solucao encontrada: [ -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 ] = 0.000000 Mtodo modificado: Media de iteraes: 18.000000 8

Solucao encontrada: [ 0.000620 0.000690 0.000632 0.000906 0.000977 0.000759 0.000822 0.000676 0.000399 ] = 0.000005. No prximo exemplo, veremos que no somente o grau e o nmero de dimenses do problema que influenciam no desempenho dos dois mtodos. Os resultados a seguir so referentes funo objetivo: F(x1, x2, x3, x4) = ! sen(xi)*(xi-1), com i variando de 1 a 4. Primeiro veremos o resultado do mtodo modificado: Media de iteraes: 7.933000 Solucao encontrada: [ 0.582440 0.582445 0.581999 0.581673 ] = 2.897679 Agora veja o que resulta com o mtodo original: Media de iteraes: 56.692000 Solucao encontrada: [ 0.582439 0.582438 0.582437 0.582436 ] = 2.897679 Verificamos, por tanto, que o tipo de funo objetivo que trabalhamos tambm tem influncia direta no desempenho dos dois mtodos e no somente o grau do polinmio. O exemplo anterior nos mostra que ambos os mtodos convergem quando temos uma funo unimodal perturbada levemente por uma funo oscilatria ( no caso, a funo seno ). No entanto, vemos tambm que o algoritmo modificado obteve um resultado praticamente idntico ao mtodo original e foi, em mdia, bem mais rpido. Uma importante considerao a ser feita que ambos os mtodos analisados, o original e o modificado, no convergem em casos onde o mnimo global no nico ou em outros determinados casos em que a funo objetivo no seja unimodal. Vamos mostrar um pequeno exemplo do que acontece quando se aplica o mtodo a funes multimodais com diversos mnimos globais idnticos (no caso, razes mltiplas da equao F(X) = 0): Funo objetivo: F(x,y) = (x-1)4 + (y-1)4. Mtodo modificado: Media de iteraes: 3.000000 Soluo encontrada: [ 1.082247 57840783.005450 ] = 11192745370689000000000000000000.000000 Mtodo original: Media de iteraes = 4.000000 Soluo encontrada: [0.839996 -10478513887.427744] = 12055876027427643000000000000000000000000.000000 Como se pode ver, nenhum dos mtodos convergiu e eles, em geral, realmente no convergem no caso de funes objetivos multimodais. Assim, os resultados no podem ser de forma alguma comparados, j que ambos contm resultados totalmente fora da nossa margem de preciso.

3 Referncias
1. M. Srinivas, Lalit M. Patnaik, Genetics Algoritms: A Survey. 2 K. F. Man, K. S. Tang e S. Kwong, no artigo Genetic Algorithms: Concepts and Applications 3 Kalyanmoy Deb, Associate Member, IEEE, Amrit Pratap, Sameer Agarwal, and T. Meyarivan. A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II. 4 H. C. Takahashi, Ricardo. Notas de aula. Otimizao Vetorial e Escalar, vol. 1. 5 H. C. Takahashi, Ricardo. Notas de aula. Otimizao Vetorial e Escalar, vol. 2. 9

6 H. C. Takahashi, Ricardo. Notas de aula. Otimizao Vetorial e Escalar, vol. 3.

10

Você também pode gostar