Subido por Pablo Báez

Proyecto final ALN

Anuncio
Álgebra Lineal Numérica
Universidad de la República, Uruguay
Curso 2019
Técnicas de reciclado en métodos iterativos
Autor:
Pablo Báez Echevarría
4.474.885-0
20 de diciembre de 2019
Docentes:
Pablo Enzatti
Ernesto Dufrechou
Índice
1. Introducción
3
2. Fundamentos matemáticos
2.1. GMRES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1. Iteración de Arnoldi . . . . . . . . . . . . . . . . . . . .
2.1.2. Pseudocódigo de GMRES(m) . . . . . . . . . . . . . . .
2.2. Reciclado en subespacios de Krylov . . . . . . . . . . . . . . . .
2.2.1. Idea general . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2. Reciclado en GMRES: rGCROT/rGCRO-DR . . . . . .
2.2.3. Aplicación del reciclado a secuencias de sistemas lineales
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3. Principales trabajos en la materia
3.1. Recycling Krylov Subspaces for Sequences of Linear Systems (2004) . . . . . . .
3.1.1. Breve reseña . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Recycling Krylov subspaces for efficient large-scale electrical impedance tomography (2010) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1. Breve reseña . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Recycling BiCG with an Application to Model Reduction (2010) . . . . . . . .
3.3.1. Breve reseña . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4. Recycling Krylov subspaces for CFD applications and a new hybrid recycling
solver (2015) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1. Breve reseña . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.2. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5. Krylov Subspace Recycling for Fast Iterative Least-Squares in Machine Learning
(2017) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6. Strategies For Recycling Krylov Subspace Methods And Bilinear Form Estimation (2017) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7. Recycling Krylov subspaces and reducing deflation subspaces for solving sequence of linear systems (2018) . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
7
7
13
15
15
16
20
22
22
22
23
23
24
24
25
25
26
26
26
27
27
27
27
4. Paquetes de software
28
4.1. PETSc + HPDDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2. KryPy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1
5. Conclusión
32
Referencias
33
2
1.
Introducción
En muchas aplicaciones de la ingeniería (en áreas tales como Análisis Estructural, Teoría de
Control, Imagenología Médica, etc.), nos encontramos con que debe resolverse una secuencia
de sistemas lineales
A(i) x(i) = b(i) , i = 1, 2, . . .
donde la variación entre la matriz A(i) y A(i+1) es relativamente leve. Estas matrices A(i) suelen
ser de grandes dimensiones y presentar la propiedad de ser dispersas, término que proviene de
la traducción del inglés sparse matrices y que se usa para referirse a matrices con una gran
cantidad de elementos iguales a cero (lo opuesto a matriz “dispersa” es matriz “densa”). Estas
matrices dispersas frecuentemente aparecen en la discretización de ecuaciones diferenciales
al usar modelos de elementos finitos o diferencias finitas. Por ejemplo, una discretización de
diferencias finitas de una ecuación en derivadas parciales puede traducirse en una matriz
de dimensión m = 105 con solo v = 10 elementos no nulos por fila. Por otra parte, muy
frecuentemente el vector b(i+1) (o incluso la matriz A(i+1) ) depende de la solución del sistema
anterior x(i) de manera que el sistema i + 1 no queda completamente determinado hasta que
se resuelve el sistema i.
En este contexto, es fundamental que el tiempo de ejecución para resolver cada sistema
en la secuencia (así como la memoria empleada) se reduzca lo máximo posible, ya que de eso
depende el costo de todo el proceso. Los métodos directos (como escalerización gaussiana o
descomposición LU) llegan a la solución exacta después de un número finito de pasos, dependiente del tamaño de la matriz del sistema. Para el caso de matrices de estas dimensiones,
resultan prohibitivos (y son aún menos aplicables si para resolver el sistema i + 1 debe esperarse a tener la solución del sistema i). Lo natural para resolver estos sistemas es utilizar
métodos iterativos, que buscan aproximar la solución mediante una sucesión generada iterativamente (que se interrumpe cuando el error es menor que un cierto umbral prefijado por el
usuario). Dentro de la clase de los métodos iterativos, los basados en subespacios de Krylov
han demostrado ser particularmente útiles en el caso de matrices grandes.
No obstante, los métodos basados en subespacios de Krylov suelen requerir un número muy
elevado de iteraciones para construir una buena solución, y las iteraciones pueden ser costosas.
Por tanto se han buscado maneras de reducir la cantidad de iteraciones aumentando la tasa de
convergencia. Una de las técnicas empleadas recientemente (con bastante éxito), es el reciclado
de subespacios de Krylov. Esencialmente consisten en “reciclar” parte de la información que
fue calculada para el sistema i-ésimo para reducir la cantidad de iteraciones en el sistema
(i + 1)-ésimo, basándose en que A(i+1) ≈ A(i) .
Hay muchos métodos basados en subespacios de Krylov. Básicamente los hay de dos “familias”: una es de la ORTHODIR, MINRES, CGR, GMRES, etc. y la otra es la de CG, QMR,
3
BiCG, bi-Lanczos, etc. El reciclado se implementa de manera diferente en cada uno (si bien
hay similaridades dentro de cada “familia”). En la sección 2 nos centramos en métodos del
tipo GMRES. GMRES(m) (o GMRES con reinicialización o Restarted GMRES ) es uno de
los métodos más robustos que existen y por tanto ampliamente utilizado en la práctica. El
único inconveniente es que demandaba demasiado espacio (por eso la reinicialización), y en
algunos casos convergía lentamente, pero las técnicas de reciclado han conseguido sortear en
parte dicho inconveniente.
El presente trabajo tiene como objetivos fundamentales: (1) exponer los principios básicos
en los que se basa la técnica de reciclado de subespacios de Krylov (partiendo prácticamente
de cero, es decir, sin dar por sentado ningún conocimiento previo más que conocimientos elementales de álgebra lineal) y (2) relevar el estado del arte en la materia, listando y comentando
brevemente los trabajos académicos de mayor relevancia. El autor puso especial esmero en la
sección 2 de fundamentos matemáticos, procurando que fuese una exposición autocontenida.1
1
Algo bastante tedioso en la lectura de los papers es que siempre uno remite a otro por tal o cual resultado,
y al final la exposición teórica de cada uno se vuelve una maraña difícil de desentrañar.
4
2.
Fundamentos matemáticos
Sea A ∈ Fm×m una matriz dispersa y b ∈ Fm×1 un vector. Se desea encontrar una solución
aproximada a la ecuación lineal
Ax = b
(2.1)
La eficiencia de resolver 2.1 depende de tres factores: (1) el algoritmo matemático empleado,
(2) su implementación, y (3) las características particulares del problema que dio origen al
sistema 2.1. En la mayoría de las aplicaciones, la matriz A es muy grande y un método
directo es imposible de aplicar o demasiado costoso. Los métodos basados en subespacios de
Krylov son una buena opción para resolver sistemas de estas características. Estos métodos
encuentran una solución aproximada en el subespacio de Krylov a través de un proceso iterativo
en vez de resolver 2.1 directamente por medio de eliminación gaussiana o descomposición LU.
Sin embargo, los métodos basados en subespacios de Krylov podrían requerir demasiadas
iteraciones para alcanzar una solución con la precisión deseada. Estos métodos suelen requerir
de un precondicionador para mantener la cantidad de iteraciones en un número razonable,
pero el precondicionador podría ser costoso de computar.
Llámese x0 al vector de partida (estimación inicial) y r0 = b − Ax0 al residuo. Los métodos
basados en subespacios de Krylov actualizan la solución aproximada en cada iteración de la
siguiente manera: en el paso n, se forma xn = x0 + zn , con zn ∈ Kn (A, r0 ), donde2
Kn (A, r0 ) = [r0 , Ar0 , . . . , An−1 r0 ]
es el subespacio de Krylov asociado a la matriz A y el vector r0 . ¿Por qué este subespacio es
adecuado para construir una solución aproximada? Para responder esta pregunta, lo primero
es notar que si se hace el cambio de variable
z = x − x0
(2.2)
Az = r0
(2.3)
resolver 2.1 es equivalente a resolver
En efecto, si en 2.3 se impone 2.2 se tiene que
Az = r0
⇔
A(x − x0 ) = b − Ax0
⇔
Ax = b
De esta manera, se puede ver a zn como la solución aproximada n-ésima del sistema equivalente 2.3. ¿Y por qué es natural expresar la solución de un sistema Az = r0 como combinación
lineal de r0 , Ar0 , A2 r0 , . . . , Ak r0 , . . . ? Para responder a esta pregunta, considérese
XA (λ) = cm λm + cm−1 λm−1 + · · · + c1 λ + c0
2
Como en GAL1 y GAL2, se está usando la notación de paréntesis recto para denotar al subespacio generado
por un conjunto de vectores.
5
el polinomio característico de A. Por el teorema de Cayley-Hamilton, XA (A) = 0, es decir,
0 = cm Am + cm−1 Am−1 + · · · + c1 A + c0
(2.4)
donde c0 = XA (0) = det(A − 0I) = det(A). Asumiendo que es no nulo, existe la inversa A−1 ,
por lo que multiplicando ambos miembros de 2.4 por A−1 ,
cm Am−1 + cm−1 Am−2 + · · · + c1 + c0 A−1 = 0
luego
A−1 = −
1
(cm Am−1 + cm−1 Am−2 + · · · + c1 )
det(A)
En consecuencia, la solución de 2.3 es
z = A−1 r0
1
(cm Am−1 r0 + cm−1 Am−2 r0 + · · · + c1 r0 )
=−
det(A)
esto es, una combinación lineal de r0 , Ar0 , A2 r0 , etc. De hecho, con un argumento análogo, se
puede probar que si el polinomio mínimo de una matriz no singular A tiene grado `, entonces
la solución de Az = r0 pertenece K` (A, r0 ). De esta manera, si el polinomio mínimo de A tiene
un grado ` bajo, el espacio de Krylov al que pertenece la solución es pequeño y los métodos
de Krylov convergerán más rápido.
¿Cómo se elige zn ? Una posibilidad (que es en la que se basan los métodos MINRES, GCR,
ORTHODIR y GMRES) es elegir zn de manera tal que minimice la norma euclídea del residuo
rn = b − Axn .3 Esto es equivalente a tomar rn ⊥ AKn (A, r0 ) = Kn (A, Ar0 ). De hecho, se tiene
el siguiente4
Teorema 2.1. El vector zn ∈ Kn (A, r0 ) satisface
zn = arg
mı́n
kb − A(x0 + z)k2 = arg
z∈Kn (A,r0 )
mı́n
kr0 − Azk2
z∈Kn (A,r0 )
si y sólo si llamando rn = b − Axn = r0 − Azn al residuo,
rn ⊥ AK n (A, r0 )
3
(2.5)
Este criterio se conoce como minimum residual approach, pero no es el único. Otro muy empleado es tomar
zn de forma tal que el residuo sea ortogonal al actual subespacio de Krylov, es decir, rn ⊥ Kn (A, r0 ). Esto
minimiza la norma-A del error, es decir, kxn − x̄kA . donde x̄ es la solución a 2.1. Este otro criterio se conoce
como Ritz–Galerkin approach y es el que conduce a métodos también muy populares en la literatura como el
método del gradiente conjugado (abreviado CG) y el método de Lanczos. En [1] se desarrollan exhaustivamente
estos criterios así como otros dos adicionales.
4
Este teorema (así como su demostración) se encuentra en [2].
6
Demostración. Está basada en el hecho de que si V es un espacio vectorial con producto
interno y S es un subespacio de dimensión finita, entonces5
kv − PS (v)k ≤ kv − sk,
∀s ∈ S
O sea, PS (v) es el vector de S que mejor aproxima a v, en el sentido de que hace mínima
kv − sk. Esto se puede observar en la figura 1. Obsérvese también que, dado que V = S ⊕ S ⊥ ,
S⊥
v
Ps (v)
S
Figura 1: Como se ve en el dibujo, PS (v) es el vector de S “más
parecido” a v.
se tiene que v − PS (v) = PS ⊥ (v), o sea, v − PS (v) ⊥ S. En otras palabras,
ŝ = arg mı́n kv − sk
s∈S
⇔
ŝ = PS (v)
⇔
v − ŝ ⊥ S
En el caso que nos ocupa,
zn = arg
2.1.
2.1.1.
mı́n
kr0 − Azk
z∈Kn (A,r0 )
⇔
wn = arg
⇔
r0 − wn ⊥ AKn (A, r0 )
⇔
r0 − Azn ⊥ AKn (A, r0 )
mı́n
kr0 − wk, wn = Azn
w∈AKn (A,r0 )
GMRES
Iteración de Arnoldi
El método GMRES primero construye una base ortonormal de Kn (A, r0 ) para expresar
zn como combinación lineal de los elementos de dicha base. Para ello, emplea la iteración
5
La demostración de esta proposición se puede encontrar en la pág. 96 del libro “rojo” de GAL2.
7
de Arnoldi, que se explicará a continuación. Como se vio en el curso, es posible reducir una
matriz A arbitraria a forma Hessenberg mediante semejanza unitaria, o sea, hallar una matriz
V unitaria (i.e. V H V = I) tal que
V H AV = H
(2.6)
o equivalentemente,
AV = V H
(2.7)
Como m es muy grande, el cálculo de una reducción completa es impensable. En su lugar, se
trabaja con n columnas (con n m) de las matrices AV y V H. Llámese:
Vn ∈ Fm×n a la submatriz de V formada por las primeras n columnas.
H̃n ∈ F(n+1)×n a la submatriz de H formada por las n + 1 primeras filas y n primeras
columnas.
El miembro izquierdo de 2.7 es

v11

a1m 
 v21
  ..
a2m   .

.. 

.   vn,1
 .
.
amm 
 .
vm1

a11 a12 · · ·

 a21 a22 · · ·
 .
..
..
 .
.
.
 .
am1 am2 · · ·
···
···
..
.
v1n
v2n
..
.
···
···
vn,2 · · ·
..
.
vnn
..
.
···
..
.
vm2 · · ·
vmn
···
v12
v22
..
.

v1m

v2m 

.. 
. 

vnm 

.. 
. 

vmm
(2.8)
mientras que el miembro derecho

h11

 h21

v1m

0

v2m  
 0
.. 

..
. 
.


vn+1,m 

 0
.. 

. 

 0
vmm 
 ..
 .
0
h12 h13 h14 · · ·
h22 h23 h24 · · ·
h32 h33 h34 · · ·
0 h43 h44 · · ·
..
.. ..
. .
.
h1n
h2n
h3n
h4n
..
.
···
···
···
···
···
···
···
···
h1m
h2m
h3m
h4m
..
.




v11
v12 · · · v1,n+1 · · ·





v22 · · · v2,n+1 · · ·
 v21

 .

.. . .
..
 .

.
.
.
 .



 vn+1,1 vn+1,2 · · · vn+1,n+1 · · ·

.

.. h
0
h
n,n
nm 
 .
.
.
.

..
..
..
 ..

0
hn+1,n
hn+1,m 

vm1 vm2 · · · vm,n+1 · · ·
..
.. 
..
..

.
.
.
. 
0 ···
··· ···
0 hm,m−1 hm,m
(2.9)
(en verde se ha delimitado Vn , en azul Vn+1 y en rojo H̃n ). Si nos fijamos solo en las n primeras
columnas de los productos matriciales a ambos lados de la igualdad en 2.7, se tiene

AVn = Vn+1 H̃n
8
(2.10)
puesto que las filas n + 2, n + 3, etc. de H son cero (restringidos siempre a las n primeras
columnas). En este momento es necesario hacer la siguiente observación: se puede ver el producto de una matriz X por un vector como una manera de expresar las columnas de X como
combinación lineal con coeficientes los elementos del vector. Para fijar ideas,

  

x 1 y1 z1
a
ax1 + by1 + cz1

  

x2 y2 z2   b  = ax2 + by2 + cz2 
x 3 y3 z3
c
ax3 + by3 + cz3

    
ax1
by1
cz1

    
= ax2  + by2  + cz2 
ax3
by3
cz3
 
 
 
x1
y1
z1
 
 
 
= a x2  + b y2  + c z2 
x3
y3
z3
Una consideración análoga vale para el producto de matrices: la columna k-ésima del producto
XY no es otra cosa que XYk siendo Yk la columna k de Y ; en consecuencia, la columna k-ésima
de XY es la combinación lineal de las columnas de X dada por los coeficientes de la columna
k de Y . Gráficamente, se puede ver en la figura 2.
Figura 2: Interpretación gráfica del producto matricial.
9
Entonces, sea vk la columna k de Vn , esto es:




Vn = 
 v1 v2 · · ·






vn 



Fijémonos en la columna k (con 1 ≤ k ≤ n) a ambos lados de la igualdad 2.7. A la izquierda,
la columna k-ésima de A es
Avk
(2.11)
mientras que a la derecha será una combinación lineal de las columnas de Vn+1 con coeficientes
los elementos de la columna k-ésima de H̃n , o sea,
h1k v1 + h2k v2 + · · · + hk+1,k vk+1
(2.12)
Igualando 2.11 y 2.12, se llega a la importante relación de recurrencia:
Avk = h1k v1 + h2k v2 + · · · + hk+1,k vk+1 ,
k = 1, 2, . . . , n
(2.13)
Despejando de 2.13 vk+1 se tiene lo siguiente:
vk+1 =
1
hk+1,k
(Avk − h1k v1 − · · · − hkk vk )
(2.14)
En el paso k, se conoce v1 , . . . , vk y se desea calcular vk+1 . Los coeficientes hik con 1 ≤ i ≤ k
son viH Avk puesto que V H AV = H = (hik ) con hik = (V H )(i) (AV )(k) donde el subíndice
indica la fila y el supraíndice la columna, pero (V H )(i) = viH y (AV )(k) = AV (k) = Avk . Por
último, como vk+1 debe tener norma 1, se toma hk+1,k como kAvk − h1k v1 − · · · − hkk vk k2 . El
resultado es el algoritmo 1.
10
Algoritmo 1 Algoritmo de Arnoldi
Entrada: A ∈ Fm×m y un entero n, 0 < n < m
Salida: H̃n ∈ F(n+1)×n forma Hessenmberg parcial de A, y Vn+1 ∈ Fm×(n+1)
r0
1: v1 =
kr0 k2
2: para k = 1, . . . , n hacer
3:
w = Avk
4:
para i = 1, . . . , k hacer
5:
hik = viH w
6:
w = w − hik vi
7:
fin para
8:
kk+1,k = kwk2
9:
si hk+1,k = 0 entonces
10:
stop
11:
fin si
12:
vk+1 = w/hk+1,k
13: fin para
De esta manera, se empieza tomando v1 como el vector r0 normalizado, o sea, v1 = krr00k2 .
Entonces [r0 ] = [v1 ]. A continuación, se multiplica Av1 de modo que [r0 , Ar0 ] = [v1 , Av1 ]. El
objetivo es encontrar v2 de manera tal que [r0 , Ar0 ] = [v1 , Av1 ] = [v1 , v2 ] y {v1 , v2 } sea un
conjunto ortonormal. Aplicando 2.14 con k = 1:
v2 =
1
(Av1 − h11 v1 )
h21
Se calcula h11 = v1H Av1 y w = Av1 − h11 v1 . Posteriormente, se toma v2 como w dividiéndolo
entre su norma h21 = kwk2 . El v2 así generado es un vector unitario y además ortogonal a v1
pues
1
(v H w)
kwk2 1
1
=
v1H (Av1 − h11 v1 )
kwk2
1
(v H Av1 − h11 v1H v1 )
=
kwk2 1
1
=
(h11 − h11 · 1)
kwk2
v1H v2 =
=0
Además Av1 = h11 v1 + h21 v2 , lo que muestra que [r0 , Ar0 ] = [v1 , Av1 ] = [v1 , v2 ]. Si resultara
que h21 = 0, eso significaría que Av1 ∈ [v1 ], o equivalentemente, Ar0 ∈ [r0 ]. En tal caso, el
11
algoritmo se detiene. En general, si hk+1,k = 0 entonces
Kn (A, r0 ) = [r0 , Ar0 , . . . , An−1 r0 ] = [v1 , . . . , vk ]
luego dim Kn (A, r0 ) = k ya que {v1 , . . . , vk } es base ortonormal de Kn (A, r0 ). En efecto,
si hk+1,k = 0, esa condición implica que Ak r0 se puede escribir como combinación lineal de
r0 , Ar0 , . . . , Ak−1 r0 , es decir
Ak r0 = α1 r0 + α2 (Ar0 ) + · · · + αk (Ak−1 r0 ),
αi ∈ F
(2.15)
luego
Ak+1 r0 = α1 (Ar0 ) + α2 (A2 r0 ) + · · · + αk (Ak r0 )
y sustituyendo en la anterior expresión Ak r0 por el miembro derecho de 2.15 se llega a que
también Ak+1 r0 es combinación lineal de r0 , Ar0 , . . . , Ak−1 r0 . Un argumento inductivo muestra
que Am r0 ∈ [r0 , Ar0 , . . . , Ak−1 r0 ] para todo m ≥ k.
La iteración de Arnoldi es equivalente (desde el punto de vista estrictamente algebraico) a
aplicar el proceso de Gram-Schmidt a la matriz de Krylov





2
Kn = 
 r0 Ar0 A r0 · · ·





n−1
A
r0 



para obtener su descomposición QR,
Kn = Vn Rn
Esta matriz Vn sería la misma que la producida por el método de Arnoldi. La diferencia (muy
importante) es que en el proceso de Arnoldi no se forma explícitamente la matriz Kn . Formar
esta matriz (con el costo de almacenamiento que eso conllevaría), y luego aplicarle GramSchmidt a sus columnas, sería un algoritmo muy inestable puesto que, por lo visto en el curso
sobre el método de las potencias, la sucesión r0 , Ar0 , A2 r0 , etc. converge (salvo productos
por constantes) a un vector propio asociado al valor propio dominante de A. En consecuencia,
a medida que n aumenta, las columnas de Kn tienden a ser “más linealmente dependientes”
entre sí, haciendo de Kn para n grande, una matriz muy mal condicionada. Y es bien sabido
que el algoritmo clásico de Gram-Schmidt, cuando la matriz A es mal condicionada, sufre de
pérdida de ortogonalidad, es decir las columnas de Q en la descomposición A = QR, no son
realmente ortogonales.
12
2.1.2.
Pseudocódigo de GMRES(m)
La iteración de Arnoldi explicada en la subsección anterior es el núcleo del algoritmo
GMRES, presentado en [3] por Yousef Saad y Martin H. Schultz (1986). En el paso n, la
solución se construye como xn = x0 + zn , donde
zn = arg
kb − A(x0 + z)k2 = arg
mı́n
z∈Kn (A,r0 )
kr0 − Azk2
mı́n
z∈Kn (A,r0 )
(2.16)
Aquí A y b son los de 2.1, que pueden considerarse la matriz y el vector independiente, respectivamente, ya precondicionados. La recurrencia de Arnoldi permite encontrar una base ortob
b
normal {v1 , . . . , vn } →
− Kn (A, r0 ) a partir de la base ortonormal {v1 , . . . , vn−1 } →
− Kn−1 (A, r0 )
calculada en la iteración anterior. Por tanto,
zn = β1 v1 + β2 v2 + · · · + βn vn ,
βi ∈ F
(2.17)
Llamando




β1
 
 β2 
n×1

yn = 
,
 ..  ∈ F
 . 
βn



Vn = 
 v1 v2 · · ·





vn 



se puede reescribir 2.17 vectorialmente como:
zn = Vn yn
(2.18)
La iteración de Arnoldi, como se describió antes, también produce una matriz H̃n de tamaño
(n + 1) × n satisfaciendo 2.10, o sea, AVn = Vn+1 H̃n . En consecuencia,
kr0 − Azn k2 = kr0 − AVn yn k2
(2.19)
= kr0 − Vn+1 H̃n yn k2
(2.20)
Por otra parte, r0 = kr0 k2 v1 (puesto que v1 fue elegido como r0 normalizado) y a su vez v1
es la primera columna de Vn+1 , es decir, v1 = Vn+1 e1 , donde e1 = (1, 0, . . . , 0)H ∈ F(n+1)×1 .
Estas dos observaciones permiten reescribir 2.20 como
kr0 − Azn k2 = Vn+1 (kr0 k2 e1 − H̃n yn )
= kr0 k2 e1 − H̃n yn
2
puesto que para cualquier x ∈ F(n+1)×1 , se tiene
kVn+1 xk2 = (Vn+1 x)H Vn+1 x
H
= xH Vn+1
Vn+1 x
= xH In+1 x = kxk22
13
2
(2.21)
(2.22)
H V
6
(Vn+1
n+1 = In+1 porque las columnas de Vn+1 son ortonormales ). En resumida cuenta, en
cada iteración, para hallar xn debe resolverse
yn = arg mı́n
y∈Fn×1
kr0 k2 e1 − H̃n y
2
(2.23)
Esto es un problema de mínimos cuadrados de tamaño n.7 Una vez resuelto, se toma:
zn = Vn yn ,
xn = x0 + zn
Como se puede ver, el algoritmo necesita almacenar las matrices Vn y H̃n (así como otras estructuras auxiliares necesarias para resolver el problema de mínimos cuadrados). Estas matrices
aumentan de tamaño en la medida que n crece; por ejemplo, en cada iteración es necesario
almacenar un nuevo vector de Arnoldi. Se puede decir que el costo de almacenamiento crece
de forma lineal con el número de iteraciones. Por esta razón, en la práctica, suele emplearse
una variante de GMRES, que reinicia las estructuras de datos cada cierto número de pasos
utilizando como solución inicial la calculada hasta ese momento. Ese procedimiento se conoce
como Restarted GMRES o GMRES(m) donde m es la cantidad de iteraciones por ciclo. Es el
algoritmo 2.
6
In+1 representa la matriz identidad de tamaño (n + 1) × (n + 1).
En https://en.wikipedia.org/wiki/Generalized_minimal_residual_method, en la sección 5 del artículo, se explica cómo se resuelve este problema de mínimos cuadrados. Esencialmente se calcula la descomposición
QR de la matriz H̃n y existen unas consideraciones de eficiencia (expuestas en el paper original de los creadores
[3]), para calcular de forma “barata” la descomposición QR de H̃n en base a la descomposición QR de H̃n−1 ,
de la iteración anterior.
7
14
Algoritmo 2 Algoritmo GMRES(m), adaptado de [4]
Entrada: A ∈ FN ×N , b ∈ FN ×1 , x0 (estimador inicial), m (cantidad de iteraciones por ciclo),
maxit (número máximo de iteraciones), tol (umbral de tolerancia)
Salida: Solución aproximada x̃ de Ax = b
1: i = 0 (contador global de iteraciones)
2: Inicializar: ri = b − Axi , v1 = ri /kri k2 , V1 = v1
3: para n = 1, . . . , m hacer
4:
Incrementar el contador: i = i + 1
5:
Ortogonalizar: v̂n+1 = Avn − Vn hn , donde hn = VnH Avn
6:
Normalizar: vn+1 = v̂n+1 /kv̂n+1 k2
#
"
h
i
Hn−1
hn
, donde la primera colum7:
Actualizar: Vn+1 = Vn vn+1 , Hn =
0
kv̂n+1 k2
na se omite cuando n = 1
8:
Resolver el problema de mínimos cuadrados:
yn = arg mı́n kri−n ke1 − Hn y
y
9:
10:
11:
12:
13:
14:
15:
Construir la solución aproximada: xi = xi−n + Vn yn
Actualizar el residuo: ri = b − Axi
si i = maxit o kri k2 ≤ tol ∗ kbk2 entonces
devolver x̃ = xi
fin si
fin para
Borrar estructuras de datos complementarias e ir al paso 2.
2.2.
2.2.1.
Reciclado en subespacios de Krylov
Idea general
Como se vio en la sección anterior, el método GMRES necesita almacenar una base ortonormal de subespacios de Krylov crecientes K1 ⊂ K2 ⊂ . . . ⊂ Kn ⊂ . . . y por tanto, a
medida que el número de iteraciones aumenta, el costo computacional y de memoria se vuelve excesivo. La manera obvia de atacar este problema es la de reiniciar GMRES cada cierto
número de iteraciones m. Sin embargo, esta estrategia adolece de un problema. Supongamos
que GMRES(m) se reinicia habiendo progresado muy poco. En consecuencia, el método se
reinicia con un residuo que es casi igual al del ciclo anterior por tanto GMRES(m) explora
en este siguiente ciclo un espacio de búsqueda casi coincidente con el espacio de búsqueda de
15
los anteriores m pasos. Como la solución óptima de ese espacio de búsqueda ya fue calculada,
esto conduce a una convergencia muy lenta o incluso al estancamiento.
En este contexto, es natural plantearse si no existe alguna manera de conservar una parte
del subespacio de Krylov calculado al término de la última iteración de un ciclo, en la primera
iteración del ciclo siguiente, de manera de acelerar la convergencia tras el reinicio. Por eso la
literatura habla de “reciclar” parte de un subespacio de Krylov. Esta misma técnica puede ser
aplicada para resolver una secuencia de sistemas lineales
A(i) x(i) = b(i) ,
i = 1, 2, . . .
(2.24)
donde la matriz A(i) ∈ FN ×N y el vector independiente b(i) ∈ FN ×1 cambian de un sistema al
siguiente, y a menudo ni siquiera están disponibles en forma simultánea. Se puede reducir el
costo de resolver estos sistemas “reciclando” parte del subespacio de Krylov entre resoluciones
lineales consecutivas. Pero originalmente la técnica de reciclado de subespacios de Krylov
fue desarrollada para la aplicación entre ciclos de un mismo sistema lineal (GMRES(m)) para
evitar recomputar prácticamente el mismo subespacio recurrente luego del reinicio. Se explicará
primero cómo funciona el reciclado entre ciclos de GMRES(m) y luego cómo se aplicaría entre
sistemas lineales consecutivos de una secuencia como en 2.24. En términos generales, la idea
de reciclado de subespacios de Krylov es:
(1) Computar el subespacio a reciclar de manera eficiente (y en base a algún criterio) al pasar
de un sistema lineal al próximo (o de un ciclo a otro, en el caso que se tenga un único
sistema lineal como en GMRES(m)).
(2) Mejorar la tasa de convergencia del método iterativo iterando de manera que los residuos
rn sean ortogonales a dicho subespacio (para evitar lo máximo posible recorrer espacios
de búsqueda ya explorados).
Hay dos preguntas importantes asociadas con el tema de reciclado:
I Cómo seleccionar el subespacio a ser reciclado.
II Cómo se usa dicho subespacio en el método de Krylov correspondiente.
Las respuestas a estas preguntas varían dependiendo del método de Krylov del que se trate.
En la subsección siguiente, se detalla el punto II para el caso de métodos del tipo GMRES.
2.2.2.
Reciclado en GMRES: rGCROT/rGCRO-DR
rGCROT y rGCRO-DR son dos algoritmos de reciclado de subespacios de Krylov basados
en GMRES, y tienen la misma estructura en el sentido de que manejan el subespacio reciclado
(en la “mecánica” del algoritmo) exactamente de la misma forma (véase el algoritmo 3).
16
Algoritmo 3 rGCROT(m, k)/rGCRO-DR(m,k), extraído de [5]
1: Elegir x̂; computar r̂ = b − Ax̂, kbk2 , e inicializar i = 0
2: Elegir/Dada U , computar C̃ = AU y C̃ = CR (descomposición QR reducida)
3: ξ = C H r̂; r0 = r̂ − Cξ; ρ0 = kr0 k2 ; x0 = x̂ + U (R−1 ξ)
4: Elegir tol, m y maxit
5: mientras ρi > tol ∗ kbk2 y i ≤ maxit hacer
6:
v1 = ri /ρi
7:
para j = 1, . . . , m hacer
8:
vj+1 = Avj ; i = i + 1
9:
para l = 1, . . . , k hacer
H
10:
bl,j = cH
l vj+1 ; vj+1 = vj+1 − cl bl,j // vj+1 = vj+1 − CC vj+1
11:
fin para
12:
para l = 1, . . . , j hacer
13:
hl,j = vlH vj+1 ; vj+1 = vj+1 − vl hl,j
14:
fin para
15:
hj+1,j = kvj+1 k2 ; vj+1 = vj+1 /hj+1,j
16:
fin para
// AVm = CB + Vm+1 H̃m (Arnoldi ampliada)
17:
Resolver y = arg mı́nỹ∈Fm×1 ke1 ρi−m − H̃m ỹk2
18:
z = −By
// B = (bl,j )
19:
xi = xi−m + Vm y
20:
xi = xi − U (R−1 z)
21:
ri = b − Axi ; ρi = kri k2
22:
Actualizar U y C como se quiera
23: fin mientras
Sea U ∈ KN ×k tal que Im(U ) es el subespacio que se desea reciclar (este subespacio tiene
a lo sumo dimensión k y es el generado por las columnas de U ). Se asume que U se obtuvo
de un ciclo previo de GMRES(m) o de la resolución de un sistema lineal anterior en una
secuencia como 2.24. Basados en el teorema 2.1, el residuo en la iteración j de GMRES es
minimizado cuando rj ⊥ AKj (A, r0 ). Además, por lo comentado anteriormente, se desea que
rj sea ortogonal a AU . Primero, se computa C̃ = AU y se halla su descomposición QR,
C̃ = CR
donde C N ×k cumple C H C = Ik y R ∈ Fk×k es triangular superior. Al hacer ξ = C H r̂ y
r0 = r̂ − Cξ, lo cual es equivalente a r0 = (IN − CC H )r̂, se está ortogonalizando el residuo
inicial r̂ con respecto a Im(C). Entonces el algoritmo arranca con una aproximación inicial x̂
17
y un residuo inicial r̂ cuya relación es
r̂ = b − Ax̂
A continuación, modifica con cierto criterio r̂ (toma la componente ortogonal al subespacio
Im(C)) y lo transforma en r0 . En consecuencia, debe actualizar en forma acorde el estimador
inicial. Llamando x0 al valor actualizado de x̂, debe hallarse x0 tal que
b − Ax0 = r0
Observar que
b − Ax0 = r0
= r̂ − CC H r̂
= (b − Ax̂) − CC H r̂
luego
Ax0 = Ax̂ + CC H r̂
(2.25)
pero como AU = CR entonces AU R−1 = C y sustituyendo en 2.25,
Ax0 = Ax̂ + AU R−1 C H r̂
= A(x̂ + U R−1 C H r̂)
luego
x0 = x̂ + U R−1 C H r̂ = x̂ + U R−1 ξ
(2.26)
que es la fórmula que aparece en el pseudocódigo. De esta manera, se ha tomado r0 , v1 de
manera tal que
r0 , v1 ⊥ Im(C)
A continuación, se ortogonaliza vj+1 con respecto a las columnas de C antes de ortogonalizarse
con respecto a v1 , . . . , vj . Esto produce
Vm+1 ⊥ Im(C)
satisfaciéndose la relación de Arnoldi ampliada,
AVm = CB + Vm+1 H̃m ,
donde B = C H AVm
(2.27)
también escrita como
(IN − CC H )AVm = Vm+1 H̃m
18
(2.28)
En consecuencia, se aproxima el próximo residuo en un espacio, Im(Vm+1 H̃m ), que en efecto es
ortogonal con respecto al subespacio Im(C). De esta manera, gracias a la relación de Arnoldi
ampliada, todos los residuos en un ciclo dado se toman ortogonales a Im(C). La actualización
óptima de la solución (que se toma en el espacio Im(U ) + Im(Vm )) conduce a un problema de
mínimos cuadrados modificado (en relación a GMRES). Se tiene
xm = x0 + Vm y + U R−1 z
⇒
rm = r0 − AVm y − Cz
(2.29)
ya que
rm = b − Axm
= b − A(x0 + Vm y + U R−1 z)
= (b − Ax0 ) − AVm y − AU R−1 z
= r0 − AVm − Cz
puesto que C = AU R−1 . Si en la expresión para el residuo de 2.29 se impone la recurrencia
de Arnoldi 2.27, el problema de mínimos cuadrados queda:
(y, z) = arg
mı́n
ỹ∈Fm×1 ,z̃∈Fk×1
Vm+1 (kr0 k2 e1 − H̃m ỹ) − C(B ỹ + z̃)
2
(2.30)
Se puede minimizar por un lado la componente Vm+1 (análoga a GMRES) y luego la componente C. La última se minimiza tomando z = −By (ya que aquí se anula la norma).
Si el subespacio “recurrente” se mantiene aproximadamente constante de un ciclo a otro
(o de un sistema al siguiente), esta técnica de reciclado resulta ser muy efectiva. El costo
adicional sería esencialmente el de tener que ortogonalizar vm+1 con respecto a las columnas
de C. Comparado con GMRES(m), incluso podría requerir menos memoria ya que m podría
ser mucho menor, mientras que el número de columnas de U y C suele ser modesto.
Hasta aquí se ha explicado cómo se usa el subespacio reciclado en la mecánica del algoritmo,
pero no se ha dicho ni una palabra sobre cómo se elige Im(U ), y es en este punto donde difieren
GCROT y GCRO-DR. De hecho, en el algoritmo 3 se asume U “dada” o “elegida” de alguna
manera que no se especifica cuál es. Como abordar los dos enfoques extendería demasiado
el presente informe, se explicará más en detalle cómo hace GCROT. En el caso de GCRODR, se dirá solamente que aproxima un subespacio invariante para reciclar entre iteraciones,
empleando técnicas que involucran vectores de Ritz.
19
Para el caso de GCROT, llámese rm al residuo al cabo de m iteraciones. Considérese s < m
y llámese rs al residuo al cabo de s iteraciones. Ahora supóngase que se reinicia el método al
finalizar la iteración s y se emplea como residuo inicial a rs . Se deja correr el algoritmo y se
completan m − s iteraciones. Llámese r al residuo obtenido tras completarse estas iteraciones.
Lo mejor que podría ocurrir es que
krk2 = krm k2
pero en general, krk2 ≥ krm k2 . ¿Por qué? Obsérvese que en el método sin reiniciar se computaron los residuos rs+i , con 1 ≤ i ≤ m − s para que fuesen ortogonales a AKs+i (A, r0 ) (por
lo visto en el teorema 2.1) y por tanto para que fuesen ortogonales a AKs (A, r0 ) puesto que
Ks ⊂ Ks+i , ∀i. En el método reiniciado a la iteración s, en cambio, los residuos subsiguientes
no se calculan para que sean ortogonales a AKs (A, r0 ), es decir la ortogonalidad de los residuos
con respecto a AKs (A, r0 ) se pierde, enlenteciendo la convergencia. Pues bien, GCROT preserva un subespacio tal que la pérdida de ortogonalidad con respecto al subespacio descartado es
la menor posible. La desviación (con respecto al óptimo) al reiniciar el método en la iteración
s es
e = r − rm
que es lo que se llama error residual. “Truncar” el subespacio de Krylov de manera óptima
implica seleccionar (y retener) un subespacio k-dimensional de AKs (A, r0 ) tal que la magnitud
del error residual kek2 = kr − rm k2 sea mínima. Esto depende de los ángulos principales entre
AKs (A, r0 ) y AKm−s (A, rs ) (por detalles, véase [6]).
2.2.3.
Aplicación del reciclado a secuencias de sistemas lineales
De nuevo, se explicará cómo se procede en el caso de GCROT; en el caso de GCRO-DR
hay un procedimiento análogo muy similar.
GCROT mantiene matrices Uk y Ck satisfaciendo8 :
AUk = Ck
CkH Ck
= Ik
(2.31)
(2.32)
La idea es cómo traspasar la matriz Uk del sistema i-ésimo al sistema (i + 1)-ésimo.
8
En el algoritmo 3 se tenía C̃ = AU pero C̃ no cumplía la condición de tener sus columnas ortonormales.
Por eso se descomponía C̃ = CR donde ahora sí C H C = Ik luego
CR = AU
⇒
Se puede considerar Uk = U R−1 .
20
C = A(U R−1 )
Después que se resuelve el sistema i-ésimo, se tiene la relación A(i) Uk = Ck . Se deben
modificar Uk y Ck de manera tal que las identidades 2.31 y 2.32 sigan cumpliéndose con
respecto a A(i+1) . Esto se logra de la siguiente manera:
1: [Q, R] = descomposición QR reducida de A(i+1) Ukold
2: Cknew = Q
3: Uknew = Ukold R−1
De esta forma,
A(i+1) Uknew = A(i+1) Ukold R−1 = Q = Cknew
y se procede con GCROT en el sistema A(i+1) x(i+1) = b(i+1) En muchos casos, computar
A(i+1) Ukold es mucho más barato que hacer k multiplicaciones matriz-vector, pues
A(i+1) Ukold = A(i) + ∆A(i) Ukold
= A(i) Ukold + ∆A(i) Ukold
= Ckold + ∆A(i) Ukold
O sea, en realidad basta computar ∆A(i) Ukold , pero si A(i) ≈ A(i+1) entonces ∆A(i) será una
matriz llena de ceros (mucho más dispersa que A(i) ), por lo que pueden realizarse optimizaciones. Si A(i+1) ≈ A(i) entonces el uso de Uknew ayudará significativamente a mejorar la
convergencia en la resolución del sistema (i + 1)-ésimo.
21
3.
Principales trabajos en la materia
A continuación se listan los principales trabajos académicos sobre reciclado de subespacios
de Krylov.
3.1.
Recycling Krylov Subspaces for Sequences of Linear Systems (2004)
Por detalles, véase [7].
3.1.1.
Breve reseña
Éste es un paper clásico en la materia (infaltable en la bibliografía de casi todos los trabajos
posteriores). Uno de sus autores es Eric de Sturler9 , uno de los investigadores más prolíficos
en esta área.
Para varios problemas tomados de la física/ingeniería (cuya resolución implica, en algunos
casos, hallar la solución de una secuencia de sistemas lineales como 2.24), demuestra que se
puede reducir la cantidad de iteraciones a la mitad. Esto lo consigue mediante dos enfoques
diferentes: rGCROT y rGCRO-DR, que fueron esencialmente los explicados en la sección de
fundamentos teóricos del presente informe. Los problemas usados como ejemplo fueron:
Fatiga y fractura de materiales: Estudio de propagación del agrietamiento por fatiga en
un plato metálico 2D.
Estructura electrónica: Cálculos basados en la ecuación de Schrödinger para predecir
propiedades físicas clave de sistemas de materiales con un gran número de átomos. Se
consideraron sistemas resultantes de aplicar el método KKR.10
QCD: Problema de cromodinámica cuántica.11
Convección-difusión: Consiste en resolver la ecuación en derivadas parciales12
uxx + uyy + cux = 0
en [0, 1] × [0, 1] con condiciones de borde
u(x, 0) = u(0, y) = 0
u(x, 1) = u(1, y) = 1
9
https://en.wikipedia.org/wiki/Eric_de_Sturler
https://en.wikipedia.org/wiki/Korringa-Kohn-Rostoker_method
11
https://en.wikipedia.org/wiki/Quantum_chromodynamics
12
https://en.wikipedia.org/wiki/Convection-diffusion_equation
10
22
Para ello, se “discretiza” el dominio convirtiéndolo en una malla de puntos. Se tomó
h = 1/41 como distancia entre los puntos tanto en el eje x como en eje y resultando una
matriz 1600 × 1600. Cuando c = 0 se da el caso simétrico y cuando c 6= 0 se da el caso
no simétrico.
De estos 4 problemas, el más importante es el primero. A continuación se muestra una
tabla comparativa con los resultados:
Productos matriz-vector
Método
GMRES(40)
GMRES-DR(40,20)
GCROT(40,34,30,5,1,2)
CG
GMRES
rGCROT(40,34,30,5,1,2)
rGCRO-DR(40,20)
27188
14305
14277
14162
14142
7482
6901
Cuadro 1: Tabla comparativa de los diferentes algoritmos para el
problema de fatiga y fractura de materiales.
3.1.2.
Conclusión
Como se puede ver en la tabla 1, los métodos que implementan reciclado, demandan una
cantidad de productos matriz-vector que es aproximadamente la mitad de los métodos que no
emplean reciclado, lo que habla de la importancia de esta técnica para acelerar la convergencia.
Y el desempeño supera ampliamente al del método GMRES, uno de los más empleados en la
práctica.
Otra conclusión a la que arribaron es que aún no se entiende del todo cómo afecta a la
convergencia la selección del subespacio a reciclar. Para el último ejemplo, el de la ecuación
en derivadas parciales de convección-difusión, en el caso c 6= 0, GCRO-DR y rGCRO-DR
llevaron aproximadamente la misma cantidad de productos matriz-vector (es decir, la técnica
de reciclado no mejoró el desempeño). En cambio sí hubo una mejora significativa al pasar de
GCROT a rGCROT. El autor desconoce la causa de este fenómeno.
3.2.
Recycling Krylov subspaces for efficient large-scale electrical impedance tomography (2010)
Por detalles, véase [8].
23
3.2.1.
Breve reseña
El responsable de este trabajo es Luis Augusto Motta Mello, brasilero de la Universidad
de San Pablo, y de los restantes tres coautores, dos son brasileros (uno de ellos residente en
EEUU), y el faltante, que figura segundo13 , es Eric de Sturler (el mismo que fue mencionado
antes por ser coautor del artículo anterior). El propósito de esta superflua observación es remarcar las cuantiosas contribuciones de este PhD en matemática aplicada (de origen holandés),
a este tema en concreto (el de reciclado de subespacios de Krylov).
La Tomografía de Impedancia Electrónica (EIT, por Electrical Impedance Tomography,
en inglés) es una técnica de imagenología médica que infiere imágenes de las partes internas
de un cuerpo a partir de mediciones eléctricas de su superficie. Para esto, se unen electrodos
conductores a la piel de la persona y se aplican corrientes alternas de baja intensidad a algunos
o a todos los electrodos, y los potenciales eléctricos resultantes son medidos. Luego, en base a
las mediciones, un algoritmo de estimación obtiene la distribución tridimensional de admitancia
interna que corresponde a la imagen. Uno de los objetivos principales es alcanzar una resolución
alta a bajo costo computacional. Cuando se emplea el método de los elementos finitos y la
malla correspondiente es redefinida para incrementar la resolución, el costo computacional
aumenta considerablemente.
En este marco, se presenta un método iterativo basado en reciclar subespacios aproximadamente invariantes (de subespacios de Krylov) que consigue reducir el tiempo de cómputo
para una malla con una cantidad creciente de puntos, y producir así una imagen 3D de alta
resolución. El algoritmo empleado es básicamente RMINRES (variante que emplea reciclado
de MINRES) adaptado al contexto, es decir, con varios ajustes hechos “a la medida” de este
problema en concreto. Asimismo se propone un poderoso precondicionador. El artículo incluye
un pseudocódigo muy detallado del algoritmo propuesto.
3.2.2.
Conclusión
La variante de RMINRES implementada condujo a una reducción significativa del costo
computacional. Se observó también que RMINRES es más rápido que MINRES y que CG.
De cara al futuro, se planteaba la posibilidad de paralelizar la solución a las ecuaciones de
elementos finitos para acelerar el proceso de optimización todavía más, así como considerar
otros precondicionadores.
13
Después del primer autor, los autores subsecuentes suelen ser ordenados según su contribución a la investigación, empezando por el que contribuyó más y finalizando con el que menos.
24
3.3.
Recycling BiCG with an Application to Model Reduction (2010)
Por detalles, véase [9].
3.3.1.
Breve reseña
Los dos primeros autores, Kapil Ahuja y Eric de Sturler, son los mismos (incluso en el
mismo orden) que en [7]. El último ha aparecido como autor en todos los trabajos analizados
hasta el momento.
Este paper se centra en resolver una secuencia de sistemas lineales duales:
A(i) x(i) = b(i) ,
A(i)H x̃(i) = b̃(i) ,
∀i = 1, 2, . . .
donde A(i) ∈ Cn×n y b(i) , b̃(i) varían con i, las matrices A(i) son grandes y dispersas, la solución
del sistema dual es relevante y el cambio de un par de sistemas al siguiente es pequeño. El
método del gradiente biconjugado (BiCG) ha demostrado ser ventajoso para sistemas con estas
características. Los autores proponen adaptar BiCG para que emplee la técnica de reciclado
(con el propósito de mejorar aún más el desempeño), y llaman al algoritmo resultante rBiCG
(Recycling BiCG). Esencialmente, recicla dos subespacios de Krylov de un par de sistemas
lineales duales, para el siguiente. La técnica para incorporar reciclado a BiCG sienta las bases
para desarrollar variantes (que implementen reciclado) de otros algoritmos del tipo bi-Lanczos,
como CGS, BiCGSTAB, QMR y TFQMR. A nivel teórico, introducen un algoritmo bi-Lanczos
ampliado y una relación de recurrencia de dos términos (de orden dos) modificada para incluir
el reciclado en cada iteración. Los subespacios reciclados son aproximadamente subespacios
invariantes por izquierda y por derecha correspondientes a los valores propios más cercanos al
origen, y son determinados resolviendo un problema de valores propios a la vez que se resuelven
los sistemas duales de la secuencia.
El flamante algoritmo rBiCG es estrenado para abordar los siguientes problemas:
Convección-difusión: Se resuelve una ecuación en derivadas parciales del tipo conveccióndifusión una vez discretizada.
Reducción de modelos: La reducción de modelos es un procedimiento matemático que
tiene como propósito simplificar el modelo analítico de un sistema; esto es, encontrar
otro (cuya dimensión sea mucho menor), que presente un comportamiento similar al del
modelo original. De esta manera, trabajando sobre el modelo simplificado, se pueden
obtener resultados (que no difieren sustantivamente de aquellos que se obtendrían con el
modelo sin simplificar), en un menor tiempo de ejecución y con un consumo de recursos
de cómputo mucho más modesto. Para llevar a cabo esta reducción de modelos se em-
25
plea el algoritmo IRKA (Iterative Rational Krylov Algorithm), que implica resolver una
secuencia de sistemas lineales duales muy lentamente cambiante.
3.3.2.
Conclusión
Se demostró la utilidad de rBiCG para reducción de modelos usando IRKA, constituyendo
un nicho importante para este solucionador. Asimismo se demostró la efectividad de rBiCG
para sistemas no simétricos (resultantes de la ecuación en derivadas parciales del problema de
convección-difusión).
3.4.
Recycling Krylov subspaces for CFD applications and a new hybrid
recycling solver (2015)
Por detalles, véase [5].
3.4.1.
Breve reseña
Este paper, a mi juicio, es uno de los que tiene mejor introducción teórica. Uno de los
autores es, de nuevo, Eric de Sturler.
Se abordan dos problemas de dinámica de fluidos14 que involucran resolver las ecuaciones
de Navier-Stokes para el caso incompresible:
1. Flujo turbulento a través de un canal.
2. Flujo a través de medios porosos.
Para este tipo de problemas, es común emplear métodos precondicionados basados en subespacios de Krylov; en particular, BiCGStab y GMRES(m) son usados para el caso de sistemas
no simétricos. El primero es popular porque sus iteraciones tienen bajo costo pero puede fallar
en caso de problemas inestables, especialmente si arranca con un estimador inicial muy alejado
de la solución. GMRES(m) es mucho más robusto pero la reinicialización puede conducir a
una convergencia muy lenta. En consecuencia, se evalúa el método rGCROT para estos sistemas. Este método, como se describió en la sección teórica, recicla un subespacio luego de
cada reinicialización, mejorando drásticamente la convergencia con respecto a GMRES(m). El
reciclado también es ventajoso para sistemas lineales subsecuentes si la matriz cambia muy
lentamente o es constante. No obstante, las iteraciones de rGCROT siguen siendo costosas en
memoria y tiempo de cómputo (por la ortogonalización) en comparación con las de BiCGStab.
En consecuencia, en este paper se propone un solucionador híbrido que combina las iteraciones
14
CFD significa Computational fluid dynamics o “Dinámica de Fluidos Computacional” en español.
26
de bajo costo de BiCGStab con la robustez de rGCROT. Esencialmente, este solucionador emplea rGCROT para construir un subespacio efectivo de reciclaje, y luego recicla sucesivamente
este mismo subespacio en la mecánica del solucionador rBiCGStab.
Se evaluó rGCROT en el problema 1 y se evaluaron los dos (rGCROT y el método híbrido combinación de rGCROT y rBiCGStab) en el problema 2, observando una mejora en el
desempeño significativa en ambos casos.
3.4.2.
Conclusión
Los solucionadores (basados en reciclado de subespacios de Krylov) rGCROT y rBiCGStab fueron testeados en el caso de dos importantes aplicaciones de Dinámica de los Fluidos
Computacional que llevan a una secuencia de sistemas lineales, y se compararon con los solucionadores estándar GMRES(m) y BiCGStab. En el caso del problema 1, rGCROT tuvo
mejor desempeño que ambos BiCGStab y GMRES(m) en términos de tiempo de ejecución y
cantidad de productos matriz-vector. El algoritmo híbrido fue probado en el problema 2, siendo el que resultó más rápido de todos demandando una cantidad de operaciones matriz-vector
moderada en comparación con BiCGStab, GMRES(m) y rGCROT.
3.5.
Krylov Subspace Recycling for Fast Iterative Least-Squares in Machine Learning (2017)
Por detalles, véase [10].
3.6.
Strategies For Recycling Krylov Subspace Methods And Bilinear Form
Estimation (2017)
Por detalles, véase [11].
3.7.
Recycling Krylov subspaces and reducing deflation subspaces for solving sequence of linear systems (2018)
Por detalles, véase [12].
27
4.
Paquetes de software
4.1.
PETSc + HPDDM
PETSc15 (Portable, Extensible Toolkit for Scientific Computation) es una colección de
estructuras de datos y rutinas, desarrolladas por el Laboratorio Nacional Argonne, para facilitar la tarea de resolver de manera escalable (empleando programación paralela) aplicaciones
científicas modeladas por ecuaciones en derivadas parciales. Emplea MPI (Message Passing
Interface) para la comunicación mediante pasaje de mensajes. PETSc es la librería de software
para ecuaciones en derivadas parciales y cálculos con matrices dispersas, de uso más difundido
en el mundo.
Entre las diferentes funcionalidades que provee, implementa una larga lista de solucionadores de sistemas lineales, entre los cuales se encuentran los métodos iterativos basados en
subespacios de Krylov (véase figura 3).
Figura 3: Soporte para métodos de Krylov de PETSc.
Por su parte, HPDDM16 (que significa High-Performance Unified Framework for Domain
Decomposition Methods) es una librería escrita en C++11 con MPI y OpenMP para paralelis15
16
https://www.mcs.anl.gov/petsc/
https://github.com/hpddm/hpddm
28
mo, que implementa de manera eficiente métodos de descomposición de dominios.17 La misma
tiene soporte para métodos basados en reciclado de subespacios de Krylov (como rGCRO-DR).
KSPHPDDM18 es una interfaz de PETSc que permite consumir métodos de HPDDM
(véase figura 4). De esta manera, por ejemplo, con --download-hpddm, y las opciones en
tiempo de ejecución
-ksp_type hpddm,
-ksp_hpddm_krylov_method gcrodr y
-ksp_hpddm_recycle N, con N positivo,
se estaría usando rGCRO-DR.
Figura 4: Interfaz KSPHPDDM.
4.2.
KryPy
KryPy19 es un paquete de Python creado específicamente para metódos de Krylov (véase
figura 5). Como se ve en la figura 6, este paquete proporciona métodos para las versiones con
17
https://en.wikipedia.org/wiki/Domain_decomposition_methods
https://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/KSP/KSPHPDDM.html
19
https://krypy.readthedocs.io/en/latest/
18
29
reciclado de CG, MINRES y GMRES.
Figura 5: Página principal de KryPy.
30
Figura 6: Documentación de krypy.recycling.
31
5.
Conclusión
Se ha hecho un relevamiento de: (1) los trabajos más importantes relacionados al reciclado
de subespacios de Krylov, y (2) los principales paquetes de software disponibles en la Web
que implementan estos solucionadores. Asimismo el presente informe, desde el punto de vista
matemático, pretender servir como una primera aproximación al tema, para que el eventual
lector comprenda los principios básicos en los que se sustenta esta técnica.
Como se puede ver por las fechas de los trabajos académicos relevados, hay mucha investigación reciente referida a la materia lo que habla por sí solo sobre la utilidad práctica de estas
técnicas. Es un campo fértil para investigar en dos áreas:
A nivel práctico, adaptando algoritmos existentes para incorporar reciclado y viendo en
qué problemas de la realidad se pueden aplicar.
A nivel teórico, estudiando cómo incide la selección del subespacio a reciclar en la tasa
de convergencia.
32
Referencias
[1] H. Van der Vorst, Iterative Krylov Methods for Large Linear Systems. Cambridge Monographs on Applied and Computational Mathematics, Cambridge University Press, 2003.
[2] E. de Sturler, Iterative Methods on Distributed Memory Computers. PhD thesis, Delft
University of Technology, Delft, the Netherlands, 1994.
[3] Y. Saad and M. H. Schultz, “GMRES: A Generalized Minimal Residual Algorithm for
Solving Nonsymmetric Linear Systems,” SIAM Journal on Scientific and Statistical Computing, vol. 7, no. 3, pp. 856–869, 1986.
[4] I. Ipsen and C. Meyer, “The Idea Behind Krylov Methods,” The American Mathematical
Monthly, vol. 105, no. 10, pp. 889–899, 1998.
[5] A. Amritkar, E. de Sturler, K. Świrydowicz, D. Tafti, and K. Ahuja, “Recycling Krylov
subspaces for CFD applications and a new hybrid recycling solver,” Journal of Computational Physics, vol. 303, pp. 222–237, 2015.
[6] E. de Sturler, “Truncation Strategies for Optimal Krylov Subspace Methods,” SIAM Journal on Numerical Analysis, vol. 36, no. 3, pp. 864–889, 1999.
[7] M. Parks, E. de Sturler, G. Mackey, D. Johnson, and S. Maiti, “Recycling Krylov Subspaces for Sequences of Linear Systems,” SIAM Journal on Scientific Computing, vol. 28,
no. 5, pp. 1651–1674, 2004.
[8] L. Mello, E. de Sturler, G. Paulino, and E. Silva, “Recycling Krylov subspaces for efficient
large-scale electrical impedance tomography,” Computer Methods in Applied Mechanics
and Engineering, vol. 199, no. 49-52, pp. 3101–3110, 2010.
[9] K. Ahuja, E. de Sturler, S. Gugercin, and E. Chang, “Recycling BiCG with an Application
to Model Reduction,” SIAM Journal on Scientific Computing, vol. 34, no. 4, pp. 1925–
1949, 2010.
[10] F. Roos and P. Hennig, “Krylov Subspace Recycling for Fast Iterative Least-Squares in
Machine Learning,” arXiv, 2017.
[11] K. Świrydowicz, Strategies For Recycling Krylov Subspace Methods And Bilinear Form
Estimation. PhD thesis, VT (Virginia Tech), 2017. Dissertation submitted to Virginia
Tech in partial fulfillment of the requirements for the degree of Doctor of Philosophy in
Mathematics.
33
[12] H. Al Daas, L. Grigori, P. Hénon, and P. Ricoux, “Recycling Krylov subspaces and reducing deflation subspaces for solving sequence of linear systems,” tech. rep., RR-9206,
Inria Paris, 2018. HAL Id: hal-01886546.
34
Descargar