Apostila - Mini-curso otimizacao.pdf

95
Apostila baseada no material da Escola Piloto de Engenharia Química elaborado por: Evaristo C. Biscaia Jr. e Roberta C. Vieira Mini-Cursos Pré-Colóquio – 13 e 14 de novembro de 2006 Métodos de Otimização não Determinísticos Evaristo C. Biscaia Jr. Rogério L. Pagano Eduardo R. de A. Lima Modelando e Simulando o Futuro 16 e 17 de novembro de 2006 PEQ / COPPE / UFRJ Rio de Janeiro – RJ

Transcript of Apostila - Mini-curso otimizacao.pdf

  • Apostila baseada no material da Escola Piloto de Engenharia Qumica elaborado por: Evaristo C. Biscaia Jr. e Roberta C. Vieira

    Mini-Cursos Pr-Colquio 13 e 14 de novembro de 2006

    Mtodos de Otimizao no Determinsticos

    Evaristo C. Biscaia Jr. Rogrio L. Pagano Eduardo R. de A. Lima

    Modelando e Simulando o Futuro

    16 e 17 de novembro de 2006 PEQ / COPPE / UFRJ Rio de Janeiro RJ

  • 11. INTRODUO

    1.1. Mtodos de Otimizao1.2. Mtodos Tipo Gradiente1.3. Mtodos Heursticos1.4. Quando usar Otimizao Heurstica1.5. Mtodos de Otimizao Natural: analogias com a natureza1.6. Mtodos Hbridos1.7. Quando no usar Otimizao Heurstica1.8. Cmputo de nmeros pseudo-aleatrios

    1. INTRODUO

    1.1. Mtodos de Otimizao

    A otimizao matemtica uma rea da cincia computacional que busca responder pergunta O que melhor? para problemas em que a qualidade de uma resposta pode sermedida por um nmero. Estes problemas aparecem em praticamente todas as reas doconhecimento: negcios, cincias fsicas, qumicas e biolgicas, engenharia, arquitetura,economia e administrao. A quantidade de ferramentas disponveis para auxiliar nesta tarefa quase to grande quanto o nmero de aplicaes.

    Para resolver um problema, preciso primeiro formul-lo. A Funo Objetivo umafuno que associa cada ponto no espao de solues a um nmero real. Este nmero permitemedir a qualidade de uma resposta: no problema de minimizao, quanto menor este valor,melhor a resposta. No problema de maximizao, o inverso ocorre. O tratamento matemtico deproblemas de maximizao e minimizao anlogo, j que h vrias maneiras de converter umproblema no outro. Apenas por questo de uniformidade, toda a discusso ao longo deste cursose basear no problema de minimizao.

    Um mtodo de otimizao chamado de Determinstico se for possvel prever todos osseus passos conhecendo seu ponto de partida. Em outras palavras, um mtodo determinsticosempre leva mesma resposta se partir do mesmo ponto inicial. Em oposio a estes mtodos,existem os chamados mtodos Estocsticos ou Aleatrios, onde o carter aleatrio de vriosprocessos simulado. Nestes mtodos, vrias escolhas so feitas com base em nmerosaleatrios, sorteados no momento de execuo do cdigo. Como a cada execuo do cdigo osnmeros sorteados sero diferentes, um mtodo aleatrio no executar a mesma seqncia deoperaes em duas execues sucessivas. Partindo de um mesmo ponto inicial, cada execuo docdigo seguir o seu prprio caminho, e possivelmente levar a uma resposta final diferente.

    voltar para INTRODUO

  • 21.2. Mtodos Tipo Gradiente

    Mtodos de otimizao bastante familiares para os engenheiros qumicos so os queempregam a derivada de uma funo para encontrar seu timo. Estes mtodos sodeterminsticos, ou seja, sempre chegaro mesma resposta se sarem do mesmo ponto inicial.

    Mtodos de Subida (ou Descida) Mais ngreme

    A forma mais simples do mtodo tipo gradiente o mtodo chamado de subida maisngreme (em ingls: steepest ascent), quando se deseja determinar o mximo de uma funoescalar, ou o de descida mais ngreme (em ingls: steepest descent), no caso de busca domnimo. Para entender a concepo bsica deste mtodo a figura abaixo apresentada:

    MXIMO

    MNIMO

    a b c d

    Na faixa entre a e b e entre c e d a derivada ( ou o gradiente) da funo positiva e nafaixa entre b e c a derivada (ou o gradiente) da funo positiva. Observe que x = b um pontode mximo e que x = c um ponto de mnimo.

    Um procedimento recursivo que levaria ao valor de x em que a funo assume seu valormximo (ou seja, x=b) seria aquele que partindo de condies iniciais entre a e b caminhariapara a direita (na direo de b) e que partindo de condies iniciais entre b e c caminharia para aesquerda (na direo de b), portanto o procedimento recursivo caminha sempre na mesmadireo do gradiente da funo. O correspondente mtodo iterativo pode ser representado por:

    [ ])k()k()1k( XfXX +=+ , onde um escalar positivo.Por outro lado, um procedimento recursivo que levaria ao valor de x em que a funo

    assume seu valor mnimo (ou seja, x=c) seria aquele que partindo de condies iniciais entre b ec caminharia para a direita (na direo de c) e que partindo de condies iniciais entre c e dcaminharia para a esquerda (na direo de c), portanto o procedimento recursivo caminha

  • 3sempre na direo contrria do gradiente da funo. O correspondente mtodo iterativo podeser representado por:

    [ ])k()k()1k( XfXX =+ , onde um escalar positivo.Para ilustrar este procedimento a funo: )100x(x)x(f 2 = considerada. A derivada

    desta funo : 100x3)x(g)x(f 2 == que se anula em : 774.5310x = . O ponto774.5x = , em vista de 0774.56)774.5(f +=+ , um ponto de mnimo.O mtodo do gradiente de subida mais ngreme neste exemplo descrito pelo

    procedimento recursivo: ( ) ( ) ( )[ ]

    +=+ 100X3XX 2kk1k com 0> e para k= 0, 1, 2,...

    com X(0) chute inicial. Adotando este algoritmo com ( ) 0.1 e 10X 0 == resulta:k 0 1 2 3 4

    ( )kX -10 +10 +30 +290 +25510

    no convergindo portanto ao valor desejado [ 774.5x = ]. Adotando o mesmo chute inicial:( ) 0.04 e 10X 0 == resulta:

    k 0 1 2 3 4 5 6

    ( )kX -10,000 -4,000 -5,560 -5,560 -5,778 -5,773 -5,774

    convergindo ao valor desejado aps 6 iteraes.

    O mtodo do gradiente de descida mais ngreme neste exemplo descrito pelo

    procedimento recursivo: ( ) ( ) ( )[ ]

    =+ 100X3XX 2kk1k com 0> e para k= 0, 1, 2,...

    com X(0) chute inicial. Adotando este algoritmo com ( ) 0.1 e 10X 0 =+= resulta:k 0 1 2 3 4

    ( )kX +10 -10 -30 -290 -25510

    no convergindo portanto ao valor desejado [ 774.5x += ]. Adotando o mesmo chute inicial:( ) 0.04 e 10X 0 =+= resulta:

  • 4k 0 1 2 3 4 5 6

    ( )kX 10.000 4.000 5,560 5,560 5,778 5,773 5,774

    convergindo ao valor desejado aps 6 iteraes.

    O exemplo acima demonstra que a escolha de um valor adequado de primordial paraa convergncia do procedimento. Por inspeo, verifica-se que, quando se utiliza o chute inicialigual 10 ( ou + 10 na busca do ponto de mnimo), o procedimento s converge com valores de menores do que 0.06, alm disto verifica-se que este valor mnimo de pode depender dochute inicial adotado.

    Mtodos de Newton

    A aplicao do mtodo de Newton-Raphson busca do zero da funo gradiente, dorigem ao Mtodo de Newton de busca do extremo de funes contnuas com as duas primeirasderivadas contnuas. Este algoritmo traduzido pelo mtodo recursivo:

    [ ][ ])k( )k()k()1k( Xf XfXX =+ .Na realidade este procedimento atualiza o valor de do mtodo do gradiente em cada iterao ksegundo: [ ])k()k( Xf 1= , procedimento vlido tanto para a subida mais ngreme quanto para adescida mais ngreme.

    No exemplo ilustrativo anterior, tem-se: x6)x(f = , assim:

    ( ) ( ) ( )[ ]( ) ( )[ ]( )k2kk2kk1k X6 100X3X6 100X3XX += =+Adotando este algoritmo com ( ) 10X 0 = resulta:

    k 0 1 2 3 4

    ( )kX -10,000 -6,667 -5,833 -5,774 -5,774

    com ( ) 10X 0 += resulta:k 0 1 2 3 4

    ( )kX 10,000 6,667 5,833 5,774 5,774

    Convergindo a ambos os pontos em 4 iteraes, sem a necessidade de pesquisar o valor de .

  • 5Generalizao dos Mtodos para o Problema Multivarivel

    O mtodo do gradiente pode ser generalizado para uma funo escalar de n variveis deacordo com os algoritmos recursivos:

    Mtodo da subida mais ngreme ( ) ( ) ( )[ ]kk1k f XXX +=+Mtodo da descida mais ngreme ( ) ( ) ( )[ ]kk1k f XXX =+

    Onde : [ ]

    ( )( )

    ( )

    =

    n

    2

    1

    xf

    xfx

    f

    f

    x

    x

    x

    xM

    o Vetor Gradiente da funo f(x).

    Para ilustrar este procedimento a funo: ( ) ( ) ( )2221 5x93xf +=x considerada,esta funo apresenta um ponto de mnimo em

    =53

    x e o Vetor Gradiente desta funo :

    [ ] ( )( )

    =

    5x183x2

    f21x . O Mtodo da descida mais ngreme aplicado a esta funo traduzido

    pelo procedimento recursivo:

    +

    +=

    =

    ++

    )k(1

    )k(1

    )k(2

    )k(1

    )k(2

    )k(1

    )1k(2

    )1k(1

    X)181(90

    X)21(6

    5X18

    3X2

    X

    X

    X

    X

    considerando o chute inicial :

    =11)0(X e = 0.1 os seguintes resultados numricos so

    obtidos:

    k )k(X1)k(X2

    0 1 1

    1 1.4000 8.2000

    2 1.7200 2.4400

    MMM MMM MMM51 3.0000 5.0000

    Neste procedimento o valor de mantido constante. Uma modificao do mtodo pode serfeita no sentido de buscar, em cada iterao, o valor timo de [ esta modificao faz com que

  • 6o mtodo do gradiente seja conhecido por mtodo do gradiente com busca do tamanho dopasso - (em ingls line search) ]. Esta modificao aplicada ao exemplo ilustrativo anterioronde:

    +

    +=

    =

    ++

    )k(1

    )k(1

    )k(2

    )k(1

    )k(2

    )k(1

    )1k(2

    )1k(1

    X)181(90

    X)21(6

    5X18

    3X2

    X

    X

    X

    X

    assim o valor de f(x) no final do passo k seria:

    ( ) ( ) 2)k(122)k(

    12)k( 5X18193X21],[f

    +

    =X

    considerando ],[f )k( X uma funo apenas de , resulta:

    ( ) ( ) 2)k(12)k()k( 5X1813243X214],[f

    =

    X

    o valor timo de o que minimiza ],[f )k( X ou seja : 0],[fotimo

    )k(=

    X resultando em:

    2)k(2

    2)k(1

    2)k(2

    2)k(1

    otimo]5X[1458]3X[2

    ]5X[81]3X[

    ++= .

    Considerando o mesmo chute inicial :

    =11)0(X e = 0.1 os seguintes resultados numricos

    so obtidos:

    k )k(1X

    )k(2X

    timo0 1 1 0.0557

    1 1.2228 5.011 0.4880

    2 2.9573 4.9146 0.0557

    3 2.9991 5.0002 0.4880

    4 2.9992 4.9982 0.0557

    5 3.0000 5.0000 0.4880

    O procedimento recursivo neste caso converge em um nmero bem menor de iteraes,entretanto cada iterao mais dispendiosa(sob o ponto de vista computacional) podendo atresultar em um maior tempo computacional!

  • 7Para encerrar a apresentao de algoritmos tipo gradiente o Mtodo de Newton apresentado. Este procedimento quando aplicado a uma funo escalar de n variveis traduzidopelo procedimento recursivo:

    ( ) ( ) ( )[ ]{ } ( )[ ]k1kk1k f XXHXX = +onde: )(xH a Matriz Hessiana de f(x) que armazena os valores das derivadas segundas de f(x)

    segundo: jiij

    2

    ji

    2ij Hxx

    )(fxx

    )(fH ==

    = xx para i, j = 1, 2, ...., n.

    No exemplo ilustrativo anterior a matriz Hessiana uma matriz constante:

    =

    18002

    )(xH , isto ocorre devido ao fato de f(x) ser uma funo quadrtica. Neste caso, e

    apenas no caso da funo ser quadrtica, o Mtodo de Newton converge em apenas uma iteraoindependente do valor inicial adotado! . O custo computacional da implementao do Mtodo deNewton geralmente muito elevado pois envolve, em cada iterao, o cmputo das derivadasprimeiras e segundas da funo.

    Se o seu problema puder ser resolvido por um mtodo tipo gradiente, esta provavelmenteser sua a melhor alternativa. No entanto, nem todos os problemas podem ser tratados por ummtodo tipo gradiente. Seu uso inviabilizado sempre que:

    houver descontinuidades na funo objetivo f(x), ou houver mais de um mnimo(discutiremos esta caracterstica mais adiante);

    no se puder escrever uma funo objetivo f(x) diferencivel; calcular derivadas for invivel.Nestes casos, precisaremos de mtodos alternativos para resolver nossos problemas. Estes

    mtodos freqentemente sero mtodos heursticos de otimizao.

    voltar para INTRODUO

    1.3. Mtodos Heursticos

    Uma heurstica uma regra prtica derivada da experincia. No existe uma provaconclusiva de sua validade, e espera-se que a tcnica heurstica funcione muitas vezes mas nosempre. Uma heurstica nos ajudar a encontrar solues boas, mas no necessariamente timas.

    A maior parte do que fazemos no nosso dia-a-dia tanto profissional quanto pessoalenvolve a resoluo heurstica de problemas. Um exemplo: todos os dias, ao sair de casa para irpara o trabalho, voc precisa escolher que caminho fazer. Voc quer fazer o melhor caminho,mas a sua definio de melhor envolve vrios fatores: tempo de percurso, aspectos de segurana,qualidade da pavimentao, probabilidade de ficar preso em um monstruoso engarrafamento,

  • 8entre outros. Para fazer a otimizao do seu trajeto antes de sair de casa, voc precisaria seconectar Internet e buscar vrias informaes: verificar as condies de trfego de sua cidadenaquele momento, buscar por notcias relatando acidentes, verificar se h obras nos seuspercursos, etc. Com estas informaes, voc pesaria prs e contras de cada rota e atribuiria umanota (um nmero real) a cada um dos possveis percursos. O percurso com a melhor nota naquelamanh seria o escolhido.

    Certamente voc no faz isto, ou no teria tempo para o desjejum. Voc conhece, pelasua experincia, que em alguns horrios algumas estradas devem ser evitadas, e outrasfavorecidas. No mximo, voc toma seu desjejum ouvindo a uma rdio que d boletinsperidicos sobre o trnsito. Depois de algumas semanas, nem isto: voc simplesmente entra noseu carro e vai para o trabalho, usando a rota que, pela sua experincia acumulada, lhe parece amelhor.

    Suas heursticas vo provavelmente funcionar na maioria das vezes, mas nem sempre:algum dia voc pode ter problemas na rota escolhida. Mas voc no se incomoda: se ficar presoem um engarrafamento, aproveita para a oportunidade para ligar para sua me, que vivecobrando mais ateno.

    Um mtodo heurstico de otimizao pode ser determinstico ou estocstico, a dependerse empregar ou no nmeros sorteados aleatoriamente para executar seu algoritmo.

    Os anos 80 foram marcados pelo ressurgimento de mtodos heursticos de otimizaocomo ferramentas adicionais para tentar superar as limitaes das heursticas convencionais.Embora com filosofias distintas, estas metaheursticas possuem em comum caractersticas que asdistinguem das heursticas convencionais, como por exemplo, incluir ferramentas para tentarescapar das armadilhas dos timos locais e a facilidade para trabalhar em ambientes paralelos.So exatamente estes mtodos heursticos estocsticos e inspirados em fenmenos da natureza o objeto de estudo deste curso.

    voltar para INTRODUO

    1.4. Quando usar Otimizao Heurstica

    H duas reas que dependem fortemente de tcnicas de otimizao heurstica: aOtimizao Global e a Otimizao Combinatria. Estes dois tipos de problemas so freqentesna Engenharia Qumica.

    a) Otimizao Global

    No problema de Otimizao Local, busca-se um minimizador local da funo real F(x)onde x um vetor de variveis reais. Em outras palavras, busca-se um vetor x* tal que F(x*) F(x) para todo x prximo a x*. O problema de Otimizao Global consiste em encontrar um x*que minimiza F(x) para todos os possveis valores de x. Este um problema muito mais difcil, e

  • 9para a maioria das aplicaes mnimos locais j so bons o suficiente, particularmente quando ousurio pode usar sua experincia para delimitar a regio de busca e/ou fornecer um bom pontode partida para o algoritmo.

    H critrios para determinar se um ponto ou no um timo local. Por exemplo, parafunes reais o critrio de primeira derivada nula indica a existncia de um extremo, e o sinal dasegunda derivada indica se este extremo um mximo ou um mnimo. No entanto, no existequalquer critrio que permita identificar um mnimo global. Para entender o porqu, considere oproblema de escalar uma montanha com uma neblina muito densa. Mesmo com poucavisibilidade, fcil dizer que voc est no topo de uma montanha: ao tentar dar um passoadicional em qualquer direo, voc ver que a tendncia de descida. Voc certamente pararde caminhar e fincar sua bandeira. No entanto, como distinguir se voc est no topo de umamontanha muito alta ou apenas no topo de um pequeno morro, como o preguioso abaixo? Omorro um exemplo de mximo local, e um algoritmo que apenas faa buscas locais buscandopor solues melhores no conseguir escapar destas armadilhas para mtodos de otimizaoglobal.

    Os mtodos que empregam derivadas so sempre otimizadores locais da funo F(x). Afigura abaixo ilustra estes conceitos. Vamos observar a funo polinomial F(x) abaixo.

    = ( )F x 110000

    ( ) + x 10 ( ) + x 6 ( ) + x 5 ( ) + x 1 ( ) x 7 ( ) x 10

    Observe que existem mnimos locais em x = -8,834, x = -2,546 e x = 8,817, sendo esteltimo o mnimo global. A funo apresenta mximos locais em x= -5,518 e x = 3,914. Um

  • 10

    mtodo tipo gradiente no convergiria para o mnimo global desejado para qualquer condioinicial, como ilustrado nas figuras abaixo.

    se arbitrado x < -5,518, o mtodo convergiria para x = -8,834; se arbitrado -5,518 < x < 3,914, o mtodo convergiria para x = -2,546; se arbitrado x > 3,914, o mtodo convergiria para x = 8,817.

    Para problemas difceis como a Otimizao Global, os mtodos heursticos de busca tmsido largamente estudados e utilizados. No pode ser provado que estes mtodos encontrarouma soluo tima ou mesmo uma soluo boa. No entanto, muitas vezes eles encontram amelhor soluo conhecida, o que pode ser mais do que o suficiente para a aplicao em questo.

    b) Otimizao Combinatria

    Uma outra rea de aplicao de mtodos heursticos a rea de OtimizaoCombinatorial, ou Otimizao Combinatria. Combinatorial geralmente significa que o espaode estados discreto (e.g., um espao de tipos de molculas, ou caractersticas de um produto).Este espao pode ser finito ou apenas enumervel. Qualquer problema discreto pode ser vistocomo combinatorial.

    Talvez o mais conhecido dos problemas combinatoriais seja o Problema do CaixeiroViajante. Neste problema, imagina-se que um vendedor precise visitar um certo nmero decidades e ento voltar para casa. A tarefa do algoritmo determinar a seqncia tima de cidadesa percorrer, de forma que a distncia percorrida seja mnima. Observe na figura abaixo quealguns caminhos so melhores que outros, e determinar o menor caminho um problema muitodifcil. A funo objetivo a minimizar no PCV clssico a distncia percorrida, mas pode seradicionado um peso ao caminho. Assim, possvel que um trecho da estrada que esteja emboas condies seja favorecido em detrimento de um trecho perigoso ou com asfalto ruim, ouque setores onde se cobre pedgio sejam evitados.

  • 11

    Dois possveis trajetos para ligar 14 cidades: qual o melhor?

    Vrios problemas reais eimportantes podem ser interpretados comoum PCV: minimizao do tempo que umrob industrial gasta para soldar a carcaade um automvel; minimizao do custo(em tempo ou combustvel) da rota dadistribuio diria de um jornal;minimizao do tempo de abastecimento devrias bases militares envolvidas numaguerra, entre muitos outros. Tamanha aimportncia deste problema, a CompanhiaProctor & Gamble fez um concurso em1962 para determinar a menor rota quepassasse por 33 cidades dos EstadosUnidos. Houve empate entre muitoscandidatos, que puderam encontrar asoluo tima.

    O problema do caixeiro um clssico exemplo de problema de otimizao combinatria.A primeira coisa que podemos pensar para resolver esse tipo de problema reduzi-lo a umproblema de enumerao: achamos todas as rotas possveis e, usando um computador,calculamos o comprimento de cada uma delas e ento vemos qual a menor. ( claro que seacharmos todas as rotas estaremos contando-as, da podermos dizer que estamos reduzindo oproblema de otimizao a um de enumerao ).

    Para acharmos o nmero R(n) de rotas para o caso de n cidades, basta fazer um raciocniocombinatrio simples e clssico. Por exemplo, no caso de n = 4 cidades, a primeira e ltimaposio so fixas, de modo que elas no afetam o clculo; na segunda posio podemos colocar

  • 12

    qualquer uma das 3 cidades restantes, e uma vez escolhida uma delas, podemos colocar qualqueruma das 2 restantes na terceira posio; na quarta posio no teramos nenhuma escolha, poissobrou apenas uma cidade; consequentemente, o nmero de rotas 3 x 2 x 1 = 6. De modosemelhante, para o caso de n cidades, como a primeira fixa, o nmero total de escolhas quepodemos fazer (n-1) x (n-2) x ... x 3 x 2 x 1. De modo que, usando a notao de fatorial, R(n)= (n-1)!. Nossa estratgia consiste ento em: gerar cada uma dessas R(n) rotas, calcular ocomprimento total das viagens de cada rota e ver qual delas tem o menor comprimento total.Trabalho fcil para o computador, diria algum. Bem, talvez no. Vejamos o porqu.

    Suponha que esteja disponvel um computador muito rpido, capaz de fazer 1 bilho deadies por segundo (1 Gflops) . Isso parece uma velocidade imensa, capaz de tudo. No caso de20 cidades, o computador precisa apenas de 19 adies para dizer qual o comprimento de umarota, sendo capaz ento de calcular 109 / 19 = 53 milhes de rotas por segundo. Contudo, essaimensa velocidade um nada frente imensido do nmero 19! de rotas que precisar examinar.Acredite se puder, o valor de 19! 121 645 100 408 832 000 ( ou , aproximadamente, 1,2 1017

    em notao cientfica ). Consequentemente, ele precisar de 1,2 1017 / ( 53 milhes ) = 2,3 109

    segundos para completar sua tarefa, o que eqivale a cerca de 73 anos.

    A grande dificuldade dos problemas combinatoriais que a quantidade de possveissolues cresce com uma velocidade fatorial, e rapidamente o computador torna-se incapaz deenumerar todas as possveis solues do problema. Na tabela abaixo, estes clculos foramexecutados para alguns outros tamanhos de problema.

    nmerode cidades

    Capacidade[rotas/s]

    rotas a avaliar[rotas]

    tempocomputacional

    5 2,50 108 2,40 101 Insignificante10 1,11 108 3,63 105 ~ 0,003 s15 7,14 107 8,72 1010 ~ 3,3 s20 5,26 107 1,22 1017 73 anos25 4,17 107 6,20 1023 470 milhes de anosn 109/(n-1) (n-1)! (n-1)! / [109/(n-1)]

    Observe que o aumento no valor do n provoca uma ligeira reduo na capacidade docomputador em avaliar rotas (ela diminui apenas de um sexto ao aumentar n de 5 para 25), masprovoca um aumento gigantesco no tempo total de clculo (o nmero de rotas a avaliar muda daordem de 101 para 1023). Em outras palavras: a inviabilidade computacional devida presenada funo fatorial na medida do esforo computacional. Com efeito, se essa complexidade fosseexpressa em termos de um polinmio em n o nosso computador seria perfeitamente capaz desuportar o aumento de n. Confira isso na seguinte tabela, que corresponde a um esforocomputacional polinomial R( n ) = n5:

  • 13

    nmerode cidades

    Capacidade[rotas/s]

    rotas a avaliar , n3[rotas]

    tempocomputacional

    5 2,50 108 1,25 102 5,00 10-7 s10 1,11 108 1,00 103 9,00 10-6 s15 7,14 107 3,38 103 4,73 10-5 s20 5,26 107 8,00 103 1,52 10-4 s25 4,17 107 1,56 104 3,75 10-4 sn 109/(n-1) n3 n3 / [109/(n-1)]

    Ento o mtodo reducionista no prtico (a no ser para poucas cidades), mas ser queno pode-se inventar algum mtodo prtico (por exemplo, envolvendo esforo polinomial navarivel n) para resolver o problema do caixeiro? Apesar de inmeros esforos, ainda no foiencontrado este mtodo. Na verdade, a existncia ou no de um mtodo polinomial para resolvero problema do caixeiro viajante um dos grandes problemas em aberto da Matemtica namedida em que S. A. COOK (1971) e R. M. KARP (1972) mostraram que uma grandequantidade de problemas importantes podem ser reduzidos, em tempo polinomial, ao problemado caixeiro.

    Consequentemente: se descobrirmos como resolver o problema do caixeiro em tempopolinomial ficaremos sendo capazes de resolver, tambm em tempo polinomial, uma grandequantidade de outros problemas matemticos importantes; por outro lado, se um dia algumprovar que impossvel resolver o problema do caixeiro em tempo polinomial no nmero decidades, tambm se ter estabelecido que uma grande quantidade de problemas importantes notem soluo prtica.

    No se conhece um algoritmo polinomial para encontrar a soluo tima de um PCV,mas possvel construir um algoritmo polinomial para testar se um conjunto de soluespropostas a tentativas so solues do problema. E o PCV representante de uma classeenorme de problemas, que podem ser reduzidos a ele. Costuma-se resumir essas propriedades doproblema do caixeiro dizendo que ele pertence categoria dos problemas no-determinsticospolinomiais completos, ou NP - completos.

    Para problemas de otimizao combinatria, no h algoritmos que levem soluotima em um tempo vivel. Assim, usam-se sempre mtodos heursticos determinsticos oualeatrios - para chegar a solues que se possam por em prtica, ainda que no sejam timas(ou no tenhamos provas de que o so). O algoritmo que se utiliza para a obteno de soluesaproximadas tem como finalidade que as solues sejam encontradas num tempo razovel paraos fins prticos a que se destina, e que a sua qualidade seja o melhor possvel tendo em conta aslimitaes de tempo.

  • 14

    O problema do caixeiro viajante serve atualmente de problema padro (benchmark) paratestar algoritmos de otimizao combinatria.

    voltar para INTRODUO

    1.5. Mtodos de Otimizao Natural: analogias com a natureza

    A partir da dcada de 1950, foram criados vrios algoritmos heursticos na tentativa desimular fenmenos biolgicos. Estes algoritmos, que so na verdade algoritmos de otimizao,tm alguns aspectos em comum. O mais marcante seu carter aleatrio, na tentativa de simularo acaso que parece governar processos distintos na natureza, desde a evoluo das espcies at ocomportamento social dos animais.

    Na dcada de 1980, com a exploso da computao, se tornou vivel empregar estesalgoritmos para a otimizao de funes e processos quando mtodos mais tradicionais notinham sucesso: problemas de otimizao combinatria (e.g. problema do caixeiro viajante eproblemas de colorao de mapas), problemas onde a funo objetivo no pode ser expressamatematicamente (e.g. identificao de suspeitos) ou problemas com vrios mnimos locais.

    Vrios mtodos heursticos de otimizao surgiram motivados por fenmenos danatureza, como o Recozimento Simulado (Simulated Annealing), os Algoritmos Genticos, asTcnicas de Enxame (Swarm Algorithms) e as tcnicas de Otimizao por Colnia de Formigas(Ant Colony Optimization).

    a) Recozimento Simulado (Simulated Annealing)

    O mtodo de Recozimento Simulado (Simulated Annealing) um tipo de mtodo debusca local de implementao extremamente simples, que se origina do processo de recozimentode metais (METROPOLIS et al., 1953; EGLESE, 1990). Neste processo, os metais soaquecidos acima de seu ponto de fuso e resfriados lentamente, de forma a se organizarem emestruturas cristalinas de mnima energia. Em mtodos de busca local clssicos, a partir dasoluo atual gerada uma nova soluo-tentativa, e esta substitui a anterior se o valor da funoobjetivo (energia) associada for menor. Na tcnica de recozimento simulado, transies parasolues de maior energia so permitidas segundo uma certa probabilidade, evitando assim que omtodo fique preso na bacia de atrao de um mnimo local. Esta probabilidade est ligada temperatura do sistema fsico original, e diminui com o passar das iteraes. A estratgia deresfriamento do mtodo um dos aspectos mais crticos em sua implementao. Como omtodo trabalha com uma soluo apenas, sugerida por vrios autores a execuo em paralelode vrias cpias do algoritmo partindo de condies iniciais distintas.

  • 15

    b) Algoritmos Genticos (AG)

    Algoritmos Genticos (AG) so mtodos relativamente recentes que no usam qualquerinformao de derivada e, por isto, apresentam boas chances de no serem aprisionados emtimos locais. Provas completas de sua convergncia no foram demonstradas ainda. No entanto,sua aplicao em problemas prticos geralmente leva para o timo global ou pelo menos parasolues mais satisfatrias que as fornecidas por outros mtodos. Este mtodo se baseia noprocesso de seleo natural e evoluo da espcies, principalmente no paradigma desobrevivncia dos mais aptos. Os indivduos que apresentam melhor adequao (menor valor dafuno objetivo) apresentam maior probabilidade de se reproduzirem e passarem para a prximagerao seus genes bem sucedidos. No entanto, todos os indivduos (aptos ou no) esto sujeitosa mutaes aleatrias de tempos em tempos.

    Em sua implementao, os Algoritmos Genticos requerem a definio de vrios parme-tros que afetam o desempenho do algoritmo de vrias formas. O tamanho da populao (onmero de indivduos formando a populao) deve ser suficientemente grande para garantirdiversidade suficiente e assim cobrir bem o espao de solues. Outros parmetros como aprobabilidade de cruzamento, taxa de mutao e mecanismos de mutao e cruzamento afetam oAG de forma menos significativa. No h valores de parmetros reconhecidamente timos,apenas faixas sugeridas de trabalho (MICHALEWICZ, 1996). Mesmo sendo muito mais rpidoque mtodos tipo busca exaustiva, ainda so mtodos muito lentos se comparados com mtodosdo tipo gradiente, j que no empregam qualquer informao referente derivada da funoobjetivo (GOLDBERG, 1989).

    c) Tcnicas de Enxame (Particle Swarm Optimization, PSO)

    As tcnicas de enxame (KENNEDY e EBERHART, 1995) exploram a analogia com ocomportamento social de animais, como enxames de abelhas, cardumes de peixes ou bandos depssaros. Nestes, cada indivduo do grupo toma suas prprias decises, mas sempre de algumaforma baseado na experincia do lder do grupo. Matematicamente, cada indivduo do bando considerado um ponto do espao n-dimensional e a velocidade deste indivduo, a direo debusca a ser usada nesta candidata a soluo. A direo de busca em uma iterao determinadaatravs da ponderao entre a experincia daquela soluo e da melhor soluo j encontradapelo grupo (metaforicamente, a soluo lder). Ressalta-se que o peso de inrcia w empregadopara controlar o impacto da histria prvia de velocidade na velocidade atual. Um maior valor dew favorece a explorao global, enquanto um peso de inrcia menor tende a facilitar exploraolocal. Seleo satisfatria do peso de inrcia w fornece, ento, um equilbrio entre capacidade deexplorao global e local. Os principais parmetros para o mtodo so as ponderaes entre asexperincias individual e coletiva (c1 e c2) e o fator de inrcia w.

  • 16

    d) Ant Colony(AC)

    As tcnicas de colnia de formigas ( DORIGO, MANIEZZO e COLORNI, 1996)baseiam-se no comportamento das formigas que apresentam a formidvel capacidade de,malgrado serem insetos praticamente cegos, conseguirem estabelecer o menor caminho entre oformigueiro e a fonte de alimento e retornar da mesma forma. Etologistas ( segundo o Houaiss 2001- aquele que se dedica ao estudo do comportamento social e individual de animais!)verificaram que atravs de uma substncia qumica chamada feromnio que as formigas trocaminformaes relativas aos caminhos. Uma formiga em movimento secreta uma certa quantidadede feromnio no solo, criando assim uma trilha desta substncia biologicamente muito ativa.Enquanto uma formiga isolada se move de uma forma absolutamente aleatria, uma formigaencontrando uma trilha j percorrida por outra(s) formiga(s) detecta seu rastro e decide com altaprobabilidade seguir o mesmo caminho, reforando desta forma a trilha escolhida com seuprprio feromnio. Este comportamento coletivo cooperativo classificado como autocataltico,pois quanto maior o nmero de formigas percorrendo um caminho mais atrativo torna-se omesmo. Este processo ento caracterizado por uma retroalimentao ( feedback) positiva, umavez que a probabilidade de uma formiga escolher um determinado caminho tanto maior quantomaior for o nmero de formigas que j o tenha percorrido.

    A tabela seguinte mostra a popularizao destes mtodos junto comunidade cientfica.V-se, pelo nmero de artigos publicados em peridicos indexados internacionais, que os trsprimeiros so mais tradicionais. Os recentes PSO e AC ainda esto sendo mais discutidos emconferncias e congressos.

    at1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 total

    SA 0 2 12 11 25 17 19 26 36 76 96 93 95 83 88 84 83 846Tabu 0 0 0 0 0 1 1 0 4 13 27 33 49 36 22 26 33 245GA 0 0 0 0 3 2 7 26 22 145 206 278 269 274 296 363 259 2150AC 0 0 0 0 0 0 0 0 0 0 0 1 0 2 5 4 3 15

    PSO 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 4

    voltar para INTRODUO

    1.6. Mtodos Hbridos

    Mtodos puramente heursticos incorporam pouca informao do sistema de equaes, econseqentemente no so os mais eficientes do ponto de vista computacional (especialmentenas cercanias da soluo onde mtodos de busca local so capazes de resolver o problema).Desta forma, mtodos hbridos de algoritmos de busca local e heursticos de otimizao parecemmais apropriados. freqentemente reportada na literatura a capacidade destes mtodos hbridosde escapar de bacias de atrao de mnimos locais ainda retendo boa eficincia computacional(GOLDBERG, 1989).

  • 17

    O tipo de mtodo hbrido mais freqentemente citado aquele em que um mtodoheurstico utilizado para gerar um certo nmero de boas solues, candidatas soluo tima.Ento, um mtodo de busca local utilizado para transformar estas solues em um conjunto demnimos locais. Esta populao melhorada realimentada no algoritmo heurstico at que ocritrio de terminao do algoritmo seja satisfeito. Vrias variaes deste mtodo podem sercriadas, modificando o nmero de candidatas otimizadas e a freqncia desta otimizao.

    Tais hbridos, ao invs de apresentarem operadores ou representaes padro, incorporamo conhecimento do problema a resolver por parte do usurio, de forma a produzir soluesmelhores e produzi-las ainda mais rapidamente. Mesmo sendo menos genricos e deimplementao um pouco mais sofisticada, sua utilizao em problemas reais, ou de dimensesmaiores, vm se mostrando bem mais eficiente, mais do que compensando suas possveisdesvantagens.

    Um exemplo de aplicao bem sucedida de um algoritmo gentico hbrido foiapresentado por KRAGELUND (1997). O problema foi definir escalas de trabalho de mdicosdurante as frias de vero obedecendo a vrias restries, classificadas em leves (apenaspreferncias, no deveriam mas poderiam ser violadas) e severas (no poderiam ser violadas deforma alguma). Para resolver o problema, foi utilizado um hbrido de AG com um mtodo debusca local. Sua implementao foi feita atravs de um operador que atua em 3 etapas:

    localizar todas as restries violadas por este quadro de horrios (candidato a soluo) selecionar randomicamente uma das restries violadas usar um mtodo de otimizao local simples, que varia com a restrio, e reduzir sua

    violao.

    Segundo o autor, mtodo simples de busca local j so suficientes para resultadossatisfatrios serem obtidos. Os algoritmos hbridos mostraram-se superiores aos simples Paraexemplificar, foram compilados alguns resultados apresentados pelo autor na tabela a seguir,onde os nmeros representam violaes s restries leves e severas, perfazendo 397 e 25restries respectivamente. O critrio de parada correspondeu a 120 minutos de computao.

    Compilao dos resultados apresentados por KRAGELUND (1997)

    Mtodo melhor mdia piorEmpregado severas leves severas leves severas leves sucesso

    Busca Randmica 106 23 114,6 20,9 121 21 0 / 20Steepest Descent 20 16 26,7 17,6 32 19 0 / 20AG + Busca Local, comum 0 4 1,4 4,3 3 4 1 / 20AG + Busca Local, subpop. 0 2 0,6 3,5 2 2 10 / 20

    voltar para INTRODUO

  • 18

    1.7. Quando no usar Otimizao Heurstica

    Se for possvel empregar um mtodo tipo gradiente para resolver o seu problema, ele semdvida ser o algoritmo mais eficiente que h, j que ele incorpora muito mais informao sobreo espao de busca.

    Os mtodo heursticos so freqentemente chamados de methods of last resort, algo aser empregado quando tudo o mais no funciona. Isto porque estes mtodos so via de regralentos, ou pelo menos muito mais lentos para resolver o mesmo problema que um mtodo queempregue derivadas. No entanto, muitas vezes estes mtodos so os nicos de que se dispem, econsequentemente so os melhores!

    Com o avano da capacidade dos computadores e das linguagens de programao, ocusto computacional associado a estes mtodos se tornou muito menos assustador, e qualquer PCconsegue resolver um problema razovel em alguns minutos. Por exemplo, considere o seguinteexemplo apresentado por ZUBEN: resolver o problema do caixeiro viajante para 100 cidades. Oautor empregou um Algoritmo Gentico, e foram testados 400.000 solues dentre as possveis9,33 10155. O tempo de simulao em um Pentium III 450 MHz foi de 287 segundos, poucomenos de 5 minutos. As figuras abaixo, reportadas pelo autor, mostram a evoluo da respostaobtida com o nmero de iteraes do algoritmo.

    Melhor indivduo na populao inicial Melhor indivduo aps 500 geraes

    Melhor indivduo aps 2000 geraes Melhor indivduo aps 4000 geraes

    voltar para INTRODUO

  • 19

    1.8. Cmputo de nmeros pseudo-aleatrios

    Usar um computador que apenas segue instrues deterministicamente pr-programadas para sortear nmeros verdadeiramente aleatrios soa como uma contradio. Poristo, os nmeros gerados por computador so mais apropriadamente denominados de nmerospseudo-aleatrios, ou pseudo-randmicos.

    Como destacado anteriormente, as metaheursticas propostas inspiradas na natureza tmem comum seu carter estocstico. Isto significa que vrias decises do algoritmo se baseiam emnmeros sorteados aleatoriamente segundo alguma distribuio de probabilidades. H vriasdistribuies contnuas de probabilidade, e a funo que as caracteriza a funo Densidade deProbabilidade (DP). A probabilidade de que um nmero verdadeiramente aleatrio encontre-seno intervalo fechado [x1,x2] dada pela integral abaixo:

    ( ) = 12

    )(21x

    xdxxDPxxxP

    que corresponde rea sob a curva DP(x) entre x1 e x2.

    A distribuio mais usada pelos mtodos de otimizao estocsticos a distribuiouniforme, segundo a qual qualquer nmero dentro do domnio [a,b] tem a mesma chance de sersorteado. Matematicamente, a funo densidade de probabilidade da distribuio uniforme dada por:

    ( ) ( ) =

    otherwise

    bxaabxDP

    0

    1

    A probabilidade de sortear um nmero dentro de um intervalo [c,d] proporcional ao tamanhodeste intervalo, e igual frao do domnio que este intervalo representa. Em outras palavras,

    ( )abcddx

    abdxcP

    d

    c = =

    1

    Algumas aplicaes tambm usam a distribuio normal, segundo a qual um valor x to maisprovvel de ser sorteado quanto mais prximo for da mdia , e desvios para mais ou paramenos so igualmente provveis. A funo densidade de probabilidade possui um forma de sinoe representada pela funo:

    ( )

    =

    2

    21exp

    21

    xxDP

    A probabilidade de sortear um nmero dentro de um intervalo [c,d] no proporcional aotamanho do intervalo, e calculada por:

  • 20

    ( )

    ==22

    1 xerfdx)x(DPdxcPd

    c

    onde erf(x) a funo erro. H vrias tabelas para calcular esta integral, e todos os softwaresmatemticos possuem a funo erro embutida. As figuras abaixo mostram a forma das funesdensidade de probabilidade para estas duas distribuies.

    Qualquer que seja a distribuio de probabilidades do seu interesse, apenas nmerosinteiros uniformemente distribudos so gerados nos computadores. Algoritmos especficos(tambm chamados de filtros) so usados para converter os nmeros de uma distribuio emoutra. (Veja os exerccios 4 e 5).

    Um gerador de nmeros pseudo-aleatrios em um computador digital uma funodeterminstica chamada funo de transio que produz uma seqncia de nmeros, os quaisemulam uma varivel aleatria uniformemente distribuda. Como esta funo leva de um nmeropara outro e h uma quantidade finita de nmeros que se pode representar no computador, estafuno peridica. O que se deseja que ela tenha o maior perodo possvel, idealmente daordem da quantidade de nmeros representveis.

    Esta funo implementada como rand k+1 = f (rand k), e necessrio fornecer um nmero(rand 0) para dar partida no algoritmo. Este nmero conhecido como semente, e sua definio muito importante. Se for usada a mesma semente em duas execues sucessivas de um cdigo,exatamente a mesma seqncia de nmeros aleatrios ser gerada. Esta caracterstica usadaquando se quer comparar o efeito de algum parmetro do mtodo. Na maioria das vezes, porm,esta repetio deve ser evitada. Muitos trabalhos sugerem construir o nmero semente a partir dadata e hora da execuo do programa, de forma que cada execuo do seu algoritmo tenhanmeros aleatrios diferentes.

    No uma tarefa simples desenvolver um gerador de nmeros pseudo-aleatrios, e halguns algoritmos reportados na literatura. importante que se use um bom gerador de nmerosaleatrios. Ser bom, do ponto de vista do usurio, significa que: (i) os nmeros gerados seguem adistribuio de probabilidades indicada; (ii) os nmeros gerados no so correlacionados; (iii) o

  • 21

    gerador possui repetitividade, ou seja, gerar a mesma seqncia de nmeros aleatriossempre que receber a mesma semente; (iv) seu custo computacional baixo.

    Qualquer software matemtico possui um ou mais geradores de nmeros randmicosembutidos, e uns certamente so melhores que outros. Para programadores em linguagensFortran e C, h subrotinas descritas e/ou implementadas nos pacotes como LINPACK eLAPACK e nos manuais tipo Numerical Recipes. Abaixo encontra-se a implementao emFortran de um destes algoritmos.

    c#######################################################################c SUBROUTINE RAN3c Returns a uniform random deviate between 0.0 and 1.0. Set idum toc any negative value to initialize or reinitialize the sequence.c This function is taken from W.H. Press', "Numerical Recipes" p. 199.c####################################################################### subroutine ran3(idum,rand) implicit double precision (a-h,m,o-z) parameter (mbig=4000000.,mseed=1618033.,mz=0.,fac=1./mbig)

    c According to Knuth, any large mbig, and any smaller (butc still large) mseed can be substituted for the above values.

    Dimension ma(55) Data iff /0/ if (idum.lt.0 .or. iff.eq.0) then iff=1 mj=mseed-dble(iabs(idum)) mj=dmod(mj,mbig) ma(55)=mj mk=1 do i=1,54 ii=mod(21*i,55) ma(ii)=mk mk=mj-mk if(mk.lt.mz) mk=mk+mbig mj=ma(ii) enddo do k=1,4 do i=1,55 ma(i)=ma(i)-ma(1+mod(i+30,55)) if(ma(i).lt.mz) ma(i)=ma(i)+mbig enddo enddo inext=0 inextp=31 idum=1 endif inext=inext+1 if(inext.eq.56) inext=1 inextp=inextp+1 if(inextp.eq.56) inextp=1 mj=ma(inext)-ma(inextp) if(mj.lt.mz) mj=mj+mbig ma(inext)=mj rand=mj*fac returnC-----end of subroutine ran3------------------------------------------ end

    voltar para INTRODUO

  • 1

    1. INTRODUO PARTE 2

    1.9. Mtodos puramente estocsticos

    a) Busca Estocstica Simples

    Neste mtodo se executa uma simples busca aleatria dos valores das

    variveis independentes da funo que permanea dentro dos seus respectivos

    intervalos de validade. Assim seja, por exemplo, a busca do mnimo de uma funo

    escalar de n variveis:

    ( )xf sendo nx tal que max,min, iii xxx para i = 1, ..., n No presente procedimento, cada novo ponto de busca gerado segundo:

    ( ) ( ) nirndxxxx iiii , ,1 para 1min,max,min, L=+= , onde rnd(1) um gerador de nmeros aleatrios no intervalo [0,1] com distribuio uniforme.

    Aps o novo valor de x ser gerado a funo ( )xf calculada e confrontada com o melhor valor encontrado at o momento, caso o novo valor da funo for

    menor que o menor valor registrado este ltimo ponto e o novo valor da funo so

    armazenados como sendo, respectivamente, o melhor ponto e o melhor valor de f. O

    nmero de vezes que tal procedimento repetido escolhido pelo usurio.

    A forma algortmica do mtodo apresentada a seguir:

    Etapa 0: Especificao de N : nmero de pontos de busca e gerao do ponto inicial:

    ( ) ( ) ( ) nirndxxxx iiii , ,1 para 1min,max,min,0 L=+= , calcule ( )( )0xffmelhor = e ( )0xx =melhor ;

    Etapa 1: Execute N vezes

    ( ) ( ) nirndxxxx iiinovoi , ,1 para 1min,max,min,, L=+= e ( )novonovo ff x= .

  • 2

    Compare melhornovo ff com , caso melhornovo ff < faa novomelhor xx e novomelhor ff e caso melhornovo ff nada faa! .

    Etapa 2: Informe os valores de melhorx e melhorf .

    Os resultados finais obtidos [os valores de melhorx e melhorf ] sero diferentes

    cada vez que se rodar o programa computacional correspondente, porm tal

    procedimento bem robusto e sempre apresentar um resultado. So duas as

    principais vantagens do mtodo o algoritmo de fcil implementao e adequado para

    funes multimodais. Em muitas situaes este algoritmo pode ser considerado como

    de explorao inicial do espao de busca vivel e o ponto final fornecido pode ser

    adotado com o ponto inicial para um procedimento de otimizao mais sofisticado ou

    rigoroso. A principal desvantagem do algoritmo sua total ausncia de aprendizado,

    nada aprendendo com as sucessivas buscas, pois procura de forma absolutamente

    estpida novos pontos no incorporando informao alguma das buscas anteriores.

    Outra possvel desvantagem do procedimento a possibilidade de haver regies do

    espao vivel de busca que no tenham sido adequadamente varridas, havendo a

    possibilidade de exatamente em uma dessas regies se encontrar o valor mnimo da

    funo. Para reduzir o efeito dessas duas vantagens duas novas formas do mtodo de

    busca aleatria so sugeridas, sendo apresentadas a seguir.

    b) Busca Estocstica em Malha Uniforme

    Neste mtodo se executa uma simples busca aleatria dos valores das

    variveis independentes da funo em torno de pontos uniformemente distribudos

    dentro dos intervalos de validade de cada uma das variveis independentes. Assim

    seja: max,min, iii xxx para i = 1, ..., n gera-se inicialmente a malha uniforme:

    ( ) nimkxkxx iiiki , ,1 e , ,0 para min, LL ==+= . Onde:

    =

    i

    iii m

    xxx min,max, e

    compondo-se os pontos da malha com todas as combinaes possveis das variveis

    [o nmero total de pontos da malha : =

    +n

    iim

    1

    )1( ].

  • 3

    A seguir, em torno de cada um dos pontos da malha, executam-se N buscas aleatrias

    de acordo com:

    ( ) ( ) 1, ,0 e , ,1 para 1, ==+= iikinovoi mknixrndxx LL , onde rnd(1) um gerador de nmeros aleatrios no intervalo [0,1] com distribuio uniforme,

    procedendo-se em cada uma destas buscas de forma anloga ao procedimento 1 .

    A forma algortmica do mtodo, para duas variveis independentes,

    apresentada a seguir:

    Etapa 0: Especificao de N : nmero de buscas em torno de cada ponto da malha; m1

    e m2 : nmero de pontos da malha uniforme em cada uma das duas direes e gerao

    do ponto inicial:

    ( ) ( ) ( ) 2 e 1 para 1min,max,min,0 =+= irndxxxx iiii , calcule ( )( )0xffmelhor = e ( )0xx =melhor , zere o contador fazendo 0=k , calcule

    =

    1

    min,1max,11 m

    xxx ,

    =

    2

    min,2max,22 m

    xxx , min,2inf,2min,1inf,1 , xxxx eriorerior e gere os pontos da malha

    de acordo com:

    Para i de 1 a m1

    Para j de 1 a m2

    1+ kk ( ) ( ) , inf,22inf,11 eriorkeriork xxxx

    2inf,2inf,2 xxx eriorerior +

    1min,1inf,1 xxx erior +

    min,2inf,2 xx erior

  • 4

    Zere novamente o contador fazendo 0=k ;

    Etapa 1: Para i de 1 a [ ]21 mm faa 1+ kk

    Execute N vezes

    ( ) 2 e 1 para 1)(, =+= ixrndxx ikinovoi e ( )novonovo ff x= . Compare melhornovo ff com , caso melhornovo ff < faa novomelhor xx e novomelhor ff e caso melhornovo ff nada faa! .

    Etapa 2: Informe os valores de melhorx e melhorf .

    c) Busca Estocstica Adaptativa

    Neste mtodo se executa uma simples busca aleatria dos valores das

    variveis independentes da funo em torno do melhor ponto encontrado at o

    momento de uma nova busca se iniciar. Procura-se tambm neste procedimento se

    reduzir o tamanho do intervalo de busca medida que melhores valores da funo

    objetivo so encontrados, segundo uma estratgia heurstica.

    No presente procedimento, cada novo ponto de busca gerado segundo:

    ( ) ( )[ ] nirndxxxx iimelhorii , ,1 para 1- 12 kmin,max,, L=+= , onde rnd(1) um gerador de nmeros aleatrios no intervalo [0,1] com distribuio uniforme e k um

    nmero inteiro mpar [ sugere-se adotar o valor de k igual a 3 ou 5 no incio do

    processo recursivo, aumentando-se o valor para 7 ou 9 medida que o valor da funo

    f vai se aproximando do mnimo].Na realidade o procedimento pode conduzir a

    valores das variveis fora da regio vivel devendo assim se proceder:

    ( ) ( )[ ] nirndxxxx iimelhorii , ,1 para 1- 12 kmin,max,, L=+= , a seguir calcula-se:

  • 5

    >

    nTmax?

    FIM

    s

    s

    n

    s

    s

    n

    n

    Figura 3 Algoritmo bsico do Recozimento Simulado

    voltar para RECOZIMENTO SIMULADO

    2.3. A Programao de Recozimento

    Quando a temperatura muito baixa, o algoritmo aceita apenas transies que melhoram asoluo atual. Este algoritmo conhecido como um hill climber (escalador de morros, emtraduo literal). O sistema rapidamente encontrar um mnimo local e nenhuma melhora adicionalser conseguida, independente do nmero de iteraes permitidas. Por outro lado, se a temperatura

  • 5for muito grande, praticamente qualquer transio aceita, e o algoritmo se comportar como umalgoritmo de busca aleatria simples.

    Pode ser demonstrado que, se a temperatura for reduzida de forma lenta o suficiente (oinverso do logaritmo do tempo) a probabilidade de o mtodo levar ao mnimo global em T=0 tendea um. Este esquema de resfriamento to lento torna a minimizao de qualquer funo invivel, e ointeresse nesta prova de convergncia mais cientfico que prtico.

    Qualquer funo montona decrescente pode ser usada como funo de resfriamento. Umaescolha muito usual a reduo linear da temperatura, fazendo T k+1 = T k. O parmetro variatipicamente entre 0,7 e 0,95. Funes exponenciais de resfriamento so tambm utilizadas naliteratura da rea.

    Como definir os parmetros do algoritmo? Como uma regra geral, o nmero de temperaturasempregadas (n1) deve ser pequeno algo entre 10 e 20 costuma ser suficiente. J o nmero deiteraes com a mesma temperatura (n2) deve ser um pouco maior, para que se d tempo suficienteao algoritmo para buscar o espao de solues com aquela temperatura. Se este nmero for grandedemais, no s o esforo computacional ser desnecessariamente alto com o algoritmo poder ficarvagando pelo espao, sem se concentrar em uma regio mais promissora. Algo entre 20 e 100iteraes so empregadas, a depender da complexidade do espao de solues e dos recursoscomputacionais disponveis.

    Apenas em uma coisa todos os trabalhos da rea concordam: experimentao fundamentalpara que se definam os parmetros do mtodo.

    voltar para RECOZIMENTO SIMULADO

    2.4. Critrio de Aceitao de Solues de Maior Energia

    O critrio proposto por Metropolis consiste em avaliar a diferena de energia entre a soluoatual e a nova soluo e calcular E k+1-E k. Se negativo, isto significa que a soluo atual melhor que a anterior, e esta ltima substituda. Se positivo, a probabilidade de esta soluo demaior energia substituir a anterior dada por ( )T/expp = .

    Transies muito ruins (ou seja, com grande) so menos provveis que as transiespouco ruins. Quanto menor a temperatura, menos provvel que uma transio ruim seja aceita.As figuras abaixo mostram o comportamento da funo probabilidade. Observe que para um valorde /T igual a 5 ( 5 vezes maior que a temperatura) a probabilidade de aceitao praticamentenula, e que a probabilidade de aceitao de 50% corresponde a /T=ln(2)=0,69.

  • 6

    Figura 4 Probabilidade de aceitao de uma transio de maior energia:(a) P x para vrios valores de temperatura T; (b) P x (/T).

    Como implementar este critrio probabilstico de aceitao? Primeiramente sorteado umnmero randmico r a partir de uma distribuio uniforme no intervalo [0,1]. Considere que prepresenta a probabilidade de a transio para este novo ponto ser aceita. A probabilidade donmero sorteado r ser menor ou igual do que p, tambm contido no intervalo [0,1], (100p)%. Esta uma caracterstica da distribuio uniforme que foi discutida na Aula 1. Logo, se r

  • 7Figura 5- Possveis estruturas de vizinhana no plano real (quadriculado de x).

    A definio da estrutura de vizinhana em problemas de otimizao de estruturas demolculas menos intuitiva, uma possibilidade seria definir uma molcula vizinha como umamolcula em que todos os grupos funcionais so iguais exceto um. A figura abaixo mostra doispares de molculas vizinhas.

    Figura 6- Pares de molculas vizinhas.

    voltar para RECOZIMENTO SIMULADO

    2.6. Aspectos de Implementao do Algoritmo

    Uma caracterstica do recozimento simulado: no h qualquer garantia de que o ltimoponto visitado ser o melhor ponto j visitado pelo algoritmo. Uma modificao simples e efetivano algoritmo original consiste em registrar em uma varivel parte este melhor resultadoencontrado. Assim, possvel que o seu problema seja resolvido mesmo com uma programao derecozimento pobre.

    A figura abaixo mostra o resultado de execues do cdigo onde, por uma escolhainadequada de parmetros, o mnimo global da soluo foi visitado mas abandonado em seguida.Para evitar este problema, a melhor soluo encontrada ao longo da execuo do algoritmo foiregistrada parte. Observe que o timo global foi encontrado nas duas situaes.

  • 8 Figura 7 Possveis resultados de otimizao onde o timo foi visitado e abandonado

    Uma outra sugesto freqente na literatura consiste em executar vrias vezes o algoritmocom o mesmo grupo de parmetros, partindo de diversas condies iniciais, seqencialmente ou emparalelo. Assim, um possvel erro na seleo do chute inicial, do gerador de nmeros aleatrios ouda programao de resfriamento tem seu efeito suavizado. O preo a pagar o drstico aumento nocusto computacional.

    voltar para RECOZIMENTO SIMULADO

    2.7. Exemplo Ilustrativo

    Para entender o significado dos parmetros do mtodo, considere o problema deminimizao da funo F(x) apresentada abaixo.

    = ( )F x 110000

    ( ) + x 10 ( ) + x 6 ( ) + x 5 ( ) + x 1 ( ) x 7 ( ) x 10

    Figura 8 Espao de busca da funo teste

    Observe que existem mnimos locais em x = -8,834, x = -2,546 e x = 8,817, sendo esteltimo o mnimo global. A funo apresenta mximos locais em x= -5,518 e x = 3,914. Um mtodo

  • 9tipo gradiente no convergiria para o mnimo global desejado para qualquer condio inicial: se arbitrado x < -5,518, o mtodo convergiria para x = -8,834; se arbitrado -5,518 < x < 3,914, o mtodo convergiria para x = -2,546; se arbitrado x > 3,914, o mtodo convergiria para x = 8,817.

    Figura 9 Extremos da funo teste

    Foi implementado o algoritmo de Recozimento Simulado apresentado na Figura 3. Foi

    empregado um esquema simples de resfriamento, tal que T k+1 = T k. Os parmetros empregadosforam =0,85, T0=30, n1 = 15 e n2 = 90. O cdigo implementado em Maple est apresentado nahomepage do curso.

    Os resultados abaixo correspondem a algumas execues do algoritmo. Cabe lembrar que a

    cada execuo o cdigo levar a uma seqncia de tentativas diferente por conta dos nmeros

    aleatrios envolvidos. Isto justifica a diversidade dos grficos. Foi implementada a modificao

    comentada no texto: o melhor ponto visitado ao longo da execuo do algoritmo armazenado.

    Assim, esto mostrados nos grficos abaixo o ponto de partida do algoritmo, o resultado final

    fornecido (ponto de parada do algoritmo) e o melhor ponto visitado ao longo da execuo.

    Apenas como um teste, foi alterado o parmetro que controla a velocidade deresfriamento. Observe que um resfriamento rpido demais levou o mtodo a ficar preso em um

    mnimo local (Figura 10a). O resfriamento na taxa adequada levou o algoritmo ao mnimo global

    desejado (Figura 10b).

    Figura 10 Possveis resultados de otimizao empregando Recozimento Simulado: (a) =0,75; (b) =0,80.

  • 10

    O resfriamento lento demais, mantidos todos os demais parmetros, fez com que o algoritmo

    ficasse sempre com a temperatura muito alta. Com isto, foi feita pouca explorao local, e o

    algoritmo passou a maior parte do tempo se comportando como um algoritmo de busca aleatria

    exaustiva. Encontrar o mnimo questo de sorte: o mtodo pode ou no passar por perto do

    mnimo local, como se observa nas Figuras 11a e 11b.

    Figura 11 Possveis resultados de otimizao empregando Recozimento Simulado com =0,90

    No h um conjunto de parmetros reconhecidamente bom para o algoritmo, que se aplique

    a qualquer sistema sendo otimizado. Experimentao fundamental para o sucesso da otimizao.

    voltar para RECOZIMENTO SIMULADO

  • 13. ALGORITMOS GENTICOS

    PARTE 1

    3.1 Analogia Fsica: a evoluo das espcies3.2 A Traduo Matemtica: o algoritmo bsico3.3 Codificao dos Indivduos3.4 Avaliao da Aptido de um Indivduo3.5 Operador Cruzamento3.6 Operador Mutao

  • 23. ALGORITMOS GENTICOS

    3.1. Analogia Fsica: a evoluo das espciesAt meados do sculo 19, os naturalistas acreditavam que cada espcie havia sido criada se-

    paradamente por um ser supremo ou atravs de gerao espontnea. O trabalho do naturalista Ca-rolus Linnaeus sobre a classificao biolgica de organismos despertou o interesse pela similaridadeentre certas espcies, levando a acreditar na existncia de uma certa relao entre elas. Outros tra-balhos influenciaram os naturalistas em direo teoria da seleo natural, tais como os de JeanBaptiste Lamark, que sugeriu uma teoria evolucionria no "uso e desuso" de rgos; e de ThomasRobert Malthus, que props que fatores ambientais tais como doenas e carncia de alimentos, li-mitavam o crescimento de uma populao.

    Depois de mais de 20 anos de observaes e experimentos, Charles Darwin apresentou em1858 sua teoria de evoluo atravs de seleo natural, simultaneamente com outro naturalista in-gls Alfred Russel Wallace. No ano seguinte, Darwin publica o seu On the Origin of Species byMeans of Natural Selection com a sua teoria completa, sustentada por muitas evidncias colhidasdurante suas viagens a bordo do Beagle.

    Este trabalho influenciou muito o futuro no apenas da Biologia, Botnica e Zoologia, mastambm teve grande influncia sobre o pensamento religioso, filosfico, poltico e econmico dapoca. A teoria da evoluo e a computao nasceram praticamente na mesma poca: Charles Ba-bbage, um dos fundadores da computao moderna e amigo pessoal de Darwin desenvolveu suamquina analtica em 1833. Ambos provavelmente estariam surpresos e orgulhosos com a ligaoentre estas duas reas.

    Por volta de 1900, o trabalho de Gregor Mendel, desenvolvido em 1865, sobre os princpiosbsicos de herana gentica, foi redescoberto pelos cientistas e teve grande influncia sobre os futu-ros trabalhos relacionados evoluo. A moderna teoria da evoluo combina a gentica e as idiasde Darwin e Wallace sobre a seleo natural, criando o princpio bsico de Gentica Populacional: avariabilidade entre indivduos em uma populao de organismos que se reproduzem sexualmente produzida pela mutao e pela recombinao gentica. Este princpio foi desenvolvido durante osanos 30 e 40, por bilogos e matemticos de importantes centros de pesquisa.

    Nos anos 50 e 60, muitos bilogos comearam a desenvolver simulaes computacionais desistemas genticos. Entretanto, foi John Holland quem comeou, seriamente, a desenvolver as pri-meiras pesquisas no tema. A idia inicial de Holland foi tentar imitar algumas etapas do processo deevoluo natural das espcies incorporando-as a um algoritmo computacional. Holland foi gradual-mente refinando suas idias e em 1975 publicou o seu livro Adaptation in Natural and ArtificialSystems, hoje considerado a Bblia de Algoritmos Genticos. Desde ento, estes algoritmos vmsendo aplicados com sucesso nos mais diversos problemas de otimizao e aprendizado de mqui-na. (http://www.iagenetico.hpg.ig.com.br/introd.html )

    voltar para ALGORITMOS GENTICOS

  • 33.2. A Traduo Matemtica: o algoritmo bsicoUm modelo simplificado do processo de seleo natural poderia ser expresso por:

    (i) as caractersticas (boas ou ruins) dos indivduos esto registradas nos seus genes, de forma co-dificada;

    (ii) cada gerao de indivduos em uma populao formada pela combinao do material genticodos indivduos da gerao anterior;

    (iii) ocasionalmente, ocorrem mutaes aleatrias no material gentico de um indivduo, que podemtorn-lo mais ou menos apto a sobreviver em seu meio;

    (iv) os indivduos mais aptos tm maior chance de sobreviverem e conseguirem passar seus genespara a prxima gerao, ou seja, tm maior chance de se reproduzirem;

    (v) qualquer indivduo - mais ou menos apto - tem a mesma probabilidade de sofrer mutao.

    Com inspirao nestas premissas simples, possvel formular algoritmos para efetuar a oti-mizao de uma funo objetivo arbitrria, os chamados Algoritmos Genticos (AGs).

    Na analogia matemtica, a aptido est relacionada ao valor da funo objetivo. Cada indi-vduo corresponde a uma possvel soluo do problema de otimizao e cada gerao uma itera-o do algoritmo. Os AGs operam sobre um conjunto de possveis solues do problema, e no

    apenas uma (como mtodos determinsticos ou o mtodode Recozimento Simulado, vistos nas aulas anteriores).Em cada iterao, operadores so aplicados aos indivduospara simular os fenmenos de seleo natural, de geraode novos indivduos pela reproduo sexuada e de muta-o aleatria dos indivduos.

    A figura ao lado mostra as principais etapas do al-goritmo gentico bsico. A cada iterao do algoritmo assolues mais promissoras do problema (os indivduosmais aptos) tm maior probabilidade de serem seleciona-das para gerarem novas solues tentativa (descendentes).Em seguida, alguns indivduos so selecionados aleatori-amente, independente de sua aptido, para sofrerem umamudana arbitrria (mutao). O valor da funo objetivo ento calculado para cada elemento deste novo conjuntode solues tentativa. Os mtodos de seleo so projeta-dos para escolher preferencialmente indivduos com maio-res notas de aptido, embora no exclusivamente, a fim demanter a diversidade da populao.

    Os passos 2 a 5 so continuamente repetidos at que um critrio de parada seja satisfeito.Estes critrios so dependentes do problema, mas geralmente correspondem a ter sido encontrada

  • 4uma resposta suficientemente boa para o problema ou ter sido executado um certo nmero de itera-es do algoritmo (geraes).

    Assim como a natureza caminha no sentido de maximizar a aptido dos indivduos, os algo-ritmos genticos caminham no sentido de otimizar o valor da funo objetivo. Estes algoritmos,apesar de serem computacionalmente muito simples, so bastante poderosos. No h provas mate-mticas rigorosas da convergncia do algoritmo, mas as aplicaes do algoritmo vm crescendo nosltimos anos, principalmente devido s vantagens que este apresenta quando comparado a outrosmtodos de otimizao. Podem-se destacar as seguintes:

    i) O algoritmo no requer o clculo de derivadas da funo objetivo;

    ii) Descontinuidades na funo objetivo no afetam o desempenho do algoritmo;

    iii) A presena de mnimos locais no reduz a eficincia do algoritmo;

    iv) O algoritmo se aplica a problemas em que a funo objetivo no pode ser representada por umafuno matemtica.

    Nas prximas sees, cada etapa dos Algoritmos Genticos ser detalhada.

    voltar para ALGORITMOS GENTICOS

    3.3. Codificao dos IndivduosNa natureza, todas as caractersticas do indivduo, responsveis por seu grau de aptido, es-

    to codificadas nos genes que constituem os cromossomos. Analogamente, os Algoritmos Genti-cos otimizam o valor da funo objetivo (o fentipo da soluo, a sua caracterstica observvel)atuando sobre a representao codificada dos genes dos indivduos (o gentipo da soluo). As-sim, o primeiro passo ao se empregar um Algoritmo Gentico definir que codificao ser empre-gada.

    H vrias maneiras de representar um indivduo de forma codificada. Tradicionalmente, osindivduos so representados por vetores binrios, isto , cada elemento do vetor pode ser preenchi-do de 2 maneiras apenas: 1 ou 0. Se h 2 maneiras de preencher um dgito, h 4 maneiras de preen-cher uma seqncia de 2 dgitos (00, 01, 10 e 11), 8 maneiras de preencher uma seqncia de 3 d-gitos (000, 001, 010, 100, 011, 101, 110 e 111), etc... Generalizando, h 2n maneiras de preencheruma seqncia de n dgitos.

    A grande vantagem desta representao o fato de ela ser independente do problema. Umavez encontrada a representao em vetores binrios de um conjunto de indivduos, os operadoresgenticos padro podem ser utilizados, o que facilita a utilizao dos AGs em diferentes classes deproblemas.

    Como um exemplo, analisemos o problema do caixeiro viajante que precisa passar pelas 4capitais da Regio Sudeste do Brasil. Ser necessrio empregar 2 dgitos na representao de cadacidade, pois este o nmero mnimo de dgitos capaz de representar 4 diferentes nmeros. Podemosrepresentar um determinado roteiro atravs da concatenao dos cdigos associados s cidades vi-

  • 5sitadas. Por exemplo, usando a associao mostrada na tabela abaixo, podemos codificar as rotasmostradas nos esquemas em seguida como seqncias de 8 dgitos.

    CIDADE CDIGO

    Rio de Janeiro 00

    So Paulo 01

    Belo Horizonte 10

    Vitria 11

    Obviamente no existe sentido em codificar um problema do caixeiro viajante com 4 cida-des, pois s h trs possveis rotas, mostradas abaixo. Mas, para o problema com 15 cidades, j h anecessidade de um mtodo de otimizao para auxiliar na tarefa de encontrar a melhor rota. Nesteproblema, so necessrios 4 dgitos para codificar as cidades, e cada rota ser identificada por umaseqncia de 15*4=60 dgitos.

    codificao 01101100 codificao 01100011 codificao 01101100

    Se uma varivel real estiver sendo codificada, necessrio primeiro discretizar o domnio.Apenas como um exemplo imagine que uma das variveis a otimizar em um problema seja umafrao molar. Esta varivel encontra-se entre 0 e 1, e a depender da preciso requerida para repre-sent-la, um nmero diferente de dgitos necessrio. Para represent-la com uma preciso de 0,1 jhaver 11 possveis valores para esta varivel, e sero necessrios 4 dgitos para represent-la. Ob-serve que sero ocupadas (associadas a um valor numrico da varivel) apenas 11 das 16 poss-veis seqncias binrias formadas com 4 dgitos. Isto significa que 5 seqncias de dgitos no esta-ro associadas a qualquer valor da varivel x. Indivduos que possuem uma destas codificaes pararepresentar a varivel x so chamados de esprios.

    A codificao binria, apesar de ser a mais tradicional e conferir generalidade aos operado-res, no a mais adequada para qualquer tipo de problema. Apenas para ilustrar, veja que h apenas3 rotas possveis no PCV com 4 cidades, mas possvel codificar 28 = 256 rotas com 8 dgitos!

  • 6Outras formas de codificao adaptadas a cada tipo de problema sero apresentadas na prximaaula e durante os exemplos.

    voltar para ALGORITMOS GENTICOS

    3.4. Avaliao da Aptido de um indivduoAvaliar um indivduo num AG significa determinar o seu nvel de aptido de sobrevivncia.

    Ou seja, num AG sobrevivem prioritariamente os indivduo mais aptos. Em problemas de otimiza-o, o critrio de sobrevivncia determinado pelo valor da funo objetivo.

    A depender do problema, avaliar o valor da funo objetivo pode envolver a avaliao deuma expresso algbrica, a resoluo de um sistema algbrico no linear ou mesmo a integrao deum conjunto de equaes diferenciais. Qualquer que seja o procedimento numrico, nesta etapa preciso decodificar a varivel binria e avaliar a qualidade da soluo representada.

    No problema do caixeiro viajante, o objetivo minimizar o trajeto percorrido para visitar to-das as cidades. Cada indivduo corresponde a uma possvel rota, e o valor da aptido de um indiv-duo a distncia percorrida nesta rota.

    Um outro detalhe importante para a implementao do mtodo: possvel (e at bastanteprovvel) que indivduos esprios sejam gerados ao longo da execuo do algoritmo gentico. Amaneira mais tradicional de lidar com este problema , no momento de avaliar a aptido do indiv-duo, detectar que ele no vlido e atribuir um valor muito ruim de aptido. Assim, ele no conse-guir se reproduzir e estes genes defeituosos vo eventualmente ser eliminados da populao peloprocesso de seleo natural.

    Uma das muitas alteraes feitas no algoritmo bsico para torn-lo competitivo frente a ou-tras tcnicas de otimizao foi adaptar os operadores para que estes indivduos esprios no sejamgerados. Desta forma reduz-se o custo computacional do algoritmo, j que apenas solues vlidasso consideradas. Estas particularidades sero discutidas com mais detalhe na prxima aula, onde osAlgoritmos Genticos modificados sero discutidos.

    voltar para ALGORITMOS GENTICOS

    3.5. Operador CruzamentoO operador cruzamento consiste em gerar um ou dois cromossomos filhos a partir das in-

    formaes dos dois cromossomos pais. Suponha que, por algum mecanismo, tenham sido escolhi-dos os dois cromossomos pais P1 e P2, representados abaixo como cadeias de 32 bits:

    P1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0

    P2 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0

  • 7No operador mais clssico, chamado de operador cruzamento simples, inicialmente sele-ciona-se de forma aleatria uma posio, onde se efetua um corte entre dois genes adjacentes emcada cromossomo pai. No nosso exemplo, o corte foi feito entre o 12o e o 13o bit. possvel gerarat dois filhos (F1 e F2) pela concatenao dos cromossomos dos pais, mas no incomum queapenas um destes filhos seja introduzido na nova populao. O nmero de filhos por cruzamento (1ou 2) uma parmetro a ser definido pelo usurio.

    P1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0

    P2 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0

    F1 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0

    F2 1 0 1 0 0 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0

    H um nmero infinito de variaes deste algoritmo bsico. Talvez a mais simples seja ocruzamento simples em mltiplos pontos, onde no um mais vrios pontos de corte so determi-nados aleatoriamente. Abaixo est representado o cruzamento com 2 pontos de corte (7o / 8o bit e o24o / 25o bit).

    P1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0

    P2 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0

    F1 1 0 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0

    F2 1 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0

    Outra variao bastante freqente o chamado cruzamento uniforme, onde determina-se apercentagem de genes que vo ser trocados, procede-se o sorteio destes genes, e efetua-se a troca domaterial gentico dos pais nestas posies.

    P1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0

    P2 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0

    F1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 0

    F2 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 1 0 1 1 0 1 0

  • 8No exemplo acima, um parmetro do algoritmo seria 25% de substituio de genes no cru-zamento. Para os dois pais selecionados, foram aleatoriamente sorteadas as posies de troca dematerial gentico como 2, 3, 6, 12, 13, 14, 19 e 29. Observe que h 50% de chance de a troca de umgene no modificar o indivduo (como por exemplo para os genes 2, 3 e 29).

    Em uma populao real, nem todos os casais tm filhos ao mesmo tempo, e h a coexis-tncia de indivduos mais novos e mais velhos, possivelmente trocando material gentico. Da mes-ma forma, nos Algoritmos Genticos, nem todos os indivduos passam pelo operador cruzamentoem todas as iteraes, e muitas vezes os indivduos (especialmente os bons) so mantidos na popu-lao por vrias geraes.

    O procedimento implementado em um Algoritmo Gentico padro detalhado a seguir. Seh Nind indivduos na populao, e deseja-se obter 1 filho por cruzamento, so selecionados por umsorteio especial Nind pares de indivduos. Este sorteio favorece os indivduos mais aptos, mas noexclui a possibilidade de os menos aptos serem sorteados. Existe uma certa probabilidade p de ooperador cruzamento ser aplicado, tipicamente da ordem de 70%. Para cada um dos pares formado, sorteado um nmero aleatrio r uniformemente distribudo no intervalo [0,1]. Se rp, ento o ope-rador cruzamento aplicado a este casal, gerando um indivduo na nova populao. Se r>p entono haver um filho, e um dos pais dever ser introduzido na nova populao. Aps a avaliao dosNind casais, Nind indivduos (novos ou antigos) tero sido introduzidos na nova gerao de indiv-duos.

    voltar para ALGORITMOS GENTICOS

    3.6. Operador MutaoO operador mutao altera aleatoriamente um ou mais bits de um cromossomo. Este opera-

    dor utilizado para permitir uma diversificao no processo de busca e introduzir diversidade. Hpesquisadores que defendem a tese de que este o verdadeiro operador gentico, o responsvel portoda a evoluo.

    Assim como o operador cruzamento, o operador mutao no aplicado a todos os indiv-duos. Existe uma probabilidade p (tipicamente da ordem de 5%) de o operador ser aplicado a umindivduo. Para cada indivduo da populao, sorteia-se um nmero randmico r uniformementedistribudo no intervalo [0,1]. Se rp, ento o operador mutao aplicado a este indivduo, geran-do um indivduo diferente na nova populao. Se r>p ento no haver mutao, e o indivduo deixado inalterado. Observe que todos os indivduos esto igualmente sujeitos a sofrer mutao.

    Para aplicar o operador mutao, normalmente sorteia-se aleatoriamente um bit, e este al-terado. No exemplo abaixo, o 11o bit do indivduo foi sorteado, e consequentemente foi alterado de1 para 0.

    1 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0

    1 0 1 0 0 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0

  • 13. ALGORITMOS GENTICOS

    PARTE 2

    3.7 Aspectos de Implementao do Algoritmo3.8 Seleo da Codificao3.9 Operadores Genticos Modificados3.10 Outros operadores: elitismo, reinicializao e niching3.11 Variantes clssicas: Micro AG e AG Paralelo3.12 Exemplo Ilustrativo

  • 23. ALGORITMOS GENTICOS

    3.7. Aspectos de Implementao do Algoritmo

    a) Algoritmos de Seleo de IndivduosPara que o operador cruzamento seja aplicado, primeiro os pais (dois indivduos da popu-

    lao) precisam ser selecionados. importante que este procedimento de seleo leve em conta aaptido dos indivduos: indivduos mais aptos devem ter maior probabilidade de serem seleciona-dos, e assim se reproduzirem e passarem seus genes para a prxima gerao.

    H vrios procedimentos de seleo, sendo os mais usuais a Seleo por Roleta (roulettewheel selection) e a Seleo por Torneio (tournament selection).

    No procedimento de seleo por roleta, cada indivduo da populao representado na ro-leta proporcionalmente sua aptido. Assim, aos indivduos com alta aptido dada uma poromaior da roleta, enquanto aos de aptido mais baixa dada uma poro relativamente menor daroleta. Finalmente, a roleta girada um determinado nmero de vezes, e so escolhidos os indivdu-os sorteados na roleta.

    Matematicamente, a probabilidade de seleo de um indivduo (visualizada como a fraoda roleta) calculada como a razo entre a aptido do indivduo e o somatrio de todas as aptidesindividuais. Com base neste nmero, pode ser determinada a faixa de sorteio favorvel quele indi-vduo. Na tabela abaixo, o procedimento de roleta ilustrado para uma populao com 5 indivduos.Observe que a faixa favorvel tem extenso determinada pela probabilidade de seleo do indiv-duo, e qualquer nmero aleatrio sorteado entre 0 e 1 pode ser associado a um indivduo.

    indivduo aptido probabilidade deseleo

    faixafavorvel

    1 3.80 19.00% 0 0,192 7.80 39.00% 0,19 0,583 1.60 8.00% 0,58 0,664 4.40 22.00% 0,66 0,885 2.40 12.00% 0,88 1,00

    20.00 100.00%

    Para exemplificar o procedimento, foram sorteados 10 indivduos com o auxlio de um gera-dor de nmeros randmicos uniforme. Os nmeros gerados esto apresentados na tabela abaixo, eobserva-se que o procedimento de roleta vai gerar distribuies bastante prximas s de probabili-dades de seo dado que o nmero de indivduos sorteados seja suficientemente grande e seja em-pregado um gerador de nmeros randmicos confivel.

  • 3nmerogerado

    indivduoassociado

    .567 2

    .736 4

    .300 2

    .107 1

    .660 3

    .231 2

    .138 11.00 5.366 2.701 4

    00.050.1

    0.150.2

    0.250.3

    0.350.4

    0.45

    1 2 3 4 5indivduo

    perc

    enta

    gem

    frao sorteadaprobabilidade de seleo

    J no procedimento de seleo por torneio, sorteiam-se dois indivduos ao acaso, compa-ram-se suas aptides e o mais apto destes dois selecionado. Este procedimento repetido paracada indivduo a ser selecionado. No necessrio calcular a probabilidade de seleo ou uma faixafavorvel, e como conseqncia este procedimento muito mais simples e rpido.

    b) Seleo dos Parmetros do Algoritmo importante analisar de que maneira alguns parmetros influem no comportamento dos Al-

    goritmos Genticos, para que se possa estabelec-los conforme as necessidades do problema e dosrecursos disponveis.

    Tamanho da Populao. O tamanho da populao afeta o desempenho global e a eficinciados AGs. Com uma populao pequena o desempenho pode cair, pois deste modo a populao for-nece uma pequena cobertura do espao de busca do problema. Uma grande populao geralmentefornece uma cobertura representativa do domnio do problema, alm de prevenir convergnciasprematuras para solues locais ao invs de globais. No entanto, para se trabalhar com grandes po-pulaes, so necessrios maiores recursos computacionais, ou que o algoritmo trabalhe por umperodo de tempo muito maior. Tipicamente, empregam-se entre 20 e 200 indivduos.

    Nmero de geraes. O nmero de geraes est intimamente relacionado ao tamanho dapopulao e ao tempo computacional disponvel para a execuo do algoritmo. O usurio deve es-colher entre usar uma populao pequena por muitas geraes ou uma populao maior por menosgeraes. Se o nmero de geraes for muito grande, deve ser avaliada a possibilidade de ser efetu-ada a reinicializao da populao periodicamente. No h um valor comumente aceito na literaturapara este parmetro.

    Taxa de Cruzamento. Se esta taxa for muito alta, estruturas com boas aptides podero serretiradas muito rapidamente. Se esta taxa for muito pequena, o algoritmo ser muito lento. Tipica-mente, a probabilidade de cruzamento de cerca de 70% quando gerado um filho por cruzamento.

  • 4Taxa de Mutao. Uma baixa taxa de mutao previne que uma dada posio fique estag-nada em um valor, alm de possibilitar que se chegue em qualquer ponto do espao de busca. Comuma taxa muito alta a busca se torna essencialmente aleatria. Tipicamente, a probabilidade de mu-tao de cerca de 5%.

    Outros parmetros. H outros parmetros a definir no cdigo, mas o seu impacto menorque os destacados anteriormente. Como um exemplo, podemos citar o nmero de filhos por cruza-mento e a porcentagem de genes trocados no cruzamento uniforme.

    voltar para ALGORITMOS GENTICOS

    3.8. Seleo da CodificaoOs algoritmos genticos na sua forma original utilizam a representao binria para codificar

    os indivduos. A codificao binria certamente confere generalidade ao algoritmo. Uma vez con-vertidos para o domnio binrio, o problema do caixeiro viajante e um problema de otimizao pa-ramtrica so virtualmente idnticos. Esta representao, no entanto, no a mais eficiente paradiversos problemas de otimizao, por vrios motivos.

    z Podem ser criados indivduos no viveis ou esprios.Em muitas codificaes, nem todos os indivduos so viveis. Este conceito fica melhor escla-recido atravs de um exemplo. Vamos representar atravs de codificao binria os 5 estadosda varivel s que representa a cor de um determinado produto. Observe que no h cor associ-ada s codificaes 101, 110 e 111.

    s 000 001 010 011 100 101 110 111cor preto rosa verde azul laranja x x x

    H 3/8 de chance que este indivduos esprios sejam introduzidos na populao inicial, alea-toriamente determinada. Mesmo se forem eliminados os indivduos esprios nesta instncia,ainda assim estes indivduos reapareceriam, durante a execuo do algoritmo, como produtoda aplicao dos operadores genticos aos indivduos vlidos.

    Imagine que deva ser aplicado codificao da cor azul (011) o operador mutao, definidocomo a alterao de um bit aleatrio do indivduo. Se o segundo ou terceiro bits forem altera-dos, sero obtidas as cores rosa e verde, respectivamente. No entanto, se o primeiro bit for al-terado, ser obtida um valor da varivel ao qual no se associa qualquer cor.

  • 5H basicamente trs alternativas para contornar este problema: (i) adaptam-se os operadoresgenticos para que sempre seja criado um indivduo vivel a partir de dois indivduos viveis;(ii) penaliza-se o indivduo no vivel no momento de calcular sua aptido; (iii) altera-se otipo de codificao (por exemplo, representando as 5 cores por nmeros de 1 a 5).

    z A mudana de um bit pode levar a grandes modificaes no indivduo.Quando se usa a codificao binria para representar nmeros, reais ou naturais, no existe agarantia de que nmeros com codificao parecida sejam parecidos. Por exemplo, observe acodificao de alguns nmeros naturais entre 0 e 31. Apenas mudando um dgito (um bit) doindivduo codificado, podemos obter desde um nmero parecido at um nmero significati-vamente diferente. Esta aparente falta de coerncia atrapalha a convergncia do algoritmogentico.

    11111 31 11111 31 11111 31 11111 31 11111 3111110 30 11101 29 11011 27 10111 23 01111 15

    Para contornar este problema, foi proposta por Gray uma forma de codificao binria ondenmeros vizinhos na escala adotada (real, natural) possuem codificao bastante prxima. Opreo a pagar a maior complexidade no momento de codificao e decodificao do indi-vduo. Esta codificao pouco usada atualmente.

    z A discretizao do espao de busca real aumenta a dimenso do problema.Para representar estas variveis (reais) como nmeros binrios, primeiro necessrio discreti-zar o espao de busca real e ento criar uma relao entre estes valores e nmeros binrios.

    Queremos otimizar a temperatura de operao e a concentrao de reagente na alimentao deum processo. A temperatura pode variar entre 50 e 150oC, e a concentrao de reagente nacorrente de alimentao, entre 15 e 30 g/l. A varivel a otimizar x = [ T C ]T um vetor de2 posies. O tamanho da varivel codificada, no entanto ser funo do nmero de divisesadotado. Se forem usadas 3 divises do intervalo, haver 4 valores possveis para cada vari-vel, sendo necessrios 2 bits para representar cada uma delas. Cada indivduo seria represen-tado por um vetor de 4 posies.

    T (oC) codificao C codificao50 00 15,0 00

    66,6 01 20,0 0183,3 10 25,0 10100 11 30,0 11

    Provavelmente a preciso requerida seria maior do que esta. O tamanho do vetor codificadoaumenta conforma a preciso aumenta, conforme detalhado na tabela abaixo.

  • 6nmero de intervalos: 1 3 7 15 63 255 1023 4095tamanho do intervalo:

    em T 100 33,3 14,3 6,7 1,6 0,4 0,1 0,02em C 15 5 2,1 1,0 0,2 0,06 0,02 0,004

    bits necessrios 1 2 3 4 6 8 10 12tamanho do indivduo 2 4 6 8 12 16 20 24

    A utilizao de representaes em nveis de abstrao mais altos tem sido investigada. Emparticular, a codificao empregando nmeros reais vm ganhando muito fora em problemas deotimizao paramtrica, os mais comuns em engenharia.

    Como um exemplo, imagine que est sendo resolvido um problema em que as variveis soas fraes molares dos 10 compostos em uma mistura gasosa. Apenas 9 precisam ser parte do nos-so problema, e o outro pode ser calculado atravs da restrio de soma de fraes molares. Se fossenecessria uma preciso de 0,01 , seriam necessrios 7 dgitos para cada varivel, ou seja, um vetorde 63 dgitos. Empregando codificao real, um vetor de 7 posies de variveis reais seria empre-gado, e nenhuma considerao a priori sobre a preciso do mtodo seria necessria. Compare nafigura abaixo as duas representaes do mesmo indivduo. A codificao real representa uma enor-me simplificao na representao de vetores reais, e empregada rotineiramente nos problemas deotimizao paramtrica na engenharia.

    1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 1 0

    0,03 0,16 0,08 0,05 0,11 0,12 0,11

    Um outro exemplo o Problema do Caixeiro Viajante com N cidades. Empregando codifi-cao binria, so necessrios m dgitos para codificar cada cidade, sendo m o menor nmero inteirotal que Nlogm

    2> . Logo, o vetor binrio que representa cada rota ter tamanho m.N. Alm disto,

    vimos que praticamente todos os indivduos gerados pela aplicao dos operadores clssicos dotamanho sero esprios, ou no vlidos. Os trabalhos reportados na literatura que empregam algo-ritmos genticos para resolver o PCV empregam o que alguns autores chamaram de codificaointeira, em que as cidades so numeradas de 1 a N. Cada rota representada por um vetor inteiro dedimenso N em que os cdigos das cidades so ordenados segundo a ordem de visita s cidades.

    Para trabalhar com estas codificaes diferenciadas, precisam ser criados operadores espec-ficos. Estes algoritmos particularizados para o problema de interesse costumas ser muito mais efici-entes que um AG genrico, j que atravs da codificao e dos operadores so incorporadas infor-maes sobre o espao de solues.

    voltar para ALGORITMOS GENTICOS

  • 73.9. Operadores Genticos Modificados

    Para trabalhar com estas codificaes diferenciadas, precisam ser criados operadores espec-ficos. Estes algoritmos particularizados para o problema de interesse costumam ser muito mais efi-cientes que um AG genrico, j que atravs da codificao e dos operadores so incorporadas in-formaes sobre o espao de solues. Cada codificao impe uma forma diferente de adaptaodos operadores.

    Operador Cruzamento

    O operador cruzamento deve combinar a informao de dois indivduos e gerar um ou doisoutros. Algumas alternativas de cruzamento quando se utiliza codificao real esto exemplificadasna figura abaixo.

    Podemos seguir as mesmas idias dos operadores clssicos (binrios) e copiar parte da infor-mao de cada pai, empregando um ou mais pontos de corte - respectivamente, (a) e (b) na figuraabaixo. Estes pontos de corte so sorteados aleatoriamente para cada par de solues.

    Outra alternativa bastante comum fazer a mdia aritmtica de cada posio dos dois vetores,tal que F1i = (Ai + Bi)/2. Este operador atua deterministicamente sobre o par de solues aleatoria-mente escolhido, e apenas um filho por cruzamento gerado, como se observa no esquema (c).

    Podemos tambm fazer uma mdia ponderada dos dois vetores empregando um peso aleatriop, de forma que cada posio F1i = (1-p) Ai + p Bi. O segundo filho pode ser gerado pela inverso daregra de cruzamento, ou seja, F2i = (1-p) Bi + p Ai. Observe que o cruzamento por mdia aritmticacorresponde ao sorteio ponderado com p=0,5. Na figura abaixo o esquema (d) mostra a aplicaodeste operador com peso p=0,2.

    (c) A B F1 F2 F1 F2 F1 F1 F2

    0,53 0,84 0,53 0,84 0,53 0,84 0,69 0,78 0,590,04 0,31 0,04 0,31 0,31 0,04 0,18 0,26 0,090,85 0,19 0,19 0,85 0,19 0,85 0,52 0,32 0,720,04 0,03 0,03 0,04 0,03 0,04 0,04 0,03 0,040,68 0,26 0,26 0,68 0,68 0,26 0,47 0,34 0,600,69 0,78 0,78 0,69 0,69 0,78 0,73 0,76 0,71

    pais filhos(a) (b) (d) p =0,2

  • 8Um problema do caixeiro viajante possui a peculiaridade de que no pode haver repetiodentro do vetor de inteiros. Se os operadores levarem isto em considerao, sempre geraro indiv-duos vlidos. Um exemplo de operador cruzamento especfico poderia ser o mostrado abaixo:

    sortear um ponto de corte aleatoriamente; dividir a rota A em dois pedaos; eliminar da soluo B as cidades que esto no pri-

    meiro pedao de A e formar o filho F1 pela conca-tenao deste pedao de A com o que sobrou de B,mantendo a ordem das cidades.

    repetir o procedimento com o segundo pedao de Apara gerar o segundo filho F2, se desejado.

    Na figura ao lado, foi ilustrado o procedimento paraum PCV com 10 cidades. Foi sorteada a quinta cidadecomo ponto de corte.

    Operador Mutao

    O operador deve introduzir mudanas aleatrias em uma parte especfica da representaodo indivduo. Podem ser mantidas as idias dos operadores clssicos, apenas alterando-se sua im-plementao. Um possvel operador mutao para codificao real consistiria em sortear uma posi-o do vetor e alter-la (sortear qualquer ponto no domnio desta varivel ou alter-la em um per-centual aleatoriamente determinado). Para o PCV, poderamos simplesmente trocar a ordem de vi-sita a duas cidades, contguas ou no na rota associada quekle indivduo. Estas idias esto aplica-das nos esquemas abaixo.

    B