• Nenhum resultado encontrado

M´ etodo da Descida mais R´ apida (Steepest Descent)

2.4 M´ etodos Num´ ericos de Minimiza¸c˜ ao

2.4.1 M´ etodo da Descida mais R´ apida (Steepest Descent)

Segundo [33, pag. 399] este m´etodo foi proposto pelo matem´atico Cauchy em 1847. Trata-se de um m´etodo iterativo que procura novas aproxima¸c˜oes utilizando a dire¸c˜ao oposta ao do gradiente da fun¸c˜ao f em x = xk. Em [3, pag. 120-121], prova-se que essa dire¸c˜ao ´e de descida m´axima. Com efeito, consideremos o problema de otimiza¸c˜ao

min

x∈RnF (x). (2.14)

Usando a expans˜ao em s´erie de Taylor

F + ∆F = f (x + δ) ∼= f (x) + g(x)Tδ + 1 2δ

T

e fazendo kδk → 0, a varia¸c˜ao em F dada pelo afastamento δ resulta em ∆F ∼= g(x)Tδ = g(x)T|δ.

Ora, g(x)T|δ ´e o produto escalar dos vetores g(x) e δ. Considerando g(x) = [g1, g2, · · · , gn]T

e δ = [δ1, δ2, · · · , δn]T, temos: ∆F ∼= n X k=1 giδi = kgkkδk cos(θ),

onde θ ´e o ˆangulo definido pelos vetores δ e g(x). Sejam x e x + δ pontos de uma curva de n´ıvel. Assim, quando kδk → 0 teremos,

de onde segue que θ = ±π2. Logo, para qualquer vetor δ, conclu´ımos que ∆F assume o valor m´aximo quando θ = 0, sendo g = ∇f (x) a dire¸c˜ao de subida mais r´apida e ∆F tem o valor m´ınimo quando θ = π, sendo −g = −∇f (x) a dire¸c˜ao de descida mais r´apida.

Al´em da dire¸c˜ao da descida mais r´apida, h´a outras dire¸c˜oes de descida que tamb´em podem ser consideradas. De um modo geral, todas as dire¸c˜oes que fazem um ˆangulo de valor absoluto estritamente inferior a π2 com −∇f (x) s˜ao dire¸c˜oes de descida, garantindo um decr´escimo na fun¸c˜ao objetivo f , desde que se escolha um passo α suficientemente pequeno. Com efeito, considerando o Teorema de Taylor, truncado ap´os o segundo termo, temos:

f (xk+ αdk) ≈ f (xk) + αdTk∇f (xk),

onde dk ´e uma dire¸c˜ao de descida e o ˆangulo entre o dk e ∇f (xk) designado por θk ´e tal

que cos θk < 0. Da´ı segue que

dTk∇f (xk) = kdkkk∇f (xk)k cos θk < 0,

significando que f (xk+ αd

k) < f (xk) para todo α assumindo um valor positivo suficiente-

mente pequeno.

Como dissemos anteriormente este m´etodo ´e iterativo uma vez que as dire¸c˜oes dk =

−∇f (xk) n˜ao apontam necessariamente para o m´ınimo da fun¸c˜ao. Assim, partindo de

um ponto x0, determina-se d

0 = −g(x0), depois encontra-se α0 resolvendo o problema de

minimiza¸c˜ao unidimensional3, min f (x0 + αd0). Com isso, obt´em-se x1 = x0 + α0d0. O

processo deve ser repetitivo, usando a rela¸c˜ao xk+1 = xk + α

kdk, por forma a encontrar

uma solu¸c˜ao ´otima x∗ que satisfa¸ca um certo crit´erio de paragem previamente estabelecido. Esse crit´erio pode ser, parar quando kαkdkk for insignificante ou quando αk ≤ Kα0, onde

K ´e uma constante positiva suficientemente pequena.

Determinando o valor exato de α que minimiza f ao longo da dire¸c˜ao dk, temos que

∂f ∂α(x

k

+ αdk) = g(xk+ αdk)Tdk = 0,

onde g(xk + αd

k) ´e o gradiente de f no ponto xk + αdk. Assim, as sucessivas dire¸c˜oes

de descida m´axima s˜ao ortogonais. Esse facto leva com que este m´etodo apresente um comportamento zig-zag nas ´ultimas itera¸c˜oes e uma consequente lentid˜ao na obten¸c˜ao do valor ´otimo x∗.

Em [3, pag. 123] encontramos o seguinte algoritmo para o m´etodo Steepest Descent. Passo 1

Introduzir x0 e inicializar a tolerˆancia ε.

Fazer k = 0. Passo 2

Calcular o gradiente gk e fazer dk= −gk.

Passo 3

Encontrar αk, o valor de α que minimiza f (xk+ αdk), usando uma pesquisa linear.

Passo 4 Fazer xk+1 = xk+ α kdk e calcular fk+1 = f (xk+1). Passo 5 Se kαkdkk < ε, ent˜ao fazer: x∗ = xk+1 e f (x) = f (xk+1), e parar

Caso contr´ario, fazer k = k + 1 e voltar ao Passo 2.

Convergˆencia do M´etodo Steepest Descent

Consideremos o caso em que a fun¸c˜ao objetivo ´e uma fun¸c˜ao quadr´atica dada por: f (x) = 1

2x

TQx − xTb

