Segones Jornades sobre Mètodes Numèrics en Ciències Aplicades i Enginyería VALL DE NÚRIA 2003 Laboratori de Càlcul Numèric (LaCàN) RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES TIPO SPARSE: LA ESTRATEGIA RPK Gustavo Montero* , Rafael Montenegro* , José María Escobar* y Eduardo Rodríguez* * Instituto de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería, Universitad de Las Palmas de Gran Canaria, Edificio Instituto Polivalente, Campus Universitario de Tafira, 35017 - Las Palmas de Gran Canaria e-mail: gustavo@dma.ulpgc.es Palabras clave: Métodos iterativos, Reordenación, Precondicionamiento, Subespacios de Krylov. Resumen. Se presenta una visión general de técnicas avanzadas para la resolución de grandes sistemas de ecuaciones lineales con matriz hueca (sparse). En primer lugar se introducen diferentes algoritmos de reordenación orientados a mejorar el efecto del precondicionamiento de un sistema. Seguidamente, se define el concepto de precondicionamiento y se formulan algunos de los precondicionadores más usados en la actualidad, destacando los desarrollados recientemente basándose en la inversa aproximada de una matriz. Por otro lado, se consideran algunos métodos iterativos basados en los subespacios de Krylov para la resolución de sistemas de ecuaciones lineales. Para el caso simétrico se propone el Gradiente Conjugado, mientras que para el no simétrico, existen varias alternativas que se pueden clasificar en tres grandes familias de métodos, los de ortogonalización, los de biortogonalización y los basados en la Ecuación Normal. Esta estrategia de resolución (RPK), que combina las tres técnicas anteriores, parece la más eficiente desde el punto de vista computacional como muestran los experimentos numéricos aquí presentados. / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . 1. INTRODUCCIÓN Se plantea la resolución de un sistema de ecuaciones de la forma, Ax = b (1) siendo A sparse, de orden elevado y no singular. La primera cuestión a plantear es si conviene una resolución mediante un método directo o uno iterativo. La principal desventaja de los directos frente a los iterativos es que los errores de redondeo se acumulan durante el proceso, además de requerir mayor espacio de memoria debido al efecto fill-in. Por otro lado, en procesos evolutivos donde se tienen que resolver diversos sistemas del mismo tipo, los métodos iterativos pueden aprovechar, como aproximación inicial, la solución obtenida en el paso de tiempo anterior. Todo ello hace que actualmente, en general, se opte por la resolución iterativa. Las técnicas de reordenación, que se aplicaban fundamentalmente en la resolución de sistemas por métodos directos y que están basadas en la teoría de grafos, proporcionan matrices con ancho de banda o perfil menor, lo que reduce, en la resolución por métodos directos, el coste de almacenamiento en la factorización y, en cambio, son utilizadas en los métodos iterativos para mejorar el efecto del precondicionamiento (distintas formas de reordenación para diversos métodos de Krylov pueden verse en [2, 5, 9, 10, 23, 24, 25, 26]) Por otro lado, las técnicas de precondicionamiento mejoran sensiblemente la convergencia de los métodos iterativos. Además de presentar las distintas formas de precondicionamiento, por la izquierda, por la derecha y por ambos lados, se estudian algunos tipos de precondicionadores, Diagonal, el SSOR, el ILUT, un caso particular de éste, el ILU(0), y, por último, el de la Inversa Aproximada sparse y el de estructura Diagonal, denominada precondicionador Diagonal Óptimo. Otros tipos de precondicionadores han sido propuestos en los últimos años (ver por ejemplo [7, 29, 39]). El tercer lugar se estudian las tres grandes familias de métodos de Krylov (ver [28, 30]): métodos de ortogonalización, los de biortogonalización y los basados en la ecuación normal. Para el caso particular de sistemas simétricos se estudia el método del Gradiente Conjugado [18], basado en el método de ortogonalización de Lanczos [22], que es una simplificación del algoritmo de Arnoldi para sistemas simétricos. Dentro de los métodos de ortogonalización orientados a sistemas no simétricos, que utilizan para su implementación el algoritmo de ortogonalización de Arnoldi [1], se estudia el GMRES (Generalized Minimum Residual Method) [33]. (Distintas versiones de este algoritmo pueden verse en [16, 20, 21, 31, 37]). De entre los métodos basados en el algoritmo de biortogonalización de Lanczos se estudian los métodos Bi-CGSTAB (Biconjugate Gradient Stabilized) [36] y QMRCGSTAB [6]. Por último, de los basados en la Ecuación Normal, presentamos el LSQR (Least-square QR) [32]. 2. RENUMERACIÓN Las técnicas de reordenación, que se aplican fundamentalmente en la resolución de sistemas de ecuaciones lineales por métodos directos, están basadas en la teoría de grafos y proporcionan 2 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . una nueva matriz con un ancho de banda o pérfil menor, reduciendo el coste de almacenamiento y donde el efecto de relleno que se produce en la factorización queda disminuido. El objetivo que se persigue al aplicar estas técnicas a los algoritmos que hemos estudiado es conseguir que la factorización incompleta sea más cercana a la factorización completa, para que la matriz de precondicionamiento se asemeje lo más posible a la matriz del sistema inicial A, lo que supone teóricamente, un mejor precondicionador, como reflejan los resultados obtenidos en los experimentos numéricos. Efectos similares se pueden extender al precondicionador SSOR ya que es otra aproximación de la factorización de A. La reordenación no afecta al almacenamiento de la matriz, ya que el número de elementos no nulos almacenados de forma compacta, se conserva aunque ocupen posiciones distinstas. Otro objetivo es investigar si la reordenación reduce la cantidad de entradas en el precondicionador SPAI y si su uso mejora la convergencia del método iterativo. Sea P la matriz de permutación asociada a un algoritmo de reordenación. (P T AP )−1 = P T A−1 P , es decir, la inversa de la matriz reordenada es la reordenada de la matriz inversa. Entonces al reordenar una matriz, su inversa aproximada debe tender a la inversa reordenada. Si la tolerancia de la inversa aproximada está dada por ε, en el subespacio S ⊂ M n (R), mı́n kM A − IkF = kN A − IkF < ε (2) M ∈S mı́n M 0 ∈P T SP 0 T M P AP − I = F mı́n M 0 ∈P T SP P M 0 P T A − I = mı́n kM A − Ik < ε F M ∈S (3) Sea S 0 un subespacio de Mn (R) correspondiente al mismo número de entradas no nulas que S, donde la inversa aproximada óptima es obtienida para dicho número de entradas no nulas. Cabe destacar, también, que el número de entradas no nulas en S es el mismo que el de P T SP . En este caso obtenemos, 0 T N P AP − I = mı́n M 0 P T AP − I ≤ mı́n M 0 P T AP − I < ε (4) F F M 0 ∈S 0 M 0 ∈P T SP F Evidentemente, el número de entradas no nulas necesarias en S 0 será menor o igual que el número de entradas no nulas en P T SP y en S. Concluimos que la reordenación reduce la cantidad de entradas no nulas en la inversa aproximada para una tolerancia dada ε, o, al menos, no lo aumenta. Debido a los resultados dados en (4), los precondicionadores tipo inversa aproximada reordenados adquieren mejores propiedades desde el punto de vista de su utilización para mejorar la convergencia de los métodos iterativos. La cercanía del número de condición de M 0 P T AP a 1 se caracteriza por, 1 + M 0 P T AP − I 2 0 T K2 (M P AP ) ≤ (5) 1 − kM 0 P T AP − Ik2 La desviación de la normalidad de (M 0 P T AP ) está acotada por, n 2 1X 2 (|λk | − σk )2 ≤ M 0 P T AP F (1 − σn ) n k=1 n 3 (6) / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . siendo {λk }nk=1 , {σk }nk=1 los autovalores y valores singulares de P T AP M 0 (en secuencia de módulos decreciente). Finalmente, la agrupación de los autovalores y valores singulares estará dada por, n X 2 (1 − σk )2 ≤ M 0 P T AP − I F (7) k=1 n X k=1 2 (1 − λk )2 ≤ M 0 P T AP − I F (8) En los experimentos númericos, las técnicas que se han adaptado al esquema de almacenamiento descrito, son el algoritmo de grado mínimo (MDG, Mínimum Degree) propuesto por George y Liu [14], el algoritmo inverso de Cuthill-Mckee (RCM, Reverse Cuthill-Mckee) [13] propuesto por George para mejorar el algoritmo de Cuthill-Mckee [8] y el algoritmo del mínimo vecino (MN, Minimum Neighboring) [9], que es una variante del MDG. 2.1. Algoritmo de Grado Mínimo Este algoritmo se usa para matrices con estructura sparse simétrica. Consiste en hacer una renumeración de los nodos en orden creciente de sus grados respectivos (conexiones de dicho nodo en el grafo asociado). Los nodos de mayor grado originarán en teoría, un mayor fill-in. La idea es renumerarlos al final para evitar el incremento del fill-in durante el proceso. A LGORITMO MDG 1 - Construir el grafo asociado a la matriz A, g(x) = hV, Ei, donde V es el conjunto de nodos y E = {{a, b} : a 6= b / a, b ∈ V }. 2 - Mientras V 6= ∅: 2.1- Elegir un nodo v de grado mínimo en g(x) = hV, Ei y reordenar como nodo siguiente. 2.2 - Definir: Vv = V − {v} , Ev = {{a, b} ∈ E / a, b ∈ Vv } ∪ {{a, b} a 6= b / a, b ∈ Adjg (v)}. Siendo, Adjg (v) el conjunto de nodos conectados a v en el grafo g(x). y hacer V = Vv , E = Ev y g(x) = hV, Ei. 3 - Fin 2.2. Algoritmo de Cuthill-McKee Inverso El algoritmo de Cuthill-Mckee proporciona un método sencillo para reordenar una matriz sparse con objeto de reducir el efecto fill-in) transformando la matriz en una matriz banda. La ordenación resultante al invertir el algoritmo de Cuthill-Mckee resulta frecuentemente mejor que el original, en términos de reducción de perfil, manteniendo la anchura de banda. 4 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . A LGORITMO RCM 1 - Construir el grafo asociado a la matriz A, g(x) = hV, Ei, siendo V el conjunto de nodos y E = {{a, b} : a 6= b / a, b ∈ V }. 2 - Determinar un nodo inicial (pseudo-periférico) y renumerarlo como x1 . 3 - Renumerar los nodos conectados a xi en orden ascendente de grado. 4 - Efectuar el ordenamiento inverso. 5 - Fin 2.3. Algoritmo del Mínimo Vecino Este algoritmo [14] es una variante del algoritmo de grado mínimo que opera eliminando los nodos seleccionados en la estructura del grafo asociado a la matriz y de forma que no se define ni se inserta en el grafo ninguna nueva conexión. Se selecciona consecutivamente el nodo que tiene el menor número de ”vecinos”. Es especialmente útil cuando se hace una factorización incompleta con el mismo patrón de sparsidad que la matriz del sistema, por ejemplo cuando se utilizan precondicionadores como el ILU(0) o el SSOR. A LGORITMO MN 1 - Construir el grafo asociado a la matriz A, g(x) = hV, Ei, donde V es el conjunto de nodos y E = {{a, b} : a 6= b / a, b ∈ V }. 2 - Mientras V 6= ∅: 2.1- Elegir un nodo v de grado mínimo en g(x) = hV, Ei y reordenar como nodo siguiente. 2.2 - Definir: Vv = V − {v} , Ev = {{a, b} ∈ E / a, b ∈ Vv }. y hacer V = Vv , E = Ev y g(x) = hV, Ei. 3 - Fin 2.4. Algoritmo de George La elección del nodo inicial en el segundo paso de los algoritmos anteriores se ha determinado usando el algoritmo de George [14], que nos determina un nodo pseudo-periférico. Si definimos la distancia d(x, y) entre dos nodos x e y en un grafo g(x) = hV, Ei, como la longitud de la trayectoria más corta que une ambos nodos, y la excentricidad de un nodo x por ε(x) = M ax {d(x, y)/x, y ∈ V }, el algoritmo se escribe de la siguiente forma, A LGORITMO G EORGE PARA LA DE NODOS PSEUDO - PERIFÉRICOS 1- Elegir un nodo arbitrario r de V . DE BÚSQUEDA 5 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . 2 . Generar una estructura con niveles enraizada en r, L0 (r), L1 (r), . . . , Lε(r) (r) . siendo Li (r) = {x/d(x, r) = i}. 3 - Elegir un nodo x de grado mínimo en Lε(r) (r). 4 . Generar una estructura con niveles enraizada en x, L0 (x), L1 (x), . . . , Lε(x) (x) 5 - Si ε(x) > ε(r), establecer x → r y volver al paso 3. 6 - Caso contrario tomamos x como nodo inicial. 7 - Fin 3. PRECONDICIONAMIENTO La convergencia de los métodos basados en los subespacios de Krylov mejora con el uso de las técnicas de precondicionamiento. Éstas consisten generalmente en cambiar el sistema original Ax = b por otro de idéntica solución, de forma que el número de condicionamiento de la matriz del nuevo sistema sea menor que el de A, o bien tenga una mejor distribución de autovalores. Generalmente, se considera una matriz de precondicionamiento M −1 , siendo M una aproximación de A, esto es, M−1 Ax = M−1 b tal que, K (M−1 A) < K (A). El menor valor corresponde a M = A, K (A−1 A) = 1, que es el caso ideal y el sistema convergería en una sola iteración, pero el coste computacional del cálculo de A−1 equivaldría a resolver el sistema por un método directo. Se sugiere que M que sea una matriz lo más próxima a A sin que su determinación suponga un coste elevado. Por otro lado, la matriz M debe ser fácilmente invertible para poder efectuar los productos −1 M por vector que aparecen en los algoritmos precondicionados sin excesivo coste adicional. Dependiendo de la forma de plantear el producto de M−1 por la matriz del sistema obtendremos distintas formas de precondicionamiento. Éstas son, M−1 Ax = M−1 b AM−1 Mx = b −1 −1 M−1 1 AM2 M2 x = M1 b (Precondicionamiento por la izquierda) (Precondicionamiento por la derecha) (Precondicionamiento por ambos lados) (9) si M puede ser factorizada como M = M1 M2 . El campo de posibles precondicionadores es muy amplio. Algunos de los más usados son el de Jacobi, SSOR, ILU, la Inversa Aproximada y el Diagonal Óptimo. 3.1. Precondicionador de Jacobi Surge comparando la fórmula de recurrencia para la solución que resulta de aplicar el método de Richardson, cuya relación de recurrencia viene dada por x i+1 = xi + α (b − Axi ), con α > 0, al sistema precondicionado con la fórmula correspondiente que se obtiene aplicando el 6 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . método de Jacobi al sistema sin precondicionar. De la aplicación del método de Richardson al sistema precondicionado M−1 Ax = M−1 b, se obtiene para el cálculo de los sucesivos valores de la solución, xi+1 = xi + α M−1 b − M−1 Axi Multiplicando por la matriz de precondicionamiento M, queda, Mxi+1 = Mxi + α (b − Axi ) (10) Por otro lado, descomponiendo la matriz del sistema en A = D − E − F, (D matriz diagonal formada por los elementos de la diagonal de A y E y F matrices triangulares inferior y superior respectivamente), y utilizando el método de Jacobi para la resolución del sistema, se obtiene, xi+1 = D−1 (E + F) xi + D−1 b que multiplicando por D y operando resulta, Dxi+1 = Dxi + (b − Axi ) (11) Comparando las expresiones de recurrencia finales de ambos métodos, se observa que el método de Jacobi aplicado al sistema sin precondicionar, equivale al de Richardson, con α = 1, menos robusto y más simple, cuando este se aplica al sistema precondicionado con la matriz diagonal D = diag(A). 3.2. Precondicionador SSOR Si aplicamos el método SSOR al sistema sin precondicionar, considerando la descomposición de la matriz A en A = D − E − F, como en el caso anterior, y siendo ω el parámetro de relajación, se obtiene, 1 1 (D−ωE) D−1 (D−ωF) xi+1 = (D−ωE) D−1 (D−ωF) xi + (b − Axi ) ω (2 − ω) ω (2 − ω) con lo que resulta como matriz de precondicionamiento, D−ωF −1 M = I−ωED ω(2 − ω) que en el caso de sistemas simétricos, podemos expresarla como, #" #T " (D−ωE) D−1/2 (D−ωE) D−1/2 p p M= ω (2 − ω) ω (2 − ω) (12) (13) 3.3. Precondicionador ILU(0) Resulta de la aproximación de A por una factorización incompleta LU, guardando las mismas entradas nulas en las matrices triangulares L y U, A = LU ≈ ILU(0) = M 7 (14) / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . donde mij son las entradas de M tal que, mij = 0 {A − LU}ij = 0 if if aij = 0 aij 6= 0 (15) (16) Es decir que lo elementos nulos de la matriz del sistema siguen siendo nulos en las posiciones respectivas de las matrices triangulares para no incrementar el coste computacional. Para sistemas simétricos se define, de forma similar, la factorización incompleta de Cholesky ILL t . 3.4. Precondicionador Inversa Approximada Recientemente, el uso de inversas aproximadas se ha convertido en una buena alternativa para los precondicionadores implícitos debido a su naturaleza paralelizable; para más detalles ver, [3, 17], y también un estudio comparativo completo en [4]. Aquí se construye una matriz inversa aproximada usando el producto escalar de Frobenius. Aunque el estudio se ha desarrollado precondicionando por la derecha, los resultados por la izquierda son directos. Sea S ⊂ Mn , el subespacio de las matrices M donde se busca una inversa aproximada explícita con un patrón de sparsidad desconocido. La formulación del problema es: encontrar M0 ∈ S tal que M0 = arg mı́n kAM − IkF (17) M ∈S Además, esta matriz inicial M0 pudiera ser posiblemente una aproximada inversa de A en un sentido estricto, es decir, kAM0 − IkF = ε < 1 (18) Existen dos razones para esto. Primero, la ecuación (18) permite asegurar que M0 no es singular (lema de Banach), y segundo, esta será la base para construir un algoritmo explícito para mejorar M0 y resolver la ecuación (1). Un trabajo reciente de Grote y otros [17] propone un algoritmo eficiente para obtener una inversa aproximada tan cercana a una matriz no singular A como se requiera. Hemos seguido dicha técnica pero variando el método de selección de las entradas en M 0 y el algoritmo usado para resolver el problema (17). La construcción de M0 se realiza en paralelo, independizando el cálculo de cada columna. Aunque nuestro algoritmo nos permite comenzar desde cualquier entrada de la columna k, se acepta comúnmente el uso de la diagonal como primera aproximación. Además, la expresión del precondicionador diagonal óptimo es bien conocida. La siguiente entrada a considerar se selecciona dentro del conjunto de entradas candidatas, el cual se define siguiendo el criterio propuesto en [17]. Sea rk el residuo correspondiente a la columna k-ésima, rk = Amk − ek (19) y sea Ik el conjunto de índices de las entradas no nulas en rk , es decir, Ik = {i ∈ {1, 2, ..., n} / rik 6= 0}. Si Lk = {l ∈ {1, 2, ..., n} / mlk 6= 0}, entonces la nueva entrada se busca en el conjunto Jk = {j ∈ Lck / aij 6= 0, ∀i ∈ Ik }. En realidad, las únicas entradas consideradas en mk son aquellas que afectan las entradas no nulas de rk . En lo que sigue, asumimos que Lk ∪ {j} = 8 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . ik1 , ik2 , ..., ikpk es no vacío, siendo pk el número actual de entradas no nulas de mk , y que ikpk = j, para todo j ∈ Jk . Para cada j, calculamos, 2 pk X det Dlk 2 ||Amk − ek ||2 = 1 − (20) k k det G det G l−1 l l=1 k k donde, para todo k, det G0 = 1 y Gl es la matriz de Gram de las columnas ik1 , ik2 , ..., ikl de la matriz A con respecto al producto escalar euclídeo, Dlk es la matriz que resulta de reemplazar la última fila de la matriz Gkl por ak ik1 , ak ik2 , ..., ak ikl , con 1 ≤ l ≤ pk . Se selecciona el índice jk que minimiza el valor de kAmk − ek k2 . Esta estrategia (ver [27]) define el nuevo índice seleccionado jk atendiendo solamente al conjunto Lk , lo que nos lleva a un nuevo óptimo donde se actualizan todas las entradas correspondientes a los índices de L k . Esto mejora el criterio de [17] donde el nuevo índice se selecciona manteniendo las entradas correspondientes a los índices de Lk . Así mk se busca en el conjunto Sk = {mk ∈ Rn /mik = 0; ∀i ∈ / Lk ∪ {jk }}, pk X det Dlk m el (21) mk = k k det G det G l l−1 l=1 donde m e l es el vector con entradas no nulas ikh (1 ≤ h ≤ l). Cada una de ellas se obtiene evaluando el determinante correspondiente que resulta de reemplazar la última fila de det Gkl por eth , con 1 ≤ l ≤ pk . Evidentemente, los cálculos de ||Amk − ek ||22 y mk pueden actualizarse añadiendo la con tribución de la última entrada j ∈ Jk a la suma previa de 1 a pk − 1. En la práctica, det Gkl se calcula usando la descomposición de Cholesky puesto que G kl es una matriz simétrica y definida positiva. Esto sólo involucra la factorización de la última fila y columna si aprovechamos la desk k k composición de Gl−1 . Por otra parte, det Dl / det Gl es el valor de la última incógnita del t sistema Gkl dl = ak ik1 , ak ik2 , ..., ak ikl necesitándose solamente una sustitución por descenso . Finalmente, para obtener m e l debe resolverse el sistema Gkl vl = el , con m e ikh l = vhl , (1 ≤ h ≤ l). 3.5. Precondicionador Diagonal Óptimo En el caso particular en que S es el subespacio de las matrices diagonales de orden n, el mejor precondicionador diagonal por la izquierda del sistema es, ! a11 a22 ann M = diag (22) 2, 2,..., keTn Ak22 keT1 Ak2 keT2 Ak2 kMA − Ik2F =n− n X aii 2 T i=1 kei Ak2 De forma similar se obtiene el precondicionador por la derecha. 9 (23) / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . 4. MÉTODOS DE KRYLOV 4.1. Método del Gradiente Conjugado (CG) El método del Gradiente Conjugado está basado en una técnica de proyección ortogonal sobre el subespacio de Krylov Kk (A; r0 ) donde r0 es el residuo inicial, y fundamentado en el algoritmo D-Lanczos de la siguiente forma. Una aproximación x j+1 puede ser expresada, xj+1 = xj + αj pj (24) entonces, los vectores residuos deben satisfacer que, rj+1 = rj − αj Apj (25) estos vectores residuos son ortogonales, rj − αj Apj , rj = 0 por tanto, αj = hrj , rj i Apj , rj (26) como las siguientes direcciones pj+1 son una combinación lineal de rj+1 y pj , después de reescalar los vectores p apropiadamente, pj+1 = rj+1 + βj pj con lo cual, (27) Apj , rj = Apj , pj − βj−1 pj−1 = Apj , pj ya que Apj es ortogonal a pj−1 . Entonces, teniendo en cuenta (26) y (27) obtenemos que, rj+1 , Apj βj = − pj , Apj y como de (25), podemos escribir, Apj = − entonces, βj = − 1 (rj+1 − rj ) αj hrj+1 , rj+1 i 1 hrj+1 , (rj+1 − rj )i = αj hrj , rj i Apj , pj A LGORITMO DEL G RADIENTE C ONJUGADO PRECONDICIONADO (PCG) Aproximación inicial x0 . r0 = b − Ax0 ; Resolver Mz0 = r0 , p0 = z0 ; Mientras k rj k / k r0 k≥ ε (j = 0, 1, 2, 3, ...), hacer hrj , zj i ; αj = Apj , pj xj+1 = xj + αj pj ; 10 (28) / . Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez rj+1 = rj − αj Apj ; Resolver Mzj+1 = rj+1 ; hrj+1 , zj+1 i βj = ; hrj , zj i pj+1 = zj+1 + βj pj ; Fin 4.2. Método de Mínimo Residuo Generalizado (GMRES) El algoritmo GMRES [33] es un método de proyección sobre K = K k con L = AKk donde Kk es un subespacio de Krylov de dimensión k, que minimiza la norma del residuo. Así, el desarrollo del algoritmo consiste en encontrar un vector x de x0 + Kk tal que, x = x0 + Vk y imponiendo la condición de mínimo para, J(y) = kb − Axk (29) Como, b − Ax = b − A (x0 + Vk y) = r0 −AVk y teniendo en cuenta la ecuación obtenida del algoritmo de Arnoldi AVk = Vk+1 Hk (30) y llamando y v1 = r0 / k r0 k, siendo β =k r0 k, entonces, b − Ax = βv1 − Vk+1 Hk y pero, v1 = Vk+1 e1 , con e1 ∈ <k+1 , por tanto: b − Ax = Vk+1 βe1 − Hk y y la ecuación (29) quedará, (31) J(y) = Vk+1 βe1 − Hk y Como las columnas de la matriz Vk+1 son ortonormales por construcción, podemos simplificar la anterior expresión, J(y) = βe1 − Hk y (32) El algoritmo GMRES busca el único vector de x0 + Kk que minimiza la funcional J(y). A LGORITMO GMRES Aproximación inicial x0 . r0 = b − Ax0 ; Definir la (k + 1) × k matriz Hk = {H}1≤i≤k+1,1≤j≤k . Poner Hk = 0. Desde j = 1, ..., k hacer wj = Avj Desde i = 1, ..., j hacer 11 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . {H}ij = hwj , vi i; wj = wj − {H}ij vi ; Fin {H}j+1,j =k wj k; Si {H}j+1,j = 0 poner k = j y parar 1 vj+1 = wj ; {H}j+1,j Fin Hallar yk que minimiza βe1 − Hk y ; Determinar xk = x0 + Vk yk siendo Vk = [v1 , v2 , ..., vk ]; Calcular rk = b − Axk El algoritmo GMRES resulta impracticable cuando k es muy grande por el elevado coste computacional y de almacenamiento, por ello se suele usar la técnica de restart y truncamiento. Una modificación del GMRES consiste en utilizar un método directo para la resolución del problema de mínimos cuadrados que aparece en cada iteración [12] en lugar de la factorización QR [33] o la basada en la transformación de Householder [38]. Considérese la proyección ortogonal sobre el subespacio de soluciones mediante la multiplicación por la matriz H tk , Htk Hk u = Htk βi−1 e1 (33) La forma de Hk sugiere descomponer el producto Htk Hk en una suma. En efecto, se advierte fácilmente que Hk es una matriz (k + 1) × k con la siguiente estructura: dtk Uk Hk = 0 La primera fila está definida por un vector de dimensión k (dtk ) y el resto forma una matriz cuadrada triangular superior Uk : {dk }i = di = {H}1i i = 1, ..., k {H}i+1 j 1≤i≤j≤k {Uk }ij = uij = 0 en el resto (34) (35) Teorema. Sean dk y Uk definidos por (34) y (35), y p̄k , pk , respectivamente, las soluciones de los sistemas triangulares Utk p̄k = dk y Uk pk = p̄k . Si se define, λi = βi−1 ; 1 + hdk , pk i uk = λ i pk entonces uk minimiza la forma cuadrática J(u) = kβi−1 e1 − Hk uk2 sobre Rk . Demostración: Obsérvese en primer lugar que 1 + hdk , pk i 6= 0, ya que hdk , pk i = Utk Uk pk , pk = kUk pk k22 ≥ 0 12 / . Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez y, por tanto, λi nunca puede degenerar. Consideremos ahora el sistema lineal dado en (33). El (i, j)-ésimo elemento de Htk Hk es: Htk Hk En definitiva, se puede expresar, ij = d i dj + k X umi umj (36) m=1 dk dtk + Utk Uk u = Htk βi−1 e1 Teniendo en cuenta que Htk e1 = dk , se obtiene la siguiente formulación: dk dtk + Utk Uk u =βi−1 dk (37) (38) Si pasamos al segundo miembro el producto externo y aplicamos la propiedad asociativa de la multiplicación de matrices, se obtiene, Utk Uk u = dk (βi−1 − hdk , ui) (39) λi = βi−1 − hdk , ui (40) u = λ i pk (41) Utk Uk pk = dk (42) Si definimos, entonces se tiene que, Esto supone resolver sólo dos sistemas triangulares, ya que Utk y Uk son matrices triangulares inferiores y superiores, respectivamente. Una vez resuelto este sistema, se necesita calcular λi para obtener u en la ecuación (41). Sustituyendo (41) en (40) se llega a, λi = βi−1 − hdk , ui = βi−1 − λi hdk , pk i y por tanto, se demuestra que λi = βi−1 1 + hdk , pk i (43) El cálculo del nuevo residuo se basa en el siguiente resultado, ri = Vk+1 (βi−1 e1 − Hk u) (44) ri = Vk+1 r̂i (45) donde se sabe que Vk+1 = [v1 , v2 , ..., vk+1 ] y es unitaria. Así, se puede escribir, representando r̂i el siguiente vector de dimensión (k + 1), r̂i = βi−1 e1 − Hk u (46) kri k2 = kr̂i k2 (47) Además, es evidente que, 13 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . A partir de la descomposición de Hk , la primera componente del vector (Hk u) de dimensión (k + 1) es el producto escalar hdk , ui, y el resto de las componentes vienen dadas por el vector (Uk u) de dimensión k. Por tanto, la primera componente de r̂i es λi , y las otras, −Uk u = −λi Uk pk = −λi p̄k (48) siendo posible almacenar el vector p̄k después del primer remonte al resolver (42). El algoritmo Variable GMRES es una variante del GMRES-Modificado. Además de la resolución directa del problema de mínimos cuadrados [12] la idea básica es usar el full GMRES al principio del algoritmo hasta que satisface una cierta subtolerancia δ que puede ser función de ε, la tolerancia exigida a la solución, y se incrementa la dimensión del subespacio de Krylov k una unidad en cada paso mientras la norma del vector residuo sea mayor o igual a δ y k sea menor que la dimensión máxima permitida (por ejemplo, por exigencias de memoria) del subespacio de Krylov ktop . A partir de este punto, con ese último valor de k, comienza el algoritmo como si se tratase del estándar restarted GMRES hasta alcanzar la tolerancia ε dada [11]. A LGORITMO VGMRES Aproximación inicial x0 . r0 = b − Ax0 ; Elegir kinit , ktop , δ ∈ [0, 1], k = kinit Mientras k b ri−1 k / k r0 k≥ ε (i = 1, 2, 3, ...), βi−1 = k ri−1 k, vi = ri−1 /βi−1 ; Si k ri−1 k / k r0 k≥ δ y k < ktop hacer k = k + 1; Para j = 1, ..., k hacer Resolver Mzj = vj ; w = Azj ; Para n = 1, ..., j hacer {H}nj = wt vn ; w = w − {H}nj vn ; Fin {H}j+1,j =k w k; vj+1 = w/ {H}j+1,j : Fin Resolver Utk p̄ = dk y Uk p = p̄; {dk }m = {H}1m con l, m = 1, ..., k; {Uk }lm = {H}l+1,m βi−1 λi = ; 1 + dtk p uk = λi p; xi = xi−1 + Zk uk ; siendo Zk = [z1 , z2 , ..., zk ]; {r̂ } = λi ri = Zk+1 r̂i ; con i 1 l = 1, ..., k; {r̂i }l+1 = −λi {p̄}l Fin 14 / . Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez Este algoritmo, al igual que el FGMRES, permite cambiar el precondicionador en cada iteración. 4.3. Método Bi-CGSTAB (Biconjugate Gradient Stabilized) En el CGS [34], los vectores residuos verifican b rj = φ2j (A)r0 . Van der Vorst en el BiCGSTAB [36], propone obtener un vector residuo por aplicación sucesiva de dos polinomios reductores distintos de la forma, 0 rj = ψj (A)φj (A)r0 (49) tal que las relaciones de recurrencia del algoritmo donde intervenga este polinomio ψ j (A) no deben ser excesivamente complicadas y los parámetros que figuren en su definición sean fácilmente optimizables. En este sentido sugiere para ψj (A) la expresión, ψj+1 (A) = (I − wj A)ψj (A) (50) determinando wj , por la condición de mínimo para rj en la iteración j-ésima. Las relaciones de recurrencia se derivan de forma similar que en el algoritmo CGS. Así, ψj+1 (A)φj+1 (A) = (I − wj A)ψj (A)φj+1 (A) = (I − wj A) [ψj (A)φj (A)−αj Aψj (A)πj (A)] (51) Necesitamos una relación de recurrencia para la correspondiente dirección conjugada, ψj (A)πj (A) = ψj (A) [φj (A)+βj−1 πj−1 (A)] = ψj (A)φj (A)+βj−1 (I − wj−1 A)ψj−1 (A)πj−1 (A) Definimos, rj = ψj (A)φj (A)r0 , pj = ψj (A)πj (A)r0 Teniendo en cuenta las anteriores relaciones, podemos encontrar las correspondientes fórmulas de recurrencia en función de los escalares αj y βj , (52) rj+1 = (I − wj A) rj −αj Apj pj+1 = rj+1 + βj (I − wj A)pj (53) Para obtener el algoritmo, se toma como referencia al igual que en el CGS el algoritmo BiCG, efectuando las transformaciones necesarias para que las relaciones de recurrencia de la solución sean función del nuevo vector residuo. Recordando que en el algoritmo BiCG, βj = ρj+1 /ρj con, ρj = φj (A)r0 , φj (AT )r∗0 = φ2j (A)r0 , r∗0 Pero como ρj no lo hallamos porque ninguno de los vectores φj (A)r0 , φj (AT )r∗0 ó φ2j (A)r0 están disponibles, lo podemos relacionar con el escalar, ρej = φj (A)r0 , ψj (AT )r∗0 15 / . Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez que podemos obtener como, ρej = hψj (A)φj (A)r0 , r∗0 i = hrj , r∗0 i Desarrollando φj (AT )r∗0 explícitamente para relacionar los escalares, ρj y ρej , incorporando la ortogonalidad de φj (A)r0 respecto de todos los vectores (AT )i r∗0 , con i < j y teniendo en cuenta que sólo los coeficientes principales de los polinomios son relevantes en el desarrollo del anterior producto, D E ρej = φj (A)r0 , η1j (AT )j r∗0 + η2j (AT )j−1 r∗0 + ... Si γ1j es el principal coeficiente para el polinomio φj (A), entonces, * + η1j ηj ρej = φj (A)r0 , j φj (AT )r∗0 = 1j ρj γ1 γ1 Examinando las relaciones de recurrencia para φj+1 (A) y ψj+1 (A), los coeficientes principales para estos polinomios fueron hallados para satisfacer las relaciones, η1j+1 = −wj η1j , γ1j+1 = −αj γ1j Por tanto, wj ρj+1 ρej+1 = ρej αj ρ j que nos permite encontrar la siguiente relación para βj , ρej+1 αj ρej wj βj = De forma similar, y por una simple fórmula de recurrencia podemos encontrar α j como, φj (A)r0 , φj (AT )r∗0 αj = hAπj (A)r0 , πj (AT )r∗0 i De la misma manera que anteriormente, en los productos de polinomios, tanto en el numerador como en el denominador, sólo se consideran los términos correpondientes a sus respectivos coeficientes principales y como éstos para φj (AT )r∗0 y πj (AT )r∗0 son idénticos, se tiene, φj (A)r0 , φj (AT )r∗0 φj (A)r0 , ψj (AT )r∗0 hψj (A)φj (A)r0 , r∗0 i αj = = = hAπj (A)r0 , φj (AT )r∗0 i hAπj (A)r0 , ψj (AT )r∗0 i hAψj (A)πj (A)r0 , r∗0 i Y como pj = ψj (A)πj (A)r0 , entonces, αj = A partir de la ecuación (52), si hacemos, ρej Apj , r∗0 sj = rj − αj Apj 16 (54) (55) / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . el valor óptimo para el parámetro wj que interviene en la construcción del polinomio reductor ψj (A) y que figura en las relaciones de recurrencia del algoritmo lo obtendremos con la condición de minimizar la norma del vector residuo, rj+1 = sj − wj Asj krj+1 k2 = hsj − wj Asj , sj − wj Asj i = hsj , sj i − 2wj hsj , Asj i + wj2 hAsj , Asj i ∂ krj+1 k2 = −2 hsj , Asj i + 2wj hAsj , Asj i = 0 ∂wj con lo que, La ecuación (52) ahora nos quedará, Asj , sj wj = Asj , Asj rj+1 = sj − wj Asj = rj − αj Apj − wj Asj (56) (57) y la relación de recurrencia para el vector solución viene dada por, xj+1 = xj + αj pj + wj sj (58) Una vez expresados todos los vectores en función del nuevo residuo y determinadas sus relaciones de recurrencia, así como los escalares que intervienen en las mismas, se puede escribir el algoritmo, en el que figuran dos productos matriz por vector y cuatro productos internos, mientras que el CGS exige los mismos productos matriz por vector y sólo dos productos internos. Sin embargo, en la mayoría de los casos la convergencia del Bi-CGSTAB es más rápida y uniforme e incluso necesita menor carga computacional para alcanzar una determinada tolerancia, pues la reducción del número de iteraciones compensa su mayor coste. Para cada forma de precondicionamiento [28], el valor del parámetro ω e resulta: (As)T s ω e= precondicionamiento por la derecha T (As) As T −1 −1 (M As) (M s) (59) precondicionamiento por la izquierda ω e= (M−1 As)T (M−1 As) (L−1 As)T (L−1 s) ω e= precondicionamiento por ambos lados T −1 −1 (L As) (L As) De este modo, el cálculo de ω e incluye un proceso de sustitución por iteración para el precondicionamiento por la izquierda y dos para el precondicionamiento por ambos lados. No obstante, si obtenemos ω e a partir de la minimización del residuo del sistema original sin precondicionar, todos los valores dados en la ecuación (59) coinciden con el del precondicionamiento por la derecha. En este caso se obtiene también un único algoritmo, A LGORITMO BICGSTAB PRECONDICIONADO Aproximación inicial x0 . r0 = b − Ax0 ; 17 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . Elegir r∗0 arbitrario tal hr0 , r∗0 i 6= 0; Resolver Mz0 = r0 ; p0 = z 0 ; Mientras k rj−1 k / k r0 k≥ ε (j = 1, 2, 3, ...), hacer Resolver Mzj = rj ; yj = Apj ; Resolver Mvj = yj ; hzj , r∗0 i αj = ; hvj , r∗0 i s j = r j − α j yj ; uj = Asj ; Resolver Mtj = uj ; tj , sj ; ω ej = tj , tj xj+1 = xj + αj pj + ω e j uj ; zj+1 = sj − ω e j tj ; hzj+1 , r∗0 i αj βj = × ; hzj , r∗0 i ω ej pj+1 = zj+1 + βj (pj − ω ej vj ); Fin Cualquier otra elección del residuo inicial conducirá a una nueva forma de precondicionamiento (ver [35]). 4.4. Método QMRCGSTAB Desarrollado por Chan y otros [6] está basado en la aplicación del principio de minimización usado en el algoritmo Bi-CGSTAB al método QMR. Sea, Yk = [y1 , y2 , . . . yk ] , Wk+1 = [w0 , w1 , . . . wk ] tal que, y, y2l−1 = pl para l = 1, . . . , [(k + 1)/2] y2l = sl para l = 1, . . . , [k/2] w2l−1 = sl para l = 1, . . . , [(k + 1)/2] w2l = rl para l = 0, 1, . . . , [k/2] donde [k/2] y [(k + 1)/2] son la parte entera de k/2 y (k + 1)/2 respectivamente. Definiendo, δ2l = ωl para l = 1, . . . , [(k + 1)/2] [δ1 , δ2 , . . . δk ] / δ2l−1 = αl para l = 1, . . . , [(k + 1)/2] 18 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . Entonces, para cada columna de Wk+1 y Yk las expresiones (55) y (57) resultan, −1 Aym = (wm−1 − wm ) δm , m = 1, . . . , k (60) o usando notación matricial, AYk = Wk+1 Ek+1 −1 donde Ek+1 es una matriz bidiagonal (k + 1) × k con elementos diagonales δ m y en la diagonal −1 inferior −δm . Esto puede ser facilmente comprobado hasta que el grado de los polinomios correspondientes a los vectores rj , sj y pj sean 2j, 2j−1, y 2j−2 respectivamente. Entonces, Yk y Wk generarán el mismo subespacio de Krylov generado por r0 pero de grado k − 1. La idea principal del QMRCGSTAB es encontrar una aproximación a la solución del sistema (1) usando el subespacio de Krylov Kk−1 en la forma, xk = x 0 + Y k g con g ∈ <n la expresión para el vector residuo queda, rk = r0 − AYk g = r0 − Wk+1 Ek+1 g Teniendo en cuenta el hecho de que el primer vector de Wk+1 es justamente r0 , entonces, rk = Wk+1 (e1 − Ek+1 g) Como las columnas de Wk+1 no están normalizadas, se usará una matriz de escala Σk+1 = diag (σ1 , . . . , σk+1 ) con σj = kwj k para hacer unitarias las columnas de Wk+1 . Entonces, −1 rk = Wk+1 Σ−1 k+1 Σk+1 (e1 − Ek+1 g) = Wk+1 Σk+1 (σ1 e1 − Hk+1 g) con Hk+1 = Σk+1 Ek+1 . La aproximación QMR consiste en la minimización de kσ1 e1 − Hk+1 gk para obtener el óptimo gk ∈ <k , donde este problema de mínimos cuadrados es resuelto usando la descomposición QR de la matriz Hk+1 de forma incremental utilizando las rotaciones de Givens y como H k+1 es bidiagonal inferior, solamente es necesaria la rotación en los pasos previos. A LGORITMO QMRCGSTAB P RECONDICIONADO Aproximación inicial x0 . r0 = b − Ax0 ; Resolver Mz0 = r0 ; Elegir e r0 tal que hz0 , e r0 i 6= 0 p0 = v0 = d0 = 0; ρ0 = α0 =√ω e0 = 1, τ0 = kz0 k, θ0 = 0, η0 = 0; τ | / kr0 k ≥ ε(j = 1, 2, ...), hacer: Mientras j + 1 |e ρj = hzj−1 ,e r0 i, βj = (ρj /ρj−1 )(αj−1 /ω̃j−1 ); pj = zj−1 + βj (pj−1 − ω̃j−1 vj−1 ); yj = Apj ; Resolver Mvj = yj ; αj = ρj / hvj , e r0 i; 19 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . sj = zj−1 − αj vj ; Primera cuasi-minimización 1 θej = ksj k /τ , c = q ; τe = τ θej c; 2 e 1 + θj 2 ηej = cj αj ; θ2 η e j = pj + j−1 j−1 dj−1 ; d αj ej ; ej = xj−1 + ηej d x uj = Asj ; Resolver Mtj = uj ; hsj , tj i ; ω ej = htj , tj i zj = s j − ω e j tj ; Segunda cuasi-minimización 1 θj = kzj k /e τ, c = q ; τ = τe θj c; 1 + θj2 ηj = c 2 ω ej ; θej2 ηej ej ; d ω ej e j + η j dj ; xj = x dj = s j + Fin 4.5. Método LSQR (Least-Square QR) La resolución del sistema de ecuaciones (1), donde la matriz A es no simétrica, es equivalente a resolver el sistema AT Ax = AT b, donde AT A es simétrica definida positiva. La ecuación AT Ax = AT b recibe el nombre de Ecuación Normal. Al igual que el CG, los métodos desarrollados a partir de la Ecuación Normal cumplen las dos condiciones fundamentales de minimización de la norma residual y optimización del coste computacional, sin embargo presentan el inconveniente de que el condicionamiento del nuevo sistema es el cuadrado del inicial (K2 AT A =K2 (A)2 ), lo cual, para sistemas mal condicionados puede resultar desastroso y además en cada iteración aparecen dos productos matriz por vector correspondientes a las matrices A y AT aumentando el coste computacional. El método LSQR, propuesto por Paige y Saunders [32], intenta corregir el posible empeoramiento del número de condición de los sistemas al aplicar el método de Ecuación Normal. La idea básica del LSQR es hallar la solución del sistema simétrico, I A r b = (61) T 2 A −λ I x 0 20 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez minimizando, A b x− λI 0 2 . (62) donde λ es un número real arbitrario. De la aplicación del proceso de Lanczos a este sistema simétrico resultan dos formas de bidiagonalización propuestas por Golub y Kahan [15]. Forma bidiagonal inferior Si comenzamos tomando r0 = β1 u1 , α1 v1 = AT u1 βj+1 uj+1 = Avj − αj uj j = 1, 2, ... (63) αj+1 vj+1 = AT uj+1 − βj+1 vj los escalares αj ≥ 0 y βj ≥ 0 son elegidos tal que kuj k = kvj k = 1 y, α1 β2 α 2 β3 α 3 Bk = · · · · · · βk α k βk+1 Las relaciones de recurrencia dadas en (63) pueden reescribirse, r0 = Uk+1 (β1 e1 ) , AVk = Uk+1 Bk , AT Uk+1 = Vk BTk + αk+1 vk+1 eTk+1 (64) (65) (66) teniendo en cuenta que en aritmética exacta se verifica que UTk+1 Uk+1 = I y VkT Vk = I. Forma bidiagonal superior En este caso se comienza a partir de AT r0 = θ1 v1 , ρ1 p1 = Av1 θj+1 vj+1 = AT vj − ρj vj j = 1, 2, ... (67) ρj+1 pj+1 = Avj+1 − θj+1 pj Los escalares ρj ≥ 0 y θj ≥ 0 son elegidos tal que kpj k = kvj k = 1 y, ρ1 θ2 ρ2 θ3 ··· ··· Rk = ρk−1 θk ρk Las relaciones dadas en (67) pueden reescribirse, AT r0 = Vk (θ1 e1 ) , AVk = Pk Rk , AT Pk = Vk RTk + θk+1 vk+1 eTk 21 (68) (69) (70) / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . y también en aritmética exacta se verifica que PTk Pk = I y VkT Vk = I. Otra forma de resolver el problema de Ecuación Normal se puede derivar de forma análoga. Definiendo s = −Ax, podemos escribir la ecuación (61) como, I A s 0 = (71) AT −λ2 I x −AT b Aplicando de nuevo el algoritmo de Lanczos, después de 2k pasos se habrá transformado en, I Rk qk 0 = , (72) RTk −λ2 I yk −θ1 e1 qk Pk 0 sk (73) = yk 0 Vk xk donde Rk es una matriz bidiagonal superior k × k e yk satisface, RTk Rk + λ2 I yk = θ1 e1 (74) Se puede ver que las matrices generadas en ambos procesos de bidiagonalización, B k , Uk+1 , Rk , Pk y Vk son independientes de λ, por tanto, son generadas igualmente cuando λ = 0. Las matrices, los vectores y parámetros generados en la primera bidiagonalización son usados para resolver el problema de Ecuación Normal, mı́n kb − Axk Los vectores, xk = V k yk rk = b − Axk tk+1 = β1 e1 − Bk yk (75) (76) (77) rk = Uk+1 tk+1 (78) dependen de yk , y se tiene que, Debemos minimizar krk k y como teóricamente las columnas de la matriz Uk+1 son ortonormadas, la elección de yk debe ser tal que minimice ktk+1 k. Es decir, el problema a resolver es, mı́n kβ1 e1 − Bk yk k (79) La factorización QR de Bk es la misma de los procesos de bidiagonalización y toma la forma, ρ1 θ2 φ1 ρ2 θ3 φ2 ··· ··· ··· Rk f k Qk Bk β1 e1 = ≡ ρ θ φ φk+1 k−1 k k−1 ρk φk φk+1 donde Qk ≡ Qk,k+1 . . . Q2,3 Q1,2 es un producto de rotación de planos y los vectores yk y tk+1 22 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . pueden ser obtenidos de la forma, Rk y k = f k tk+1 = QTk 0 φk+1 (80) (81) Como Rk fk es la misma matriz que Rk−1 fk−1 pero con una nueva fila y columna añadidas, se pueden combinar adecuadamente las ecuaciones (75) y (80) para obtener, xk = Vk R−1 (82) k fk = D k fk donde las columnas de Dk = d1 d2 · · · dk se obtienen sucesivamente de la resolución del sistema RTk Dk = VkT . Con d0 = x0 = 0, se obtienen, 1 (vk − θk dk−1 ) , (83) dk = ρk xk = xk−1 + φk dk (84) La factorización QR anterior es deteminada para construir el k-ésimo plano de rotación Qk,k+1 que opera en las filas k y k + 1 de Bk β1 e1 para eliminar βk+1 . Las relaciones de recurrencia pueden expresarse, ρk θk+1 φk ck sk ρk 0 φk (85) = sk −ck 0 ρk+1 φk+1 βk+1 αk+1 0 donde ρ1 = α1 , φ1 = β1 y los escalares ck y sk son elementos no triviales de Qk,k+1 . Los escalares ρk y φk se van reemplazando secuencialmente por ρk y φk . Por otro lado, en la ecuación (83) se puede usar el vector wk = ρk dk en lugar de dk . Para la estimación de krk k, se tiene en cuenta las expresiones (78) y (81), rk = φk+1 QTk Uk+1 ek+1 (86) y, asumiendo que UTk+1 Uk+1 = I, se obtiene, krk k = φk+1 = β1 sk sk−1 · · · s1 A LGORITMO LSQR P RECONDICIONADO Aproximación inicial x0 . r0 = b − Ax0 ; Resolver Mz0 = r0 ; β1 = kz0 k, u1 = z0 /β1 ; T Resolver TM s1 = u1 ; T α1 = A s1 , v1 = A s1 /α1 , w1 = v1 ; φ1 = β 1 , ρ 1 = α 1 ; Mientras φj / k r0 k≥ ε ( j = 1, ...), hacer pj = Avj ; Resolver Mqj = pj ; βj+1 = kqj − αj uj k; 23 (87) / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . qj − α j u j ; βj+1 ResolverMsj+1 = uj+1 ; αj+1 = AT sj+1 − βj+1 vj ; AT sj+1 − βj+1 vj vj+1 = ; αj+1 21 2 ; ρj = ρ2j + βj+1 ρj cj = ; ρj βj+1 sj = ; ρj θj+1 = sj αj+1 ; ρj+1 = −cj αj+1 ; φj = cj φj ; φj+1 = sj φj ; φj xj = xj−1 + wj ; ρj θj+1 wj+1 = vj+1 − wj ; ρj uj+1 = Fin 5. EXPERIMENTOS NUMÉRICOS En esta sección consideramos algunos problemas obtenidos de aplicaciones científicas e industriales. Mostraremos la efectividad tanto de los precondicionadores sparse con tres de los métodos iterativos expuestos anteriormente. Todos los cálculos númericos se realizaron en FORTRAN con doble precisión. Se tomó siempre como aproximación inicial x 0 = 0, kb−Ax k r̃0 = r0 = b, y como criterio de parada kbk i 2 < 10−9 . A continuación mostramos una 2 breve descripción de los problemas. En problema LightTruck proviene de una simulación numérica de un filtro de carbón activo en 3D. El fenómeno físico dominante en estos dispositivos es el transporte de hidrocarburos. Huerta y otros [19], han desarrollado un modelo de convección-difusión-reacción del tipo, ∂u + v · ∇u − ν∆u + σ (u) u = f (u) ∂t donde u es la concentración de hidrocarburos en el aire, v representa el campo de velocidades del aire, calculado previamente resolviendo un problema de flujo potencial y ν es el coeficiente de difusión. El término de reacción σ (u) u y el término fuente f (u) son fuertemente no lineales. Se han considerado tres sistemas de ecuaciones correspondientes a la discretización por elementos finitos para tres pasos de tiempo diferentes (4030, 10044 y 16802) del proceso evolutivo, si bien sólo se presentan resultados para el último, al ser prácticamente los mismos en los tres 24 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . casos. La matriz de coeficientes de orden n = 17914, es simétrica y la misma para los tres sistemas, cambiando únicamente el segundo miembro en cada caso. Las figuras 1 y 2 muestran la comparativa de tiempos e iteraciones, respectivamente, del CG con varios precondicionadores, donde se observa que este caso el SSOR es la mejor elección. En la figura 3 se comprueba que el coste computacional del CG es muy inferior al de cualquier otro método correspondiente a sistemas no simétricos. El ejemplo (convdifhor) es un problema de convección difusión definido en [0, 1] × [0, 1] por, 2 ∂u ∂ u ∂2u v1 =F −K + ∂x ∂x2 ∂y 2 donde v1 = 104 y − 12 (x − x2 ) 21 − x , K = 10−5 − 102 , y F = 103 − 1. La matriz corresponde a una malla no estructurada de elementos finitos con n = 441 y nz = 2927, n = 1960 y nz = 13412, y n = 13190 y nz = 91227, respectivamente. La convergencia del BiCGSTAB mejora cuando se usa el precondicionador sparse para convdifhor. El número de iteraciones disminuye claramente con εk . Sin embargo, para obtener una inversa aproximada de A, las entradas por colmunas deben aumentarse a 200. La figura 5 se muestra que las inversas aproximadas tipo sparse pueden mejorar el comportamiento de algunos precondicionadores clásicos como el ILU(0) y ser competitivas cuando se realizan los cálculos en paralelos. En las figuras 4a-4b se muestran los gráficos de la estructura sparse de A y M , respectivamente, para este problema. Podemos observar que los patrones de sparsidad de A y A−1 son totalmente diferentes y no podemos, por tanto, definir la estructura de M igual a la de A, ni en general a la de una matriz fija. En la figura 6 se compara la convergencia de BiCGSTAB-SPAI(0.2) para las diferentes reordenaciones en el caso de n = 1960. Claramente, las reordenaciones producidas por los algoritmos de Grado Mínimo y Cuthill-Mckee Inverso tiene un efecto beneficioso en la velocidad de convergencia del algoritmo BiCGSTAB-SPAI. La reducción del número de entradas en la SPAI es del 40-50 % para los casos de reordenación con Grado Mínimo y Cuthill-Mckee Inverso. El algoritmo de Mínimo Vecino no afecta a nz. Además, el número de iteraciones del BiCGSTAB se redujo mediante las renumericaciones del 60-70 %. Como estamos interesados en el efecto de la reordenación de A en las características de los precondicionadores SPAI, en las figuras 7a-7b se muestra la estructura sparse de la matriz M con εk = 0,3 para ordenación Original, Grado Mínimo, Cuthill-Mckee Inverso y Mínimo Vecino, respectivamente. La estructuras correspondientes representan matrices llenas, como cabía esperar. Sin embargo, se advierte cierto paralelismo con la estructura de A para las diferentes reordenaciones. La reducción del ancho de banda y del perfil llevada a cabo por el algoritmo de Cuthill-Mckee Inverso en la matriz A se conserva de alguna manera en la matriz M , incluso cuando existe una tendencia a explotar algunas entradas fuera del perfil. Los patrones de las matrices SPAI correspondientes a Grado Mínimo y Mínimo Vecino también conservan en parte las estructuras de la matriz A reordenada, respectivamente, aún cuando nuestro algoritmo SPAI no tiene por qué producir matrices M con estructura simétrica. 25 Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez 2 CG CG+jacobi CG+illt CG+ssor CG+diagopt 0 log(||r||/||b||) -2 -4 -6 -8 -10 -12 0 1 2 3 4 5 Tiempo de CPU en s. Figura 1. Comportamiento de los prencondicionadores con CG (Tiempos) 2 CG CG+jacobi CG+illt CG+ssor CG+diagopt 0 log(||r||/||b||) -2 -4 -6 -8 -10 -12 0 50 100 150 200 250 300 350 400 450 500 Iteraciones Figura 2. Comportamiento de los prencondicionadores con CG (Iteraciones) 6 GC+ILLT VGMRES+ILLT BiCGSTAB+ILLT QMRCGSTAB+ILLT 4 2 0 log(||r||/||b|| / -2 -4 -6 -8 -10 -12 1 2 3 4 5 6 Tiempo de CPU en s. 7 8 9 10 Figura 3. Comportamiento de los métodos de Krylov (Tiempos) 26 . / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez (a) Estructura sparse de la matriz A (b) Estructura sparse de la inversa aproximada con εk = 0,5 y máx nz(m0k ) = 50 (c) Estructura sparse de la inversa aproximada con εk = 0,5 y máx nz(m0k ) = 50 (d) Estructura sparse de la inversa aproximada con εk = 0,05 y máx nz(m0k ) = 200 Figura 4. Patrón de sparsidad de A e inversas aproximadas para convdifhor, n = 441. 27 . / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . 2 "Unprec." "ILU0" "Tol=0.05_nz=200" "Tol=0.05" "Tol=0.2" "Tol=0.3" "Tol=0.4" "Tol=0.5" 0 Log(||r||/||b||) -2 -4 -6 -8 -10 20 40 60 Iteraciones 80 100 120 Figura 5. Comportamiento de los prencondicionadores con BiCGSTAB para convdifhor, n = 441. 0 SPAI(0.2) SPAI(0.2)-mdg SPAI(0.2)-rcm SPAI(0.2)-mn -1 -2 -3 Log(||r||/||b||) -4 -5 -6 -7 -8 -9 -10 -11 0 10 20 30 40 50 Iteraciones 60 70 80 90 Figura 6. Comparación del comportamiento de BiCGSTAB-SPAI con reordenación para convdifhor, n = 1960. La figura 8 muestra la convergencia de los diferentes métodos de Krylov con ILU(0) para el caso n = 13190. Se observa una convergencia rápida pero irregular en el BiCGSTAB. En cambio, el QMRCGSTAB elimina estas irregularidades aunque con un ligero aumento del coste. En este caso, el ILU(0) se muestra más eficiente que el resto de precondicionadores para el QMRCGSTAB, como se observa en la figura 9. Finalmente, la reordenación reduce el coste a menos del 50 % para obtener convergencia con QMRCGSTAB-ILU(0). 6. CONCLUSIONES Los métodos basados en subespacios de Krylov ofrecen un amplio abanico de posibilidades para la resolución de sistemas de ecuaciones lineales. Si bien en el caso simétrico la elección está clara (CG), en el caso no simétrico ésta depende de varios factores: proceso evolutivo, capacidad de memoria disponible, posibilidad de grandes oscilaciones en la convergencia, ... 28 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez (a) Ordenación Original (b) Grado Mínimo (c) Cuthill-Mckee Inverso (d) Mínimo Vecino . Figura 7. Patrón de sparsidad de la matriz SPAI(0.3) con diferentes reordenaciones para convdifhor, n = 1960. 29 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . 0 VGMRES+ILU LSQR+ILU BiCGSTAB+ILU QMRCGSTAB+ILU -1 -2 -3 log(||r||/||b||) -4 -5 -6 -7 -8 -9 0 5 10 Iteraciones 15 20 Figura 8. Comportamiento de los métodos de Krylov (Iteraciones) 0 QMRCGSTAB QMRCGSTAB+DIAG_OPT QMRCGSTAB+ILU QMRCGSTAB+JACOBI QMRCGSTAB+SSOR -1 -2 -3 log(||r||/||b||) -4 -5 -6 -7 -8 -9 -10 -11 0 5 10 15 20 25 Tiempo de CPU en s. 30 35 40 45 Figura 9. Comportamiento de los precondicionadores con el QMRCGSTAB (Tiempos) El algoritmo propuesto para calcular un precondicionador sparse M 0 de una matriz sparse no simétrica A, se puede construir en paralelo ya que las columnas (o filas) de M 0 se obtienen independientemente unas de otras. El patrón de sparsidad de estos precondicionadores se construye dinámicamente partiendo del diagonal aumentando el número de entradas no nulas. Evidentemente, este precondicionador puede ser competitivo, si se trabaja en paralelo, con los tradicionales precondicionadores implícitos. Esto dependerá en gran medida del problema y de la arquitectura del ordenador. No obstante, se ha demostrado de forma teórica y práctica la eficacia de este precondicionador en la mejora la convergencia de los métodos iterativos. Hemos probado experimentalmente que las técnicas de reordenación tienen efectos beneficiosos sobre los precondicionadores para la convergencia de los métodos de Krylov, y en concreto, en la ejecución de inversas aproximadas sparse. La reducción del número de entradas no nulas debido a la reordenación permite obtener inversas aproximadas sparse con una exactitud 30 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . 0 QMRCGSTAB+ILU QMRCGSTAB+ILU+MDG QMRCGSTAB+ILU+RCM -1 -2 -3 log(||r||/||b||) -4 -5 -6 -7 -8 -9 -10 -11 0 1 2 3 4 Tiempo de CPU en s. 5 6 7 Figura 10. Efecto de la reordenación en el QMRCGSTAB precondicionado con ILU (Tiempos) similar a las obtenidas sin reordenación, pero con menores requerimientos de almacenamiento y coste computacional. Además, la reordenación produce precondicionadores con mejores cualidades puesto que generalmente se reduce el número de pasos para alcanzar la convergencia. Sería interesante estudiar el efecto de otras técnicas de reordenación que tengan en cuenta las entradas numéricas de A (ver [23], [26]). Aún cuando estas técnicas son caras, en el caso en que haya que resolver muchos sistemas de ecuaciones lineales con la misma matriz, dichas técnicas pueden ser competitivas en máquinas en paralelo. AGRADECIMIENTOS Este trabajo ha sido parcialmente subvencionado por el Ministerio de Ciencia y Tecnología y fondos FEDER a través del proyecto REN2001-0925-C03-02/CLI. REFERENCIAS [1] W.E. Arnoldi, The Principle of Minimized Iteration in the Solution of the Matrix Eingenvalue Problem, Quart. Appl. Math., 9, 17-29 (1951) [2] M. Benzi, D.B. Szyld y A. van Duin, Orderings for incomplete factorization preconditioning of nonsymmetric problems, SIAM J. Sci. Comput., 20, 5, 1652-1670, 1999 [3] M. Benzi y M. Tůma, A sparse approximate inverse preconditioner for nonsymmetric linear systems, SIAM J. Sci. Comput., 19, 3, 968-994, 1998 [4] M. Benzi y M. Tůma, A comparative study of sparse approximate inverse preconditioners, Appl. Num. Math., 30, 305-340, 1999 [5] M. Benzi y M. Tůma, Orderings for factorized sparse approximate inverse preconditioners, SIAM J. Sci. Comput., to appear [6] T.F. Chan, E. Gallopoulos, V. Simoncini, T. Szeto y C.H. Tong, A Quasi-Minimal Residual Variant of the Bi-CGSTAB Algorithm for Nonsymmetric Systems, SIAM J. Sci. Statist. Comput., 15, 338-247 (1994) 31 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . [7] T.F. Chan y T. Szeto, Composite Step Product Methods for Solving Nonsymmetric Linear Systems, SIAM J. Sci. Comput., 17, 6, 1491-1508 (1996) [8] E.H. Cuthill y J.M. Mckee, Reducing the Bandwidth of Sparse Symmetric Matrices, Proc. 24th National Conference of the Association for Computing Machinery, Brondon Press, New Jersey, 157-172 (1969) [9] L.C. Dutto, The Effect of Ordering on Preconditioned GMRES Algorithm, Int. Jour. Num, Meth. Eng., 36, 457-497 (1993) [10] E. Flórez, M.D. García, L. González y G. Montero, The effect of orderings on sparse approximate inverse preconditioners for non-symmetric problems, Adv. Engng. Software, 33, 7-10, 611-619, 2002 [11] M. Galán, G. Montero y G. Winter, Variable GMRES: an Optimizing Self-Configuring Implementation of GMRES(k) with Dynamic Memory Allocation, Tech. Rep. of CEANI, (1994) [12] M. Galán, G. Montero y G. Winter, A Direct Solver for the Least Square Problem Arising From GMRES(k), Com. Num. Meth. Eng., 10, 743-749 (1994) [13] A. George, Computer Implementation of the Finite Element Method, Report Stan CS-71208, (1971) [14] A. George y J.W. Liu, The Evolution of the Minimum Degree Ordering Algorithms, SIAM Rev. 31, 1-19 (1989) [15] G.H. Golub y Kahan W., Calculating the Singular Values and Pseudoinverse of a Matrix. SIAM J. Numer. Anal., 2, 205-224 (1965) [16] A. Greenbaum y L.N. Trefethen, GMRES/CR and Arnoldi/Lanczos as Matrix Approximation Problems, SIAM J. Sci. Comput., 15, 2, 359-368 (1994) [17] M. Grote y T. Huckle, Parallel preconditioning with sparse approximate inverses, SIAM J. Sci. Comput., 18, 3, 838-853, 1997 [18] M.R. Hestenes y E. Stiefel, Methods of Conjugate Gradients for Solving Linear Systems, Jour. Res. Nat. Bur. Sta., 49, 6, 409-436, (1952) [19] A. Huerta, A. Rodríguez-Ferrán, J. Sarrate, P. Díez. y S. Fernández-Méndez, Numerical Modelling, a Tool to Improve the Design of Active Carbon Canisters, in Abstracts of the Sixth U.S. National Congress on Computational Mechanics, Dearborn, Michigan, (2001) [20] W. Joubert, A Robust GMRES-based Adaptive Polynomial Preconditioning Algorithm for Nonsymmetric Linear Systems, SIAM J. Sci. Comput., 15, 2, 427-439 (1994) [21] E.M. Kasenally, GMBACK: A Generalised Minimum Backward Error Algorithm for Nonsymmetric Linear Systems, SIAM J. Sci. Comput., 16, 3, 698-719 (1995) [22] C. Lanczos, Solution of Systems of Linear Equations by Minimized Iterations, Jour. Res. Nat. Bur. Sta., 49, 1, 33-53, (1952) [23] R.R. Lewis, Simulated Annealing for Profile and Fill Reduction of Sparce Matrices, Int. Jour. Num, Meth. Eng., 37, 905-925 (1994) [24] I.L. Lim, I.W. Johnston y S.K. Choi, A Comparison of Algorithms for Profile Reduction of Sparse Matrices, Computers & Structures, 57, 2, 297-302 (1995) [25] M. Monga-Made, Ordering Strategies for Modified Block Incomplete Factorizations, 32 / Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez . SIAM J. Sci. Comput., 16, 2, 378-399 (1995) [26] G. Montero, M. Galán, P. Cuesta y G. Winter, Effects of stochastic ordering on preconditioned GMRES algorithm, in B.H.V. Topping & M. Papadrakakis editors,.Advances in Structural Optimization, 241-246, Civil-Comp Press, Edinburgh, 1994 [27] G. Montero, L. González, E. Flórez, M.D. García y A. Suárez, Short Communication: Approximate inverse computation using Frobenius inner product, Num. Lin. Alg. Appl., 9, 239-247, (2002) [28] G. Montero, G. Winter, A. Suárez, M. Galán y D. García, Contribution to Iterative Methods for Nonsymmetric Linear Systems: GMRES, BCG and QMR Type Methods, in Computational Methods and Neural Networks. Part Two: Computational Methods, M. Sambandhamy M.P. Bekakos, Eds., Dynamic Publishers, Inc., 97-128 (1999) [29] G. Montero, R. Montenegro, G. Winter y L. Ferragut, Aplicacion de Esquemas EBE en Procesos Adaptativos, Rev. Int. Met. Num. Cal. Dis. Ing., 6, 311-332 (1990) [30] N.M. Nachttigal, S.C. Reddy y L.N. Trefethen, How Fast Are Nonsymmetric Matrix Iterations?, SIAM J. Matr. Anal. Appl., 13, 3, 796-825 (1992) [31] N.M. Nachttigal, L. Reichel y L.N. Trefethen, A Hybrid GMRES Algorithm for Nonsymmetric Linear Systems, SIAM J. Matr. Anal. Appl., 13, 3, 778-795 (1992) [32] C.C. Paige y M.A. Saunders, LSQR: An Algorithm for Sparse Linear Equations and Sparse Least Squares, ACM Trans. Math. Sof., 8, 1, 43-71 (1982) [33] Y. Saad y M. Schultz, GMRES: A Generalized Minimal Residual Algorithm for Solving Nonsymmetric Linear Systems, SIAM J. Sci. Statist. Comput., 7, 856-869 (1986) [34] P. Sonneveld, CGS: a Fast Lanczos-Type Solver for Nonsymmetric Linear Systems, SIAM J.Sci. Statist. Comput., 10, 36-52 (1989) [35] A. Suárez, G. Montero, D. García y E. Flórez, Efecto de la Elección del Vector Inicial en la Convergencia de los Algoritmos CGS y BICGSTAB, en Encuentro de Análisis Matricial y Aplicaciones (EAMA 97), Sevilla (1997) [36] H.A. van der Vorst, Bi-CGSTAB: A Fast and Smoothly Converging Variant of Bi-CG for the Solution of Nonsymmetric Linear Systems, SIAM J. Sci. Comput., 13, 631-644 (1992) [37] H.A. van der Vorst y C. Vuik, GMRESR: A Family of Nested GMRES Methods, Tech, Rep. 91-80, Delft University of Technology, Mathematics and Informatics, Delft, The Netherlands, (1991) [38] H.F. Walker, Implementation of the GMRES Method Using Householder Transformations, SIAM J. Sci. Comput., 9, 152-163 (1988) [39] P.M. de Zeeuw, Incomplete Line LU as Smoother and as Preconditioner, en Eighth GAMM-Seminar, Kiel, 215-224 (1992) 33