ISSN 2317-3297
Aplicação do Algoritmo de Cuthill-McKee em Matrizes de
Hodge para o Método da Esparsificação Recursiva
Bruno F.C. da Silva,
Glauciléia M.C. Magalhães,
José Lucas P. Luiz,
Universidade Federal dos Vales do Jequitinhonha e Mucuri - UFVJM
Licenciatura em Matemática
E-mail: brunobfcs@ymail.com, gaublis@hotmail.com, lucasvt09@hotmail.com
Alex Sander de Moura
Universidade Federal de Juiz de Fora - UFJF
Programa de Pós-Graduação Engenharia Elétrica, UFMG
Rodney Rezende Saldanha,
Élson José da Silva
Universidade Federal de Minas Gerais - UFMG
Departamento de Engenharia Elétrica
Palavras-chave: Método Numérico, Sistemas lineares esparsos, Esparsificação recursiva, Matriz de Hodge, Algoritmo de Cuthill-McKee
Resumo: Neste trabalho combina-se o método da esparsificação recursiva com o algoritmo de
Cuthill-McKee para obter uma aproximação esparsa para a inversa de uma classe de matrizes
esparsas denominadas matrizes de Hodge.
1
Introdução
A solução de sistemas lineares esparsos de alta ordem está inserido em vários ramos da ciência,
como por exemplo a engenharia. Por conseguinte, tem havido um grande esforço para resolver
ou apresentar soluções aproximadas de tais sistemas de forma eficiente.
Em [3] é apresentado uma técnica de esparsificação da inversa da matriz de Hodge pelo
particionamento recursivo da matriz em blocos. A ideia fundamental é aproximar as submatrizes
por matrizes esparsas durante o processo de inversão por blocos.
Neste paper será mostrado que a utilização do algoritmo de Cuthill-McKee [2] sobre as
matrizes de Hodge pode diminuir de uma maneira considerável o tempo de processamento para
esparsificação recursiva.
2
O método da Esparsificação Recursiva
A técnica de Esparsificação Recursiva consiste no particionamento recursivo desta matriz em
blocos e na aproximação das submatrizes por matrizes esparsas durante a inversão por blocos.
O método de esparsificação recursiva da inversa da matriz de Hodge é baseada na seguinte
fórmula de inversão por bloco:
[
]
Q−1
Xi
−1
i
Di−1 =
(1)
XTi
Si
−1 e
onde D−1
0 =M
T
Qi = Ai − Bi D−1
i Bi
−1
Xi = −Q−1
i Bi Di
Si =
D−1
i
−
T
D−1
i Bi Xi
14
(2)
ISSN 2317-3297
As expressões em 1 e 2 surgem a partir do particionamento de uma matriz que é descrito da
seguinte maneira:
[
]
Ai B i
Di−1 =
.
(3)
BT
Di
i
Note que a inversão da matriz D0 de ordem n × n se reduz a inversão de uma matriz D1
de ordem (n − q × n − q) e uma matriz Q1 de ordem (q × q), onde 0 < q < n. A fórmula de
inversão pode ser aplicada recursivamente na matriz D1 , levando a uma sequência de tamanho
decrescente de matrizes.
M = D0 , D1 , D2 , . . . , Dk
(4)
onde
k = ⌊logq/n (1/n)⌋
(5)
e Di é o bloco de Di−1 , para i = 1, 2, . . . , k, tal que a inversa M−1 é obtida pelas substituições
sucessivas através da sequência
−1
−1
−1
−1
D−1
k , Dk−1 , . . . , D1 , D0 = M
(6)
As matrizes em 10 podem ser aproximadas por matrizes esparsas, para se obter uma sequência
de matrizes esparsas
−1
−1
−1
D−1
(7)
ks , D(k−1) , . . . , D0s = Ms
s
para aproximar a sequência descrita em 10.
Após cada inversão das matrizes em 10, a respectiva matriz D−1
k é esparsificada para uma
matriz D−1
de
maneira
que
os
coeficiente
fora
da
diagonal
da
matriz
D−1
ks
k = [dij ] são zerados
quando
|di̸=j | ≤ r min diag D−1
(8)
k onde 0 < r < 1 é o parâmetro threshold.
3
Algoritmo de Cuthill-McKee
Dada uma matriz M = (mi,j ), de dimensões n × n, define-se largura de banda como sendo:
β = max|i − j|, mi, j ̸= 0
(9)
O objetivo do Algoritmo de Cuthill-Mckee é diminuir a largura de banda da matriz (β). Para
isso ele usa uma prática muito comum em Álgebra Linear, a Permutação de Matrizes.
A ideia do algoritmo é encontrar e efetuar uma permutação em M de forma que as entradas
não nulas se aproximem da diagonal. Para encontrar tal permutação ele percorre todas as
entradas da matriz verificando as não nulas e armazenado os valores i e j de sua posição numa
matriz unidimensional que é gerada durante o processo, esses valores representam os nós de
um grafo gerado pela matriz, que posteriormente será percorrido partindo sempre dos nós que
possuem menos ligações, gerando assim a permutação que será aplicada em M.




