Você está na página 1de 28

____________________________ C A P T U L O 2 R e v i s o B i b l i o g r f i ca

____________________________ 1. O Problema como definido na pesquisa operacional Como j dito anteriormente, as ltimas dcadas tm-se caracterizado por uma aplicao crescente de mtodos cientficos na resoluo de problemas tecnolgicos complexos. Um dos principais fatores que tm contribudo para isso o avano tecnolgico, principalmente na rea de otimizao. O objetivo deste trabalho propor um novo algoritmo para soluo do tipo de problema de otimizao, dito problema de programao no-linear. 1.1 Problemas de programao matemtica Sejam as funes: A formulao de um problema modelo de programao matemtica a seguinte: So dadas: - a funo _objetivo_ - a regio _vivel _ Deve-se determinar um ponto vivel que minimiza f na regio V. A forma padro do problema-modelo _timo local_ o valor timo (mximo ou mnimo) da funo objetivo em uma sub-regio da regio vivel. _timo global_ o valor timo (mximo ou mnimo) da funo objetivo em toda a regio vivel. *1.2 Programao linear* Quando f e so lineares diz-se que o problema de programao matemtica um problema de programao linear. Tal tipo de problema em geral abordado pelo _algoritmo_ _simplex_, o qual teoricamente capaz de fornecer a soluo exata em um nmero finito de passos. O algoritmo simplex est intimamente ligado aos problemas de programao linear. Ele pode ser adaptado a situaes nas quais a funo objetivo um envelope de funes afins, mas em geral no leva resoluo do problema-modelo da programao no-linear. *1.3 Programao no linear (PNL)*

Um problema de programao matemtica que no um problema de programao linear dito "problema de programao no-linear". Como j observamos, um algoritmo do tipo simplex no se aplica a essa situao, mesmo se tal mtodo pode sevir para a obteno de uma soluo aproximada. A razo profunda dessa dificuldade que o simplex utiliza a estrutura geomtrica da regio vivel e da funo objetivo para determinar um vrtice de V, o qual corresponde um mnimo global de f. Ora, num caso no-linear, uma tal estrutura no existe e em geral o ponto timo no um vrtice, podendo ser interior regio vivel, ou um ponto de fronteira. Dificuldades suplementares aparecem se a regio vivel no for convexa ou mesma desconexa. A maioria das tcnicas computacionais para resolver problemas com regio vivel no-convexa fornece um timo local: a convergncia para um timo global no assegurada. Uma tcnica que utilizada para assegurar a obteno do timo global a da programao dinmica, mas sua aplicao restrita a estruturas especiais e repousa em um princpio ineficiente computacionalmente. Enfim, quando a funo objetivo no convexa, nem ao menos unimodal, a maioria dos mtodos existentes pode fracassar : a construo de algoritmos robustos para tais problemas um problema ainda em aberto. *1.4 O papel da convexidade* Um dos conceitos mais importantes de otimizao a convexidade. O conjunto V convexo quando: Esta condio significa que o segmento fica em V se x,y so elementos de V, como na figura abaixo Figura 1. <../figuras/fig1.gif> *Conjunto convexo e no-convexo. * O epigrafo de f : A funo objetivo f convexa quando seu epigrafo epi f for convexo. Ver a figura 2. Pode-se demonstrar que tal condio equivalente a Figura 2. <../figuras/fig2.gif> *Epi f convexo e epi f no-convexo* Essa condio significa que o segmento ((x, f(x)), (y, f(y))) mais alto que o grfico de f. A funo indicatriz de V (x) = . convexa se e somente se V convexo. Pondo, o problema-modelo se escreve Essa formulao conduz a um problema sem restries e o fundamento dos mtodos de penalizao. Um dos teoremas fundamentais da anlise convexa e da otimizao o teorema de Hahn-Banach, ou teorema de separao de convexos: Enunciado Simplificado : convexos fechados disjuntos de um espao de Banach um hiperplano que os separa. Argumentos ligados ao teorema de Hahn-Banach levam construo de

espaos topolgicos, anlise em dimenso infinita e so frequentemente utilizados no estudo de problemas de programao matemtica. Para uma funo objetivo-convexa e um conjunto convexo, o ponto de timo pode se caracterizado por: *Teorema 1* : Sejam f e V convexos, x soluo de P se e somente se

(1) Demonstrao: para Assim: Sejam . Ento, f convexa Desta forma: Dado que Resultado Notemos que uma analogia curiosa; as redes neuronais so precisamente classificadoras, algoritmos de separao de conjuntos; a semelhana com Hahn-Banach flagrante e pode conduzir a algoritmos de otimizao. Entretanto, os algoritmos de aprendizado so, em geral, lentos, o que limita seriamente sua utilizao em pesquisa operacional. Para funes no-convexas, a condio (1) no suficiente, mas somente necessria. Vrias tentativas foram feitas para estend-la a casos no-convexos, adicionando-lhe condies sobre derivadas de ordem superior. Tais tcnicas levam, em geral a procedimentos que no gozam de uma grande popularidade em pesquisa operacional, dada a complexidade das funes objetivo. Por exemplo, para muitos problemas, diferenciabilidade pode no ocorrer ou simplesmente no ser prtico utilizar a derivada de f. Pode-se preferir uma alternativa consistindo em calcular o seu valor em diferentes pontos x, o que permite a obteno de informaes sobre f. Alm disso, o clculo de derivadas de ordem superior pode introduzir erros numricos, alm de aumentar o tempo de clculo. *1.5 Exemplos de mtodos clssicos* Existem duas grandes famlias de mtodos: os que utilizam as derivadas e os que no utilizam as derivadas de f. No que segue, detalharemos alguns mtodos clssicos dessas duas famlias. Um ponto extremo, seja de mximo ou seja de mnimo, pode ser global ou local. Virtualmente nada conhecido quando se tenta achar extremos globais em geral. Existem dois mtodos gerais. Primeiro se encontram os mximos locais, comeando de diferentes valores iniciais das variveis independentes e pegando-se o maior desses extremos. Segundo se perturba um mximo local por uma amplitude finita, verificando-se se tal procedimento nos leva a um ponto melhor, ou se sempre se retorna ao mesmo ponto. A construo de um mtodo geral de otimizao um problema em aberto. No estado da arte atual, infelizmente, no existe nenhum mtodo perfeito de otimizao. Geralmente, o que se faz usar vrios deles e compar-los. A escolha de um mtodo em geral dirigida pelo compromisso entre os de modo que

clculos efetuados utilizando a funo a ser minimizada e os custos dos clculos que so efetuados usando a derivada dessa funo. No caso multidimensional, essa derivada o gradiente, um vetor. Algoritmos usando a derivada so obviamente mais poderosos que aqueles que usam apenas a funo, mas nem sempre eles se justificam, dado o esforo adicional de calcular essas derivadas. Sempre que computacionalmente factvel obter as derivadas devemos us-las, mas muito freqentemente, isso impraticvel em termos computacionais. Para os casos mais comuns, podem-se escolher mtodos que requeiram armazenagem da ordem de e aqueles que requeiram apenas armazenagem da ordem de N, onde N o nmero de dimenses. Para valores moderados de N e uma capacidade razovel de memria computacional, esse no um problema muito srio. Existem, a despeito disso, aplicaes ocasionais onde o problema de armazenagem pode ser crtico. H duas famlias maiores de algoritmos para minimizao multidimensional com clculos das primeiras derivadas. Ambas as famlias requerem um subalgoritmo de minimizao unidimensional, que pode ser ele mesmo ou outro. A primeira famlia recebe o nome de mtodos conjugados do gradiente, e um exemplo tpico o algoritmo Fletcher-Reeves. Outro algoritmo um pouco melhor o Polak-Ribiere. O mtodo conjugado do gradiente requer apenas uma capacidade de armazenagem de algumas vezes N, exigindo que sejam feitos clculos da derivada e uma minimizao unidimensional. A segunda famlia recebe o nome de mtodos quase-Newton ou de mtrica varivel, e um exemplo tpico o algoritmo Davidon-Fletcher-Powell (DFP), ou o algoritmo Broyde-Fletcher-Goldfarb-Shanno (BFGS). Esses mtodos tm armazenagem de ordem , o clculo de derivada e subminimizao unidimensional (PRESS, FLANNERY, TEUTOLSKY, 1987). O mtodo de Powell serve como prottipo de diversos mtodos. Esses mtodos devem ser escolhidos quando no se podem calcular facilmente as derivadas. Embora a derivada no seja necessria, o mtodo requer uma minimizao unidimensional, isto , um subalgoritmo do tipo mtodo de Brent (PRESS, FLANNERY, TEUTOLSKY, 1987). Quando o problema de minimizao unidimensional, e no se utiliza a derivada, o procedimento limitar a busca do mnimo a um intervalo e usar, por exemplo, o mtodo de Brent. Se a funo tem uma derivada segunda, ou maior, descontnua, as intersees parablicas do mtodo de Brent(PRESS, FLANNERY, TEUTOLSKY, 1987) no trazem nenhuma vantagem, e prefervel usar o mtodo mais simples da seco urea. Para minimizaes unidimensionais, onde se pode calcular a derivada, existem mtodos tambm modificados de Brent que fazem uso limitado das informaes trazidas por essa primeira derivada e que so recomendados (PRESS, FLANNERY, TEUTOLSKY, 1987). O mtodo da seco urea se baseia na tcnica de limitao da busca a um intervalo, isto , supe-se que a soluo esteja num intervalo [a, b], escolhe-se um ponto intermedirio x, determinando-se intervalos [a, x] ou [x, b]. Seleciona-se um desses intervalos e continua-se o processo at que o intervalo resultante se torne to pequeno quanto se queira. Esse apenas um exemplo dos algoritmos que empregam essa tcnica, ou seja, uma maneira de se "encurralar" um mnimo, dentro de uma estratgia de focalizao. O caso ideal para tal mtodo aquele em que a funo pode ser aproximada por uma funo parablica, o que vale para as funes mais suaves; poderamos escolher trs pontos desse intervalo, passar uma

