Você está na página 1de 24

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

4. MTODOS NUMRICOS APLICADOS EM PROBLEMAS DE OTIMIZAO DE ENGENHARIA


Os mtodos numricos discutidos nesse curso so baseados na chamada teoria de programao matemtica como j comentados acima. 4.1. Classificao dos Algoritimos Numricos em Otimizao Os algoritimos numricos para soluo de problemas de otimizao so essencialmente classificados em mtodos de programao matemtica e mtodos probabilsticos. Os mtodos de programao matemtica so classificados em mtodos de programao linear, programao no-linear e mtodos baseados em teoria de aproximaes como programao linear seqencial (PLS ou "SLP" em ingls) e programao quadrtica seqencial (PQS ou "SQP" em ingls). Por sua vez, os mtodos de programao no-linear so classificados em mtodos para soluo de problemas de otimizao sem restrio e com restrio. Entre os mtodos probabilsticos temos os algoritimos genticos e o "Simulated Annealing". A diferena essencial dos mtodos de programao matemtica para os mtodos probabilsticos que os ltimos procuram encontrar o mnimo global do problema de otimizao evitando os mnimos locais. J os mtodos de programao matemtica fornecem um mnimo local 1 . Os mtodos probabilsticos, como o prprio nome sugere, se utilizam de um processo de busca randmica guiados por decises probabilsticas para obter o mnimo global. Alm disso, os mtodos probabilsticos so tambm ferramentas poderosas para problemas com variveis discretas. 4.2. Programao Linear O mtodo de programao linear (PL ou "LP" em ingls) se destina a soluo de problemas de otimizao lineares, ou seja, problemas em que a funo objetivo e as restries so funes lineares em relao s variveis de projeto, ou seja: Minimizar f ( x) = c1 x 1 + c 2 x 2 + ... + c n x n = a i x i ;
i =1 n

x tal que h k ( x) = b 1 x 1 + b 2 x 2 + ... + b n x n = 0, j = 1,.., n g


g j ( x) = d 1 x 1 + d 2 x 2 + ... + d n x n 0, j = 1,..., n e

Existem uma grande gama de problemas de otimizao nas diversas reas do conhecimento (engenharia, economia, biologia, etc.) que se encaixam nessa formulao, e por essa razo existe uma vasta literatura disponvel sobre programao linear (PL), bem como softwares disponveis para a sua soluo.
1

a menos que o problema somente possua um nico mnimo em que nesse caso ser o mnimo global.
44

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

Calculando as derivadas, por exemplo da funo f, em relao s variveis de projeto, temos: n f f = aixi = a i = cte. x i i =1 ou seja, os gradientes (ou derivadas) so constantes que no so necessariamente zeros. Isso implica que o extremo de um problema de programao linear no pode ser encontrado no interior do domnio vivel (no h gradientes nulos no interior) e portanto est localizado nas fronteiras do domnio definido pelas equaes de restries. A Fig.4.2.1 ilustra esse conceito num espao tridimensional de variveis (x1, x2, x3), onde so representados o domnio vivel limitado por um contorno denominado poltope, e as curvas de nvel da funo f.

x3
g i ( x) = 0

poltope

x2
Ponto timo

x1
Fig.4.2.1: Soluo de um problema de otimizao linear no espao tridimensional.

J Fig.4.2.2 ilustra uma situao que pode ocorrer devido a natureza da soluo do problema de otimizao linear. A curva de nvel de f paralela a uma das restries causando uma soluo degenerada, ou seja, inmeras solues.

x3

g i ( x) = 0

x2

Soluo Degenerada

x1
Fig.4.2.2: Caso em que ocorre uma soluo degenerada num problema de otimizao linear.

Apesar de somente resolver problemas de otimizao lineares, uma aplicao importante da PL nos algoritimos de soluo de problemas de otimizao no-linear baseados em mtodos seqenciais. Nesse caso, o problema de otimizao no-linear dividido numa seqncia de subproblemas de PL, sendo a soluo obtida aps um nmero suficiente de iteraes. Esse mtodo denominado programao linear seqencial (PLS ou "SLP") e ser apresentado em detalhe na seo 4.4.
45

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

Para ilustrar os conceitos, vejamos a soluo grfica de um exemplo de problema de PL. Considere o problema no espao bidimensional formulado abaixo:

Min f(x1 , x 2 ) = 2x1 + x 2


x1, x2

tal que

4x 2 1 2 x1 + 2 x 2 1 x1 + x 2 1 2 x1 1 2 x1 + 4 x 2 3 4 x1 + 2 x 2 3

onde as variveis so x1 e x2. Na Fig.4.2.3 so plotados as curvas de nvel da funo objetivo e as equaes de restrio do problema.

x2

f=3,5 f=3,0 f=2,5 f=2,0 0,5

x1 0,5 Fig.4.2.3: Soluo grfica do problema de PL.


Nesse caso a soluo tima (obtida graficamente) vale x1=x2=1/2 com fmin=3/2. Note que a soluo se encontra num vrtice do domnio em que todas as restries esto ativas com exceo das duas primeiras. Para verificar se um certo ponto (x1,x2) est no domnio vivel, basta substitu-lo na equao e verificar se as restries so respeitadas. Essa soluo foi obtida simplesmente calculando o valor da funo objetivo nos vrtices do contorno do domnio vivel, uma vez que j se sabe, como discutido acima, que a soluo tima ser um desses pontos. Os vrtices do domnio so determinados resolvendo-se a interseco das equaes de restrio. Se modificarmos a equao da funo objetivo para f=c(2x1+4x2), a soluo se torna degenerada (inmeras solues), pois essa equao proporcional a uma das restries do problema. A soluo numrica de um problema de PL obtida usando um mtodo eficiente e confivel chamado Simplex. Essencialmente, esse mtodo resolve um problema de programao linear na sua forma padro, ou seja:
46

Otimizao em Engenharia Mecnica


T Min f = c x

Prof. Dr. Emlio Carlos Nelli Silva