em que Q ´e uma matriz constante, no caso sim´etrica e definida positiva. Assim, pode-se encontrar o ´unico minimizante de f , resolvendo a condi¸c˜ao ∇f = 0, ou seja, resolvendo Qx − b = 0. Pelo m´etodo da descida mais r´apida temos que xk+1 = xk − α

kgk, onde

gk = Qx − b. Determinando agora αk que minimiza f , vem

f (xk− αgk) =

1 2(x

k− αg

k)TQ(xk− αgk) − (xk− αgk)Tb = φ(α).

Calculando agora a derivada de φ(α) e igualando a zero, temos ∂φ ∂α = (−gk) TQ(xk− αg k) + gTkb = 0 ⇔ (−gk)T(Qxk− b) + (gk)TQgkα = 0 ⇔ α = gT kgk gT kQgk . Assim, usando o αk obtido, o m´etodo steepest descent para uma fun¸c˜ao quadr´atica ´e dado

explicitamente por xk+1 = xk− g T kgk gT kQgk gk.

Em [29, pag. 49] encontramos um teorema que estabelece as condi¸c˜oes de convergˆencia do m´etodo steepest descent para uma fun¸c˜ao f (x) ∈ C2, com um minimizante xe cuja

matriz Hessiana seja definida positiva para x∗. Apresenta-se de seguida esse resultado. Teorema 2.5 Suponha-se que f : Rn→ R ´e duas vezes continuamente diferenci´avel e que

as itera¸c˜oes geradas pelo m´etodo steepest descent com busca linear exata convergem para um ponto x∗ no qual a matriz Hessiana seja definida positiva. Ent˜ao,

f (xk+1) − f (x∗) ≤ λn− λ1 λn+ λ1

2

f (xk) − f (x) ,

(2.15) onde 0 < λ1 ≤ λ2 ≤ · · · ≤ λn, s˜ao os n valores pr´oprios de H(x∗).

De notar que a raz˜ao de convergˆencia4 λn−λ1 λn+λ1 2 depende da raz˜ao r = λn λ1. Com efeito,  λn− λ1 λn+ λ1 2 = " 1 λ1(λn− λ1) 1 λ1(λn+ λ1) #2 = λn λ1 − 1 λn λ1 + 1 !2 = r − 1 r + 1 2 .

Por outro lado, a desigualdade (2.15) ´e verificada sempre que f for uma fun¸c˜ao quadr´atica (ver [25, pag. 238]). De (2.15) determina-se que

|f (xk+1) − f (x)| |f (xk) − f (x)| ≤  λn− λ1 λn+ λ1 2 = r − 1 r + 1 2 .

Verifica-se assim, que o m´etodo converge linearmente (ver Apˆendice B), isto ´e, a ordem de convergˆencia ´e p = 1, sendo a raz˜ao de convergˆencia c = 1−r1+r2.

Este teorema mostra que a taxa de convergˆencia do m´etodo steepest descent se torna mais lenta conforme as curvas de n´ıvel de f se tornam mais excˆentricas. Se λ1 = λn, o

que significa dizer que as curvas de n´ıvel s˜ao circulares, a convergˆencia ocorre num ´unico passo. No entanto, isso pode ocorrer noutros casos (ver Exemplo seguinte).

Exemplo 2.2 Considere a fun¸c˜ao

f (x, y) = 10x2+ 5xy + 10(y − 3)2.

(a) Encontrar a dire¸c˜ao steepest descent para f no ponto z0 = [−1, 3]T.

(b) Encontrar o ponto z1, aplicando uma itera¸ao do m´etodo steepest descent.

Resolu¸c˜ao:

(a) Para encontrar a dire¸c˜ao steepest descent para f em z0, primeiro calculemos o gra- diente de f . ∇f (x, y) =  20x + 5y 5x + 20(y − 3)  ⇒ ∇f (−1, 3) =−5 −5  .

Logo, a dire¸c˜ao steepest descent para f no ponto z0 = [−1, 3]T ´e d0 =

5 5 

. (b) Para encontrar z1 fazemos:

z1 = z0+ α∗d0 ⇒ −1 3  + α∗5 5  =−1 + 5α ∗ 3 + 5α∗  , onde α∗ = min α>0 g(α),

com g(α) = f−1 + 5α 3 + 5α  . Ent˜ao, g(α) = 10(−1 + 5α)2+ 5(−1 + 5α)(3 + 5α) + 10(5α)2 = 625α2− 50α − 5. g0(α) = 2 × 625α − 50 = 0 ⇔ α = 50 2 × 625. Pelo que α∗ = 251 . Assim, z1 =−1

3  +251 5 5  =− 4 5 16 5 

. Neste caso z1 ´e o valor ´otimo do problema. Com efeito, verifica-se pelo c´alculo diferencial que z1 ´e o minimizante

global de f uma vez que ∇f (x, y) = 0 ⇒x y  =− 4 5 16 5  e H(z) =20 5 5 20  ´ e definida positiva, de onde segue que f ´e estritamente convexa, atingindo o seu minimizante global no seu ´unico ponto cr´ıtico. Pode-se ver tamb´em que neste caso partimos de uma aproxima¸c˜ao inicial bastante pr´oxima do minimizante e que os valores pr´oprios de H, λ1 = 15 e λ2 = 25 s˜ao relativamente pr´oximos, tendo-se assim, r = 2515 = 1.6666...

e c = 1− 25 15

1+2515 = 0.0625 ≈ 0, levando assim a convergˆencia do m´etodo steepest descent

numa s´o itera¸c˜ao.

Documentos relacionados