parbola por esses pontos e tomar o mnimo. Seria uma forma de interpolao parablica. O mtodo de Brent se apia nesse conceito. A cada passo do processo estamos considerando seis pontos da funo, no necessariamente distintos, a, b, u, v, w e x, definidos como segue. Define-se um intervalo [a, b] onde se pretende buscar o mnimo; x a varivel onde armazenado o ponto com menor valor da funo encontrado at agora; w o ponto do segundo menor valor da funo; v o valor anterior de w e u o ponto no qual a funo foi avaliada mais recentemente. Tambm aparece no mtodo um ponto xm, onde a funo no calculada e que o ponto mdio entre a e b. O mtodo, basicamente, consiste em fazer-se primeiramente uma interpolao parablica, usando os pontos x, v e w . Para ser aceitvel esse passo de criao da parbola deve : (i) cair entre os pontos a e b, (ii) implicar um movimento do melhor valor corrente de x para um que seja menor que a metade do movimento do passo anterior. Esse segundo critrio garante que o passo da parbola realmente converge para alguma coisa. Repete-se o processo at se chegar ao mnimo. Se obtida a primeira derivada, a a situao fica mais fcil. Pode-se usar o mtodo buscando o zero da derivada, ignorando o valor da funo, obtendo um valor da raiz dessa derivada. A informao da derivada usada somente como segue: o sinal da derivada no ponto central da tripla a, b, c indica unicamente se o prximo ponto-teste deve ser tomado no intervalo (a, b) ou no intervalo (b, c). Os valores dessa derivada e da derivada no segundo ponto encontrado at agora so extrapolados para zero pelo mtodo da secante. *1.5.1 Mtodos usando derivadas* (i)_Mtodo do gradiente_ Seja o problema da minimizao global de uma funo objetivo diferencivel f, mapeada sobre V, onde V uma esfera de raio , de um espao euclidiano E de dimenso finita, sobre um intervalo de nmeros reais. O mtodo usual determinstico do Gradiente, com um parmetro fixo para o problema, consiste em: - selecionar um ponto inicial vivel - gerar uma seqncia de vetores, definidos por onde (1) (2) em que o gradiente de f no ponto x. Esse mtodo est muito ligado aos procedimentos de relaxao para sistemas no-lineares de equaes. O ponto x se move na direo do gradiente em passos definidos pelo valor de , parando onde Se tomarmos e se corretamente escolhido, o comportamento da seqncia tal que, dado , tem-se, para n suficientemente grande, (POGU & SOUZA DE CURSI,

1994). Todavia, tal mtodo pode falhar para achar um mnimo global de f. Sob condies gerais, resulta somente um ponto de derivada nula, o qual pode ser um mnimo local. (ii)_Mtodo do gradiente com perturbaes randmicas_ Diversas modificaes do procedimento bsico (1) tm sido consideradas, como, por exemplo: multipartida, escolha de diferentes pontos iniciais; gradiente estatstico ou mtodos de trajetria. Mais recentemente, tcnicas empregando simulated annealing anlogos a (1) mas com varivel e uma perturbao randmica tm sido considerados e resultados de convergncia tm sido relatados na literatura (POGU & SOUZA DE CURSI, 1994). Esses resultados sugerem um algoritmo para a aproximao de um mnimo global de f. Falando de forma simplificada, o que se prope que a seqncia no seja gerada por (1), mas pela seguinte perturbao randmica do mtodo do gradiente onde uma perturbao randmica que decresce de forma suficientemente lenta para fugir de um mnimo local. Esse procedimento similar, mas no exatamente o mesmo que aqueles desenvolvidos sob o paradigma do simulated annealing, porquanto, neste caso, continua independente de n. O algoritmo numrico o seguinte: Os passos so : - passo 1 : selecionar - passo n+1 : 1. Seja Z uma varivel randmica N-dimensional. Por exemplo, pode-se utilizar a distribuio definida pela seguinte funo densidade de probabilidade: onde //e = medida de (V), mes(V) 2. Gerar K valores de Z por um procedimento de simulao. Os valores gerados so denotados por . Assume-se que Mtodos para satisfazer essa condio podem ser encontrados na literatura (POGU, SOUZA DE CURSI, 1994) 3. Seja Nesse caso, verifica: decresce monotonicamente e est limitada inferiormente por m(R) = inf F(x). Ento, Se definido dessa forma e convenientemente escolhido, ns temos Na prtica, as iteraes so interrompidas quando n = nmax; ou seja, quando se atinge ao nmero mximo pr definido de iteraes ou quando se obtm o valor aproximado pode ser interpretado como uma discretizao de . O mtodo do gradiente com um parmetro fixado pode ser interpretado como um procedimento de relaxao para o sistema de equaes no-lineares. Assim, pode falhar para se achar um mnimo global de f. Porm, as perturbaes randmicas apropriadas impedem a convergncia para um

mnimo local. A principal dificuldade na implementao desse algoritmo a simulao do vetor randmico Z com a funo de densidade definida acima. Uma variante para obter clculos mais rpidos consiste em gerar Z sem a restrio, e, em seguida, projetar o resultado sobre V_0 . Resulta o mtodo seguinte: a) gerar um valor Y de desvio padro N-dimensional com distribuio Gaussiana N(0,Id). b) se YB, ento deixar Zi=Y; se no, gerar um valor U da distribuio uniforme com desvio em (0,1) e fazer Zi = U.Y/R. Da mesma forma, poderamos considerar, em vez de uma bola, o seguinte: Nesse caso, a gerao do valor Zi de Z poderia ser desenvolvido como segue: a) gerar um valor Y do desvio padro N-dimensional de uma distribuio Gaussiana N(0,Id). b) introduzir . Denotando por Z o conjunto de inteiros relativos. Existe um inteiro tal que. Assim *1.5.2 Mtodos que no utilizam derivadas* (i)_Mtodo downhill simplex multidimensional_ O mtodo '/downhill/' (colina abaixo) simplex, devido a Nelder e Mead, consiste em se ir "engatinhando", montanha abaixo, de uma maneira direta, sem ser necessrio fazer quase nenhuma premissa anterior a respeito da funo (PRESS, FLANNERY, TEUTOLSKY, 1987). Ele pode ser extremamente lento, mas tambm pode, em alguns casos, ser extremamente robusto. O cdigo conciso e completamente autocontido: em geral um programa de minimizao de N dimenses com menos de 100 linhas de programa. Esse mtodo muito til quando os clculos de minimizao ocorrem com pouca freqncia no problema como um todo. As necessidades de armazenagem so de ordem e no se necessita calcular as derivadas. Encontrar mnimos em problemas multidimensionais consiste em encontrar o mnimo de uma funo que tem mais de uma varivel independente. Esse mtodo uma estratgia autocontida na qual no se usa nenhum mtodo de minimizao unidimensional. Desenvolvido por Nelder e Mead (NELDER & MEAD, 1965), o mtodo requer smente que se calcule o valor das funes, no precisa das derivadas. No muito eficiente em termos do nmero de avaliaes de funes que requerido, porm o mtodo de Powell que veremos a seguir o mais utilizado em aplicaes desse tipo, recomendando-se esse mtodo se o que se pretende um algoritmo rpido para problemas onde o trabalho de computao pequeno. O mtodo de natureza geomtrica. Um simplex uma figura geomtrica de N-dimenses. Possui N+1 vrtices e todos os segmentos que unem esses vrtices esto conectados, formando faces poligonais. Em duas dimenses, por exemplo, a figura geomtrica simplex um tringulo; em trs dimenses ser um tetraedro, que no necessariamente ser um tetraedro regular. Um mtodo simplex para programao no-linear tambm faz uso desse conceito geomtrico de um simplex. Por outro lado, ele completamente no-correlacionado com o algoritmo que estamos descrevendo. Em geral, estamos apenas interessados nas figuras simplex no-degeneradas, isto , que limitam um volume N-dimensional interno