tal que Ax = b
x0
onde c um vetor n1, A uma matriz mn e b um vetor m1. A princpio essa formulao parece no representar o exemplo resolvido acima, no entanto fazendo uso de variveis auxiliares (ou "slack", em ingls), qualquer problema pode ser representado. Assim, por exemplo, considere as inegualdades abaixo:

4x 2 1 2 x1 + 2 x 2 1 x1 + x 2 1
,

elas podem ser facilmente transformadas em igualdades atravs da subtrao de trs variveis auxiliares no negativas x3, x4, x5, assim:

4x 2 - x 3 = 1 2x 1 + 2x 2 - x 4 = 1 x1 + x 2 - x 5 = 1 x i 0, i = 1,...,5
,

onde a condio de no negatividade est prevista na formulao padro acima. Se as restries fossem opostas (0), ento as variveis auxiliares seriam adicionadas e no subtradas. J restries do tipo xi0 podem ser convertidas na forma padro atravs de expresses do tipo: x1 = u1 - v1 e x 2 = u 2 - v 2 e : u1 , u 2 , v1 , v 2 0 ou adicionando uma constante positiva de valor suficientemente alto:

x1 = M + x1
de forma que a nova varivel nunca fique negativa durante a otimizao. Esse tipo de artifcio tem a vantagem de no aumentar a dimenso do problema, pois no cria novas variveis, no entanto, pode ser difcil conhecer com antecedncia o valor da constante M que far com que a varivel fique positiva na soluo do problema. A utilizao de valores muito altos de M pode resultar em mau condicionamento numrico do problema. Uma vez transformado o problema inicial de PL que se deseja resolver na forma padro acima, o algoritimo inicia a soluo do problema atravs do mtodo Simplex. Note no problema da forma padro que se m=n e todas as equaes so linearmente independentes, h uma nica soluo para o sistema; se m>n no h soluo (a menos que as equaes sejam linearmente dependentes), pois o sistema de equaes inconsistente; somente quando m<n que temos vrias solues possveis para o problema e entre todas essas solues o Simplex procura a soluo que satisfaz a restrio de no negatividade (x0) e minimize a funo objetivo f. Para isso, o Simplex segue o seguinte procedimento: Inicia com uma soluo vivel bsica; Seleciona-se m colunas linearmente independentes entre as n colunas da matriz A (lembrese que m<n) como ilustrado abaixo.
47

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

A = [[D m x m ] K] n
m colunas linearmente independentes

Essa matriz mm denominada D e no singular. Assim podemos resolver o sistema: Dx D = b D x D = D 1 bD m x1 m x m m x1 onde xD um vetor de variveis independentes. Verifica-se que x D x = L 0 soluo do sistema Ax=b. Tal soluo denominada soluo bsica, e xD chamado de vetor de variveis bsicas. Uma soluo bsica, no entanto, no necessariamente satisfaz a restrio x0. As solues bsicas que satisfazem essa restrio so chamadas solues bsicas viveis e demonstra-se que representam os "cantos" da poltope (ver definio acima e Fig.4.2.4). O nmero total de solues bsicas do sistema Ax=b dado pelo nmero de possibilidades de se selecionar arbitrariamente m colunas de um nmero de n, ou seja, da teoria das permutaes e combinaes: n n! = m m!(n - m )! onde somente algumas solues sero viveis. Muda o conjunto de variveis bsicas (mas o novo conjunto deve ser vivel) melhorando a funo objetivo ao mesmo tempo; Repete essa operao at que no consiga mais reduzir o valor da funo objetivo;

Assim a idia do algoritimo Simplex continuamente reduzir o valor da funo objetivo indo de uma soluo bsica vivel para outra, e portanto percorrendo os extremos (ou "cantos") da poltope como mostrado na Fig.4.2.4.

x3
0 Solues bsicas viveis

poltope

1 2 o

x2
3 Ponto timo

x1
Fig.4.2.4: Caminho seguido pelo mtodo Simplex para a soluo.

48

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

Uma descrio mais detalhada do algoritimo numrico do Simplex encontra-se nas referncias da bibliografia dessa apostila. Nota-se que quanto maior o nmero de variveis de projeto (n) ou de restries (m), maior ser o nmero de solues bsicas viveis ( e portanto "cantos" da poltope), e portanto maior ser o custo computacional (e portanto tempo) para o Simplex encontrar a soluo. De fato, o nmero de operaes aritmticas cresce exponencialmente com o nmero de variveis, o que torna a utilizao do Simplex invivel para problemas com grande nmero de restries ou variveis (ordem de milhares). Nesse caso, so utilizados algoritimos denominados mtodos interiores, uma vez que ao invs de percorrerem os extremos da poltope, movem-se no seu interior. Essencialmente, a cada passo, esses algoritimos calculam uma direo a ser seguida no interior da poltope de forma a minimizar a funo objetivo. Utilizam conceitos similares aos que sero descritos adiante nos algoritimos para a soluo de problemas de otimizao no-lineares com ou sem restrio. Isso torna o tempo de soluo mais independente do nmero de variveis e restries. Em alguns casos a soluo pode ser obtida em apenas uma iterao. Esses algoritimos chegam a ser at 50 vezes mais rpido do que o Simplex. Um mtodo interior clssico o algoritimo de Kamarkar (AT&T Bell Labs), descrito em detalhe na referncia [1] da bibliografia. A Fig.4.2.4 ilustra o caminho seguido pelo algoritimo de Kamarkar na soluo do problema anterior.

x3

x2
Ponto timo

x1
Fig.4.2.4: Caminho seguido pelo algoritimo de Kamarkar para a soluo.

No aplicativo SCILAB a rotina que resolve um problema de PL usando o mtodo Simplex denominada LINPRO. Essa rotina resolve um problema de PL da forma:
T Min f = p x

tal que C1x = b1

(mi n ) (m d n )

C2x b 2

ci x cs
49

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

C = [C1 , C 2 ]

(m i + m d ) n b = [b1 , b 2 ] 1 (m i + m d )

