• Aucun résultat trouvé

RAID-Based Storage

Dans le document Red Hat Linux 8.0 (Page 60-68)

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®AAek+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¡x= 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, r.

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, r. (4.79)

Em vista da hip´otese de indu¸c˜ao, basta mostrar que rj ∈ K j+1 ¡ A, r. Como rj = rj−1− α j−1Apj−1 e rj−1 ∈ K j ¡ A, r⊂ K j+1 ¡

A, rpor hip´otese de indu¸c˜ao, basta provar que Apj−1 ∈ K j+1

¡

A, r. Mas,

tamb´em por hip´otese de indu¸c˜ao, pj−1∈ K j+1 ¡ A, r, logo Apj−1∈ K j ¡ A, Ar=­Ar0, A2r0, . . . , Ajr­r0, Ar0, A2r0, . . . , Ajr= K j+1 ¡ A, r.

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, r. (4.81)

Para provar que eles s˜ao iguais, basta mostrar que eles tˆem a mesma dimens˜ao. Isso decorre de dim­r0, r1, . . . , rj®6 j + 1, dim Kj+1 ¡ A, r6 j + 1 e dim­p0, 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, r

para todo j.

4.31 Corol´ario. Depois de j itera¸c˜oes do algoritmo do gradiente conjugado, temos rj ⊥ K j ¡ A, rpara 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®Ark+1, Api®= 0

para todos i = 1, . . . , k − 1. Pelo Teorema 4.29, pi ­p0, p1, . . . , pi® =­r0, Ar0, . . . , Air® = K i+1 ¡ A, r, logo Api∈­Ar0, A2r0, . . . , Ai+1r®⊂ Ki+2 ¡ A, r⊂ Kk+1 ¡ A, r

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 ° °e° 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).

Cap´ıtulo 5

M´etodos Multigrid

5.1

Suaviza¸c˜ao de Erros

Dans le document Red Hat Linux 8.0 (Page 60-68)