finito. Se qualquer ponto de um simplex no-degenerado for tomado como origem, direes vetoriais podem ser definidas unindo-se essa origem a outros pontos do simplex, o que nos permite varrer o espao vetorial de N-dimenses. Quando se trabalha com minimizao em uma dimenso, possvel tentar o esquema de encurralar o mnimo, isto , definir um intervalo e apert-lo at isolar esse mnimo. Para minimizao multidimensional o melhor que se pode fazer escolher um valor inicial, isto , um vetor N dimensional das variveis independentes como sendo o primeiro a ser testado. O algoritmo vai fazer, supostamente, o seu prprio caminho colina abaixo atravs de uma topografia N-dimensional. Entretanto, esse mtodo local: nada assegura que o mnimo encontrado seja global. Depois de encontrar um mnimo, faa-se uma reinicializao partindo desse mnimo e modifiquem-se todos os dados de entrada. Essa uma tentativa para saber se esse ponto ou no um mnimo global. Se surgir algum resultado melhor, era mnimo local. Se no, nada se pode afirmar. (ii)_Conjuntos de direes viveis em um espao multidimensional _ _(mtodo de Powell)_** Para minimizar uma funo de uma varivel, comeamos em um ponto P, num espao N-dimensional, e procedemos, a partir da, em alguma direo vivel n. Qualquer funo de N-variveis f(P) pode ser minimizada ao longo dessa linha n por um mtodo unidimensional qualquer. Podemos construir vrios mtodos de minimizao multidimensional baseados em uma seqncia de tais minimizaes ao longo de uma linha. Esses diferentes mtodos vo diferir apenas em como, em qual estgio, se escolhe a prxima direo n a tentar. Todos os mtodos desse tipo presumem a existncia de um sub-algoritmo cuja definio pode ser dada como segue: - dados como vetores de entrada P e, e a funo f, encontre o escalar que minimize f(P+) Tanto os mtodos de minimizao desse tipo como os prximos usam esse esquema geral de minimizao sucessiva ao longo de uma linha. Esses mtodos que envolvem conjuntos de direes no envolvem a computao explcita do gradiente da funo. Suponhamos um conjunto como um conjunto de direes. Movemo-nos ao longo da primeira direo at o seu mnimo e, a partir desse ponto, escolhemos a segunda direo at outro mnimo. Repetimos todo o ciclo, para todo o conjunto de direes, tantas vezes quantas forem necessrias, at que a funo pare de decrescer. Esse mtodo tem a vantagem da simplicidade. A grande diferena entre os mtodos desse tipo quanto escolha do conjunto de direes que se vai usar. O processo de escolha que vai diferenciar um mtodo do outro. O primeiro conceito a ser introduzido o de direes conjugadas, ou seja, direes no-interferentes. Todos esses mtodos (de escolha de direes) podem seguir dois princpios:

(i) incluir uma direo que boa, que vai caminhar ao longo dos vales, (ii) incluir algum nmero de direes que no interferem uma com a outra, com a propriedade especial de que a minimizao ao longo de uma no seja prejudicada quando a outra for testada. O mtodo das direes conjugadas parte do seguinte conceito: se minimizarmos uma funo ao longo de uma direo u, ento o gradiente da funo deve ser perpendicular a u para o mnimo dessa linha. Assim ele pode ainda ser uma derivada direcional no nula ao longo de u. Tomemos um ponto P como a origem do sistema de coordenadas x. Ento qualquer funo f pode ser aproximada pela srie de Taylor. f(x) = f(P) + + + .... c - b &middot; x + x . A . x onde c f(P) bF A matriz A, cujas componentes so derivadas parciais de segunda ordem, a matriz Hessiana da funo em P. Nessa aproximao, o gradiente de f pode ser facilmente calculado como sendo: f = A &middot; x - b Isso implica que o gradiente se anula, isto , que a funo atinge um extremo, em um ponto x tal que Ax = b. Suponha que estamos nos movendo ao longo de uma direo u at o mnimo, e ento nos propomos mover ao longo de alguma nova direo v. A condio de que o movimento ao longo de v no vai estragar a minimizao ao longo de u apenas que o gradiente permanea perpendicular a u, isto , que a mudana no gradiente seja perpendicular a u. Isso s verdade quando temos que: 0 = u &middot; (f ) = u &middot; /A/&middot; v Se realizamos minimizao sucessiva em linha de uma funo ao longo desse conjunto de direes conjugadas, ento no precisamos refazer o trabalho para novos ciclos. Powell props um mtodo de escolher esse conjunto de direes, capaz de produzir N direes mutuamente conjugadas, que consiste em: Inicializar o conjunto de direes como sendo os vetores de base. Agora vamos repetir a seguinte seqncia de passos, um procedimento bsico at a nossa funo parar de decrescer: - armazene a posio inicial de . - para i = 1, ... , N, mova at o mnimo ao longo da direo , e chame esse ponto . - para i = 1, ... , N - 1, faa . - faa .

- mova para o mnimo ao longo da direo e chame esse ponto . Powell, em 1964, mostrou que, se uma funo tiver uma forma parecida com a quadrtica, em k iteraes do procedimento acima, produziremos um conjunto de direes ui, em que os ltimos k membros so mutuamente conjugados. Portanto, N iteraes desse procedimento bsico, que consiste em N(N+1) minimizaes de linha ao todo, vo minimizar a forma quadrtica. Infelizmente, existe uma dificuldade com o algoritmo de convergncia quadrtica de Powell. Esse procedimento tende a produzir um conjunto de direes linearmente dependentes. Uma vez que isso acontece, ento o procedimento encontra o mnimo da funo f somente dentro de um subespao do espao N-dimensional e, assim, obtm a resposta errada. Portanto, o algoritmo no deve ser usado na forma dada acima. Existe uma srie de maneiras de evitar o problema da dependncia linear. O algoritmo de Powell um deles e consiste em reinicializar com direes ui, para os vetores bsicos ei depois de cada N ou N + 1 iteraes do procedimento bsico. Isso produz um mtodo til que recomendado se a convergncia quadrtica importante na aplicao, isto , quando as funes tm mais ou menos essa forma e se deseja alta preciso. Entretanto, a convergncia desse mtodo no est assegurada para f no convexa: nesse caso, /A/ pode ser degenerada e as direes conjugadas podem ser indefinidas. (iii) _Mtodos de minimizao combinatorial _ Essa tcnica foi desenvolvida para problemas de otimizao de grande porte. Em termos prticos seu desenvolvimento foi causado pelo problema do caixeiro-viajante. Um exemplo concreto dado por esse problema do caixeiro-viajante; isto , uma pessoa visitando N cidades com posies dadas , retornando, finalmente, cidade de origem. Cada cidade s pode ser visitada uma vez, e a rota a ser feita deve ser a mais curta possvel. Esse problema pertence a uma classe de problemas conhecido como NP-completos, cujo tempo de computao para uma soluo exata pode exigir esforo exponencial (aNexp(BN)), tornando rapidamente proibitivo o custo computacional, medida que N aumenta. O problema do caixeiro-viajante tambm pertence a uma classe de problemas de minimizao para os quais a funo objetivo tem muitos mnimos locais, num certo sentido natural ou ainda valores subtimos bastante aceitveis e mais facilmente detectados. No caso prtico, muito freqente sermos capazes de escolher esses mnimos, mesmo que ainda no sejam absolutos, visto no poderem ser melhorados de forma significativa. O mtodo annealing tem sucesso em resolver esse problema e ainda limita os clculos necessrios a uma escala razovel. A interpretao desse algoritmo, dada a seguir, muito simples. (a) _Simulated Annealing_ Observemos, primeiramente, que o problema do caixeiro-viajante um exemplo de minimizao combinatorial. Existe uma funo objetivo a ser minimizada como usualmente, mas o espao sobre o qual a funo definida no simplesmente um espao N-dimensional que contm N

parmetros de variveis contnuas. Ao invs disso, temos um espao discreto, mas muito grande, um espao de configurao que o conjunto de todas as possveis ordens de cidades, no caso do caixeiro-viajante ou, em um problema anlogo, o conjunto de todas as possveis alocaes de elementos de circuito numa placa de silcio. O nmero de elementos no espao de configurao cresce fatorialmente com a dimenso N, de modo que a busca no pode ser feita de forma exaustiva para N grande. Alm disso, desde que o conjunto discreto, estamos impedidos de ter qualquer noo de continuidade, o que nos dificulta escolher uma direo favorita para caminhar na direo do timo. O conceito de direo no tem nenhum significado nesse espao de configurao, e tudo o que temos uma coleo de objetos e estruturas especficas. Um procedimento para resolver problemas difceis de otimizao seria a amostragem de valores da funo objetivo, de tal maneira que teramos uma alta probabilidade de encontrar um soluo prxima do timo, o que poderia, tambm, conduzir a uma implementao eficiente. Simulated annealing uma tcnica computacional estocstica derivada da mecnica estatstica, que tem por objetivo encontrar solues prximas do menor custo global para problemas grandes de otimizao. Kirkpatrick e outros foram os primeiros a propor e demonstrar a aplicao das tcnicas de simulao estatstica fsica a problemas de otimizao combinatorial, especficamente o problema de roteamento de fios, no caso de instalao eltrica ou instalao telefnica, por exemplo. Nestes ltimos anos, a tcnica de simulated annealing surgiu como uma maneira vivel de atender a esses critrios. Os artigos de ACKLEY, 1987, AUTRIQUE & SOUZA DE CURSI, 1994 e SOUZA DE CURSI, 1992 fornecem uma abordagem compreensivel do desempenho relativo do simulated annealing e de outras tcnicas estocsticas aplicadas a uma variedade de problemas de otimizao. Para apreciar a relao entre as tcnicas da fsica estatstica e a soluo de grandes problemas de otimizao, devem-se compreender as bases da mecnica estatstica, Mecnica estatstica o estudo do comportamento de sistemas muito grandes de componentes que interagem, tais como tomos em um fluido em equilbrio trmico a uma temperatura finita. Suponha que a configurao do sistema seja identificada por um conjunto de posies especiais dos componentes. Se o sistema est em equilbrio trmico a uma dada temperatura t, ento a probabilidade _T (s) de que o sistema esteja em uma dada configurao s depende da energia E(s) da configurao e da distribuio de Boltzmann, a seguir: _T (s) = onde k a constante de Boltzmann e S o conjunto de todas as possveis configuraes(DAVIS, 1987). O comportamento de um sistema de partculas em equilbrio trmico temperatura T pode ser simulado usando-se a tcnica de relaxao estocstica desenvolvida por Metrpolis e outros (1953). Suponha que a um tempo t, o sistema esteja numa configurao q. Um candidato r para a configurao no tempo t + 1 gerado aleatoriamente. O critrio para seleo ou rejeio da configurao r depende da diferena das energias das configuraes r e q. Especificamente, calcula-se a razo p entre a