A sua sintaxe dada por: [x,lagr,f]=linpro(p,C,b,ci,cs,mi,x0) onde: x - vetor da soluo tima; lagr - vetor de multiplicadores de Lagrange (dimenso n+mi+md) associado a cada uma das restries. Se o valor de um multiplicador zero, a restrio correspondente est inativa, caso contrrio est ativa no ponto timo; f - valor timo da funo; mi - nmero de restries de igualdade; md - nmero de restries de inegualdade; x0 - chute inicial de x; ou se x0=v o clculo iniciado num vrtice do domnio; ou se x0=g o valor inicial arbitrrio; A rotina que resolve um problema de PL usando o algoritimo de Kamarkar denominada KAMARKAR. Para soluo de problemas de PL com variveis discretas utilizado uma tcnica denominada programao linear inteira que no ser abordado nesse curso. 4.3. Mtodos Para Soluo de Problemas No-Lineares em Otimizao Nesse captulo so descritos os mtodos de soluo de problemas em que a funo objetivo e restries no so lineares em relao s variveis de projeto. Esses mtodos esto divididos em mtodos para a soluo de problemas sem restrio e com restrio. Considerando que a grande maior parte dos problemas de otimizao apresentam restries natural se perguntar por que estudar mtodos para soluo de problemas sem restries. Basicamente existem duas razes: primeiro porque os mtodos para a soluo de problemas com restries baseiam-se nos mtodos para a soluo de problemas sem restries; segundo porque existem mtodos que convertem o problema com restrio num problema sem restrio para depois resolv-lo, como o caso dos mtodos de penalizao descritos a seguir. 4.3.1. Problemas de Otimizao sem Restrio Ao contrrio da programao linear, a cada iterao esses mtodos procuram inicialmente encontrar uma direo (s0) a seguir que reduza a funo objetivo. Uma vez obtida essa direo, decidem o quanto "andar" nessa direo (). Atravs desse procedimento, a cada passo, um problema de encontrar n variveis (x) reduzido a um problema de encontrar uma varivel (), como descrito na equao a seguir: x = x 0 + s 0 f(x) = f(x 0 + s 0 ) = f( ) onde x0 o ponto inicial. O problema de encontrar pode ser resolvido agora usando tcnicas de minimizao de uma funo com uma varivel que so de implementao mais simples. Essa etapa denominada busca unidimensional e quando a direo s coincide com a direo de um dos eixos coordenados denominada busca univariada.
50

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

Assim o procedimento seguido por esses mtodos em cada passo resumido a seguir: Encontrar x0 e s0 que reduza a funo objetivo f ; Encontrar na direo de s0 que minimize f (busca unidimensional) e obter x = x 0 + s 0 ; Verificar a convergncia, se satisfeita, pare e x i +1 = x e i = i + 1 e volte etapa inicial. x = x* . Caso contrrio,

Para melhor entendermos a idia desses mtodos, podemos fazer uma analogia com a subida de uma montanha. Suponha que a forma da montanha a funo em questo e queremos atingir o seu pico mximo (pico da montanha). Num ato intuitivo, a cada passo dado, inicialmente procuramos uma direo a seguir e depois decidimos o quanto andar. O quanto andamos num passo, vai depender de quo bem comportado o terreno da montanha no local. Por exemplo, se h um buraco adiante (ponto de mnimo) no vamos querer pisar nele ao final do passo, ento devemos reduzir o passo, e escolher uma nova direo a seguir no passo seguinte, e assim por diante. Esses mtodos so classificados em trs tipos de acordo com a informao necessria da funo objetivo: mtodos de ordem zero, de primeira ordem e de segunda ordem. Nos mtodos de ordem zero somente o valor da funo objetivo utilizado. So usados quando a funo no diferencivel ou quando a funo altamente no-linear, sendo difcil obter as derivadas de forma precisa. Entre um dos mais importantes mtodos temos o mtodo das direes conjugadas de "Powell", descrito abaixo. Nos mtodos de primeira ordem so usados os valores da funo objetivo e de suas derivadas (gradientes) em relao s variveis de projeto. Entre os mtodos mais clssicos existentes temos o mtodo "Steepest Descent" e o mtodo dos gradientes conjugados descritos abaixo. J nos mtodos de segunda ordem so utilizados o valores da funo objetivo, de suas derivadas e tambm da matriz Hessiana. Entre os mtodos existentes, destacam-se os mtodos de Newton e Quasi-Newton, descritos a seguir. A rapidez na convergncia do resultado aumenta do primeiro para o ltimo mtodo. A utilizao de um ou outro mtodo vai depender da informao disponvel (ou a facilidade de calcular) sobre a funo objetivo. 4.3.1.1.Mtodos de Ordem Zero Esses mtodos so usados quando o valor da funo obtido com preciso pobre, e portanto os valores das derivadas (ou gradientes) no so confiveis e no devem ser utilizados.

51

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

a) Mtodo das Direes Conjugadas de Powell Muitos mtodos para a soluo de problemas sem restrio so desenvolvidos para minimizar funes quadrticas, embora a maior parte dos problemas tenham funes que no sejam quadrticas. Isso porque toda funo pode ser bem aproximada por uma funo quadrtica prxima do mnimo. Esse o caso do mtodo de "Powell". Nesse mtodo, a cada passo a funo a ser minimizada aproximada localmente por uma funo quadrtica, dada por: 1 f (x) = x T Qx + b T x + c 2 Considere agora um conjunto de direes si, i=1,2 Q-conjugadas linearmente independentes, ou seja: s iTQs j = 0 para i j Pode ser mostrado que: "Se f for minimizada ao longo de cada direo s definida acima, ento o mnimo de f ser encontrado no (ou antes) do nsimo passo independentemente do ponto inicial, dado que erros de arredondamento no sejam acumulados", onde n o nmero de variveis. importante que as direes sejam linearmente independentes (como definido acima) caso contrrio no h convergncia para o mnimo. Powell sugere um mtodo conveniente de gerar direes Q-conjugadas linearmente independentes. No entanto, s vezes esse mtodo pode gerar direes linearmente dependentes quando nesse caso no converge para o mnimo. A sua estratgia baseada na seguinte propriedade (ver referncias para detalhe): se x1 e x2 so dois pontos e s uma direo especificada e, x1s corresponde ao ponto mnimo de f na linha paralela s iniciando em x1 e x2s o ponto mnimo de f na linha paralela s iniciando em x2, ento s e a direo (x2s-x1s) sero Q conjugadas. O algoritimo de Powell descrito abaixo: 1) Minimize f ao longo das direes coordenadas (busca univariada), iniciando em x0k e gerando os pontos x1k,, xnk onde k o nmero do ciclo; 2) Aps encerrar a busca univariada encontre o ndice m correspondente direo em que a funo f apresenta o maior decrscimo indo de xm-1k para xmk; k 3) Calcule a direo padro s k = x k x 0 (soma de todos os movimentos p n
k univariados) e determine o valor de que minimize f tal que: x = x 0 + s k ; p
k f x k f x 0 +1 2 4) Se < k0 ento utilize as mesmas direes para a prxima k f x m 1 f x m busca univariada. Se a equao NO for satisfeita, ento substitua a msima direo pela direo padro spk; 5) Comece a nova busca univariada com as direes obtidas no passo 4, e repita os passos 2, 3, e 4 at que a convergncia seja atingida, ou seja: x k +1 x k .

