II. Resource Management
5. Managing Storage
5.5. RAID-Based Storage
Do C´alculo Diferencial, sabemos que a dire¸c˜ao em que a fun¸c˜ao cresce a uma taxa mais r´apida a partir de um ponto ´e a dire¸c˜ao do gradiente neste ponto. Esta observa¸c˜ao ´e a base da escolha da dire¸c˜ao de busca no
m´etodo da descida mais acentuada. Em outras palavras, escolhemos pk= −∇f¡xk¢= b − Axk ou
pk= rk. (4.67)
Buscar na dire¸c˜ao da descida mais acentuada ´e uma id´eia natural, mas que na pr´atica n˜ao funciona sem modifica¸c˜oes. De fato, em alguns casos o m´etodo ´e de velocidade compar´avel `a do m´etodo de Jacobi, como na matriz de discretiza¸c˜ao da f´ormula de cinco pontos aplicada ao problema descrito na primeira se¸c˜ao deste cap´ıtulo [Watkins]:
∆x = 0.1 ∆x = 0.05 ∆x = 0.025
Jacobi 299 1090 3908
Descida Mais Acentuada 304 1114 4010
De fato, como as itera¸c˜oes do m´etodo de descida mais acentuada s˜ao bem mais custosas que as do m´etodo de Jacobi, o primeiro ´e muito pior que este ´ultimo.
Para entender melhor o m´etodo da descida mais acentuada, porque ele pode ser lento e as modifica¸c˜oes que vamos fazer para torn´a-lo mais r´apido levando ao m´etodo do gradiente conjugado, vamos entender o processo do ponto de vista geom´etrico. Como vimos na demonstra¸c˜ao do Teorema 4.24, o funcional quadr´atico f ´e da forma
f (y) = 1
2(y − x)
tA (y − x) + c (4.68)
onde c = f (x) = 1
2xtAx − xtb ´e uma constante. J´a que A ´e uma matriz sim´etrica, existe uma matriz
ortogonal P tal que PtAP ´e uma matriz diagonal D , cujos valores na diagonal principal s˜ao exatamente os
autovalores positivos de A. Nas coordenadas
z = Pt(y − x) ,
o funcional f tem a forma
f (z) = 1 2z tDz + c = 1 2 n X i=1 λiz2i + c. (4.69)
As curvas de n´ıvel do funcional f neste sistema de coordenadas s˜ao elipses (em R2, elips´oides em R3 e
hiperelips´oides em Rn) centradas na origem com eixos paralelos aos eixos coordenados e f (0) = c ´e n´ıvel
m´ınimo de f ; elipses correspondentes a menores valores de f est˜ao dentro de elipses correspondentes a maiores valores de f . Como P ´e uma aplica¸c˜ao ortogonal, as curvas de n´ıvel de f no sistema de coordenadas original tamb´em s˜ao elipses, centradas em x, e uma reta de um ponto y at´e o ponto x corta elipses de n´ıveis cada vez menores at´e chegar ao m´ınimo da fun¸c˜ao f em x, centro de todas as elipses. O vetor gradiente ´e perpendicular `as curvas de n´ıvel, logo ´e perpendicular `as elipses. Seguir a dire¸c˜ao de descida mais acentuada equivale a cortar a elipse que cont´em xk ortogonalmente na dire¸c˜ao do interior da elipse at´e encontrar um
ponto xk+1situado em uma elipse que a reta tangencie, pois a partir da´ı a reta ir´a na dire¸c˜ao de elipses com
n´ıveis maiores, portanto este ´e o ponto da reta onde f atinge o seu m´ınimo. Em particular, vemos que a pr´oxima dire¸c˜ao pk+1´e ortogonal `a dire¸c˜ao anterior pk, tangente a esta elipse. Em geral, a dire¸c˜ao de descida
mais acentuada n˜ao ´e a dire¸c˜ao de x (quando bastaria uma itera¸c˜ao para atingir a solu¸c˜ao exata) a n˜ao ser que A seja um m´ultiplo escalar da identidade, de modo que todos os autovalores de A s˜ao iguais e as elipses s˜ao c´ırculos. Por outro lado, se os autovalores de A tˆem valores muito diferentes uns dos outros, com alguns muito pequenos e alguns muito grandes, as elipses ser˜ao bastante excˆentricas e, dependendo do chute inicial,
a convergˆencia pode ser muito lenta (matrizes com estas propriedades s˜ao chamadas mal-condicionadas; para que o m´etodo de descida acentuada seja lento, a matriz A n˜ao precisa ser muito mal-condicionada).
Como vimos na se¸c˜ao anterior, os algoritmos de Gauss-Seidel e SOR podem ser encarados como algoritmos de descida. A discuss˜ao no par´agrafo anterior tamb´em pode ser usada para entender a relativa lentid˜ao destes algoritmos.
4.4.3
M´etodo do Gradiente Conjugado
Todos os m´etodos iterativos que vimos neste cap´ıtulo s˜ao limitados pela sua falta de mem´oria, no sentido de que apenas informa¸c˜ao sobre xk ´e usada para obter xk+1. Toda a informa¸c˜ao sobre as itera¸c˜oes anteriores ´e
deletada. O m´etodo do gradiente conjugado ´e uma varia¸c˜ao simples do m´etodo da descida mais acentuada que funciona melhor porque a informa¸c˜ao obtida atrav´es das itera¸c˜oes anteriores ´e utilizada.
Para entender brevemente como isso funciona, observe que depois de j itera¸c˜oes xk+1 = xk+ α kpk de
um m´etodo de descida temos
xj= x0+ α0p0+ α1p1+ . . . + αj−1pj−1,
de modo que xj est´a no subespa¸co afim gerado pelo chute inicial x0 e pelos vetores ©p0, p1, . . . , pj−1ª.
Enquanto o m´etodo da descida mais acentuada minimiza o funcional de energia f apenas ao longo das j retas xk+ α
kpk, cuja uni˜ao constitui apenas um pequeno subconjunto de x0+
p0, p1, . . . , pj−1®, o m´etodo
do gradiente conjugado minimiza f sobre todo o subespa¸co afim x0+p0, p1, . . . , pj−1®.
Para definir as dire¸c˜oes de busca do m´etodo do gradiente conjugado (que ´e, antes de mais nada, um m´etodo de descida), lembramos que o funcional f foi escrito na forma
f (y) = 1 2kyk 2 A− hy, xiA. Defina o erro e = x − y. (4.70) Pela regra do paralelogramo, temos
kx + yk2A+ kx − yk2A= 2 kxk2A+ 2 kyk2A,
donde
2 kyk2A= kx − yk2A+ kxkA2 + 2 hy, xiA+ kyk2A− 2 kxk2A
= kx − yk2A+ 2 hy, xiA− kxk2A+ kyk2A,
ou
kyk2A− 2 hy, xiA= kx − yk2A− kxk2A.
Logo, podemos escrever
f (y) = 1 2kek 2 A− 1 2kxk 2 A. (4.71)
Conseq¨uentemente, minimizar o funcional f ´e equivalente a minimizar a A-norma do erro. Agora, em um m´etodo de descida, depois de j itera¸c˜oes temos:
ej= x − xj = x − x0−¡α 0p0+ α1p1+ . . . + αj−1pj−1 ¢ = e0−¡α 0p0+ α1p1+ . . . + αj−1pj−1 ¢ .
Logo, minimizar°°ej°°2
A ´e equivalente a minimizar
° °e0−¡α
0p0+ α1p1+ . . . + αj−1pj−1
¢°°
A,
o que por sua vez ´e equivalente a encontrar a melhor aproxima¸c˜ao do vetor e0no subespa¸co W
j =
p0, p1, . . . , pj−1®.
Rodney Josu´e Biezuner 115 4.26 Proposi¸c˜ao. Sejam A ∈ Mn(R) uma matriz sim´etrica positiva definida, v ∈ Rn e W um subsespa¸co
de Rn. Ent˜ao existe um ´unico w ∈ W tal que
kv − wkA= min
z∈Wkv − zkA.
O vetor w ´e caracterizado pela condi¸c˜ao v − w ⊥AW .
Segue deste resultado que°°ej°°
A´e minimizado quando escolhemos p = α0p
0+ α
1p1+ . . . + αj−1pj−1∈ Wj
tal que ej = e0− p satisfaz
ej ⊥Api para i = 1, . . . , j − 1. (4.72)
Defini¸c˜ao. Dois vetores y, z que s˜ao ortogonais com respeito ao produto interno h·, ·iA, isto ´e, tais que
hy, ziA= 0 s˜ao chamados conjugados.
Nosso objetivo ent˜ao ´e desenvolver um m´etodo em que o erro a cada passo ´e conjugado com todas as dire¸c˜oes de busca anteriores. O pr´oximo resultado, que ´e basicamente uma reafirma¸c˜ao da Proposi¸c˜ao 4.25, mostra que em qualquer m´etodo de descida em que a busca na reta ´e exata satisfaz automaticamente ej ⊥
A pj−1,
isto ´e, (4.72) ´e v´alido para a ´ultima itera¸c˜ao (o erro da itera¸c˜ao presente ´e A-ortogonal `a dire¸c˜ao de busca da itera¸c˜ao anterior).
4.27 Proposi¸c˜ao. Seja xk+1= xk+ α
kpk obtido atrav´es de uma busca na reta exata. Ent˜ao
rk+1⊥ pk
e
ek+1⊥Apk.
Prova: Temos
b − Axk+1= b − Axk− αkApk,
de modo que a seq¨uˆencia dos res´ıduos ´e dada pela f´ormula
rk+1= rk− α kApk. (4.73) Logo, rk+1, pk®=rk+1, pk®− αk Apk, pk®=rk, pk®− pk, rk® hpk, Apki Apk, pk®= 0. Al´em disso, como
Aek+1= rk+1,
segue que
ek+1, pk®A=Aek+1, pk®=rk+1, pk®= 0. ¥
O significado geom´etrico deste resultado ´e que o m´ınimo do funcional f na reta xk+ α
kpk ocorre quando a
derivada direcional de f na dire¸c˜ao de busca ´e zero, ou seja, 0 = ∂f ∂pk ¡ xk+1¢=∇f¡xk+1¢, p k ® =rk+1, p k ® .
De acordo com a Proposi¸c˜ao 4.27, depois do primeiro passo temos e1 ⊥
A p0. Para manter os erros
subseq¨uentes conjugados a p0, como
ou
ek+1= ek− α
kpk, (4.74)
basta escolher as dire¸c˜oes de busca subseq¨uentes conjugadas a p0. Se escolhemos p1conjugado a p0, obtemos
x2para o qual o erro satisfaz e2⊥
Ap1; como p1⊥Ap0, segue de (4.74) que e2⊥Ap0tamb´em. Para manter
os erros subseq¨uentes conjugados a p0 e p1, basta escolher as dire¸c˜oes de busca subseq¨uentes conjugadas a
p0e p1. Assim, vemos que para obter a condi¸c˜ao (4.72) basta escolher as dire¸c˜oes de busca de tal forma que
pi⊥
Apj para todos i 6= j.
Um m´etodo com estas caracter´ısticas ´e chamado um m´etodo de dire¸c˜oes conjugadas. Estes resultados s˜ao resumidos na proposi¸c˜ao a seguir:
4.28 Teorema. Se um m´etodo emprega dire¸c˜oes de busca conjugadas e performa buscas na reta exatas,
ent˜ao
ej⊥Api para i = 1, . . . , j − 1,
para todo j. Conseq¨uentemente °
°ej°° A= minp∈Wj ° °e0− p°° A, onde Wj = p0, p1, . . . , pj−1®.
Prova: A demonstra¸c˜ao ´e por indu¸c˜ao. Para j = 1, temos e1 ⊥
Ap0 pela Proposi¸c˜ao 4.27 porque a busca
na reta ´e exata. Em seguida, assuma ej ⊥
A pi para i = 1, . . . , j − 1; queremos mostrar que ej+1 ⊥A pi
para i = 1, . . . , j. Como ej+1= ej− α jpj, para i = 1, . . . , j − 1 temos ej+1, pi® A= ej− α jpj, pi ® A= ej, pi® A− αj pj, pi® A= 0 − 0 = 0
porque as dire¸c˜oes de busca s˜ao conjugadas. ej+1⊥
Apj segue novamente da Proposi¸c˜ao 4.27. ¥
Quando a dire¸c˜ao inicial ´e dada pelo vetor gradiente de f , como na primeira itera¸c˜ao do m´etodo da descida mais acentuada, obtemos o m´etodo do gradiente conjugado. As dire¸c˜oes subseq¨uentes s˜ao escolhidas atrav´es de A-ortogonalizar o res´ıduo (ou vetor gradiente de f , que ´e a dire¸c˜ao de busca em cada itera¸c˜ao do m´etodo da descida mais acentuada) com todas as dire¸c˜oes de busca anteriores, para isso utilizando o algoritmo de Gram-Schmidt. Assim, dado um chute inicial p0, a primeira dire¸c˜ao ´e
p0= −∇f¡x0¢= b − Ax0= r0 ou seja, a dire¸c˜ao inicial ´e o primeiro res´ıduo:
p0= r0. (4.75)
Depois de k passos com dire¸c˜oes de busca conjugadas p0, . . . , pk, escolhemos
pk+1= rk+1−
k
X
i=0
ckipi (4.76)
onde os ckis˜ao dados pelo algoritmo de Gram-Schmidt:
cki= rk+1, pi® A hpi, pii A . (4.77) de forma que pk+1⊥
Apipara todos i = 1, . . . , k. Felizmente, como veremos a seguir depois de algum trabalho
Rodney Josu´e Biezuner 117 de busca mais recente pk seja armazenada na mem´oria do computador, o que garante que a implementa¸c˜ao
do gradiente conjugado ´e eficiente:
pk+1= rk+1− rk+1, pk® A hpk, pki A pk= rk+1− rk+1, Apk® hpk, Apki p k. (4.78)
Esta ´e a modifica¸c˜ao do m´etodo do gradiente conjugado em rela¸c˜ao ao m´etodo da descida mais acentuada, em que pk+1= rk+1.
Defini¸c˜ ao. Dada uma matriz A ∈ Mn(C) e um vetor v ∈ Cn, o espa¸co de Krylov Kj(A, v) ´e o subespa¸co
v, Av, . . . , Aj−1v®.
4.29 Teorema. Depois de j itera¸c˜oes do algoritmo do gradiente conjugado (com rk6= 0 em cada itera¸c˜ao),
temos
p0, p1, . . . , pj−1®=r0, r1, . . . , rj−1®= K j
¡
A, r0¢.
Prova: A demonstra¸c˜ao ´e por indu¸c˜ao. O resultado ´e trivial para j = 0, pois p0= r0. Assuma o resultado
v´alido para j − 1. Em primeiro lugar, mostraremos que
r0, r1, . . . , rj®⊂ K j+1
¡
A, r0¢. (4.79)
Em vista da hip´otese de indu¸c˜ao, basta mostrar que rj ∈ K j+1 ¡ A, r0¢. Como rj = rj−1− α j−1Apj−1 e rj−1 ∈ K j ¡ A, r0¢ ⊂ K j+1 ¡
A, r0¢ por hip´otese de indu¸c˜ao, basta provar que Apj−1 ∈ K j+1
¡
A, r0¢. Mas,
tamb´em por hip´otese de indu¸c˜ao, pj−1∈ K j+1 ¡ A, r0¢, logo Apj−1∈ K j ¡ A, Ar0¢=Ar0, A2r0, . . . , Ajr0®⊂r0, Ar0, A2r0, . . . , Ajr0®= K j+1 ¡ A, r0¢.
Em seguida, mostraremos que
p0, p1, . . . , pj®⊂r0, r1, . . . , rj®. (4.80) Por hip´otese de indu¸c˜ao, basta provar que pj ∈r0, r1, . . . , rj®. Isso segue de (4.76) e da hip´otese de indu¸c˜ao.
At´e aqui provamos que
p0, p1, . . . , pj®⊂r0, r1, . . . , rj®⊂ K j+1
¡
A, r0¢. (4.81)
Para provar que eles s˜ao iguais, basta mostrar que eles tˆem a mesma dimens˜ao. Isso decorre de dimr0, r1, . . . , rj®6 j + 1, dim Kj+1 ¡ A, r0¢6 j + 1 e dimp0, p1, . . . , pj®= j + 1,
o ´ultimo porque os vetores p0, p1, . . . , pj s˜ao vetores n˜ao-nulos A-ortogonais. ¥
4.30 Corol´ario. Depois de j itera¸c˜oes do algoritmo do gradiente conjugado, temos
ej ⊥ AKj
¡
A, r0¢
para todo j.
4.31 Corol´ario. Depois de j itera¸c˜oes do algoritmo do gradiente conjugado, temos rj ⊥ K j ¡ A, r0¢ para todo j.
Prova: Em vista do Teorema 4.29, basta provar que rj⊥ p0, p1, . . . , pj−1para todo j. Como Aej+1= rj+1,
rj+1, pi®=Aej+1, pi®=ej+1, pi® A= 0
para todo i = 1, . . . , j − 1, como vimos na demonstra¸c˜ao do Teorema 4.28. ¥ 4.32 Corol´ario. cki= 0 para todo i = 1, . . . , k − 1.
Prova: Temos que provar que
rk+1, pi®A=rk+1, Api®= 0
para todos i = 1, . . . , k − 1. Pelo Teorema 4.29, pi ∈ p0, p1, . . . , pi® =r0, Ar0, . . . , Air® = K i+1 ¡ A, r0¢, logo Api∈Ar0, A2r0, . . . , Ai+1r®⊂ Ki+2 ¡ A, r0¢⊂ Kk+1 ¡ A, r0¢
e o resultado segue do corol´ario anterior. ¥
4.33 Teorema. Seja A uma matriz sim´etrica positiva definida n×n. Ent˜ao o m´etodo do gradiente conjugado
converge em n itera¸c˜oes.
Prova: Se fizemos n − 1 itera¸c˜oes em obter x, pelo Corol´ario 4.32 os vetores r0, r1, . . . , rn−1 formam uma
base ortogonal para Rn. Depois de mais uma itera¸c˜ao, de acordo com este mesmo corol´ario o res´ıduo rn
satisfaz rn⊥r0, r1, . . . , rn−1®= Rn, logo rn= 0. ¥
De fato, na maioria das aplica¸c˜oes o m´etodo do gradiente conjugado converge ainda mais r´apido, se apenas uma boa aproxima¸c˜ao ´e requerida. Defina o n´umero de condi¸c˜ao de uma matriz sim´etrica positiva definida por
κ (A) = max {λ : λ ´e um autovalor de A}
min {λ : λ ´e um autovalor de A}; (4.82)
assim, quanto maior o n´umero de condi¸c˜ao de uma matriz, ela ´e mais mal-condicionada e a convergˆencia de m´etodos de descida ´e mais vagarosa. Pode-se provar a seguinte estimativa de erro para o m´etodo do gradiente conjugado (veja [Strikwerda]):
° °ek°° A6 2 ° °e0°° A Ã p κ (A) − 1 p κ (A) + 1 !k . (4.83)
Esta estimativa ´e uma estimativa grosseira, mas mostra que o m´etodo do gradiente conjugado converge mais rapidamente para matrizes bem-condicionadas (κ (A) ∼ 1). Uma compara¸c˜ao entre a velocidade de convergˆencia dos dois m´etodos para a matriz de discretiza¸c˜ao da f´ormula de cinco pontos aplicada ao problema descrito na primeira se¸c˜ao deste cap´ıtulo, desta vez com o tamanho das matrizes indicado na linha superior da tabela, ´e dada a seguir [Watkins].
n = 81 n = 361 n = 1521
Descida Mais Acentuada 304 1114 4010
Gradiente Conjugado 29 60 118
No caso desta matriz de discretiza¸c˜ao no quadrado unit´ario temos
κ (A) = sen 2(n − 1) π 2n sen2 π 2n = cot2 π 2n = cot 2π∆x 2 ≈ 4 π2∆x2
Rodney Josu´e Biezuner 119 de modo que p κ (A) − 1 p κ (A) + 1≈ 1 − π∆x/2 1 + π∆x/2≈ 1 − π∆x,
o que d´a uma velocidade de convergˆencia para o m´etodo do gradiente conjugado duas vezes maior que a do m´etodo SOR com o fator de relaxamento ´otimo. No entanto, deve-se ter em mente que enquanto que a taxa de covergˆencia que obtivemos para o m´etodo SOR ´e precisa, a estimativa de erro (4.83) para o m´etodo do gradiente conjugado ´e apenas um limitante superior grosseiro (veja [Watkins] para algumas estimativas melhoradas).