probabilidade de estar em r e a probabilidade de estar em q: p = Se p1, isto , a energia de r estritamente menor que a energia de q, ento a configurao r automaticamente aceita como a nova configurao para o tempo t + 1. Se p1, isto , a energia de r maior que ou igual a q, ento a configurao r aceitvel como a nova configuao com probabilidade p. Portanto, configuraes de alta energia podem ser obtidas. Quando t pode ser mostrada a probabilidade de que o sistema esteja em uma dada configurao s igual a _T (s), sem importar com qual configurao inicializada, e portanto a distribuio das configuraes geradas converge para a distribuio de Boltzmann (GEMAN & GEMAN, 1984). Ao estudar esses tais sistemas de particulas, sempre se busca determinar a natureza dos estados de baixa energia; por exemplo, se o congelamento produz slidos cristalinos ou do tipo vidro. Configuraes de energia muito baixas no so comuns, quando consideramos o conjunto de todas as configuraes. A despeito disso, em baixas tempaturas elas predominam, devido natureza da distribuio de Boltzmann. Para alcanar configuraes de baixa energia, no suficiente simplesmente baixar a temperatura; deve-se utilizar o processo de annealing, onde a temperatura do sistema elevada, e ento gradualmente abaixada, levando tempo suficiente em cada temperatura, para que se atinja esse equilibrio trmico. Se um tempo insuficiente gasto em cada temperatura, especialmente perto do ponto de congelamento, ento a probabilidade de atingir uma configurao de energia muito baixa muito reduzida. A idia fundamental estabelecer uma analogia entre a otimizao e a termodinmica, especficamente com a maneira pela qual os lquidos congelam e cristalizam, ou metais esfriam (o anneal). Em altas temperaturas as molculas de um lquido se movem livremente uma em relao outra. Se o lquido esfriado devagar, a mobilidade trmica perdida e as molculas so freqentemente capazes de se alinharem, elas mesmas, formando um cristal puro, que completamente ordenado dentro de uma distncia que bilhes de vezes o tamanho de um tomo individual, e isso acontece em todas as direes. Esse cristal o estado de energia mnima desse sistema. O fato interessante que, para sistemas que esfriam vagarosamente, a natureza capaz de encontrar esse estado mnimo de energia. De fato, se o metal lquido esfriado rapidamente, ele no alcana esse estado, mas acaba em uma mistura policristalina ou amorfa que, de alguma forma, tem alta energia. Portanto, a essncia do processo esfriar devagar, permitindo um tempo suficiente para a redistribuio das molculas, medida que eles perdem a mobilidade. Essa a definio tcnica de aninhamento (annealing), a qual essencial para assegurar o estado de baixa energia que se busca. Embora a analogia no seja perfeita, h um sentido pelo qual todos os algoritmos de minimizao usuais praticamente correspondem ao mtodo do resfriamento rpido. Nesses casos, podemos chegar a uma soluo rapidamente, mas essa soluo no vai ser necessariamente o mnimo global. Os algoritmos de minimizao usados pela natureza so baseados em procedimentos bem diferentes. A chamada distribuio de probabilidade de Boltzmann, Prob (E) exp (-E / kT) expressa a idia de que um sistema em equilbrio trmico na temperatura T tem a sua probabilidade de energia para diferentes estados E. Mesmo em

baixa temperatura, h chance, ainda que pequena, de um sistema estar em um alto estado de energia. Portanto h chance de um sistema sair de um local e encontrar um mnimo que seja melhor ainda que algum valor extremo encontrado anteriormente. A constante k de Boltzmann relaciona temperatura com energia. Em outras palavras, nesse mtodo o sistema s vezes sobe a colina, para depois descer a colina; mas sempre em direo a um ponto de temperatura mais baixa. A simulao desse annealing aplicado ao problema da otimizao envolve os seguintes passos preparatrios. Primeiro, deve-se identificar a analogia entre os conceitos fsicos no prprio problema de otimizao: a funo de energia nesse caso pode ser associada funo objetivo, as configuraes das partculas so associadas s configuraes dos valores dos parmetros. Encontrar uma configurao de baixa energia consiste em buscar uma soluo perto do timo e a temperatura anloga ao parmetro de controle para o processo. Em segundo lugar, deve-se selecionar um processo(tabela) de annealing que consiste de um conjunto decrescente de temperaturas junto com o tempo que se gasta com cada temperatura. Por ltimo, gerar e selecionar as novas configuraes. (b) _Algoritmo de Metropolis_ Em 1953, Metropolis e outros foram os primeiros a incorporar o princpio do aninhamento simulado em clculos numricos. Ofereceram uma sucesso de opes, de tomadas de deciso dentro de um algoritmo, atravs da simulao de um sistema termodinmico suposto como mudando a sua configurao de energia para energia com probabilidade p = exp[-( - ) / kT]. Observe que se , esta probabilidade maior que um; em tais casos a mudana arbitrariamente assinalada com p = 1, isto , o sistema sempre toma tais opes. No caso geral quase sempre se caminha em direo colina abaixo, mas, algumas vezes, a opo pode apontar para uma direo colina acima. Esse esquema geral ficou conhecido com algoritmo de Metropolis. Para fazer uso do algoritmo de Metropolis para outras aplicaes que no sejam termodinmicas, devemos fornecer os seguintes elementos: 1. uma descrio de todas as possveis configuraes que podem ser assumidas pelo sistema; 2. um gerador de mudanas aleatrias na configurao; 3. uma funo objetivo a ser minimizada; 4. um parmetro de controle T (anlogo ao de temperatura) e um esquema de annealing que vai dizer como ir de valores mais altos para mais baixos, isto , aps quantas mudanas aleatrias na configurao deve ocorrer um passo para baixo e quo grande deve ser esse passo. Esse algoritmo de annealing, que foi proposto por Kirkpatrick, consiste em rodar o algoritmo de Metropolis em cada temperatura dentro da programao de annealing no tempo prescrito pela programao e selecionar a configurao final gerada como uma soluo prxima do timo. O algoritmo de Metropolis, que aceita configuraes que aumentam o custo tanto quanto aquelas que decrescem o custo, o mecanismo usado para evitar que eles fiquem presos em uma armadilha consistindo de um mnimo local. O processo de annealing naturalmente lento. GEMAN & GEMAN, 1984

determinaram um programa de annealing que suficiente para atingir a convergncia. Especificamente, para uma dada sequncia de temperaturas {T_t } tal que T_t 0 quando t e T_t para uma constante c, ento a probabilidade de que o sistema esteja na configurao s quando t igual a _0 (s). Outros autores trabalharam de forma a melhorar esses limites (HAJEK, 1985 e GIDAS, 1985). Na prtica, apesar disso, frequentemente desnecessrio ficar preso a esse sistema conservativo a fim de alcanar resultados aceitveis. Alm disso, muitas aplicaes de simulated annealing so mapeveis naturalmente, dentro de uma implementao que empregue processamento paralelo e, portanto, a velocidade da execuo pode ser aumentada substancialmente. A despeito disso, determinar o programa prprio de annealing para um dado problema frequentemente uma srie de tentativa e erro. DAVIS & RITTER, 1987 usaram algoritmos genticos para determinar a melhor programo de annealing possvel. Simulated annealing foi aplicado com sucesso em problemas de projetos de computadores (KIRKPATRIC, GELLATT, VECCHI, 1983), (VECCHI & KIRKPATRIC, 1983), restaurao e segmentao de imagens (GEMAN & GEMAN, 1984), (SONTAGE & SUSSMAN, 1985), otimizao combinatorial tal como o problema do caxeiro-viajante (KIRKPATRIC, 1984), (BONOMI & LUTTON, 1984), e inteligncia artificial (HINTON & SEJNOWSKI, 1983). Contudo, nem sempre trivial mapear um problema de otimizao dentro da estrutura simulated annealing. Construir uma funo objetivo que encapsule as propriedades essenciais do problema e que pode ser eficientemente avaliada, determinar uma descrio concisa das configuraes de parmetros e um mtodo eficiente para gerar novas configuraes, e selecionar uma programao efetiva e efeciente de annealing requer muita arte e arte, isto , muita experincia. Aplicando-se as tcnicas de simulated annealing, o problema do caixeiro-viajante abordado como a seguir: 1. Configurao. As cidades so numeradas i = 1, ... ,N e cada cidade ter coordenadas . Uma configurao uma permutao da sequncia 1, ... ,N, e interpretada como uma ordem particular em que as cidades so visitadas(PRESS et. al, 1987); 2. Rearranjos. Um conjunto eficiente de movimentos foi sugerido por Lin. Os movimentos consistem de dois tipos: (a) uma seo no caminho removida e ento substituda com as mesmas cidades, mas na ordem oposta; ou (b) uma seo do caminho removida e substituda entre duas cidades, uma pela outra, aleatoriamente escolhida; 3. Esquema de annealing schedule. Este requer experimentos. Primeiro, gera-se algum rearranjo aleatrio usado para determinar a classificao dos valores E, que sero encontrados de movimento a movimento. Escolhe-se um valor inicial para o parmetro T, que deve ser consideravelmente maior que o maior E normalmente encontrado, e procede-se por passos multiplicativos, cada um relativo a 10% do decrscimo que se verifica em T; 4. Funo objetivo. No nosso caso o comprimento total da jornada, ou seja, E = L