( ) ( ) ( ) ( )

A Fig.4.3.1 ilustra o caminho seguido pelo mtodo das direes conjugadas de "Powell" durante as iteraes.
52

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

Fig.4.3.1: Exemplo do caminho seguido pelo algoritimo de Powell.

Como exemplo de aplicao, vamos considerar a determinao da mxima deflexo e rotao da extremidade de uma viga atravs da minimizao da sua energia potencial total modelada usando um nico elemento finito de viga cbico descrito na Fig.4.3.2.

Fig.4.3.2: Viga engastada carregada na extremidade e seu modelo de MEF.

Considerando a formulao do elemento de viga cbico, os deslocamentos so dados por: v1 v( ) = 1 3 2 + 2 3 l 2 2 + 3 3 2 2 3 l 2 + 3 1 v 2 2 onde = x / l . A energia potencial correspondente do modelo da viga dado por:

[(

) (

) (

) (

)]

d2v 0 d 2 d + pv 2 Como a viga est engastada em = 0 v1 = 1 = 0 e substituindo v() em obtemos: EI 2 2 = 3 12 v 2 + 2 2 l 2 12 v 2 2l + pv 2 2l 3 2 l ; x1 = v 2 ; x 2 = 2l a funo acima fica: Agora, definindo: f = EI EI = 3 2l
l

53

Otimizao em Engenharia Mecnica


2 2

Prof. Dr. Emlio Carlos Nelli Silva

f = 12x 1 + 4x 2 12x 1x 2 + 2x 1 Assim, o problema inicial de elementos finitos foi reduzido a minimizao da funo acima. 2 2 Min f = 12x 1 + 4x 2 12x 1x 2 + 2x 1 Ou seja, o problema passa a ser um problema de otimizao independente onde os conceitos de MEF foram utilizados apenas para a obteno da funo acima no sendo mais necessrios na continuao da soluo. No caso vamos utilizar o mtodo de Powell na soluo do problema.

Soluo: Todo mtodo numrico exige um "chute inicial" para iniciar as iteraes. Nesse caso T ser adotado: x1 = ( 1,2) f(x1 ) = 2 . Para efeito de comparao final a soluo 0 0 tima do problema pode ser obtida por clculo diferencial sendo igual : T x* = ( 1 / 3,1 / 2 ) .

Assim sendo s1 e s2 as direes coordenadas, e seguindo o procedimento de Powell descrito acima temos para a primeira iterao: 1 1 1 + T 2 2 s1 = (1,0) x1 = + = f ( ) = 12( 1 + ) + 4(2) + 1 1 2 0 2 12(1 + )(2) + 2(1 + ) (busca univariada) Min f = -1/12 13 / 12 1 x1 = e f(x1 ) = 1,9166; 1 2 13 / 12 0 13 / 12 T s1 = (0,1) x1 = + = (busca univariada) Min f 2 2 2 1 2 +

= 3/8 x1 = 2

13 / 12 1 / 12 1 1 1 1 e f(x 2 ) = 1,3541 s p = x 2 - x 0 = 3/8 13 / 8 1 1 / 12 1 / 12 2 x0 = + = (busca univariada) Min f 2 3 / 8 2 + 3 / 8 157 / 147 2 e f(x 0 ) = 1,31972 83 / 49
1

2 = 40/49 x 0 =

40 2 1,31972 2 < e = 49 1,9166 1,3541 A tabela abaixo descreve os resultados nos ciclos de iteraes seguintes.

54

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

Tabela 4.3.1: Ciclos de iterao. x2 f Ciclos x1 0 -1.0 -2.0 2.0 1 -1.083334 -2.0 1.916667 1 -1.083334 -1.625 1.354167 2 -0.895834 -1.625 0.9322967 2 -0.895834 -1.34375 0.6158854 2 -0.33334 -0.499999 -0.333333

4.3.1.2.Mtodos de Primeira Ordem

Os mtodos de primeira ordem se utilizam da informao das derivadas da funo objetivo para encontrar o ponto timo. Esses mtodos apresentam uma taxa de convergncia linear ou superlinear, ou seja, uma seqncia xk dita superlinear convergente para x* de ordem pelo menos p se:
x k +1 x* c k x k x*
p

e p=1 e ck uma seqncia que converge para zero. Se p=1 ck uma constante ento a convergncia linear.
a) Mtodo "Steepest Descent"

um dos mtodos mais antigos, sendo proposto em 1847. Nesse mtodo a direo s a ser seguida obtida resolvendo-se o problema de otimizao: n f Min f T s = s i i =1 x i s

tal que

sTs = 1

ou seja, procura-se encontrar a direo paralela ao gradiente com sinal oposto. Essa a direo que determina a maior minimizao de f. Considerando o Lagrangeano do problema, temos: L(s, ) = f T s + (s T s 1) e impondo as condies de estacionaridade obtemos a soluo: L f 2 = f + 2s = 0 s = s T s = 1 f = 42 2 = f s 2 f s= f

onde

a norma Euclideana. Assim, segue-se para prxima etapa que a busca

