Escolar Documentos
Profissional Documentos
Cultura Documentos
13/09/11
1/24
Contenido
Contenido
Factorizacin Cholesky para matrices ralas Reordenamiento de renglones y columnas Matrices de permutacin Representacin de matrices ralas como grafos Algoritmos de reordenamiento Usando la librera METIS para reordenar matrices Preguntas? Bibliografa
13/09/11
2/24
A=
L=
A la izquierda est una matriz de rigidez A556556, con ( A )=1810, a la derecha la matriz triangular inferior L, con ( L )=8729, resultante de la factorizacin Cholesky de A.
13/09/11 4/24
Ahora con reordenamiento tenemos que la matriz de rigidez A' con ( A ' )=1810 (con la misma cantidad de elementos no nulos que A) y su factorizacin L' tiene ( L ' )=3215. Ambas factorizaciones permiten resolver el mismo sistema de ecuaciones.
A' =
L'=
Es decir reducimos la factorizacin ( L ' )=3215 =0.368. ( L )=8729 Para determinar este reordenamiento utilizamos las rutinas de la librera METIS [Kary99].
13/09/11 5/24
Matrices de permutacin
Matrices de permutacin
Dada P una matriz de permutacin, las permutaciones (reordenamientos) de columnas del tipo A' P A, o de rengln A' A P solas destruyen la simetra de A [Golu96 p148]. Para preservar la simetra de A solamente podemos considerar reordenamiento de las entradas de la forma A' P A P T. Es de notar que esta permutaciones no mueven los elementos fuera de la diagonal a la diagonal. La diagonal de P A P T es un reordenamiento de la diagonal de A. Dado que P A P T es adems simtrica y positiva definida para cualquier permutacin de la matriz P, podemos entonces resolver el sistema reordenado ( P A P T ) ( P x )=( P b ). La eleccin de P tendr un efecto determinante en el tamao de las entradas no cero de L. Calcular un buen reordenamiento de la matriz A que minimice las entradas no cero de L es un problema NP completo [Yann81], sin embargo existen heursticas que generan un reordenamiento aceptable en un tiempo reducido.
13/09/11 6/24
1 2 3 4 5 6 1 2 3 4 5 6
[ ]
* * * * * * * * * * * * * * * * * * Matriz A
13/09/11
2 4 5 6
Grafo G
7/24
Para cualquier matriz de permutacin P I , los grafos no ordenados (o etiquetados) de A y P A P T son los mismos pero su etiquetado asociado es diferente. As, un grafo no etiquetado de A representa la estructura de A sin sugerir un orden en particular. Esta representa la equivalencia de las clases de matrices P A P T. Entonces, encontrar una buena permutacin de A equivale a encontrar un buen ordenamiento de su grafo [Geor81].
1 2 3 4 5 6 1 2 3 4 5 6
[ ]
* * * * * * * * * * * * * * * * * * Matriz P A P
T
13/09/11
2 1 4 5
Grafo G
P AP
8/24
Dos nodos x , y X en un grafo G ( X , E ) son adyacentes si { x , y }E . Para Y X , el conjunto adyacente de Y , denotado como ady ( Y ), es adj ( Y )= { x X Y { x , y }E para algn yY }. En otras palabras, ady (Y ) es simplemente el conjunto de nodos en G que no estn en Y pero son adyacentes en al menos un nodo de Y .
1 2 3 4 5 6 1 2 3 4 5 6
[ ]
* * * * * * * * * * * * * * * * * *
2 4 5 6
Y ={ x 1 , x 2}
Para Y X , el grado de Y , denotado por gr ( Y ), es simplemente el nmero ady ( Y ), donde S denota el nmero de miembros del conjunto S . En el caso de que se trate de un solo elemento, consideraremos gr ( { x 2 })gr ( x 2 ).
1 2 3 4 5 6 1 2 3 4 5 6
[ ]
* * * * * * * * * * * * * * * * * *
2 4 5 6
Y ={ x 1 , x 2}
13/09/11
10/24
Algoritmos de reordenamiento
Algoritmos de reordenamiento
Vamos a hablar muy brevemente de los algoritmos de reordenamiento. La heurstica ms comn utilizada para realizar el reordenamiento es el algoritmo de grado mnimo. La versin bsica de ste [Geor81 p116] es: Dada un matriz A y su correspondiente grafo G 0 i 1 repetir En el grafo de eliminacin G i1 ( X i1 , E i1 ), elegir un nodo x i que tenga grado mnimo. Formar el grafo de eliminacin G i ( X i , E i ) como sigue: Eliminar el nodo x i de G i1 y sus aristas inicidentes Agregar aristas al grafo tal que los nodos adj ( x 1 ) sean pares adyacentes en G i. i i+1 mientras i< X Cuando el grado mnimo se presenta en varios nodos, usualmente se elige uno de forma arbitraria.
13/09/11 11/24
Algoritmos de reordenamiento
xi
gr ( x i )
2
6 1 5 3
3
6 5
13/09/11
12/24
Algoritmos de reordenamiento
Grafo de eliminacin G i1
1
xi
5
gr ( x i )
2
4
6 5 1 6
5 6
1 6
1 0
La secuencia de eliminacin es entonces 4, 2, 3, 5, 1, 6. ste es el nuevo orden para la matriz A, lo que equivale a una matriz de permutacin 0 0 0 P= 0 1 0
( )
0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0
13/09/11
0 0 0 . 0 0 1
Algoritmos de reordenamiento
Ahora vamos a revisar brevemente el mtodo de diseccin anidada, el cual es ms apropiado para matrices resultantes de problemas de diferencias finitas y elemento finito. La principal ventaja de este algoritmo comparado con el de grado mnimo es la velocidad y el poder predecir las necesidades de almacenamiento. La ordenacin producida es similar a la del algoritmo de grado mnimo. Vamos a introducir la definicin de separador. El conjunto S X es un separador del grafo conectado G si el grafo seccin G ( X S ) est desconectado. Se muestra que S = { x 3 , x 4 , x 5 } es un separador de G, dado que G ( X S ) tiene tres componentes, los conjuntos de nodos { x 1 }, { x 2 } y { x 6 , x 7 }:
5 1 2 3
4 6 7
13/09/11 14/24
Algoritmos de reordenamiento
Sea A una matriz simtrica y G A su grafo no dirigido asociado. Consideremos un separador S en G A, cuya remocin desconecta el grafo en dos conjuntos de nodos C 1 y C 2. Si los nodos en S son numerados despus de aquellos de C 1 y C 2, entonces se inducir una particin en la correspondiente matriz ordenada. La observacin principal es que los bloques cero en la matriz continan siendo cero despus de la factorizacin. Cuando es elegido apropiadamente, una submatriz grande est garantizada de permanecer cero. La idea puede ser aplicada recursivamente, de tal forma que los ceros puedan ser preservados en la misma forma en las submatrices.
C1
C2 S
A1 0 V 1 0 A2 V 2 V T V T AS 1 2
]
15/24
S en una matriz.
Esta procedimiento aplicado de forma de forma recursiva se conoce como algoritmo de diseccin anidada generalizado [Lipt77].
13/09/11
Algoritmos de reordenamiento
La idea es tratar de dividir el grafo tratando de que sean de igual tamao con un separador pequeo. Para encontrar este separador se busca generar una estructura grande y entonces elegir un separador de un nivel medio. Este es un algoritmo recursivo que emplea la estrategia de divide y vencers, a continuacin describimos el algoritmo. Sea S una clase de grafos cerrados en los cuales se cumple el teorema del separador n [Lipt79]. Sean , constantes asociadas con el teorema del separador y sea G ( X , E ) un grafo de n nodos en S . El algoritmo es recursivo y numera los nodos de G tal que la eliminacin gaussiana rala (factorizacin Cholesky rala) es eficiente. El algoritmo supone que l de los nodos de G ya contienen nmeros asignados, cada uno de los cuales es ms grande que b (se explica ms adelante). El objetivo es numerar los nodos restantes de G consecutivamente de a a b. Se inicia el algoritmo con todos los nodos de G no numerados, con a 1, b n y l 0. Esto enumerar los nodos en G de 1 a n. En este algoritmo los nodos en el separados son incluidos en la llamada recursiva pero son no numerados. Una versin mejorada del algoritmo es la empleada en la librera METIS [Kary99].
13/09/11 16/24
Algoritmos de reordenamiento
Sea dado G ( X , E ) inicio 2 si G ( 1 ) Los nodos son ordenados arbitrariamente de a a b (puede utilizarse el algoritmo de grado mnimo) si_no Encontrar conjuntos A, B y C que satisfagan el teorema del separador n, donde C es el conjunto separador. Al remover C se divide el resto de G en dos conjuntos A y B los cuales no tienen que ser conexos. Sea A conteniendo i nodos no numerados, B contiene j y C contiene k nodos no numerados. Numerar los nodos no numerados en C de forma arbitraria de bk +1 a b, es decir, estamos asignando a los nodos de C los nmeros ms grandes. Eliminar todos las aristas cuyas conexiones estn ambas en C. Aplicar el algoritmo recursivamente al subgrafo inducido por BC para numerar los nodos no numerados en B de a bk j+1 a b bk. Aplicar el algoritmo recursivamente al subgrafo inducido por AC para numerar los nodos no numerados en B de a bk ji+1 a b bk j. fin_si fin
13/09/11
17/24
Ejemplo
1 2 3 4 5 6 1 2 3 4 5 6
[ ]
* * * * * * * * * * * * * * * * * * Matriz A
13/09/11
2 4 5 6
Grafo G
int n = 6; int xadj[7] = {1, 3, 6, 8, 9, 11, 13}; int adjncy[12] = {2, 6, 1, 3, 4, 2, 5, 2, 3, 6, 1, 5}; int numflag = 1; int options[8] = {0, 0, 0, 0, 0, 0, 0, 0}; int perm[6]; int iperm[6]; METIS_NodeND(&n, xadj, adjncy, &numflag, options, perm, iperm);
19/24
Resultado
perm = {4, 2, 6, 5, 3, 1} iperm = {6, 2, 5, 1, 4, 3}
1 2 3 4 5 6 1 2 3 4 5 6
[ ]
* * * * * * * * * * * * * * * * * * Matriz P A P
T
13/09/11
2 1 4 3
Grafo G
P AP
20/24
Reordenamiento
Para reordenar la matriz rala A a partir de perm e iperm, para obtener Ar = P A P T , podemos utilizar el siguiente algoritmo: para i 1n j permi Reservar espacio en J i ( A r ), tal que J i ( Ar )=J j ( A ) para k 1J j ( A ) l J kj ( A ) m iperm l J k ( Ar ) m i V ik ( Ar ) V kj ( A ) fin_para Los ndices de J i ( A r ) no estn en orden ascendente, reordenar J i ( A r ) y V i ( Ar ). fin_para
13/09/11
21/24
Hay que reordenar b para obtener un vector b r= P b. para i 1n j permi bir b j fin_para Podemos entonces resolver el sistema Ar x r =br . Finalmente hay que reordenar x r con la permutacin inversa para obtener x= P T x r. para i 1n j iperm i x i x rj fin_para La librera METIS est diseada para trabajar con C, para utilizarla con C++ es neceario usar: extern "C" { #include <metis.h> }
13/09/11 22/24
Preguntas?
Preguntas?
13/09/11
23/24
Bibliografa
Bibliografa
[Gall90] [Geor81] [Geor89] [Golu96] [Heat91] [Kary99] [Lipt77] [Quar00] [Yann81] K. A. Gallivan, M. T. Heath, E. Ng, J. M. Ortega, B. W. Peyton, R. J. Plemmons, C. H. Romine, A. H. Sameh, R. G. Voigt, Parallel Algorithms for Matrix Computations, SIAM, 1990. A. George, J. W. H. Liu. Computer solution of large sparse positive definite systems. PrenticeHall, 1981. A. George, J. W. H. Liu. The evolution of the minimum degree ordering algorithm. SIAM Review Vol 31-1, pp 1-19, 1989. G. H. Golub, C. F. Van Loan. Matrix Computations. Third edidion. The Johns Hopkins University Press, 1996. M T. Heath, E. Ng, B. W. Peyton. Parallel Algorithms for Sparse Linear Systems. SIAM Review, Vol. 33, No. 3, pp. 420-460, 1991. G. Karypis, V. Kumar. A Fast and Highly Quality Multilevel Scheme for Partitioning Irregular Graphs. SIAM Journal on Scientific Computing, Vol. 20-1, pp. 359-392, 1999. R. J. Lipton, D. J. Rose, R. E. Tarjan. Generalized Nested Dissection, Computer Science Department, Stanford University, 1997. A. Quarteroni, R. Sacco, F. Saleri. Numerical Mathematics. Springer, 2000. M. Yannakakis. Computing the minimum fill-in is NP-complete. SIAM Journal on Algebraic Discrete Methods, Volume 2, Issue 1, pp 77-79, March, 1981.
13/09/11
24/24