com a conveno de que o ponto N + 1 identificado com o ponto 1. Para ilustrar a flexibilidade do mtodo, podemos acrescentar as seguintes complicaes adicionais (restries): Suponha que o caixeiro-viajante tenha um medo razovel de atravessar o rio Araguaia. Nesse caso, podemos atribuir para cada cidade um parmetro , igual a: (+1) se ele est a leste do Araguaia; (-1) se est a oeste, e tomar a funo objetivo como sendo E = + (i - i+1)2 de modo que uma penalidade 4 atribuda a todo cruzamento do rio. O algoritmo agora encontra o menor caminho minimizando esses cruzamentos. Recentemente, modificaes da dinmica de Metropolis tm sido sugeridas (TSALLIS, 1988); (ver tambm STARIOLO & TSALLIS, 1995).

2. Os algoritmos genticos na soluo de problemas de programao no-linear *2.1 Introduo* Desenvolvidos por John Holland, seus colegas e alunos da Universidade de Michigan (1975), so algoritmos de busca baseados em mecanismos de seleo natural (gentica), dentro do conceito de "sobrevivncia dos mais adaptados". Desde que Holland revelou o poder dos algoritmos genticos atravs da teoria dos "schematas", pesquisadores compreenderam que os algoritmos genticos funcionam bem porque schemata de baixa ordem (esses foram chamados de blocos de construo) recebem nmeros de aumento de tentativas que crescem exponencialmente nas sucessivas geraes. Essa taxa de amostragem, que prxima da tima (no sentido do problema do bandido de multi-braos), especialmente propcia quando percebemos que esses blocos de construo esto misturados e se casam atravs da ao de operadores estruturados, ainda que no meio de recombinaes aleatrias (crossover), e alternativas prximas do timo so rpidamente localizadas. Muitos estudos empricos de algoritmos genticos, na busca de aplicaes para aprendizagem automtica demonstraram esses resultados desejados (GOLDBERG & THOMAS, 1986); contudo, poucos estudos foram alm dos esforos originais de Holland e examinaram em detalhes o que est por trs da teoria do simples algoritmo gentico. A pesquisa original tinha duas metas: (i) explicar de forma abstrata o processo adaptativo de sistemas naturais (organismos vivos). (ii) desenvolver um "software"que sugerisse mecanismos de resoluo dos problemas enfretados pelos sistemas biolgicos. Apresentamos na figura 3 a equivalncia entre a terminologia da gentica natural e os algoritmos genticos. Figura 3. <../figuras/fig3.htm>*Terminologia dos algoritmos genticos*

A preocupao central da pesquisa era a robustez, a criao de um algoritmo que fosse aplicvel com eficincia para a maioria dos problemas encontrados. Sistemas naturais so robustos, eficientes e eficazes, adaptados a muitos ambientes. Algoritmos genticos operam sobre uma populao de palavras, com a palavra codificada representando alguns parmetros do modelo. Quatro diferenas separam algoritmos genticos da maioria das outras tcnicas de otimizao convencionais: 1. manipulao direta de uma codificao; 2. busca a partir de uma populao, no de um simples ponto; 3. busca via amostragem, uma busca cega; 4. busca usando operadores estocsticos, no regras determinsticas. O algoritmo gentico mais simples, que produz bons resultados para a maioria dos problemas prticos, composto por apenas trs operadores: reproduo, crossover e mutao. O ciclo bsico do algoritmo mostrado na figura 4: Figura 4. <../figuras/fig4.gif> *Ciclo bsico de um algoritmo gentico* *Reproduo* - o processo pelo qual palavras individuais, que podem significar solues possveis para determinado problema, so copiadas de acordo com valores dados pela funo objetivo f que, na biologia, denominada funo de fitness, ou funo que mede a adequao do indivduo ao meio ambiente. Quanto mais 'adaptada' uma 'palavra', maior a chance de contribuir para as geraes futuras. Esse operador pode ser implementado, de forma algortmica, de vrias maneiras, por exemplo criando-se uma roleta onde cada palavra da populao representada por uma rea proporcional ao seu valor de fitness. *Crossover* -depois da reproduo, o crossover simples ocorre em dois passos. O primeiro passo consiste em se determinar (aleatoriamente) quais as palavras que vo 'casar' e, a seguir, tambm aleatoriamente, onde (em que posio k da palavra) se processar o corte. Por exemplo, sejam A= 0 1 1 0 B= 1 1 0 0 0 1

Note que estamos escolhendo aleatoriamente uma posio do corte ( ), isto , k=4. O resultado do CROSSOVER produz duas novas palavras, A'= 0 1 1 0 0 B'= 1 1 0 0 1 *Mutao* -o ltimo passo do processo gentico a mutao. Uma probabilidade de mutao muito pequena deve ser definida. Os bits de todas as cadeias da nova populao esto sujeitos a essa probabilidade de mutao. Evidentemente, um bit s pode mudar de /1/ para /0/ ou de/0/ para /1/. A figura seguinte ilustra a ocorrncia de duas mutaes numa cadeia, uma no bit /6 /e outra no bit/9/: Os trs passos, descritos acima, so repetidos para criar novas geraes

at que alguma condio de parada seja obtida. Essa condio pode ser, por exemplo, atingir um nmero mximo pr-estabelecido de geraes. Esse algoritmo tem provado ser muito eficiente para resolver vrios problemas de busca. Apesar de sua natureza aleatria, o ganho qualitativo em cada gerao indica que o algoritmo efetua uma pesquisa bem direcionada. 2.2 Conceitos bsicos Um schema (plural schemata) uma mscara com posies fixas (0, 1) e posies em aberto, representadas por asteriscos, as quais pela faculdade de poderem ser preenchidas, representam famlias de palavras com semelhanas definidas por esses 'slots' e a estrutura fixa. Seja o alfabeto binrio V = {0,1}. Para introduzir o conceito de schema devemos adicionar a esse alfabeto o smbolo * indeterminado. Por exemplo, considerando as palavras e os schemata de comprimento igual a 5, temos que: o schema *0000 representa uma famlia composta por 2 palavras, {10000, 00000} o schema *111* possui 4 palavras, {01110, 01111, 11110, 11111} Generalizando, para um alfabeto de k smbolos, o nmero total de schemata dado por : (k + 1), onde k a cardinalidade do alfabeto estendido e "/l/" o comprimento da palavra. Portanto, no exemplo anterior, temos 35 = 243 schemata possveis. Em geral, uma palavra em particular pode pertencer a qualquer um de 2 schemata. Com isto, uma populao de tamanho n subentende, no mximo (podem ocorrer schemata repetidos), um valor entre 2//e n . 2 schemata. Consideremos, sem perda de generalidade, palavras construdas sobre o alfabeto binrio V= {0,1} e uma populao aleatria de n palavras. Seja um conjunto S = {A_1 ,..., A_i ,..., A_n } de n sequncias de palavras. Uma palavra genrica A, digamos de componente 7, pode ser representada simbolicamente por, onde cada um gene que pode tomar dois valores: 0 ou 1 (aleles). Consideremos, agora, uma populao de palavras individuais Aj, j=1,2,...,n., contidas na populao A(t) da gerao t. Tomemos um schema H construdo sobre o alfabeto V+ = {0,1,*}. Por exemplo, a palavra A={1110011}, H = * 1 1 * 0 * *, que apresenta comprimento sete. Por exemplo, note que a palavra A, mencionada acima, membro da famlia definida pelo schema H. De forma mais geral, observamos que nem todos os shemata so criados iguais. Alguns so mais especficos que outros e chamamos de especificidade de um schema H (o nmero de posies fixas) sua ordem, denotado por o(H). Por exemplo, em H = * 1 1 * 0 * * temos o(H) = 3 (correspondendo aos dois "1" e ao "0"). Alguns schemata tm essas posies definidas mais extensas que outras. Chamaremos a distncia entre a primeira e ltima posio do chema o comprimento, denotadada como d(H). Se H = * 1 1 * 0 * * temos o primeiro "1" ocupando a posio dois e o ltimo "0" ocupando a posio 5; logo d(H) = 5 - 2 = 3. Essas propriedades so teis nos algoritmos que tratam do teorema fundamental do algortmo gentico, tambm conhecido como teorema do schema. Sobre uma reproduo proporcional, crossover simples e mutao, o nmero esperado de cpias m de um schema H est limitado pela seguinte