unidimensional, substituindo x k +1 = x k + s na expresso de f. A Fig.4.3.3 ilustra o caminho seguido pelo "Steepest Descent" para uma funo no espao bidimensional. Note que a cada passo, o mtodo segue na direo do gradiente da funo.

55

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

Fig.4.3.3: Exemplo do caminho seguido pelo "Steepest Descent".

Consideremos a minimizao de uma funo quadrtica para ilustrar alguns conceitos importantes do "Steepest Descent". Seja a funo quadrtica dada por: 1 f = x T Qx + b T x + c 2 onde Q a matriz Hessiana (no caso simtrica). Substituindo x k +1 = x k + s na expresso de f usando s dado acima e realizando a busca unidimensional, obtm-se o seguinte valor de (faa como exerccio): T xk Q + bT s * = s T Qs O desempenho do mtodo nesse caso vai depender do nmero de condicionamento da matriz Q. O nmero de condicionamento (CN) dado pela razo entre o maior e o menor autovalores da matriz Q, ou seja: CN = max min Se CN alto, o mtodo caminha de forma lenta e seguindo o padro "zig-zag", o que conhecido como fenmeno de "hemstitching", como mostrado nas Fig.4.3.3.

Consideremos a minimizao da funo f = 12 x 1 12 x 1 x 2 + 4 x 2 + 2 x 1 para ilustrar novamente o fenmeno. A Fig.4.3.4 mostra as curvas de nvel da funo e o caminho "zig-zag" seguido pelo "Steepest Descent".
2 2

56

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

Fig.4.3.4: Fenmeno de "hemstitching".

Fazendo as mudanas de variveis: x 1 1 2 2 y1 = x 1 - x 2 ; y 2 = 2 f(y1 , y 2 ) = y1 + y 2 + y1 + 3y 2 2 6 12 Essa nova funo apresenta curvas de nvel como circunferncias e agora CN=1. A Fig.4.3.5 ilustra o caminho seguido pelo mtodo nessa nova funo.

Fig.4.3.5: Convergncia em uma iterao.

Ou seja, a soluo obtida em apenas uma iterao e o padro "zig-zag" no est mais presente. Assim, demonstra-se que o "Steepest Descent" apresenta apenas uma taxa linear de convergncia sem a transformao de variveis. No entanto, como dficil na maior parte dos casos encontrar a transformao de variveis correta foi proposto o mtodo de Direes Conjugadas ou de "Fletcher-Reeves" descrito a seguir. b) Mtodo de Direes Conjugadas ou "Fletcher-Reeves" Na primeira iterao, a direo a ser seguida nesse mtodo (s0) segue o mtodo "Steepest Descent". A partir da segunda iterao, a direo s1 obtida tal que seja Q conjugada a s0, e assim por diante, ou seja:
57

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

s T k -1Qs k = 0, k = 1,2,... onde Q a matriz Hessiana da funo quadrtica f. Assim, as iteraes prosseguem at que ocorra a convergncia. Devido ao teorema de "Powell" das direes conjugadas (veja seo 4.3.1.1) a convergncia para o mnimo de uma funo quadrtica teoreticamente garantida na direo correspondente iterao n-1 (sn-1), onde n o nmero de variveis. Para funes que no sejam quadrticas, a utilizao de direes conjugadas perde o sentido pelo fato da matriz Hessiana no ser mais uma matriz de constantes. Mesmo assim, prtica comum utilizar esse algoritimo para funes que no sejam quadrticas. No entanto, para essas funes a convergncia raramente ocorre depois de n ou menos iteraes, o que exige que o algoritimo seja reiniciado depois de n iteraes. O procedimento seguido pelo algoritimo de "Fletcher-Reeves" brevemente descrito abaixo: 1. Calcular x k +1 = x k + k +1s k onde k +1 determinado tal que
df ( k +1 ) = 0; d k +1

s k = g k = f (x k ) se k = 0 e s k = g k + k s k -1 se k > 0 com
2.

k =

gk gk e g k = -f (x k ) T g k -1 g k -1

3. Se g k+1 ou f (x k +1 ) f (x k ) suficiente pequeno, pare; 4. Caso contrrio, se k<n v para 1 ou recomece. A Fig.4.3.6 ilustra o caminho seguido no mtodo de Direes Conjugadas.

Fig.4.3.5: Exemplo do caminho seguido pelo mtodo de direes conjugadas.


58

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

Considere o mesmo exemplo usado anteriormente: T 2 2 Min f = 12x 1 + 4x 2 12x 1x 2 + 2x 1 e x 0 = (1,2) Soluo: 24 x 12 x2 + 2 2 T x 0 = (1,2) f (x 0 ) = 1 s 0 = f (x 0 ) = 4 8 x2 12 x1 x=x
0

2 1 2 x1 = + 1 f (1 ) = 12(1 21 ) 2 + 4(1 + 41 ) 2 + 4 2 df 12(1 21 )(2 + 41 ) + 2(1 21 ) (busca unidimensional) =0 d1 2,6154 1,0961 1 = 0,048077 x1 = s1 = e f(x1 ) = 1,3077 1,8077 = f(x1 ) + 1s 0 1 = 2,6154 (2.6154) 2 + (1.3077) 2 = 0,4275 s1 = + 2 2 (2) + (4) 1,3077 1,76036 1,0961 2 1,76036 df =0 + 0,4275 = + 2 e x2 = 3,0178 d 2 1,8077 4 3,0178

0 0,3334 2 = 0,4334 x 2 = x* = f(x 2 ) = ; 0 0,50 Finalmente, como 2 24 12 1,76036 0 4 12 8 3,0178 verificado aque s0 e s1 so Q conjugadas. 4.3.1.3.Mtodos de Segunda Ordem Esses mtodos utilizam os valores da funo objetivo, suas derivadas e sua matriz Hessiana. Os mtodos mais antigos e clssicos so os mtodos de Newton e QuasiNewton, descritos a seguir. a) Mtodo de Newton Nesse mtodo a direo s a ser seguida obtida resolvendo-se o problema de otimizao:

Min f T s =
s
i =1

f si x i