M=


1
0
0
3
2
0
2
1
0
8
0
9
3
0
6
4
0
0
4
0
1
4
7
0
5











M =


89:;
=⇒ ?>=<
4
?>=<
/ 89:;
1
>=<
/ ?89:;
5
89:;
?>=<
2
>=<
/ ?89:;
3
′
4
4
0
0
0
3
1
2
0
0
0
1
5
4
7
0
0
8
2
1
0
0
6
9
3




 (10)


Ao combinar o método da esparsificação recursiva com o algoritmo de Cuthill-Mckee observase uma redução considerável do tempo de processamento. Isso decorre da necessidade de menos
inversão de blocos, sendo que o algoritmo faz com que os blocos Bi e BTi (3) transformem-se em
matrizes com pouquı́ssimos elementos não nulos, assim como pode ser observado na matriz de
Hodge (figura 1) e em (10), onde foi aplicada uma permutação q = {4, 1, 5, 2, 3} na matriz M .
15
ISSN 2317-3297
Figura 1: (a) Matriz de Hodge convencional. (b) Matriz de Hodge tratada pelo algorı́timo Cuthill-Mckee.
4
Resultados
Nesta seção, compararemos o tempo de processamento computacional na aplicação da diagonalização de Cuthill-Mckee com o método da Esparsificação Recursiva.
Para se mostrar a redução do tempo de processamento devido a aplicação da diagonalização
de Cuthill-McKee, é fixado o parâmetro threshold em r = 1 × 10−5 e comparamos o tempo de
processamento do método da esparsificação recursiva com e sem a aplicação da diagonalização
da matriz, para matrizes de Hodge de ordem n × n, com n variando entre 50.000 a 75.000.
Tamanho da matriz
n
50.000
55.000
60.000
65.000
70.000
75.000
CM
(s)
17,58
21,70
29,27
42,42
396,41
853,08
ER
(s)
28,85
46,48
76,99
422,87
1002,4
1513,9
Speedup
CM/ER
0,6094
0,4667
0,3815
0,1003
0,3955
0,5635
Tabela 1: Tempo de Computação: Cuthill-Mckee (CM) X Esparsificação Recursiva(ER)
Tabela (1) mostra os resultados obtidos neste experimento, percebe-se uma redução significativa no tempo de processamento pela aplicação da diagonalização. Destacamos que para uma
matriz de ordem 65.000 × 65.000 obtivemos um redução de 90% no tempo de processamento.
5
Conclusão
Nesse trabalho mostra-se uma redução expressiva no tempo de processamento para o método da
Esparsificação Recursiva com o uso do algoritmo de Cuthill-Mckee devido ao fato de se gerar após
a diagonalização da matriz blocos quase-nulos o que proporciona a diminuição das operações.
Referências
[1] A. Bossavit, Computational Electromagnetism: variational formulation, complementarity,
edge elements, Academic Press, San Diego,1994.
[2] A. George, J. Liu, Computer Solution of Large Sparse Positive Definite Systems, PrenticeHall, 1981.
[3] A. S. Moura, R. R. Saldanha, E. J. Silva, A. C. Lisboa, W. G. Facco, N. Z. Lima, A
Recursive Sparsification of the Inverse Hodge Matrix, Magnetics, IEEE Transactions on vol
48,pp 611-614,2012.
16
Download

Aplicaç˜ao do Algoritmo de Cuthill