expresso : m(H, t+1) >= m(H,t) * f(H) / [1 - p_c (d(H) / ( /l/ - 1)) - p_m o(H)] Nessa expresso, os fatores p_c e p_m so as probabilidades do crossover e mutao respectivamente, a mdia da quantidade da populao, e o fator f(H) a mdia da qualidade do schema que pode ser calculada pela seguinte expresso: f(H) = . A mdia do fitness do schema f(H) simplesmente a mdia dos valores de fitness de todas as cadeias s que correntemente representam o schema H. Alm de tudo, o teorema do schema diz que, acima da mdia, schema curto e de baixa ordem recebem um nmero exponencialmete crescente de tentativas em geraes sucessivas (esses foram chamados de blocos de construo). Muitos estudos empricos de algoritmos genticos, na busca de aplicaes para aprendizagem automatizada, exibiram esses resultados desejados (GOLDBERG & THOMAS, 1986). Outra forma de analisar os algoritmos genticos atravs da geometria. Para compreender melhor esse tipo de anlise, vamos trabalhar com palavras de 3 bits. Nessa representao, pontos correspondem a palavras ou schemata de ordem 3, retas correspondem a schemata de ordem 2, planos representam schemata de ordem 1 e todo o espao pode ser visto como um schemata de ordem 0. Generalizando esses resultados, podemos visualizar os schemata como hiperplanos de variadas dimenses num espao n-dimensional e um algoritmo gentico, buscando, atravs de cortes por esses hiperplanos, uma soluo otimizada. 3. Algoritmos genticos aplicados a problemas de otimizao As tentativas feitas com GA (algoritmos genticos) em problemas de otimizao que devem respeitar determinadas restries seguiram dois diferentes paradigmas, a saber: i) modificao dos operadores genticos; ii) aplicao de penalidades a membros da populao que deixam de satisfazer as restries, isto "inviveis". Vamos examinar os esforos j realizados no sentido de obter bons resultados pela aplicao de penalizaes. Basicamente, essa tcnica consiste em definir uma funo custo e uma funo penalizao e em utilizar uma combinao linear das duas para testar os membros de uma determinada gerao. A funo custo sempre bem definida pois j est estipulada no problema de otimizao a ser resolvido. O problema consiste, pois, em determinar "como" penalizar. Uma variante da abordagem acima descrita consiste em usar "custo" e "penalidade" separadamente como componentes de um vetor e empregar as tcnicas diretas de Pareto (GOLDBERG, 1987), ou um programa do tipo VEGA(Vector Evaluated Genetic Algorithms) (SHAFFER 1984), para determinar o nmero de cpias de determinado indivduo em uma gerao. Essas tcnicas normalmente consideram o custo como um objetivo e o nmero de restries violadas ou um valor de penalizao como um outro objetivo. Essa abordagem elimina a necessidade de determinar os pesos

relativos do custo e da penalizao em uma combinao linear de ambos. Apesar disso, tal abordagem no resolve, necessariamente, o problema. A anlise do VEGA mostra que o efeito similar ao que se obteria se usssemos como medida de 'fitness' uma combinao linear de atributos, ou seja, f(x, y) = a.x + b.y. De fato, os valores da combinao linear, a e b, so determinados pela distribuio da populao, enquanto a combinao projetada como uma funo escalar. Esse problema bem observado quando se constata o baixo desempenho do VEGA em problemas de mltiplos objetivos . A formulao de Pareto transcende a combinao linear especfica dos atributos. Alm disso, os resultados que foram reportados por Liepins (LIEPINS et al., 1988) so excelentes. Apesar disso, a tcnica complexa operacionalmente, no essencialmente discrita do tratamento linear e os autores encontraram dificuldade em implement-la para algumas aplicaes. 3.1 Linhas gerais para construo das funes de penalizao Algumas sugestes foram dadas para se construir funes de penalizao (DE JONG, 1985), (GOLDBERG, 1988), embora nenhuma pesquisa mais aprofundada tenha sido realizada. Muitos acreditam que as funes de penalizao devam ser bastante rgidas, de tal forma que o GA evite as regies proibidas. Os fundamentos da teoria que originou os GA, no entanto, afirmam, exatamente, que a otimizao alcanada pela combinao de informaes parciais de toda a populao. Em outras palavras, as solues que no atendem s restries podem conter informaes importantes, que no devem ser desprezadas. Deve-se tomar cuidado, para modelar um "avaliador" que faa um balano entre "preservao de informaes" e "inviabilidade (fora do espao vivel)". Vamos considerar, por exemplo, um problema de cobertura de conjunto 'SCP' (Set Covering Problem). Em um SCP n x m temos n variveis indicadoras e m variveis de custo, , e uma matriz n x m, . O problema poderia ser estabelecido da seguinte forma: "Encontre a forma mais barata de comprar algumas colunas, de tal modo que cada linha tenha pelo menos um '1'" De forma mais rigorosa, o problema poderia ser escrito como: minimize , de tal forma que " i, i = 1, ..., n, j tal que. O custo, neste exemplo, dado para cada coluna j por: O problema exemplo este: Tabela 1. c_i : x_1 1 1 0 0 x_2 1 0 1 1 x_3 3 1 0 1

Uma penalizao possvel seria multiplicar por 3 (o nmero de linhas no cobertas)^2 . A funo de avaliao, que queremos minimizar, seria a soma das duas componentes, custo e penalizao. Concatenando as variveis indicadoras, podemos ter a seguinte tabela: Tabela 2. soluo custo linhas no

cobertas 000 001 010 100 011 101 110 111 penalizao 0 3 3 1 1 1 1 2 4 4 1 2 5 avaliao 27 27 3 6 3 4 12 13 4 3 7 2 5

Exemplo: "000" significa que no vai se realizar nem x, nem x, nem x. Portanto, em todas as colunas as linhas esto descobertas e o custo 0, de onde se conclui que a penalizao 27. No caso "001", s a terceira coluna comprada, ento a segunda linha fica descoberta e a penalizao 3. Observe que, se tomarmos a soluo tima: 110 e mudarmos quaisquer dos seus '1's por um '0', camos nas solues no possveis "010" ou "100". claro que se removermos uma coluna da soluo tima de um SCP, obtemos uma soluo no factvel j que estaramos diminuindo o custo. Para um GA, isso significa que a soluo tima est separada da regio no vivel do espao de solues pela distncia de Hamming de '1'. Alm disso, existe um nmero de solues inviveis para as quais uma simples mutao produz uma soluo possvemente a soluo tima. Se esses 'vizinhos esquisitos' forem penalizados de forma muito rigorosa podemos estar 'jogando fora' a soluo tima. Uma boa procura deve se aproximar do timo tanto pelo lado da regio vivel como pelo lado da regio no-vivel. Solues viveis e no viveis devem ser desenvolvidas e encorajadas pelos seus 'preciosos blocos de construo'. Uma considerao muito importante em qualquer funo de 'fitness' a epistasis (no linearidade). Penalidades podem, freqentemente, introduzir propriedades capazes de nos iludir. Seja F um conjunto de restries e e(p) a mdia da funo avaliao em um ponto p, tal que p pertena a F. Voltemos ao exemplo acima e computemos a avaliao mdia de alguns schemata: e(**0): (27+4+13+2)/4 = 46/4 e(**1): (6+4+7+5)/4 = 22/4 Observemos que e(**0) > e(**1). Apesar disso, a soluo tima est contida em (**0). Portanto, esse problema 'enganador' (deceptive) em seu terceiro bit. Isso significa que se a populao contm uma distribuio uniforme de 8 palavras num tempo 't', ento, no tempo 't+1', o schema (**0) ter menos hierarquia que o schema competidor (**1). O algoritmo gentico estaria, momentaneamente, andando para trs (se afastando da soluo). Esse exemplo foi escolhido de propsito, exatamente para mostrar como esses 'enganos' podem ocorrer. O fato que isso pode acontecer realmente. Um sistema de penalizao rgido pode, de fato, conduzir a esse tipo de situaes. Se escolhermos uma funo de penalizao diferente, menos rgida, o problem pode deixar de ocorrer.