tal que s Qs = 1 onde essencialmente a norma Euclideana no mtodo "Steepest Descent" foi substituda pela norma s T Qs = 1 onde Q a matriz Hessiana da funo objetivo.
T

Considerando o Lagrangeano do problema, temos: L(s, ) = f T s + (s T Qs 1) e impondo as condies de estacionaridade obtemos a soluo:
59

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

L Q 1f = f + 2Qs = 0 s = s = Q 1f Qs = f s 2 e a matriz Q deve ser positiva-definida. Assim, segue-se para prxima etapa que a 1 busca unidimensional, substituindo x k +1 = x k + k +1s k = x k k +1Q k f ( x k ) na expresso de f. Para Q=I o mtodo se iguala ao mtodo "Steepest Descent". Para funes quadrticas demonstra-se que a soluo obtida em uma iterao com =1. Demonstra-se que o mtodo de Newton tem uma taxa de convergncia quadrtica, mas entre as suas srias desvantagens est a necessidade de avaliar a matriz Hessiana e resolver o sistema de equaes: Qs = f para obter a direo s. Assim, para cada iterao o mtodo de newton exige o clculo de n(n+1)/2 elementos da matriz simtrica Q, e n3 operaes matemticas para resolver o sistema de equaes acima. Isso fez com que fossem desenvolvidos mtodos denominados Quasi-Newton em que a se procura usar a informao dos gradientes da funo para construir uma aproximao da matriz Hessiana como descrito a seguir. b) Mtodo de Quasi-Newton Considerando a expanso em srie de Taylor dos gradientes de f em xk+1, temos:

f ( x k +1 ) f ( x k ) Q( x k +1 x k ) y k = A k p k e B k +1y k = p k 144 2444 { 1 24 4 3 4 3


yk Ak pk

onde Ak a aproximao de Q e Bk+1 a aproximao de Q-1. A relao Bk+1yk=pk denominada relao da secante ou Quasi-Newton. Ak e Bk devem permanecer positivo-definidos durante as iteraes. Eventualmente, B k +1A k = I . Assim a direo s dada por s k = -B k f(x k ) e a busca unidimensional realizada substituindo x k +1 = x k + k +1s k na expresso de f. A frmula de aproximao e atualizao mais utilizada para a matriz Bk e que fornece os melhores resultados a BFGS dada por: p y T y Tp p p T B k +1 = I k T k B k I k T k + k T k pk y k pk y k pk y k onde o algoritimo iniciado fazendo-se B=I, quando nesse caso o mtodo equivalente ao "Steepest Descent". Essa frmula que a matriz Bk permanea simtrica e positiva-definida durante as atualizaes. Para funes quadrticas, aps n iteraes Bn exatamente igual Q-1. Considere o mesmo exempo anterior, mas agora sendo resolvido pelo mtodo de Quasi-Newton com aproximao BFGS. T 2 2 Min f = 12x 1 + 4x 2 12x 1x 2 + 2x 1 e x 0 = (1,2) e B0=I

60

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

Soluo: O primeiro passo igual ao do "Steepest Descent" - 1.0961 2.6154 - 1.0961 1 x1 = = e f(x1 ) = p0 = - 1.8077 2 1.3077 - 1.8077
- 0.0961 2 = e como s 0 = -B 0f(x 0 ) = -If(x 0 ) = y 0 = 4 0.1923 2.6154 2 4.6154 T = p 0 y 0 = 0.96127 e = 1.3077 4 2.6923 0.44354 0.25873 - 0.0961 T p0 y 0 = { 4.6154 2.6923} = 0.1923 0.88754 0.51773 1 0 0.44354 0.25873 1 0 1 B1 = 0 1 0.96127 0.88754 0.51773 0 1 1 0 0.44354 0.88754 0.00923 0.01848 1 1 0 1 0.96127 0.25873 0.51773 + 0.96127 0.01848 0.03698 = 0.37213 0.60225 0.37213 0.60225 2.6154 = s1 = B1f (x1 ) = 0.60225 1.10385 1.3077 = 0.60225 1.10385 1.7608 - 1.0961 1.7608 - 0.3333 = x 2 = x1 + 2 s 1 = + 2 x2 = e 3.0186 - 1.8077 3.0186 - 0.5 0 f(x 2 ) (convergncia) 0 0.1667 0.25 1 e verifica - se que : B 2 = =Q 0.5 0.25 Portanto, como a funo f quadrtica B2 (n=2) exatamente igual Q-1.

No aplicativo SCILAB esto implementados alguns dos algoritimos acima que so chamados atravs da rotina OPTIM. Essa rotina resolve problemas de otimizao do tipo:

Min costf (x)


x

tal que b i x b s
A sintaxe da funo : [f,[xopt,[gradopt,[work]]]]=optim(costf,[contr],x0,['algo'],[df0,[mem]],[work],[sto p],['in']) onde: costf - funo a ser minimizada xopt - vetor da soluo tima; x0 - chute inicial de x; f - valor timo da funo;
61

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

contr - b, bi, bs; algo - qn (Quasi-Newton); gc (gradientes conjugados); nd (no diferencivel - mtodo de ordem zero); mem - nmero de variveis usadas na aproximao da matriz Hessiana; stop - ar (palavra chave); nap (mximo nmero de chamadas da funo); iter (mximo nmero de iteraes permitida); epsg (valor de corte na norma do gradiente); epsf (valor de corte na variao de costf); epsx (vetor com valores de corte para x); gradopt - gradiente de costf fornecido; work - vetor para restart;

Cabem agora algumas consideraes extras sobre os algoritimos estudados at aqui. A princpio esses algoritimo se aplicam somente para soluo de problemas de otimizao, no entanto podem tambm ser aplicados para a soluo de sistemas de equao lineares e no-lineares, uma vez que esses problemas derivam intrinsicamente de problemas de otimizao. Por exemplo, em problemas de anlise estrutural no-linear, a condio a minimizao da energia potencial (), o que considerando a condio de estacionaridade, ocorre quando seus gradientes so nulos, resultando no sistema de equaes: ( x ) = 0 No caso em que os problemas so posados diretamente como: Ax=b A soluo pode ser obtida atravs da minimizao da funo: 1 T Ax = b Min (Ax b ) (Ax b ) 2 A vantagem de resolver esse problema de minimizao ao invs de resolver Ax=b numa anlise estrutural no-linear que permite obter no somente as configuraes de equilbrio estveis da estrutura, mas tambm as configuraes de equilbrio instveis, dado que no haja convergncia da minimizao para um mnimo local. No caso de convergncia para um mnimo local, algumas tcnicas numricas so utilizadas para forar a convergncia para o mnimo global. Alm disso, o mtodos descritos acima, mesmo que iterativos, se mostram mais eficientes na soluo de sistemas Ax=b (formulados como minimizao), com grande nmero de variveis, do que os mtodos diretos (como Eliminao de Gauss), sendo por isso (e pela razo acima) utilizados na maior parte dos softwares comerciais de MEF atualmente. 4.3.2. Problemas de Otimizao com Restrio Esses mtodos resolvem problemas de otimizao com restries. Para entendermos melhor o problema enfrentado por esses mtodos, consideremos novamente a analogia com a subida ao pico da montanha usada na seo 4.3.1. Imagine que agora, durante a subida encontremos obstculos como cercas e grandes pedras que no fazem parte da topologia do terreno em si, e no nos permitem sempre caminhar no sentido de inclinao mxima, como mostrado na figura 4.3.5a. Esses obstculos representam as restries e vo exigir que faamos grandes desvios pra chegar ao pico da montanha, ou eventualmente eles nem nos permitam chegar ao pico da montanha, pois esse se
62

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

encontra no terreno do vizinho que limitado por uma cerca. Nesse ltimo caso, a mxima altura que conseguiramos subir est situada em algum ponto da cerca. As diversas situaes de localizao do ponto timo esto descritas na seo 1.4. Ou seja, o ponto de mnimo (ou de mximo) no mais est associado com a condio de que o gradiente de f deva ser nulo (estacionaridade).

Fig.4.3.5a: Ilustrao sobre problemas de otimizao com restrio.

Existem essencialmente, dois tipos de mtodos para soluo desses problemas: mtodos diretos e indiretos. Os mtodos diretos verificam as restries aps seguirem o procedimento do algoritimo de otimizao sem restrio. J os mtodos indiretos transformam o problema com restrio em um problema sem restrio e resolvem. Para entender os algoritimos desses mtodos necessrio inicialmente estudar alguns conceitos que sero descritos a seguir, como condies KKT de optimalidade, problemas convexos, ponto sela (ou "Saddle Point") e dualidade. 4.3.2.1.Condies KKT de Optimalidade As condies KKT (Kharash Kuhn-Tucker) permitem verificar se uma soluo x* obtida um mnimo local ou no, ou seja, a condio de optimalidade. O termo mnimo local ao invs de global usado por uma questo de generalidade. Para funes convexas o mnimo local tambm o global como discutido adiante. Considerando um problema com ng restries de inegualdade, o Lagrangeano do problema dado por: n 2 L(x, ) = f (x) j=g1 j (g j t j ) onde as restries so do tipo g j ( x) 0 . As condies KKT afirmam que se x* um mnimo local ento:

63

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

1. x* vivel g j (x* ) 0 j = 1, n g 2. f(x ) * jg j (x* ) = 0;


* j=1 ng

* j 0;
3. * jg j (x* ) = 0 se j = 0 g j no est ativo onde o superescrito * indica o ponto timo. A condio 1 indica que a soluo seja vivel, a condio 2 a condio de estacionaridade da funo Lagrangeana, com a novidade que os multiplicadores de Lagrange devem ser positivos no ponto timo, e a condio 3 a condio de complementaridade j discutida na seo 3.2. A razo pela qual os multiplicadores de Lagrange devam ser positivos no ponto timo entendido com ajuda da Fig.4.3.6, onde g1 e g2 so os gradientes das restries ativas (perpendiculares s curvas dessas restries) e f o gradiente da funo objetivo (normal a sua curva de nvel).

g1=0

g2=0 S A

- 1g1 - g1 - 2g 2 - g 2

- f

Fig.4.3.6: Interpretao geomtrica das condies KKT.

Se A um candidato mnimo local ento pela condio de estacionaridade:

f = (1g1 + 2g 2 )
Para determinar se o ponto A um mnimo local ou no, devemos verificar se existe uma direo s saindo de A que seja vivel (no desrespeite as restries ativas) e til (melhore o valor da funo objetivo). Se essa direo existir ento o resultado pode ser "melhorado" e o ponto A no um mnimo local, caso contrrio ele ser. Para uma direo ser vivel deve formar um ngulo obtuso com -g1 e -g2, ou seja: s T g j 0 onde j representa as restries ativas em A. Para a direo ser til devemos ter: s T f < 0 Pr-multiplicando a condio de estacionaridade por sT temos: s T f = js T g j
j=1 ng

Assim nota-se que no possvel ter uma direo til ( s T f < 0 ) e vivel ( s T g j 0 ) se j 0 . Ou seja, no possvel encontrar uma direo s saindo de A
64

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

que ao mesmo tempo no desrespeite as restries ativas e melhore o valor de f. Existe uma situao no entanto em que possvel caminhar tangente s restries ativas e perpendicular ao gradiente de f, nesse caso: s T f = s T g j = 0
gradiente tangente restrio

Nesse caso a verificao do efeito do movimento nessa direo somente pode ser obtido investigando-se as derivadas mais altas. Dessa forma as condies KKT so condies necessrias, mas no suficientes para a optimalidade. Assim a condio de suficincia das condies KKT fica restrita existncia de soluo da equao s T g j = 0 . Note que esse sistema apresenta n variveis e ng equaes (igual ao nmero de restries ativas). Ou seja, se gj incluir um nmero de direes linearmente independentes (entre os ng gj disponveis) que igual ao nmero de variveis (n), ento a nica soluo para a equao em questo s=0 e nesse caso as consies KKT so tambm condies suficientes de optimalidade. Se gj incluir um nmero de direes linearmente independentes (entre os ng gj disponveis) que no igual (no caso sempre menor) ao nmero de variveis (n), a equao acima apresenta soluo com s 0 , e nesse caso as condies KKT no so suficientes. Note que no podemos ter num espao n dimensional mais do que n direes linearmente independentes, embora possamos ter um nmero maior de restries ativas (algumas delas seriam linearmente dependentes portanto). No ltimo caso, a condio de suficincia exige a anlise da matriz Hessiana da funo Lagrangeana do problema que envolve as segundas derivadas das restries e funo objetivo. Nesse caso a condio de suficincia que essa matriz Hessiana seja positiva-definida no subespao tangente s restries ativas, ou seja, s 0 obtido com a soluo da equao s T g j = 0 . Assim, temos:

s T 2 L s > 0 para todo s tal que s Tg j = 0 (restries ativas com j > 0)


onde 2 L representa a matriz Hessiana da funo Lagrangeana. Caso a matriz Hessiana seja negativa definida o ponto ser de mximo. Uma outra condio em que as condies KKT tambm so condies suficientes quando o problema convexo, como descrito adiante. Como exemplo, consideremos a soluo do problema de otimizao abaixo pela anlise das condies KKT. Essa certamente no uma forma interessante de se obter a soluo do problema, no entanto didtica e nos permite fixar os conceitos acima.

Min
x1,x2

3 f = x1 2 x 2 + 10 x1 6 2 x 3 2 2

tal que g

= 10 x1x 2 0

g 2 = x1 0 g 3 = 10 x 2 0

65

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

Soluo: Note que inicialmente importante colocar as restries na forma g j ( x) 0 , de forma a ficar compatvel com as definies acima. O Lagrangeano do problema dado por: 3 L = x 1 2 x 2 + 10 x1 6 2 x 3 1 (10 x1x 2 ) 2 x1 3 (10 x 2 ) 2 2 e as condies de estacionaridade valem: g g f 2 1 1 2 2 = 3x 1 + 10 + 1 x 2 2 = 0 x 1 x 1 x 1
g g f 1 1 3 3 = 4 x 2 6 x 2 + 1 x 1 3 = 0 2 x 2 x 2 x 2 Alm disso, a matriz Hessiana da funo Lagrangiana vale: 1 6 x1 2L 2L 2L 2L = 6 x1 ; = 4 12x 2 ; = 1 = 2L = 2 2 x1x 2 x 2 x1 x1 x 2 1 4 12x 2 Agora, a tabela abaixo descreve todos os casos possveis que podem ocorrer com as restries (representadas pelos seus multiplicadores de Lagrange) na soluo tima. Um valor de j =0 indica restrio inativa e j 0 indica restrio ativa.

Caso 1 Caso 2 Caso 3 Caso 4 Caso 5 Caso 6 Caso 7 Caso 8

1 0 0 0 0 0 0 0 0

2 0 0 0 0 0 0 0 0

3 0 0 0 0 0 0 0 0

O stimo e oitavo casos no so possveis, pois no h soluo para os sistemas de equao. No primeiro caso a soluo das equaes acima (estacionaridade mais as restries) fornece: x1 = 1,826; x 2 = 0 f = 6,17 e x 1 = 2 / 3; x 2 = 0 f = 5,875 em ambos os casos, a princpio as condies KKT so satisfeitas ( j 0 ), mas como o nmero de restries ativas (e gradientes linearmente independentes) (0) diferente do nmero de variveis (2), devemos verificar a matriz Hessiana da funo L. Nesse caso ela vale: 1 6 x 1 2L = 1 4 12x 2 e portanto negativa-definida no primeiro ponto indicando que um ponto de mximo e indefinida no segundo ponto indicando que um ponto sela.

66

Otimizao em Engenharia Mecnica

Prof. Dr. Emlio Carlos Nelli Silva

No segundo caso, x1 = 1; x 2 = 10; 1 = -0,7; 3 = 639,3 . Assim as condis KKT no so satisfeitas e o ponto no de mnimo nem de mximo. No terceiro caso, temos:
x1 = 3,847 2 - 3x1 + 10 + 1x 2 = 0 x 2 = 2,599 2 4 x 2 6 x 2 + 1x1 = 0 1 = 13,24 x x = 10 1 2 f = 73,08

a princpio as condies KKT so satisfeitas, mas como o nmero de restries ativas (e gradientes linearmente independentes) (1) diferente do nmero de variveis (2), devemos verificar a matriz Hessiana da funo L, que vale: 23,08 13,24 2L = 13,24 35,19 Novamente, negativa-definida indicando ser um ponto de mximo. No quarto caso, temos: 2 - 3x1 + 10 2 = 0 x1 = 0 2 = 10 f = 6 x2 = 0 x1 = 0 x 2 = 2 / 3 2 = 10 f = 6,99 4 x 2 6 x 2 = 0 2 a princpio as condies KKT so satisfeitas, mas como o nmero de restries ativas (e gradientes linearmente independentes) (1) diferente do nmero de variveis (2), devemos verificar a matriz Hessiana da funo L, que no caso tambm negativa-definida e portanto so pontos de mximo. No quinto caso, temos: 2 - 3x 1 + 10 = 0 x 1 = 1,826 x 2 = 10 3 = 640 f = 2194 4 x 2 6 x 2 3 = 0 2 a princpio as condies KKT so satisfeitas, mas como o nmero de restries ativas (e gradientes linearmente independentes) (1) diferente do nmero de variveis (2), devemos novamente verificar a matriz Hessiana da funo L, que no caso tambm negativa-definida e portanto novamente um ponto de mximo. No sexto caso, temos: x1 = 0; x 2 = 10; 2 = 10; 3 = 640; f = -2206 as condies KKT so satisfeitas, e como o nmero de restries ativas (e gradientes linearmente independentes) (2) igual ao nmero de variveis (2) o ponto obtido um ponto de mnimo e portanto o ponto timo procurado. Na prtica, os softwares de otimizao resolvem o problema de otimizao usando um algoritimo numrico e as condies KKT so apenas verificadas no final para soluo tima. A seguir descrito como calcular os multiplicadores de Lagrange de forma numrica para verificar as solues KKT.

67

Você também pode gostar