Esperamos que, nesse ponto, tenhamos explicado que penalizaes mais suaves so, em princpio, melhores que penalizaes rgidas. Resultados que sero apresentados a seguir reforaro ainda mais esse ponto. Apesar disso, ainda no discutimos como proceder na busca de boas regras de penalizao para um problema geral. O primeiro passo para construir uma funo de penalizao considerar quanto aumentaria o custo se tomssemos uma soluo boa mas fora da regio vivel e a transformssemos numa soluo vivel. Essa idia no nova; a base para as funes heursticas usadas em estratgias para tentar a "primeira melhor busca". Em vez de serem jogadas fora e esquecidas, solues fora da regio vivel devem ser pensadas como solues incompletas. O custo para "completar" solues incompletas a quantidade com a qual ns devemos lidar na construo de boas funes de penalizao. Uma vez que faamos isso, alguma perguntas ainda ficam para serem respondidas. Devemos usar um limite superior para tal custo? Para ser mais preciso, deveramos calcular o 'custo esperado' para completar a soluo? Ou deveramos arriscar um desastre e apenas penalizar o cromossoma incompleto com a correo mais otimista? 3.2 Resultados experimentais de funes de penalizao A. O problema de cobertura de conjuntos Esse tipo de problema vem sendo largamente estudado, tendo aplicaes muito teis. O problema NP-completo, sendo de interesse aqui por ser um problema de otimizao com restries severas. Solues para esse problema tm uma representao binria, natural, que pode ser construda mapeando-se cada varivel indicadora a um 'locus' dentro do cromossoma binrio. O custo de uma soluo pode ser facilmente computvel como sendo a soma de custos das colunas includas. Quando uma soluo fora da regio vivel encontrada, a avaliao dessa soluo penalizada. Experimentos foram conduzidos usando-se trs funes de penalizao: P1, P2 e P3. P1 aplica uma penalizao alta e falha em distinguir entre solues fora da regio vivel. P2 e P3 so, progressivamente, mais suaves, estabelecendo limites superiores para o custo de se estender o conjunto de colunas de forma a criar uma soluo dentro da regio vivel. P3 requer mais computaes que P2 mas retorna um limite superior mais apertado. As trs funes de penalizao so definidas como a seguir: P1: /penalizao/ = (soma de custos para todas as colunas); P2: /penalizao/ = c^* (N - ), onde c^* e N o nmero total de linhas (custo mais alto da coluna)x(nmero de linhas no cobertas); P3: /penalizao/ = , sendo R o conjunto de ndices das linhas que permanecem sem serem cobertas: para cada i em R, tomemos Ci como sendo o conjunto de colunas que cobrem a linha i, onde a coluna de mais baixo custo em Ci. Portanto, para cada linha no coberta, P3 adiciona o custo mais baixo necessrio para cobrir aquela coluna. Essas funes de penalizao foram testadas para uma variedade de problemas de vrios tamanhos e estruturas e em combinao com diferentes estratgias de seleo e crossover. Os resultados de todos os testes podem ser encontrados em LIEPINS et al. 1988. Os resultados relevantes foram os seguintes: em problemas esparsos P1 raramente encontra a soluo e quando encontra geralmente uma soluo pobre. A razo para isso bem clara. Com uma regio vivel esparsa, uma populao inicial tem pouca probabilidade de conter qualquer soluo. Desde que P1 no faz

discriminao entre no-solues, o algoritmo vai caminhando sem direo, inteiramente ao acaso. Se uma mutao fortuita ou algum crossover bem sucedido fizer com que surja um membro da populao dentro da regio vivel, este superindivduo vai dominar geneticamente o meio, assegurando uma convergncia prematura. Os resultados com P2 e P3 foram muito melhores. Em problemas muito esparsos P3, ocasionalmente, teve dificuldade em encontrar solues, mas as solues encontradas eram, consistentemente, de mais baixo custo que as oferecidas por P2. Isso sugere que, quanto mais precisamente estimarmos o 'custo de completar a soluo', melhores sero as nossas funes de penalizao. B. Problema vinculado tridimensional Nas sees anteriores mostramos como uma penalizao mais precisa melhoraria solues para problemas SCP. difcil dizer, apesar disso, se teremos novas melhorias a cada vez que aumentarmos essa preciso. No fcil construir tais penalizaes para o SCP. Essa necessidade sugere o seguinte problema de restries, que mais facilmente analisvel: para 0 x,y,z 1, Minimize e(x,y,z) = 4 - g(x) - g(y) - g(z) onde g(x) = x + a sen (bx), a = 0,02 b = 40 As restries foram definidas como semiespaos . A regio vivel um cubo. A partir desse cubo, e de forma a testar os algoritmos de penalizao, geraram-se onze diferentes problemas partindo de conjuntos de restries adicionais de forma a tornar o espao bem esparso (ver(RICHARDSON et al., 1989). Uma populao aleatria de 50 pontos contm pelo menos um ponto vivel com perodo de 10% no mnimo. As penalizaes deveriam ser definidas com o nmero das restries violadas? Ou seria melhor que as definssemos pela distncia da soluo para a regio vivel? Duas funes baseadas no nmero n de restries violadas e no valor max, o mximo da funo ( a seleo de max assegura que qualquer ponto da regio no vivel ter uma avaliao maior do que a de pontos dentro da regio vivel) foram construdas, a saber: PA = n PB = n x max As funes de penalizao remanescentes que foram construdas envolvem informao relativa derivada. Em um "problema real" tais informaes estariam ausentes. Apesar disso, o objetivo do experimento determinar as caractersticas ideais das funes de penalizao que o projetista de tais funes, na prtica, pudesse lutar por obter. Figura 5. <../figuras/fig5.gif> *Projeo unidimensional.* A figura 5 mostra uma projeo unidimensional da funo e permite ressaltar duas importantes quantidades usadas nas funes de penalizao. A primeira quantidade a 'maior tangente' da funo de

avaliao, D(tangente maior). A outra quantidade importante pode ser chamada de 'tendncia' da funo, que , de alguma forma, a tangente mdia do problema, ignorando-se variaes locais. Essas quantidades so teis para se computar o custo esperado em que se incorre para completar a palavra at se ter uma soluo completa (dentro da regio vivel). Como isso acontece para o caso unidimensional, mostrado na figura 6. Poderamos pensar em converter a no-soluo numa soluo, tentando lev-la de volta para a regio vivel. Seja o custo adicional incorrido por este processo denotado por "C". Para essa funo particular, ele pode ser computado como: C = Mas essa integral est apenas em uma dimenso. Para trs dimenses, a definio seria: C = onde e so vetores de posio tri-dimensionais. A equao acima pode ser transformada dentro de limites superiores: C sup D f () . -

Desde que e(x,y,z) separvel e sup (gx) = sup (gy) = sup (gz), podemos reescrever isso como sendo: C x sup (gx) . -

Tomemos U como sendo o lado direito dessa inequao. U um dos dois valores fundamentais usados nesse experimento. Figura 6. <../figuras/fig6.gif> *Representao de U.* A figura 6 demonstra o papel de U. Suponha que um limite superior para a penalizao seja desejado. Desde que Dmax um limite superior sobre (dg/dx) certamente verdade que C - A < D (X - X) = D - A. Portanto, o valor de penalizao infringido a esse indivduo ser U = (D - A). A avaliao ajustada desse indivduo ser igual ao seu custo mais o valor de penalizao, A + U = D. A outra quantidade importante o custo esperado para completar a soluo E(C). Como foi mostrado na figura 5, este pode ser computado, suavizando-se a funo, de tal forma que a 'tendncia' possa ser usada para computar E(C). O custo para completar a soluo pode ser formulado como (X -X). l determinado completamente por X, X e a funo, mas pode ser melhor pensado como sendo uma distribuio de probabilidades. Tendncia a mdia da distribuio l, a qual, nesse caso, ocorre de a parte linear da funo. Em vez de um limite superior sobre C, suponha que optemos em utilizar o valor esperado. Ento a tendncia seria usada para computar E(C) = tendncia * (X - Xc). Essa ilustrao lida somente com uma simplificao unidimensional do problema. Quando estendemos a situao para 3 dimenses, uma outra fonte de variao adicionada. Todas as penalizaes so funes da distncia de X' ao plano de restries: Por outro lado, o valor esperado para 'completar a soluo' tendncia x (Dx + Dy + Dz). Apesar disso,

observemos os seguintes fatos: se Dx >=0, Dy >= 0; Dz >= 0, ento: (Dx + Dy + Dz) A primeira dessas desigualdades a desigualdade triangular. A segunda pode ser derivada muito simplesmente usando-se as tcnicas de clculo. Essas duas desigualdades do aproximaes muito boas para os limites inferior e superior de E(C) em termos da distncia As funes de penalizao reais foram construdas usando-se derivadas direcionais e distncias a cada plano de restrio. Para tanto, as seguintes quantidades foram definidas: dist(i) - distncia do ponto x ao plano de restrio i max_d - limite superior sobre a derivada direcional na direo da regio vivel. max_d = Dmax max_trend - semelhante a max_d exceto que se usa a tendncia em vez de Dmax. max_trend = x tendncia min_trend - setado no valor da tendncia. Observe que max_trend o supremo de tendncia em trs dimenses, enquanto min_trend o nfimo. di - setado em 1 se a restrio ; violada e, em 0, caso contrrio. As seguintes penalizaes so funes da distncia dist(i): PC = dist(i) x [max_d] PD = dist(i) x [max_trend] PE = dist(i) x [(max_d + max_trend)/2] PF = dist(i) x [2 * max_d] PG = dist(i) x [min_trend] PC fornece um limite superior sobre o custo para se transformar uma soluo fora da regio vivel em uma soluo dentro da regio vivel. PE e PF so variaes em torno desse limite. PE menor do que o limite superior e PF, sendo duas vezes o limite, testa o efeito de uma superestimao desse custo. PD e PG foram projetados como testes para penalizaes cada vez mais leves para chegar resposta de at onde tal estratgia pode nos conduzir. PD usa max_trend, portanto soma limites superiores apertados sobre E(C) para cada restrio. PG soma subestimativas de E(C) para cada restrio. Os dados obtidos dos experimentos usando essas penalizaes mostram que PA e PB, as duas funes de n, falham em encontrar solues na maioria

dos problemas. Isso nos leva a conjecturar que em problemas onde a regio vivel esparsa, com poucas restries, apenas n funes de penalizao no produziro solues satisfatrias. O caso semelhante ao de P1 definido para o SCP, que tambm falhava por no discriminar entre solues fora da regio vivel. Apesar disso, se for fornecida informao de quo distante os pontos esto da regio vivel, o GA vai ter alguma informao de como ordenar os pontos de uma forma que conduza a uma soluo aceitvel. Quando isso feito de forma e suficiente, solues so encontradas regularmente, como mostram os dados que resultaram das outras penalizaes. Anlise das outras penalizaes mostra o seguinte: entre PC, PE e PF no se observa nenhuma diferena significativa. Todos os trs encontram solues da mesma qualidade. Quanto s penalizaes mais leves, as solues no caso de PD so ainda encontradas de forma consistente e parece que essas solues so melhores (p = 0.15, como determinado por um teste definido por Wilcoxen). Para a mais leve de todas, PG, solues nem sempre so encontradas. Apesar disso, quando elas so encontradas, PG apresenta as melhores solues de todas (p<0.0005). Desses resultados deduz-se que se pode melhorar o desempenho atenuando a penalizao, mas at certo ponto. Em que ponto isso acontece? A hiptese que se faz de que isso acontece quando a penalizao para cada restrio cai abaixo do custo esperado para tornar vivel uma soluo no vivel . *Concluses* A anlise dos exemplos considerados leva s concluses seguintes: 1) penalizaes que sejam funo da distncia da regio vivel apresentam desempenho melhor do que aquelas que so meramente relacionadas ao nmero de restries violadas; 2) para um problema que tenha poucas restries e poucos mnimos locais, penalidades que sejam funes somente do nmero de restries violadas podem no convergir; 3) boas funes de penalizao podem ser construdas a partir de duas quantidades: o custo mximo para tornar uma soluo fora da regio vivel em uma soluo completa e o custo esperado dessa transformao; 4) penalidades deveriam ser prximas do custo esperado, mas no devem, freqentemente, cair abaixo dele. Quanto mais precisa for a penalizao, melhor ser a soluo encontrada. Quando a penalizao fica freqentemente abaixo do custo de completar a soluo, a busca pode no conduzir a lugar nenhum.

Tabela 3. ssequncia dde nmeros aleatrios pproblema pa 1 1 33.7204 1 2 33.7238 pb pc 33.7175 33.7366 pd pe 33.7532 33.7083 pf pg 33.7072 33.7080

33.7083 1 3 33.7295

33.7083 33.7295

33.7295

33.7295

33.7495

3.3 Comparaes *Down-hill Climbing (subindo e descendo a montanha)* Down-hill Climbing(DHC) se apia em idias que vm dos algoritmos genticos, downhill, gradiente, e mtodos conjugados de gradiente. Vamos utilizar para teste a Sela de Rosenbrook uma das cincos funes de DeJong . Um conjunto bem conhecido de funes que tem sido usado largamente quando testamos algoritmos de otimizao. Ao fazer isso, se percebe que o DHC supera os algoritmos genticos e o simulated annealing na forma clssica com que os mesmos so utilizados. Isso no ocorre para todos os casos, mas geralmente foi observado com muita freqncia. Esse algoritmo DHC dividido em duas partes, um loop externo e outro interno. O loop interno contm uma tcnica muito eficiente para localizar timos locais, o loop externo vai focar a ateno do loop interno em diferentes partes do espao de busca para assegurar que o espao inteiro foi explorado, isto , que a soluo interna no apenas "subtima". O loop interno mantm uma lista de 2n vetores dos quais n formam um conjunto que uma base ortogonal para o espao de busca, e os outros n so a negao desses vetores. Alm disso, utilizam-se dois vetores adicionais que registram as direes em que o DHC se moveu recentemente, ou seja, dos espaos anteriores da aplicao do algoritmo, em que direo da funo - para cima ou para baixo - que o algoritmo caminhou anteriormente. Alm disso, o loop interno armazena o ponto atual, o vetor x. Os vetores determinam para onde o algoritmo DHC est indo, ou deve "olhar" a seguir. Comeando com o deslocamento que tem o maior tamanho v, DHC calcula o ponto x + v e compara com o valor de f(x), se o valor de f(x + v) < f(x) ento (x + v) fica sendo o novo ponto, (x x + v) . O processo repetido usando-se, de novo, o vetor que tem maior magnitude. Se escolhemos v duas vezes seguidas, ento ele dobrado, quer dizer, fazemos v 2v, isto , se aplicamos duas vezes essa regra e obtemos um resultado positivo, estamos caminhando na direo correta, e portanto aceleramos, quer dizer, em vez de andar v cada vez, andamos 2v . Se por outro lado f(x + v) f(x), ento a nova magnitude de v tomada pela metade v v /2 e o vetor com a prxima magnitude mais alta testado, quer dizer - quando andamos de v e o resultado mostra que passamos do ponto procurado, ou que estamos indo numa direo errada, a o passo reduzido, desacelerando-se, tomando a metade, e comparando com outra direo, uma das duas memorizadas. Analisamos os dois vetores com novas direes e tomamos o maior. A tendncia, se estivermos na direo errada, que no caminhemos mais naquela direo, pois ela vai ficando cada vez menor, e passamos a caminhar agora na outra direo, do outro vetor. O loop interno continua a atualizar as grandezas dos vetores e a posio corrente x. Dessa maneira, o algoritmo prossegue at encontrar um ponto onde no consegue mais diminuir o valor da funo: no possvel descer mais, s subir. Essa situao, lgico, ocorre quando a magnitude de todos os vetores alcana algum mnimo que determinado pelo usurio. Quando isso acontece, o loop interno sai fora, e o loop externo vai reiniciar o loop interno a partir de um novo ponto inicial, de forma a varrer todo o espao de pesquisa.

Os dois vetores extra, chamados vetores gradiente, so funes das duas ltimas direes diferentes nas quais o ponto x se moveu. Mais especificamente, se x se moveu do ponto x para x + v, e da para o ponto x + v + v , onde a direo v v ento um dos vetores gradientes o vetor x at x + v + v, e o outro vetor sua negao, quer dizer, andamos sempre a 90 graus, numa direo ou na outra. O propsito dos vetores gradientes percorrer os vales dentro do espao de busca. Quando o loop interno reduz a grandeza de todos os vetores at o seu tamanho mnimo, ele retorna para o loop externo que inicia com um novo ponto. O loop externo mantm uma lista de pontos que j foram avaliados pelo loop interno, e escolhe um novo ponto de iniciao de uma regio bem distante daqueles pontos. Isso visa forar o loop interno a explorar de forma uniforme o espao de busca. Mais especificamente, o loop externo mantm um conjunto de hiper-retngulos. No incio da busca, esse conjunto iniciado para conter um nico hiper-retngulo, correspondente ao espao de busca inteiro. Quando o loop interno visita um novo ponto no espao, o hiper-retngulo em que o ponto est subdividido. O ponto de iniciao escolhido do hiper-retngulo que tem a rea maior. Uma desvantagem desse procedimento que ele trabalha somente para funes com pequena dimenso, porque o nmero de hiper-retngulos exponencial no que tange ao nmero de dimenses. Muitos outros procedimentos podem ser substitudos por esse loop externo. Por exemplo, escolher um conjunto de pontos aleatoriamente, avaliar cada um e reiniciar o loop interno, com o melhor desses pontos etc. *A FUNO TESTE * *Rosenbrook* Dentre o conjunto de teste, usualmente criado para explorar as caractersticas dos algoritmos genticos, temos /a sela de Rosenbrock /. A sela de Rosenbrock uma funo multivariada capaz de enganar a maioria dos algoritmos de minimizao, por ter um vale em curva, o que faz com que os algoritmos parem de forma prematura, retornando a um ponto que no um timo global (DE LA MAZA & YURET, 1994): f1() = Figura 7. <../figuras/fig7.gif> *Sela de Rosenbrook * Essa funo geralmente usada para comparar a capacidade de otimizao de algoritmos, em particular de DHC com aqueles, empregando algoritmos genticos (como implementadas por Bck's no pacote Genesys) e para simulated annealing como implementado por Ingber and Rosen no programa Adaptive Simulated Annealing [ASA], vide DE LA MAZA, 1994. Down-hill climbing tem quatro parmetros: a funo objetivo, o ponto inicial de partida, os tamanhos do passo mximo e mnimo na escalada. Tipicamente se estabelece o mximo passo como sendo metade do espao de busca. Para algumas funes o passo mnimo afeta a performance do DHC. Se o parmetro estabelecido muito baixo, ento o loop interno permanece um tempo muito grande avaliando pontos que esto muito perto do melhor ponto. Se o parmetro estabelecido muito alto, ento os vetores gradientes no podem se ajustar curvatura dos vales e o loop interno pra prematuramente.

Os resultados dessa comparao mostram a avaliao do melhor ponto mdio obtido depois de dez rodadas como uma funo do nmero de avaliaes. Das trs tcnicas de otimizao, a pior so os algoritmos genticos, que vo ter um desempenho pior do que DHC ou que o simulated annealing adaptativo. O timo que o algoritmo gentico encontrou geralmente o pior e se tem que utilizar muito mais funes de avaliao para encontr-los. O mtodo DHC tem um desempenho muito melhor do que o simulated annealing para essa funo. O DHC, de forma diferente de algoritmo gentico e simulated annealing, encontrou consistentemente os timos globais. -----------------------------------------------------------------------<../cap1/capitulo1.htm><../index/index.htm#index><../cap3/capitulo3.htm>

Você também pode gostar