• Nenhum resultado encontrado

O impacto do reordenamento de matrizes esparsas nos métodos iterativos não estacionários precondicionados

N/A
N/A
Protected

Academic year: 2021

Share "O impacto do reordenamento de matrizes esparsas nos métodos iterativos não estacionários precondicionados"

Copied!
61
0
0

Texto

(1)UNIVERSIDADE FEDERAL DO ESP´IRITO SANTO ´ CENTRO TECNOLOGICO ´ ˜ EM INFORMATICA ´ PROGRAMA DE POS-GRADUAC ¸ AO. KAMILA RIBEIRO GHIDETTI. O IMPACTO DO REORDENAMENTO DE ´ MATRIZES ESPARSAS NOS METODOS ˜ ESTACIONARIOS ´ ITERATIVOS NAO PRECONDICIONADOS. ´ VITORIA 2011.

(2) KAMILA RIBEIRO GHIDETTI. O IMPACTO DO REORDENAMENTO DE ´ MATRIZES ESPARSAS NOS METODOS ˜ ESTACIONARIOS ´ ITERATIVOS NAO PRECONDICIONADOS. Disserta¸ca˜o submetida ao Programa de P´osGradua¸ca˜o em Inform´atica da Universidade Federal do Esp´ırito Santo, como requisito parcial para a obten¸ca˜o do grau de Mestre em Inform´atica.. Orientadoras: Profa . Lucia Catabriga Profa . Maria Claudia Silva Boeres. ´ VITORIA 2011.

(3) KAMILA RIBEIRO GHIDETTI. O IMPACTO DO REORDENAMENTO DE ´ MATRIZES ESPARSAS NOS METODOS ˜ ESTACIONARIOS ´ ITERATIVOS NAO PRECONDICIONADOS. Disserta¸ca˜o submetida ao Programa de P´os-Gradua¸ca˜o em Inform´atica da Universidade Federal do Esp´ırito Santo, como requisito parcial para a obten¸ca˜o do grau de Mestre em Inform´atica. Aprovada em 13 de Julho de 2011.. ˜ EXAMINADORA COMISSAO. Profa . Lucia Catabriga Universidade Federal do Esp´ırito Santo Orientadora. Profa . Maria Claudia Silva Boeres Universidade Federal do Esp´ırito Santo Co-orientadora. Profa . Maria Cristina Rangel Universidade Federal do Esp´ırito Santo. Prof. Alvaro Luiz Gayoso de Azeredo Coutinho Universidade Federal do Rio de Janeiro.

(4) Agradecimentos Agrade¸co a Deus por iluminar meu caminho. A toda minha fam´ılia pelo apoio nos momentos dif´ıceis. A todos os meus professores que contribuiram para a forma¸c˜ao do meu conhecimento em especial as minhas orientadoras Lucia Catabriga e Claudia Boeres pela confian¸ca, paciˆencia e pelo trabalho em conjunto. ` Arlete e Geraldo pelo acolhimento, conselhos, carinho e confian¸ca. A A todos os meus amigos pela compreens˜ao com a minha ausˆencia. A todos os meus colegas de mestrado por v´arias vezes terem me ajudado. Em especial Diego, Leonardo, Lucas, Phillipe, Renato e Wesley. A todos os meus alunos por contribuir com o meu desenvolvimento docente. ` CAPES pelo apoio financeiro. A.

(5) Resumo A an´alise da influˆencia dos algoritmos de reordenamento de matrizes na resolu¸ca˜o de sistemas lineares utilizando os m´etodos iterativos n˜ao estacion´arios GMRES e Gradiente Conjugado, ambos com e sem precondicionamento, ´e o objeto de estudo desse trabalho. Os algoritmos mais referenciados na literatura para reordenamento de matrizes s˜ao Reverse Cuthill-McKee (RCM), Gibbs-Poole-Stockmeyer (GPS), Nested Dissection (ND) e Espectral (ES). Neste trabalho esses algoritmos foram analisados e algumas modifica¸co˜es foram propostas. Todos os algoritmos e suas vers˜oes modificadas foram implementados e comparados quanto a qualidade de solu¸ca˜o (minimiza¸ca˜o de largura de banda e minimiza¸ca˜o de envelope) e tempo de execu¸ca˜o. Al´em disso, os sistemas lineares associados `as matrizes esparsas s˜ao resolvidos via m´etodos iterativos tipo Krylov precondicionados. Os precondicionadores analisados nesse estudo s˜ao baseados na fatora¸ca˜o LU incompleta. Para os testes computacionais ´e considerado um conjunto de matrizes estruturalmente sim´etricas oriundas das mais diversas ´areas do conhecimento. Nossos estudos concluem que o reordenamento das matrizes, na maioria dos casos, reduz o n´ umero de itera¸co˜es dos m´etodos iterativos, entretanto a redu¸ca˜o do tempo de processamento ´e dependente da dimens˜ao e do condicionamento da matriz. Palavras-chave: Minimiza¸ca˜o de Largura de Banda e Redu¸ca˜o de Envelope. Ordena¸ca˜o de matrizes. Algoritmos em Grafos. Otimiza¸ca˜o Combinat´oria..

(6) Abstract This work analyzes the influence of matrices reordering algorithms on solving linear systems using non-stationary iterative methods GMRES and Conjugate Gradient, both with and without preconditioning. The algorithms referenced most often in the literature for the reordering of matrices are Reverse Cuthill-McKee (RCM), Gibbs-Poole-Stockmeyer (GPS), Nested Dissection (ND) and Spectral (ES). We analyze these algorithms and propose some modifications comparing their solution qualities (minimizing bandwidth and minimizing envelope) and CPU times. Moreover, the linear systems associated with sparse matrices are solved via preconditioned Krylov-type iterative methods considering the incomplete LU factorization preconditioners. For the computational tests, we consider a set of structurally symmetric matrices that can come from various fields of knowledge. We conclude that the reordering of matrices, in most cases, reduces the number of iterations in the iterative methods, but the reducing of the CPU time depends on the size and conditioning of the matrix. Key words: Minimizing Bandwidth and Reduced Envelope. Matrices Reordering. Algorithms on Graphs. Combinatorial Optimization..

(7) Lista de Figuras 1. Exemplo de Aplica¸ca˜o: Etapas da simula¸ca˜o do desgaste do cadinho do Alto-Forno 3 utilizando o m´etodo dos Elementos finitos . . . . . . . . . . . 13. 2. Exemplo de uma matriz esparsa - Problema da Dinˆamica dos Fluidos Computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17. 3. Armazenamento CSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18. 4. Largura de banda, destacada em amarelo, ´e igual a 8 . . . . . . . . . . . . 20. 5. Envelope, destacado em vermelho, ´e igual 32.. 6. Exemplos de algumas das defini¸co˜es apresentadas . . . . . . . . . . . . . . 23. 7. Rerrotula¸ca˜o dos grafos e reordenamento das matrizes . . . . . . . . . . . . 24. 8. Principais passos do Algoritmo 10 . . . . . . . . . . . . . . . . . . . . . . . 39. 9. Exemplo de como funciona o Algoritmo RCM . . . . . . . . . . . . . . . . 44. 10. Principais passos do Algoritmo GPS. 11. Principais passos do Algoritmo ND . . . . . . . . . . . . . . . . . . . . . . 50. 12. Principais passos do Algoritmo ND-P3 . . . . . . . . . . . . . . . . . . . . 51. 13. Principais passos do Algoritmo ND-P4 . . . . . . . . . . . . . . . . . . . . 52. 14. Principais passos do Algoritmo ES. 15. Matriz Na5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60. 16. Matriz FEM 3D t1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61. 17. Matriz Wathen100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62. 18. Matriz Wathen120 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63. 19. Matriz Qa8fm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64. 20. Matriz Baumann . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65. . . . . . . . . . . . . . . . . 20. . . . . . . . . . . . . . . . . . . . . . 48. . . . . . . . . . . . . . . . . . . . . . . 54.

(8) 21. Matriz FEM 3D t2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66. 22. Matriz Thermomech dk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66. 23. Matriz Cage13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67. 24. Matriz Tmt sym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67. 25. Matriz Atmosmodl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68. 26. N´ umero de itera¸co˜es para o Algoritmo GMRES(k) . . . . . . . . . . . . . . 71. 27. Tempo de processamento para o Algoritmo GMRES(k) . . . . . . . . . . . 72. 28. N´ umero de itera¸co˜es para o Algoritmo GC . . . . . . . . . . . . . . . . . . 76. 29. Tempo de processamento para o Algoritmo GC . . . . . . . . . . . . . . . 77.

(9) Lista de Tabelas 1. Caracter´ısticas do conjunto de matrizes escolhidas . . . . . . . . . . . . . . 58. 2. N´ umero de itera¸co˜es para o m´etodo GMRES . . . . . . . . . . . . . . . . . 69. 3. Tempo de processamento para o m´etodo GMRES . . . . . . . . . . . . . . 70. 4. N´ umero de itera¸co˜es para o m´etodo GC . . . . . . . . . . . . . . . . . . . . 74. 5. Tempo de processamento para o m´etodo GC . . . . . . . . . . . . . . . . . 74. 6. Tempo de processamento para o Reordenamento das matrizes testadas . . 80. 7. Redu¸ca˜o do envelope das matrizes testadas . . . . . . . . . . . . . . . . . . 81. 8. Minimiza¸ca˜o de largura de banda das matrizes testadas . . . . . . . . . . . 81.

(10) Sum´ ario. 1 Introdu¸ c˜ ao. 12. 2 Defini¸ c˜ oes b´ asicas e revis˜ ao da literatura. 15. 2.1. Sistemas lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15. 2.2. Matrizes esparsas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16. 2.3. Reordenamento de matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . 18. 2.4. 2.3.1. Minimiza¸ca˜o da largura de banda . . . . . . . . . . . . . . . . . . . 19. 2.3.2. Redu¸ca˜o de envelope . . . . . . . . . . . . . . . . . . . . . . . . . . 20. Defini¸co˜es de interesse em teoria dos grafos . . . . . . . . . . . . . . . . . . 21 2.4.1. 2.5. O Grafo e a Matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . 24. Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.5.1. Reordenamento de matrizes . . . . . . . . . . . . . . . . . . . . . . 25. 2.5.2. Resolu¸ca˜o de sistemas lineares . . . . . . . . . . . . . . . . . . . . . 26. 3 Resolu¸ c˜ ao de sistemas lineares 3.1. 3.2. 28. M´etodos num´ericos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.1. GMRES - M´etodo do res´ıduo m´ınimo generalizado. . . . . . . . . . 30. 3.1.2. GC - Gradiente Conjugado . . . . . . . . . . . . . . . . . . . . . . . 32. Precondicionadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33. 4 Algoritmos Heur´ısticos para Minimiza¸ c˜ ao de Largura de Banda e Redu¸ c˜ ao de Envelope 4.1. 38. O Algoritmo Reverse Cuthill Mckee (RCM) . . . . . . . . . . . . . . . . . 39.

(11) 4.1.1. Proposta 1 para o Algoritmo RCM (RCM-P1) . . . . . . . . . . . . 45. 4.1.2. Proposta 2 para o Algoritmo RCM (RCM-P2) . . . . . . . . . . . . 45. 4.2. O Algoritmo Gibbs Poole Stokcmeyer (GPS) . . . . . . . . . . . . . . . . . 46. 4.3. O Algoritmo Nested Dissection (ND) . . . . . . . . . . . . . . . . . . . . . 47. 4.4. 4.3.1. Proposta 1 para o Algoritmo ND (ND-P3) . . . . . . . . . . . . . . 50. 4.3.2. Proposta 2 para o Algoritmo ND (ND-P4) . . . . . . . . . . . . . . 51. O Algoritmo Espectral (ES) . . . . . . . . . . . . . . . . . . . . . . . . . . 53. 5 Implementa¸ c˜ ao computacional. 55. 5.1. Caracter´ısticas dos c´odigos implementados . . . . . . . . . . . . . . . . . . 55. 5.2. Caracter´ısticas das matrizes testadas . . . . . . . . . . . . . . . . . . . . . 56. 6 Testes Computacionais. 58. 6.1. An´alise dos algoritmos de reordenamento . . . . . . . . . . . . . . . . . . . 59. 6.2. An´alise dos precondicionadores ILU(p) . . . . . . . . . . . . . . . . . . . . 68. 7 Conclus˜ oes e Trabalhos Futuros. 78. Apˆ endice A -- Tabelas com valores do reordenamento, Se¸ c˜ ao 6.1. 80. Apˆ endice B -- Detalhamento e Pseudo-c´ odigos dos algoritmos de reordenamento de matrizes implementados B.1 Escolha do v´ertice Pseudo-Perif´erico. 82 . . . . . . . . . . . . . . . . . . . . . 82. B.2 O Algoritmo Reverse Cuthill Mckee (RCM) . . . . . . . . . . . . . . . . . 83 B.2.1 O Algoritmo RCM-P1 . . . . . . . . . . . . . . . . . . . . . . . . . 83 B.2.2 O Algoritmo RCM-P2 . . . . . . . . . . . . . . . . . . . . . . . . . 84 B.3 O Algoritmo Gibbs Poole Stokcmeyer (GPS) . . . . . . . . . . . . . . . . . 84 B.4 O Algoritmo Nested Dissection (ND) . . . . . . . . . . . . . . . . . . . . . 86 B.4.1 O Algoritmo ND-P3 . . . . . . . . . . . . . . . . . . . . . . . . . . 87.

(12) B.4.2 O Algoritmo ND-P4 . . . . . . . . . . . . . . . . . . . . . . . . . . 87 B.5 O Algoritmo Espectral (ES) . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Referˆ encias. 90.

(13) 1. Introdu¸c˜ ao. Uma parcela significativa dos problemas cient´ıficos envolvem a resolu¸ca˜o de sistemas lineares, sendo que na maioria das aplica¸co˜es as matrizes s˜ao esparsas e de grande porte. ´ Areas, tais como, simula¸ca˜o de processos f´ısicos, redes neurais, sistemas eletromagn´eticos, otimiza¸ca˜o, previs˜ao do tempo, s˜ao exemplos onde processos num´ericos de solu¸ca˜o recaem na necessidade de resolu¸ca˜o de sistemas. Estimativas apontam que 75% dos problemas cient´ıficos envolvem a solu¸ca˜o de sistemas lineares (BJORCK, 1974). Para exemplificar, citamos as etapas envolvidas no processo de obten¸ca˜o da distribui¸ca˜o de temperatura no Cadinho do Alto-forno 3 da empresa Arcelor Mittal Tubar˜ao, utilizando o m´etodo dos Elementos finitos, apresentado em Magnago et al. (2010). Na primeira etapa de solu¸ca˜o ´e modelado o fenˆomeno f´ısico que se pretende estudar, onde as grandezas f´ısicas e suas rela¸co˜es s˜ao expressas por equa¸co˜es diferenciais, que por sua vez podem tanto explicar quanto prever o comportamento do sistema em diferentes situa¸co˜es. A Figura 1(a) apresenta um esquema do Alto-Forno estudado. Para tratar o modelo de forma computacional, ´e necess´ario expressar adequadamente as equa¸co˜es e o dom´ınio (Figura 1(b)) em que as mesmas s˜ao v´alidas. Inicialmente o dom´ınio ´e discretizado (Figura 1(c)), gerando um conjunto de pontos discretos que definem a malha. Quanto mais adequada for a distribui¸ca˜o dos pontos, mais representativa ´e a solu¸ca˜o num´erica. A Figura 1(d) apresenta a matriz obtida pela aplica¸ca˜o do m´etodo dos Elementos finitos em cada ponto da malha e na Figura 1(e), o resultado do processo de simula¸ca˜o, apresentando a distribui¸ca˜o de temperatura no Cadinho. Podemos observar que a matriz resultante ´e bastante esparsa. Frequentemente os sistema gerados no processo de simula¸c˜ao num´erica s˜ao de grande porte, tornando-se conveniente escolher como m´etodo de solu¸ca˜o a classe de m´etodos iterativos baseados nos espa¸cos de Krylov (SAAD, 2003). Essa classe de m´etodos possui uma boa ordem de convergˆencia quando s˜ao considerados aceleradores de convergˆencia, denominados precondicionadores. As principais opera¸co˜es desses m´etodos s˜ao produto matriz-vetor e produto escalar. 12.

(14) 1 Introdu¸ca ˜o. (a) Alto-Forno. 13. (b) Dom´ınio por materiais. (d) Matriz esparsa. (c) Malha. (e) Distribui¸c˜ao de temperatura. Figura 1: Exemplo de Aplica¸ca˜o: Etapas da simula¸ca˜o do desgaste do cadinho do AltoForno 3 utilizando o m´etodo dos Elementos finitos Nestes casos, exemplos de pr´e-processamento que podem ser realizados nas matrizes de forma a reduzir a complexidade da resolu¸ca˜o de sistemas, s˜ao a minimiza¸ca˜o da largura de banda (CARVALHO et al., 2009) e a redu¸ca˜o do envelope (BARNAD et al., 1995). Esses pr´e-processamentos consistem em dispor os elementos n˜ao nulos da matriz o mais pr´oximo poss´ıvel da diagonal principal, realizando permuta¸co˜es entre linhas e colunas. Essa reorganiza¸ca˜o permite que as opera¸co˜es realizadas na resolu¸ca˜o do sistema sejam feitas sobre uma matriz mais compacta. No contexto da solu¸ca˜o de sistemas via m´etodos diretos, a minimiza¸ca˜o da largura de banda pode proporcionar uma redu¸ca˜o no preenchimento que ocorre na decomposi¸ca˜o LU, restringindo-se aos zeros contidos entre os elementos n˜ao nulos e a diagonal principal. Por outro lado, no contexto da solu¸ca˜o de sistemas por m´etodos iterativos, os precondicionadores baseados na decomposi¸ca˜o LU incompleta (BENZI; SZYLD, 1999) e (CAMATA et al., 2011) s˜ao amplamente utilizados por apresentar uma taxa acentuada na acelera¸ca˜o da convergˆencia. Por´em, tais opera¸co˜es alteram a esparsidade da matriz e portanto um processo de reordenamento da matriz ´e fundamental para a eficiˆencia de tais precondicionadores. O tempo de processamento dos m´etodos iterativos n˜ao-estacion´arios baseados nos.

(15) 1 Introdu¸ca ˜o. 14. espa¸cos de Krylov depende do custo de cada itera¸ca˜o, que fundamentalmente depende do produto matriz-vetor e de opera¸co˜es de precondicionamento. Algoritmos da ´area de Otimiza¸ca˜o Combinat´oria podem contribuir para reduzir o n´ umero de opera¸co˜es de ponto flutuante necess´ario nessas opera¸co˜es. Uma maneira de melhorar o desempenho dessas opera¸co˜es ´e reordenar as linhas e colunas da matriz para diminuir a distˆancia das entradas n˜ao nulas `a diagonal principal, reduzindo o n´ umero de preenchimento e consequentemente o n´ umero de opera¸co˜es de ponto flutuante (BENZI; SZYLD, 1999). Em geral, t´ecnicas para melhoria da eficiˆencia dessa opera¸ca˜o consideram tanto estruturas otimizadas de armazenamento de matrizes, quanto procedimentos para o seu reordenamento, visando a redu¸ca˜o do n´ umero de endere¸camentos de mem´oria, o que onera bastante a execu¸ca˜o das opera¸co˜es do produto matriz-vetor e do precondicionamento (PINANA, 1999). Esse trabalho tem por objetivo analisar a influˆencia dos algoritmos de reordenamento de matrizes: Reverse Cuthill Mckee (RCM), Espectral (ES), Gibbs Poole Stockmeyer (GPS) e Nested Dissection (ND) na resolu¸ca˜o de sistemas lineares utilizando os m´etodos iterativos n˜ao estacion´arios: M´etodo do Res´ıduo M´ınimo Generalizado (GMRES) e Gradiente Conjugado (GC) com e sem precondicionamento, fazendo uso dos precondicionadores baseados na Fatora¸ca˜o LU incompleta. O trabalho est´a dividido de forma a facilitar a compreens˜ao do leitor. O Cap´ıtulo 2 apresenta uma revis˜ao da literatura onde todos os conceitos e defini¸co˜es necess´arios ao entendimento do trabalho s˜ao esclarecidos. O Cap´ıtulo 3 descreve os dois algoritmos para resolu¸ca˜o de sistemas lineares e os precondicionadores implementados. No Cap´ıtulo 4 s˜ao apresentados os algoritmos de reordenamento implementados bem como algumas propostas de melhorias. Por fim, os Cap´ıtulos 5, 6 e 7 apresentam os detalhes das implementa¸co˜es, os testes computacionais e as conclus˜oes e trabalhos futuros, respectivamente..

(16) 2. Defini¸co ˜es b´ asicas e revis˜ ao da literatura. Nesse cap´ıtulo s˜ao apresentadas as defini¸co˜es necess´arias ao entendimento deste trabalho. Na Se¸ca˜o 2.1 s˜ao listados alguns conceitos de ´algebra linear. Na Se¸ca˜o 2.2 ´e mostrado a defini¸ca˜o de matriz esparsa e a forma de armazenamento utilizada nesse trabalho. Na Se¸ca˜o 2.3 ´e apresentado o problema de reordenamento de matrizes bem como a sua rela¸ca˜o com o problema de minimiza¸ca˜o da largura de banda e redu¸ca˜o de envelope. Na Se¸ca˜o 2.4 s˜ao apresentadas as defini¸co˜es da teoria dos grafos e sua rela¸ca˜o com matrizes e na Se¸ca˜o 2.5, os trabalhos relacionados.. 2.1. Sistemas lineares. Uma equa¸ca˜o linear ´e apresentada na forma ai1 x1 + ai2 x2 + · · · + ain xn = b1 , onde ai1 , ai2 , ..., ain s˜ao os coeficientes, x1 , x2 , ..., xn s˜ao as inc´ognitas e bi o termo independente (i = 1, 2, ..., n). Um sistema de equa¸co˜es lineares ´e um conjunto finito de equa¸co˜es lineares, como apresentado a seguir.    a11 x1 + a12 x2 + · · · + a1n xn = b1        a21 x1 + a22 x2 + · · · + a2n xn = b2 a31 x1 + a32 x2 + · · · + a3n xn = b3   ..   .      an1 x1 + an2 x2 + · · · + ann xn = bn. 15.

(17) 2.2 Matrizes esparsas. 16. Os coeficientes aij para i, j = 1, ..., n comp˜oem uma matriz quadrada com n linhas e n colunas:. . a11 a12 a13 · · · a1n.   a  21 a22 a23 · · · a2n  A=  a31 a32 a33 · · · a3n  ..  .  an1 an2 an3 · · · ann.          . As inc´ognitas xj formam um vetor coluna x = [x1 , x2 · · · xn ]T e os termos independentes bn um vetor coluna b = [b1 , b2 · · · bn ]T . Com essas defini¸co˜es ´e poss´ıvel representar o sistema na forma matricial (POOLE, 2004), (CUNHA, 2000) e (BOLDRINE et al., 2000) Ax = b. (2.1). No processo de solu¸ca˜o de um sistema linear os coeficientes da matriz A e o vetor b s˜ao conhecidos e o vetor solu¸ca˜o x ´e o que se deseja obter. Outras defini¸co˜es da ´algebra linear necess´arias ao entendimento desse trabalho s˜ao descritas a seguir: Seja A uma matriz. Define-se transposta de A, AT , uma matriz onde [aij ]T = aji . A ´e simetrica se A = AT . Se A ´e simetrica, por´em aij 6= aji ent˜ao A ´e estruturalmente sim´etrica. A n˜ao ´e sim´etrica se ∃ aij 6= aji . A ´e diagonal se e somente se ∀ ij, aij 6= 0, i = j. Se A ´e diagonal e aii = 1 ∀ i, i = 1, ..., n, ent˜ao A ´e a identidade. A ´e X diagonal dominante se | aii | > |aij | para todo i. A ´e definida positiva se j=1,...,n,j6=i. ∀x 6= 0, xt Ax > 0 (SAAD, 2003), (GOLUB; VAN LOAN, 1996) e (BOLDRINE et al., 2000).. 2.2. Matrizes esparsas. Uma matriz esparsa possue muitos elementos nulos. Geralmente sistemas lineares oriundos das mais diversas ´areas, resultam em matrizes esparsas e de grande porte. Na Figura 2 pode-se observar uma matriz de 46626 coeficientes oriunda do problema da Dinˆamica dos Fluidos Computacional, com mais de 99% de esparsidade. Matrizes de grande porte requerem um grande espa¸co de armazenamento e ainda que nos computadores atuais exista uma grande quantidade de mem´oria, geralmente n˜ao ´e suficiente para armazenar as matrizes no formato padr˜ao n × n. A fim de tornar o armazenamento da matriz e as opera¸co˜es sobre ela menos custosos computacionalmente, algumas estruturas de dados para manipular matrizes esparsas s˜ao descritas em Saad.

(18) 2.2 Matrizes esparsas. 17. Figura 2: Exemplo de uma matriz esparsa - Problema da Dinˆamica dos Fluidos Computacional (2003). Dentre essas estruturas est˜ao a CSC (Compressed Sparse Column) que realiza uma compacta¸ca˜o por colunas e a CSR (Compressed Sparse Row) que realiza uma compacta¸ca˜o por linha. A compacta¸ca˜o realizada por ambas estruturas consiste em uma forma de armazenar a matriz sem os elementos nulos. A estrutura de armazenamento CSR utiliza trˆes vetores: o vetor adj, armazena os ´ındices das colunas que cont´em elementos n˜ao nulos em ordem de linhas (tamanho igual a quantidade de elementos n˜ao nulos). O vetor xadj (onde cada posi¸ca˜o indica uma linha), armazena os ´ındices do vetor adj onde inicia o armazenamento dos elementos da respectiva linha (tamanho n) e o vetor vadj, armazena os valores dos elementos n˜ao nulos da matriz em ordem de linhas e colunas (tamanho igual a quantidade de elementos n˜ao nulos). A Figura 3 ilustra o armazenamento utilizando a estrutura CSR para a matriz A. Nota-se que as setas que partem do vetor xadj indicam a posi¸ca˜o onde iniciam os elementos n˜ao nulos de cada linha no vetor adj, logo o conte´ udo do vetor xadj ´e o valor correspondente ao ´ındice do vetor adj para onde a seta est´a indicando. Cada posi¸ca˜o do vetor xadj est´a relacionado com uma linha da matriz e cada seta que sai do vetor adj corresponde a um elemento em vadj, ou seja, o valor de aij onde i e j est˜ao relacionados aos vetores xadj e adj, respectivamente..

(19) 2.3 Reordenamento de matrizes. 18.  10 0 50 A =  20 0 0  15 11 16 . Figura 3: Armazenamento CSR. 2.3. Reordenamento de matrizes. O reordenamento de uma matriz consiste na troca de linhas e colunas, ou seja, dada a matriz A, A¯ = P AP t consiste em outra matriz com linhas e colunas trocadas. O reordenamento de matrizes aplicado a resolu¸ca˜o de sistemas lineares pode ser visto como um pr´e-processamento realizado de forma a reduzir a complexidade da resolu¸ca˜o destes sistemas. Por exemplo, o reordenamento resulta em dispor os elementos n˜ao nulos da matriz o mais pr´oximo poss´ıvel entre si, realizando para tal permuta¸co˜es entre linhas e colunas. Tamb´em pode-se dizer que ´e equivalente a se determinar uma matriz de permuta¸ca˜o P , que multiplicada pela matriz A conduza a uma ordena¸ca˜o conveniente. A matriz P ´e constru´ıda a partir da matriz identidade da mesma ordem do sistema e com as posi¸co˜es das linhas e colunas trocadas de acordo com a regra de permuta¸ca˜o (CARVALHO et al., 2009) e (CARMO, 2005). A seguir ´ e apresentada uma matriz de Permuta¸ca˜o onde. as linhas e colunas s˜ao trocadas seguindo a ordena¸ca˜o decrescente das linhas da matriz identidade. Assim tem-se que a linha 1 passa a ser a linha 10, a linha 2 passa a ser a linha 9 e assim por diante. .            P =          . 0 0 0 0 0 0 0 0 0 1. .  0 0 0 0 0 0 0 0 1 0    0 0 0 0 0 0 0 1 0 0    0 0 0 0 0 0 1 0 0 0   0 0 0 0 0 1 0 0 0 0    0 0 0 0 1 0 0 0 0 0    0 0 0 1 0 0 0 0 0 0    0 0 1 0 0 0 0 0 0 0   0 1 0 0 0 0 0 0 0 0   1 0 0 0 0 0 0 0 0 0.

(20) 2.3 Reordenamento de matrizes. 19. Com a aplica¸ca˜o dessa permuta¸ca˜o ao sistema linear tem-se uma nova representa¸ca˜o para o sistema: (P AP T )(P x) = P b. (2.2). O problema de reordenamento de matrizes se relaciona com outros dois problemas conhecidos da literatura, a minimiza¸ca˜o da largura de banda e a redu¸ca˜o do envelope (BARNAD et al., 1995). Esses problemas consistem em dispor os elementos n˜ao nulos da matriz o mais pr´oximo poss´ıvel da diagonal principal, atrav´es de permuta¸co˜es de linhas e colunas. Tanto a minimiza¸ca˜o da largura de banda quanto a redu¸ca˜o de envelope permitem que as opera¸co˜es realizadas na resolu¸ca˜o do sistema sejam feitas sobre uma matriz mais compacta, reduzindo o n´ umero de opera¸co˜es. No contexto da solu¸ca˜o de sistemas via m´etodos diretos, a minimiza¸ca˜o da largura de banda e a redu¸ca˜o de envelope podem proporcionar uma redu¸ca˜o no preenchimento que ocorre na decomposi¸ca˜o LU, restringindo-se aos zeros contidos entre os elementos n˜ao nulos e a diagonal principal.. 2.3.1. Minimiza¸c˜ ao da largura de banda. Seja A uma matriz estruturalmente sim´etrica. A largura de banda de A denotada por lb(A) ´e definida como a maior distˆancia do primeiro elemento n˜ao nulo at´e a diagonal principal, considerando todas as linhas da matriz (COLEMAN, 1984). Ou seja: bi = (i − j) ∀ aij 6= 0, i = 2, . . . , n. lb(A) =. max {bi }. i=2,...,n. (2.3). (2.4). onde j ´e o ´ındice da coluna do primeiro elemento n˜ao nulo da linha i. O problema de minimiza¸ca˜o de largura de banda ´e NP-completo (PAPADIMITRIOU, 1976). Devido a essa caracter´ıstica ´e dif´ıcil encontrar a solu¸ca˜o exata para o problema em tempo computacional razo´avel, justificando a utiliza¸ca˜o de m´etodos heur´ısticos. A Figura 4 exemplifica a largura de banda de uma matriz, onde na linha 10, em amarelo, tem-se caracterizado a largura de banda com valor igual a 8..

(21) 2.3 Reordenamento de matrizes. 20. Figura 4: Largura de banda, destacada em amarelo, ´e igual a 8. 2.3.2. Redu¸c˜ ao de envelope. O envelope de uma matriz estruturalmente sim´etrica A, denotado por env(A), ´e definido como a soma das distˆancias do primeiro elemento n˜ao nulo at´e a diagonal principal, considerando todas as linhas da matriz (COLEMAN, 1984). env(A) =. n X. bi. (2.5). i=2. onde n ´e o n´ umero de linhas da matriz. A Figura 5 ilustra o envelope para uma matriz onde toda a parte em vermelho caracteriza o tamanho do envelope com valor igual a 32.. Figura 5: Envelope, destacado em vermelho, ´e igual 32..

(22) 2.4 Defini¸co ˜es de interesse em teoria dos grafos. 2.4. 21. Defini¸co ˜es de interesse em teoria dos grafos. A matriz associada ao sistema linear pode ser diretamente representada por um grafo, que pode ser n˜ao direcionado ou direcionado, o que implica em representar, uma matriz estruturalmente sim´etrica e uma matriz n˜ao sim´etrica, respectivamente. Para o melhor entendimento do problema representado por grafos, um resumo dos principais conceitos e propriedades desta estrutura matem´atica, relacionados ao problema, s˜ao apresentados a seguir. Os conceitos descritos aqui s˜ao baseados em Narsingh (1974), Menezes (1995) e Gibbs et al. (1976). Seja G = (V, E), um grafo formado por um conjunto de v´ertices V = {v1 , v2 , ..., vn } e um conjunto de arestas E = {e1 , e2 , ..., em }. Cada aresta ´e formada por um par de v´ertices {v1 , v2 }. 1. Arco: em um grafo orientado o conjunto de arestas passa a se chamar conjunto de arcos. A diferen¸ca ´e que o arco ´e formado por um par ordenado de v´ertices. 2. Adjacˆencia: dois v´ertices s˜ao adjacentes se existe uma aresta entre eles em G. 3. Incidˆencia: uma aresta incide em um v´ertice se ele for um dos extremos da aresta. 4. Grau de um v´ertice: ´e o n´ umero de arestas incidentes a ele. 5. Semigrau exterior: considerando o grafo orientado, ´e o n´ umero de arcos incidentes exteriormente (extremidade inicial) em vi . 6. Semigrau interior: considerando o grafo orientado, ´e o n´ umero de arcos incidentes interiormente (extremidade final) em vi . 7. Caminho em G: ´e definido como uma sequˆencia de arestas de E que ligam dois v´ertices, chamados de inicial e final, respectivamente. Se o grafo for orientado deve ser considerada a dire¸ca˜o do arco. 8. Ciclo: ´e um caminho no qual o v´ertice inicial coincide com o v´ertice final. 9. Conexidade e desconexidade: diz-se que G ´e conexo se existe um caminho entre cada par de v´ertices de G. Caso contr´ario, G ´e dito desconexo e formado por subgrafos maximais conexos, denominados componentes conexas. Se o grafo ´e orientado h´a n´ıveis de conexidade que dependem da existˆencia de caminhos entre cada par de v´ertices..

(23) 2.4 Defini¸co ˜es de interesse em teoria dos grafos. 22. ´ 10. Arvores e folhas: Um grafo T ´e uma ´ arvore se ´e conexo e n˜ao tem ciclos. Os v´ertices de uma ´arvore com grau unit´ario s˜ao chamados folhas. 11. Distˆancia(u, v): ´e o custo do menor caminho existente entre os v´ertices u e v de V . 12. Excentricidade(v): ´e a maior distˆancia de v a todos os outros v´ertices de G. A excentricidade(v) para v ∈ T , onde T ´e uma ´arvore, corresponde ao comprimento do caminho de v at´e uma folha da ´arvore. 13. Diˆ ametro (G): ´e definido como o valor da maior excentricidade do grafo. 14. Pseudo-diˆ ametro: corresponde a uma alta excentricidade, por´em n˜ao necessariamente a maior de todas. 15. V´ertices perif´ericos de G: s˜ao v´ertices cuja excentricidade ´e igual ao diˆametro do grafo. 16. V´ertices pseudo-perif´ericos: s˜ao v´ertices que apresentam altas excentricidades, mas n˜ao necessariamente a maior (ambos pseudo-diˆametro e pseudo-perif´erico s˜ao obtidos por m´etodos heur´ısticos). ´ 17. Arvore enraizada: uma ´arvore ´e enraizada se possui um v´ertice que se destaca dos outros (raiz, v´ertice do n´ıvel 1). Um v´ertice vi est´a no n´ıvel i de uma ´arvore enraizada se vi est´a a uma distˆancia i da raiz. Neste tipo de ´arvore, um v´ertice n˜ao pode fazer parte de dois n´ıveis distintos. 18. Estrutura de n´ıvel com raiz associada a G, EN (v) = N1 , N2 . . . Nk : consiste em uma ´arvore enraizada com n´ıveis denotados por N1 , N2 , ..., Nk . 19. Propriedade da banda de uma matriz A: lb(A) ≤ 2w − 1, onde w ´e a quantidade de v´ertices do n´ıvel de maior n´ umero de v´ertices. 20. Matriz de Adjacˆencia A(G): A = aij , 1 ≤ i, j ≤ n aij =. (. 1, quando {ij} ∈ E 0, caso contr´ario. As Figuras 6(a), 6(b) e 6(c) ilustram os conceitos descritos acima. Na Figura 6(a) as arestas destacadas em vermelho indicam as arestas incidentes ao v´ertice 2, logo o v´ertice 2 tem grau 4. As arestas destacadas em azul formam um caminho do v´ertice 6 ao v´ertice 7. Ressaltamos que o comprimento deste caminho ´e a distˆancia entre esses v´ertices (pois ´e o menor caminho). As arestas destacadas em laranja formam um ciclo. Na Figura 6(b).

(24) 2.4 Defini¸co ˜es de interesse em teoria dos grafos. 23. as arestas destacadas em vermelho indicam o diˆametro desse grafo (comprimento 4), vale destacar que pode existir outros caminhos no grafo que possuem o mesmo diˆametro. Na Figura 6(c) ´e apresentada a estrutura de n´ıvel para o v´ertice 9: uma ´arvore onde o v´ertice 9 ´e a raiz e os v´ertices 10 e 7 s˜ao as folhas.. (a). (b). (c). Figura 6: Exemplos de algumas das defini¸co˜es apresentadas. Outras informa¸co˜es importantes para o entendimento deste trabalho est˜ao relacionadas a teoria espectral dos grafos. A matriz laplaciana associada a um grafo G ´e definida atrav´es da opera¸ca˜o L(G) = D(G) − A(G), onde D(G) ´e uma matriz diagonal, sendo cada elemento da linha i correspondente ao grau do respectivo v´ertice i e A(G) ´e a matriz de adjacˆencia de G. O espectro de L(G) ´e o conjunto de autovalores (λ1 , λ2 , . . . , λk ) obtido pela resolu¸ca˜o de det(L − λI) = 0. Considerando λ1 ≤ λ2 ≤ . . . ≤ λk , o segundo menor autovalor define a conectividade alg´ebrica onde cada componente do autovetor associado v(λ2 ) est´a relacionada com a conectividade entre os v´ertices (FIEDLER, 1973). Os algoritmos de reordenamento utilizados neste trabalho (com exce¸ca˜o do Espectral) e o Algoritmo de Dijkstra utilizam estrat´egia de visita, em uma determinada ordem, a todos os v´ertices do grafo. Nessas estrat´egias, os v´ertices visitados s˜ao identificados como fechados, caso j´a tenham sido totalmente explorados e sua posi¸ca˜o na visita n˜ao ´e mais.

(25) 2.4 Defini¸co ˜es de interesse em teoria dos grafos. 24. alterada; e como abertos, caso tenham sido selecionados para serem colocados em uma fila indicando que podem ser revisitados e seus adjacentes devem ser explorados.. 2.4.1. O Grafo e a Matriz. Grande parte dos algoritmos existentes na literatura abordam o problema de reordenamento de matrizes segundo a o´tica da Otimiza¸ca˜o Combinat´oria, portanto o reordenamento de matrizes ´e equivalente ao problema de rerrotula¸ca˜o em grafos. O processo de rerrotula¸ca˜o de um grafo consiste em reorganizar os r´otulos dos v´ertices mantendo a mesma estrutura de liga¸co˜es (arestas). Ao visualizar esse processo observa-se que quanto mais pr´oximo estiverem os valores dos r´otulos dos v´ertices, mais agrupados estar˜ao os elementos na matriz. A Figura 7 apresenta os grafos representados por matrizes. Nas Figuras 7(a) e 7(b) tem-se, respectivamente, o grafo da matriz original, enquanto que nas Figuras 7(c) e 7(d) tem-se, respectivamente, o mesmo grafo rerrotulado e a mesma matriz reordenada. Nota-se que o grafo reordenado permanece com as mesmas liga¸co˜es (arestas) do grafo original, por´em os r´otulos dos v´ertices est˜ao reorganizados e na matriz reordenada percebe-se que os elementos est˜ao mais pr´oximos `a diagonal principal.. (a) Grafo. (b) Matriz env = 32 e lb = 8. (c) Grafo Rerrotulado. (d) Matriz reordenada env = 17 e lb = 3. Figura 7: Rerrotula¸ca˜o dos grafos e reordenamento das matrizes.

(26) 2.5 Trabalhos Relacionados. 2.5. 25. Trabalhos Relacionados. Muitas pesquisas na ´area de minimiza¸ca˜o de largura de banda foram realizadas entre as d´ecadas 60 e 80, com destaque para o os m´etodos RCM e GPS, algoritmos baseados em estrat´egias de busca em grafos que proporcionam boa qualidade de solu¸ca˜o (CUTHILL; MCKEE, 1969), (GIBBS et al., 1976). Ap´ os esse per´ıodo, observou-se que os trabalhos existentes. na literatura dividem-se majoritariamente em propostas de melhoria ou aplica¸co˜es de heur´ısticas ao problema. Aplica¸co˜es de m´etodos exatos tamb´em foram propostos (MART´I et al., 2008), (CAPRARA; SALAZAR, 2005). No entanto, os testes foram realizados para. problemas cujas dimens˜oes das instˆancias s˜ao relativamente pequenas, isto ´e, menor que 1000.. 2.5.1. Reordenamento de matrizes. Mart´ı et al. (2001) prop˜oem a utiliza¸ca˜o da Busca Tabu com movimentos baseados no conjunto de elementos cr´ıticos (ou seja, os elementos mais distantes da diagonal). Neste trabalho foi realizada a compara¸ca˜o entre este algoritmo, o GPS e uma implementa¸ca˜o do Simulated Annealing (SA) proposta por Dueck e Jeffs (1995). Os resultados mostraram que a Busca Tabu apresentou a melhor qualidade de solu¸ca˜o, por´em o seu tempo computacional ´e bastante superior (no melhor caso chega a ser 50 vezes maior) ao tempo da heur´ıstica GPS. J´a com rela¸ca˜o a SA, a Busca Tabu tamb´em apresentou melhor qualidade de solu¸ca˜o, mas um tempo de execu¸ca˜o em torno de 20 vezes menor. Pinana et al. (2004) propuseram a aplica¸ca˜o do GRASP com reconex˜ao de caminhos ao problema utilizando o mesmo conjunto de matrizes, nos seus experimentos, que aqueles utilizados por Mart´ı et al. (2001). Os resultados computacionais mostram que o GRASP obteve melhor qualidade de solu¸ca˜o e menor tempo computacional quando comparado a Busca Tabu apresentada por Mart´ı et al. (2001), por´em o tempo chega a ser milhares de vezes superior ao GPS. Lim et al. (2006) apresentaram abordagens para o problema utilizando algoritmos gen´eticos e o m´etodo node shift, proposto por eles nesse trabalho. A compara¸ca˜o destes m´etodos com o GPS e o GRASP apresentados em Pinana et al. (2004) foi realizada atrav´es de testes computacionais usando o mesmo conjunto de matrizes. Os resultados mostram que ambas as abordagens propostas melhoram a qualidade de solu¸ca˜o em rela¸ca˜o `as heur´ısticas comparadas. No entanto, com rela¸ca˜o ao tempo de execu¸ca˜o, o m´etodo node shift apresenta tempo de execu¸ca˜o em torno de 3 vezes maior que o algoritmo gen´etico,.

(27) 2.5 Trabalhos Relacionados. 26. que por sua vez apresenta tempo maior do que a heur´ıstica GPS. Uma generaliza¸ca˜o da heur´ıstica GPS foi proposta por Wang et al. (2009). Os testes computacionais mostram que a proposta melhora discretamente a qualidade de solu¸ca˜o com um pequeno aumento no tempo de execu¸ca˜o. Em uma abordagem diferente dos trabalhos citados anteriormente, a heur´ıstica proposta por Carvalho et al. (2009) n˜ao considera o problema representado por grafos e pode ser aplicada tanto para matrizes sim´etricas quanto para matrizes n˜ao sim´etricas. Os testes computacionais comparam a heur´ıstica proposta com o algoritmo Cuthill-Mckee (CM) e mostram que a heur´ıstica apresenta melhora na qualidade de solu¸ca˜o, por´em com um tempo de execu¸ca˜o centenas de vezes maior do que o CM. Em resumo, observa-se que todos os trabalhos citados melhoram a qualidade de solu¸ca˜o, se comparados com os algoritmos mais cl´assicos e mais utilizados na literatura (RCM e GPS). Entretanto, nenhum desses trabalhos conseguiu simultaneamente melhorar a qualidade de solu¸ca˜o e obter um tempo computacional equipar´avel a esses algoritmos. Isso refor¸ca a quest˜ao de que muito ainda deve ser feito para que se consiga obter um melhor compromisso entre qualidade de solu¸ca˜o e tempo de execu¸ca˜o.. 2.5.2. Resolu¸c˜ ao de sistemas lineares. Considerando trabalhos que apresentam o reordenamento de matrizes como um preprocessamento para solucionar sistemas lineares, destaca-se o trabalho apresentado por Benzi e Szyld (1999) onde s˜ao testados os algoritmos de reordenamento, RCM e ND e os algoritmos para resolu¸ca˜o de sistemas, Bi-CGstab, GMRES e TFQMR (FREUND, 1993). Observa-se pelos testes computacionais que o reordenamento da matriz dos coeficientes reduziu o n´ umero de itera¸co˜es dos algoritmos e algumas matrizes que n˜ao convergiam passaram a convergir ap´os o reordenamento. Em Benzi e Tuma (2000) foi analisado a influˆencia de algoritmos de reordenamento no desempenho de um precondicionador que utiliza a matriz aproximadamente inversa. Em seus experimentos conclu´ıram que os algoritmos de reordenamento M´ınimo grau e o Nested Dissection reduziram o tempo e espa¸co de armazenamento requeridos para constru¸ca˜o do precondicionador. Duff e Meurant (1989) realizaram um estudo sobre o efeito do reordenamento no m´etodo Gradiente Conjugado precondicionado. Os testes consideraram 16 algoritmos de reordenamento diferentes. Conclu´ıram que o n´ umero de itera¸co˜es do algoritmo Gradiente.

(28) 2.5 Trabalhos Relacionados. 27. Conjugado n˜ao est´a relacionado ao preenchimento descartado na fatora¸ca˜o incompleta mas sim, `a norma residual da matriz. O Reverse Cuthill-McKee apresentou os melhores resultados. Em Carmo (2005) ´e realizado um estudo sobre o efeito do reordenamento no desempenho do m´etodo Cholesky controlado Gradiente Conjugado utilizando os algoritmos de reordenamento de matrizes Contagem de colunas, Reverse Cuthill-McKee e M´ınimo grau aproximado. Conclu´ıram que o reordenamento pode proporcionar muitos ganhos em matrizes com estrutura irregular. Recentemente, Portugal et al. (2009) utilizaram o algoritmo RCM, o precondicionador ILUT(T, p) (SAAD, 2003) e o algoritmo GMRES na resolu¸ca˜o de problemas oriundos de sistemas el´etricos. O trabalho conclui que o reordenamento melhora a qualidade do precondicionamento ILUT. Analisando os resultados dos trabalhos descritos na literatura, observamos que os algoritmos padr˜oes para o reordenamento de matrizes, RCM, GPS, ND e ES tem um melhor compromisso entre qualidade de solu¸ca˜o e tempo de execu¸ca˜o. Por esse motivo, nesse trabalho optamos por estudar esses algoritmos..

(29) 3. Resolu¸ c˜ ao de sistemas lineares. Neste Cap´ıtulo s˜ao apresentados algumas defini¸co˜es e m´etodos de resolu¸ca˜o de sistemas lineares e precondicionadores, implementados nesse trabalho, Se¸co˜es 3.1 e 3.2, respectivamente.. 3.1. M´ etodos num´ ericos. Os m´etodos num´ericos para resolu¸ca˜o de sistemas s˜ao catalogados em dois grupos: 1. Os M´etodos Diretos, conduzem `a solu¸ca˜o exata a menos de erros de arredondamento introduzidos pelo computador, ap´os um n´ umero finito de passos. Segundo Thibes (2002) essa classe de m´etodos ´e indicada quando o sistema ´e de pequeno porte ou quando o sistema ´e denso (muitos elementos diferente de zero). No contexto de m´etodos diretos destaca-se o m´etodo da Elimina¸ca˜o de Gauss, devido a sua rela¸ca˜o com os precondicionadores ILU(p) implementados neste trabalho. A seguir s˜ao apresentados alguns algoritmos para resolu¸ca˜o de sistemas lineares que auxiliaram no entendimento dos precondicionadores apresentados na Se¸ca˜o 3.2. Os Algoritmos 1 e 2 realizam a resolu¸ca˜o do sistema realizando retrosubstitui¸co˜es e substitui¸co˜es sucessivas, respectivamente. Essas opera¸co˜es s˜ao poss´ıveis devido a facilidade em encontrar o valor de xi partindo de i = 1 para uma matriz triangular inferior e i = n para uma matriz triangular superior. No Algoritmo 1, linha 2, ´e calculado o valor de xn . Esse c´alculo ´e trivial pois se trata de uma matriz triangular superior. O la¸co das linhas 4 a 10 ´e executado enquanto existir xk para ser calculado, ou seja, ´e executado n − 1 vezes. O la¸co das linhas 6 a 9 percorre os elementos da linha xk multiplicando pelos valores xj j´a encontrados, a vari´avel soma auxilia no c´alculo de xk . No Algoritmo 2 a mudan¸ca em rela¸ca˜o ao Algoritmo 1 est´a na linha 2, pois o Algoritmo 2 calcula primeiro o valor de x1 dado que obter esse valor em uma matriz 28.

(30) 3.1 M´etodos num´ericos. 29. triangular inferior ´e trivial. O Algoritmo 3 apresenta o Algoritmo padr˜ao de Elimina¸ca˜o de Gauss, onde no la¸co mais interno, linhas 4 a 5, os valores das colunas s˜ao alterados considerando o pivˆo encontrado pelo la¸co anterior, linhas 2 a 7. Algoritmo 1: Triangular Superior 1 Dados aij , j ≥ ibi , 1 ≤ i, j ≤ n bn 2 xn = a nn 3 soma = 0 4 para k = n − 1 . . . , 1 fa¸ ca 5 soma = bk 6 para j = k + 1, . . . , n fa¸ ca 7 soma = soma − akj xj xk = soma 8 akk 9 fim para 10 fim para. Algoritmo 2: Triangular Inferior 1 Entrada aij , j ≥ ibi , 1 ≤ i, j ≤ n b1 2 x1 = a 11 3 soma = 0 4 para k = 2 . . . , n fa¸ ca 5 soma = bk 6 para j = 1, . . . , k fa¸ ca 7 soma = soma − akj xj xk = soma 8 akk 9 fim para 10 fim para. Algoritmo 3: Elimina¸ c˜ ao Gaussiana - Padr˜ ao k i j (acesso por colunas) 1 para k = 1, . . . , n − 1 fa¸ ca 2 para i = k + 1, . . . , n fa¸ ca aik lik = 3 akk 4 para j = k + 1, . . . , n fa¸ ca 5 ai,j = aij − lik aki 6 fim para 7 fim para 8 fim para. 2. Os M´etodos Iterativos, caracterizados por gerar sucessivas aproxima¸co˜es a cada passo, buscam obter solu¸co˜es cada vez mais precisas para um sistema linear. Os.

(31) 3.1 M´etodos num´ericos. 30. m´etodos iterativos s˜ao divididos em dois grupos: m´etodos iterativos estacion´arios e m´etodos iterativos n˜ao estacion´arios. Os m´etodos iterativos estacion´arios s˜ao expressos na forma x(k) = Bx(k−1) +c, onde B e c n˜ao dependem do c´alculo da itera¸ca˜o k. Esses m´etodos s˜ao mais f´aceis de implementar, por´em a convergˆencia ´e bem mais lenta. Os m´etodos iterativos n˜ao estacion´arios diferem dos m´etodos estacion´arios porque envolvem informa¸co˜es que variam a cada itera¸ca˜o e sua estrat´egia ´e transformar o sistema Ax = b em um problema de minimiza¸ca˜o do res´ıduo, minx∈k {b − Ax} (BARRETT et al., 1994). Sistemas lineares de grande porte s˜ao usualmente solucionados por m´etodos iterativos n˜ao estacion´arios (SAAD, 2003) que n˜ao alteram a esparsidade da matriz e n˜ao acumulam erros de arredondamento, mas necessitam de crit´erios de convergˆencia. Por outro lado, nesses m´etodos observamos uma dificuldade de predizer o comportamento preciso da convergˆencia em uma gama extensa de problemas (THIBES, 2002). Nas Subse¸co˜es 3.1.1 e 3.1.2 s˜ao apresentados os algoritmos de dois m´etodos n˜ao estacion´arios implementados nesse trabalho: O M´etodo do Res´ıduo M´ınimo Generalizado (GMRES) e o M´etodo do Gradiente Conjugado (GC), Os m´etodos n˜ao estacion´arios realizam a cada itera¸ca˜o, uma aproxima¸ca˜o para a solu¸ca˜o do sistema xi = x0 + z onde z ∈ Ki = span{r0 , Ar0 , A2 r0 , ..., Ai−1 r0 }, definido como subespa¸co de Krylov, onde i ´e a dimens˜ao do subespa¸co, r0 = b − Ax0 ´e o res´ıduo da aproxima¸ca˜o x0 e {r0 , Ar0 , A2 r0 , ..., Ai−1 r0 } ´e a base de Ki .. 3.1.1. GMRES - M´ etodo do res´ıduo m´ınimo generalizado. O objetivo do GMRES ´e minimizar a norma do res´ıduo do sistema, encontrando uma solu¸ca˜o aproximada que utiliza um vetor z do subespa¸co de Krylov, tendo como solu¸ca˜o do sistema x = x0 + z tal que kb − A(xo + z)k seja m´ınimo. O algoritmo 4 descreve o m´etodo GMRES(k), onde a ideia ´e construir uma base ortogonal U no subespa¸co de Krylov constru´ıda atrav´es do processo de Gram-Schmidt Modificado (linhas de 6 a 13) que por sua vez, al´em da base ortogonal U , gera uma matriz H, denominada matriz de Hessemberg. Essa matriz ´e quase triangular superior com exce¸ca˜o de uma diagonal secund´aria imediatamente abaixo da diagonal principal. A matriz H, descrita na Equa¸ca˜o 3.1, exemplifica a matriz de Hessemberg de ordem 5 × 4, onde pode ser observado que.

(32) 3.1 M´etodos num´ericos. 31. Algoritmo 4: GMRES(k) 1 Dados A, b, lmax, tol, x = 0, k 2 ǫ = tolkbk2 3 l = 1 4 repita 5 i = 1, ui = b − Ax, 6 ei = kui k, ρ = ei ui ui = 7 ei 8 enquanto (ρ > ǫ)e(i < k) fa¸ ca 9 ui+1 = Aui 10 para j = 1, . . . , i fa¸ ca t 11 hji = ui+1 uj 12 ui+1 = ui+1 − hji uj 13 fim para 14 hi+1,i = kui+1 k2 ui+1 ui+1 = 15 hi+1,i 16 para j = 1, . . . , i − 1 fa¸ ca 17 temp = cj hji + sj hj+1,i 18 hj+1,i = −sj hji + cj hj+1,i 19 hji = temp 20 fim para q r = h2ii + h2i+1,i 21 hii ci = 22 r hi+1,i si = 23 r 24 hii = r (hi+1,i=0 ) 25 ei+1 = −si ei 26 e i = ci e i 27 ρ =| ei+1 | 28 i=i+1 29 para j = i, . . . , 1 fa¸ ca i X ej − hjl yl 30 31. 32 33 34 35. yj =. fim para i X x= y j uj. l=j+1. hjj. j=1. l =l+1 fim enqto at´ e (ρ < ǫ)ou(l ≥ lmax) ;.

(33) 3.1 M´etodos num´ericos. 32. h21 , h32 , h43 e h54 formam uma diagonal secund´aria, logo abaixo da diagonal principal.   h11 h12 h13 h14    h21 h22 h23 h24      H =  0 h32 h33 h34  (3.1)    0  0 h43 h44   0 0 0 h54 A fim de eliminar essa diagonal secund´aria tornando um sistema resultante trivial, um processo definido como Rota¸ca˜o de Givens, linhas 14 a 24, ´e realizado na matriz H. Esse processo de rota¸ca˜o ´e realizado atrav´es da multiplica¸ca˜o do vetor a ser rotacionado por uma matriz de rota¸ca˜o, que pode ser exemplifica pela matriz R de ordem 4 × 4 descrita na Equa¸ca˜o 3.2 a seguir: . 1 0 0   0 c si i  R=  0 −si ci  0 0 0. 0. .  0    0   1. (3.2). hi+1j hij e s . onde ci = cos θ = p i = sin θ = p (hij )2 + (hi+1j)2 (hij )2 + (hi+1j)2. Ap´os esse processo resolve-se o sistema Hy = e por retrosubstitui¸ca˜o (linhas 26 a. 29). Para realizar a retrosubstitui¸ca˜o pode-se utilizar o Algoritmo 1. Por fim, na linha 29, uma nova aproxima¸ca˜o ´e calculada considerando o vetor y multiplicado pela base U = [u1 , u2 , ..., ui ]. O algoritmo GMRES padr˜ao ´e computacionalmente custoso, pois a cada itera¸ca˜o i ´e necess´ario calcular e armazenar i opera¸co˜es de produtos matriz-vetor. Para tratar este problema, implementamos o GMRES(k), sendo k a dimens˜ao do subespa¸co e consequentemente a quantidade de vetores do subespa¸co a serem armazenados. Este m´etodo ´e denominado GMRES com reinicializa¸ca˜o.. 3.1.2. GC - Gradiente Conjugado. O m´etodo do gradiente conjugado, GC, tem este nome por gerar uma sequˆencia de vetores de dire¸ca˜o de descida ortogonais. O GC ´e aplicado quando A ´e sim´etrica e definida positiva. A ideia b´asica do m´etodo GC ´e a escolha de n dire¸co˜es linearmente independentes, v1 , v2 , . . . , vn , e por meio da minimiza¸ca˜o da fun¸ca˜o F (x(j) + αvj ) em cada.

(34) 3.2 Precondicionadores. 33. uma dessas dire¸co˜es, construir uma sequˆencia de aproxima¸co˜es que fornece o m´ınimo da 1 fun¸ca˜o quadr´atica F (x) = xT Ax − bT x. 2 O Algoritmo 5 descreve o m´etodo GC. Na linha 6, est´a sendo calculado o valor que minimiza a fun¸ca˜o no passo j. A sequˆencia de aproxima¸co˜es pode ser observada na linha 7, onde para o c´alculo da aproxima¸ca˜o j + 1 ´e necess´ario o valor da aproxima¸ca˜o anterior j. Na linha 8 ´e calculado o res´ıduo associado a aproxima¸ca˜o j + 1. O vetor pj ´e a dire¸ca˜o na qual os res´ıduos s˜ao alterados. Na linha 12 o vetor vj+1 ´e gerado ap´os completada uma itera¸ca˜o do algoritmo. Algoritmo 5: GC 1 Dados A, b, N max, tol, x0 = 0 2 v 0 = r0 = b 2 3 δnovo = kr0 k2 , δ0 = δnovo , j = 0 2 4 enquanto (j < N max)e(δnovo > tol δ0 ) fa¸ ca 5 pj = Avj δnovo α= t vj pj 6 7 xj+1 = xj + αvj 8 rj+1 = rj − αpj 9 δvelho = δnovo δnovo = krj+1 k22 10 δnovo β= 11 δvelho 12 vj+1 = rj+1 + βvj 13 j =j+1 14 fim enqto. 3.2. Precondicionadores. Segundo Costa (2008) os m´etodos baseados no espa¸co de Krylov, convergem mais rapidamente quando a matriz A for pr´oxima da matriz identidade, sendo que a convergˆencia depende significativamente do espectro (conjunto de autovalores) da matriz dos coeficientes. Quando os autovalores se aproximam de zero ou s˜ao de ordens de grandeza distantes, a matriz tem grande inclina¸ca˜o ao mal-condicionamento. A fim de tornar a matriz melhor condicionada, uma t´ecnica denominada precondicionamento pode ser aplicada ao sistema, tendo como objetivo acelerar a convergˆencia dos ˜x = ˜b. m´etodos iterativos, substituindo o sistema Ax = b por um sistema equivalente A˜ Define-se como bom precondicionador aquele capaz de acelerar a convergˆencia do.

(35) 3.2 Precondicionadores. 34. m´etodo, no m´ınimo, para compensar o custo de sua constru¸ca˜o. A dificuldade para encontrar um precondicionador eficiente ´e que se deve identificar um operador M (denominada matriz precondicionadora) que atenda as seguintes propriedades (CARVALHO; GRATTON, 2009):. 1. M deve ser uma boa aproxima¸ca˜o para A. 2. M seja eficiente, ou seja, fazer com que o m´etodo convirja mais rapidamente. Algebricamente, precondicionar um sistema Ax = b consiste em aplicar uma das transforma¸co˜es a seguir. 1. Pela esquerda M −1 Ax = M −1 b. (3.3). AM −1 y = b, com M −1 y = x. (3.4). M −1/2 AM −1/2 y = M −1/2 b, com M −1/2 y = x. (3.5). 2. Pela direita. 3. Ambos os lados. A a¸ca˜o dos precondicionadores dar-se-´a durante o processo iterativo. Por exemplo, ˜ = ˜b, onde considerando o precondicionamento pela esquerda, o sistema resultante ´e Ax A˜ = M −1 A. Durante o processo iterativo a matriz A˜ ser´a necess´aria no produto Matriz ˜ ⇒v=M−1 Ap. Esta opera¸ca˜o ser´a realizada em duas etapas. Inicialmente vetor: v = Ap calcula-se q = Ap, em seguida obt´em-se v = M −1 q, resolvendo o sistema M v = q. Destacamos que a matriz precondicionadora deve ser simples de tal forma que a solu¸ca˜o do sistema n˜ao onere o c´odigo. Segundo Saad (2003), encontrar um bom precondicionador para acelerar a solu¸ca˜o de um sistema linear ´e frequentemente visto como uma combina¸ca˜o de arte e ciˆencia. O Algoritmo 6, descreve o algoritmo GM RES(k) precondicionado. Nota-se que o precondicionamento ocorre durante o processo iterativo. O Algoritmo 7 apresenta o Algoritmo GC precondicionado, assim como o Algoritmo GMRES o precondicionamento acontece durante o processo iterativo..

(36) 3.2 Precondicionadores. 35. Algoritmo 6: GMRES(k) - Precondicionado 1 Dados A, b, lmax, tol, x = 0, k 2 ǫ = tolkbk2 3 l = 1 4 repita ui −1 M (b − Ax), e = ku k, u = i = 1, u = , ρ = ei i i i i 5 ei 6 enquanto (ρ > ǫ)e(i < k) fa¸ ca −1 7 ui+1 = M (Aui ) 8 para j = 1, . . . , i fa¸ ca 9 hji = uti+1 uj 10 ui+1 = ui+1 − hji uj 11 fim para 12 hi+1,i = kui+1 k2 ui+1 ui+1 = 13 hi+1,i 14 para j = 1, . . . , i − 1 fa¸ ca 15 temp = cj hji + sj hj+1,i 16 hj+1,i = −sj hji + cj hj+1,i 17 hji = temp 18 fim para 19 fim enqto 20 . . . 21 at´ e (ρ < ǫ)ou(l ≥ lmax) ; Algoritmo 7: GC - Precondicionado 1 Dados A, b, N max, tol, x0 = 0 −1 2 r0 = b v0 =M b, y =M −1 r T 3 δnovo = y r, δ0 = δnovo , j = 0 2 4 enquanto (j < N max)e(δnovo > tol δ0 ) fa¸ ca 5 pj = Avj δnovo α= t vj pj 6 7 xj+1 = xj + αvj 8 rj+1 = rj − αpj y = M −1 r 9 10 δvelho = δnovo 11 δnovo = y T r δnovo β= 12 δvelho 13 vj+1 = rj+1 + βvj 14 j =j+1 15 fim enqto Nesta se¸ca˜o s˜ao apresentados os dois precondicionadores implementados nesse trabalho. Observa-se que ambos s˜ao baseados no algoritmo de Elimina¸ca˜o de Gauss, descrito.

(37) 3.2 Precondicionadores. 36. na Se¸ca˜o 3.1. Uns dos precondicionadores mais referenciados na literatura s˜ao os baseados na Fatora¸ca˜o LU incompleta (ILU), onde ´e realizada a fatora¸c˜ao LU, por´em um n´ıvel de preenchimento p ´e definido a fim de reduzir a troca de elementos nulos por elementos n˜ao nulos. Para a constru¸ca˜o desse tipo de precondicionamento s˜ao utilizadas as opera¸co˜es usuais de fatoriza¸ca˜o onde os la¸cos controlados pelos ´ındices i (linha), j (coluna) e k (etapa da fatora¸ca˜o) s˜ao determinantes para o desempenho do precondicionador. Por exemplo, trabalhando com uma estrutura de dados para armazenamento da matriz de forma otimizada por linhas, CSR, descrita no Cap´ıtulo 2, a implementa¸ca˜o do Algoritmo 3 k, i, j, que ´e base para o ILU (0) e o ILU (p), ´e dificultada devido `a sequˆencia de la¸cos, onerando consequentemente o seu tempo de execu¸ca˜o. No Algoritmo 3 em cada passo k devem ser modificadas todas as linhas restantes, desde k + 1 at´e n. No entanto, se a ordem dos ´ındices for alterada de forma a manter a sequˆencia de la¸cos, i, k, j, cada passo i substitui os valores dos elementos da linha i da matriz de coeficientes pelos fatores triangulares L e U (SAAD, 2003). Os Algoritmos 8 e 9 descrevem os precondicionadores implementados. Algoritmo 8: ILU(0) 1 para i = 2, . . . , n fa¸ ca 2 para k = 1, . . . , i − 1 fa¸ ca 3 se (i, k) ∈ N Z ent˜ ao aik aik = 4 akk 5 fim se 6 para j = k + 1, . . . , n fa¸ ca 7 se (i, j) ∈ N Z ent˜ ao 8 aij = aij − (aik ∗ akj ) 9 fim se 10 fim para 11 fim para 12 fim para. O precondicionador ILU (0) (p = 0 indica que n˜ao haver´a preenchimento em nenhuma etapa da fatora¸ca˜o) ´e descrito pelo Algoritmo 8. Nota-se que o fato de n˜ao permitir preenchimentos faz com que o algoritmo s´o trabalhe com os elementos n˜ao nulos (linha 3 e 7, Algoritmo 8), sendo portanto percept´ıvel que os valores de aik e aij s˜ao sempre diferentes de zero. O valor p 6= 0 no precondicionador ILU (p) determina o n´ıvel p no qual o preenchi-.

(38) 3.2 Precondicionadores. 37. Algoritmo 9: ILU(p) 1 para ∀aij 6= 0 fa¸ ca 2 Levij = 0 3 fim para 4 para i = 2, . . . , n fa¸ ca 5 para k = 1, . . . , i − 1 fa¸ ca 6 se Levij ≤ p ent˜ ao aik aik = 7 akk 8 fim se 9 para j = k + 1, . . . , n fa¸ ca 10 aij = aij − (aik ∗ akj ) 11 Levij = min{Levij , Levik + Levkj + 1} 12 fim para 13 fim para 14 se Levij > p ent˜ ao 15 Levij = 0 16 fim se 17 fim para mento deve ser interrompido. Logo se p = 1 haver´a preenchimentos at´e o primeiro n´ıvel da fatora¸ca˜o LU e assim por diante. O Algoritmo 9 apresenta os passos desse algoritmo, que ´e semelhante ao Algoritmo 8. No entanto no Algoritmo 9 ´e introduzido o Levij que indica o n´ıvel de preenchimento de cada elemento aij da matriz, sendo atribu´ıdo Levij = 0 para os aij 6= 0 e Levij = ∞ para aij = 0 (SAAD, 2003)..

(39) 4. Algoritmos Heur´ısticos para Minimiza¸ c˜ ao de Largura de Banda e Redu¸c˜ ao de Envelope. Neste cap´ıtulo s˜ao apresentados os algoritmos de reordenamento de matrizes implementados neste trabalho e algumas propostas de melhorias, visando menor tempo de execu¸ca˜o e melhor qualidade de solu¸ca˜o. Podemos dizer que os algoritmos de reordenamento de matrizes em geral, possuem como entrada, um grafo G(V, E) e como sa´ıda, uma numera¸ca˜o (rotula¸ca˜o) dos v´ertices de G. Tamb´em definimos OrdenarG como uma fun¸ca˜o que ordena os v´ertices do grafo −−→ em ordem crescente de graus, Adj(v) o conjunto de v´ertices adjacentes ao v´ertice v e as fun¸co˜es Fechar (x), Aberto (x) e w(x) est˜ao definidas no Cap´ıtulo 2. Dois dos algoritmos descritos nesse trabalho, RCM e GPS (Algoritmos 11 e 15) utilizam v´ertices iniciais com altas excentricidades. Com o objetivo de encontrar v´ertices pseudo-perif´ericos George e Liu (1979) propuseram uma heur´ıstica baseada na estrutura de n´ıvel de um v´ertice de grau m´ınimo. Este algoritmo realiza compara¸co˜es entre os valores da excentricidade para cada nova estrutura de n´ıvel dos v´ertices do u ´ltimo n´ıvel, ordenados em ordem crescente de graus, determinando os v´ertices que est˜ao mais distantes entre si. O Algoritmo 10 descreve a escolha dos v´ertices pseudo-perif´ericos. A Figura 8 apresenta os principais passos do Algoritmo 10. Na Figura 8(a) ´e apresentada a estrutura de n´ıvel do v´ertice de menor grau, linhas 1 e 3 do Algoritmo 10. Em seguida o ultimo n´ıvel Nk dessa estrutura ´e ordenado em ordem crescente de graus (Figura 8(b)) e uma nova estrutura de n´ıvel ´e criada para o elemento de menor grau pertence a Nk . Como n˜ao houve um aumento da excentricidade e uma diminui¸ca˜o do valor de w, ent˜ao tomamos o pr´oximo elemento de menor grau e novamente criamos a estrutura de n´ıvel (ver Figuras 8(c) e 8(d)). Como foi criada a estrutura de n´ıvel de todos os v´ertices de Nk e n˜ao houve aumento da excentriciadade e diminui¸ca˜o no valor de w o algoritmo ´e finalizado e retorna o v´ertice 9. 38.

(40) 4.1 O Algoritmo Reverse Cuthill Mckee (RCM). (a) Excentricidade = 5 e w = 3. 39. (b) Nk ordenado. (c) Excentricidade = 5 e w = 3 (d) Excentricidade = 5 e w = 3. Figura 8: Principais passos do Algoritmo 10 Algoritmo 10: Escolha de v´ ertice pseudo-perif´ erico 1 Escolha um v´ ertice (x) de grau m´ınimo. 2 i = 0 3 Gerar a estrutura de n´ ıvel de x. 4 OrdenarG(Nk ). 5 enquanto |Nk | 6= ∅ fa¸ ca 6 Gerar a estrutura de n´ıvel de Nk [i]. 7 se excentricidade(Nk [i]) > excentricidade(x) e w(Nk [i]) < w(x) ent˜ ao 8 x = Nk [i] 9 i=1 10 fim se 11 fim enqto 12 x ´ e o v´ertice pseudo-perif´erico.. 4.1. O Algoritmo Reverse Cuthill Mckee (RCM). O m´etodo heur´ıstico mais referenciado na literatura para resolu¸ca˜o do problema de minimiza¸ca˜o de largura de banda e redu¸ca˜o de envelope, tamb´em conhecido por proporcionar boa qualidade de solu¸ca˜o e baixo tempo de execu¸ca˜o ´e o Cuthill Mckee (CM), (CUTHILL; MCKEE, 1969).. Este m´etodo utiliza uma busca em largura para percor-. rer os v´ertices do grafo partindo de um v´ertice inicial e caminhando pelas vizinhan¸cas dos v´ertices em ordem crescente de graus, visitando portanto todos os v´ertices do grafo (opera¸ca˜o descrita nas linhas 2 a 7 do Algoritmo 11)..

(41) 4.1 O Algoritmo Reverse Cuthill Mckee (RCM). 40. A ordem de visita corresponde `a permuta¸ca˜o que dever´a ser aplicada nas linhas e colunas da matriz ao final do procedimento. Pouco tempo depois, George (1971) observou que, o envelope da matriz podia ser reduzido sem afetar a largura de banda, atrav´es da invers˜ao da ordem de numera¸ca˜o dos v´ertices obtida pelo CM (linha 9 do Algoritmo 11). Assim foi definido o algoritmo Reverse Cuthill Mckee (RCM). Anos depois, Liu e Sherman (1976) provaram matematicamente a constata¸ca˜o de George (1971). Algoritmo 11: RCM 1 Encontrar um v´ ertice inicial x. 2 Colocar na fila todos os v´ ertices pertencentes ao conjunto Adj(x), em ordem crescente de seus graus. 3 Fechar(x) 4 para i = 2, . . . , |V | fa¸ ca Obter x da fila //Primeiro elemento da fila ainda n˜ao fechado. 5 6 Colocar na fila todos os v´ertices pertencentes ao conjunto Adj(x) em ordem crescente de graus, que ainda n˜ao foram visitados. 7 Fechar(x) 8 fim para 9 Inverter a numera¸ ca˜o final.. Os bons resultados apresentados pelo RCM motivaram a partir de ent˜ao a representa¸ca˜o do problema de reordenamento de matrizes por grafos (MENEZES, 1995). Neste contexto, a heur´ıstica RCM ´e apresentada no Algoritmo 11. O passo 1 do algoritmo consiste na procura por um v´ertice inicial (linha 1). A escolha desse v´ertice est´a intimamente ligada a qualidade da solu¸ca˜o. Alguns estudos nesta dire¸ca˜o indicam que resultados com boa qualidade de solu¸ca˜o est˜ao ligados a v´ertices com altas excentricidades. Assim, a primeira abordagem realizada por Cuthill e McKee (1969) propˆos iniciar a busca do v´ertice inicial por cada v´ertice com graus variando entre Dmin ≤ D < Dmin + Dmax , onde 2 Dmin ´e o menor grau do grafo e Dmax , o maior. Essa abordagem torna a heur´ıstica RCM lenta, visto que muitos v´ertices podem ter graus variando em D. Neste trabalho o Algoritmo 11 (RCM) foi implementado considerando o Algoritmo 10 como op¸ca˜o para escolha do v´ertice inicial. A seguir s˜ao apresentados os principais passos do Algoritmo RCM:.

(42) 4.1 O Algoritmo Reverse Cuthill Mckee (RCM). Primeira etapa: Escolhendo o v´ertice inicial. Matriz original env = 32 e lb = 8. Segunda etapa: Iniciando a busca em largura. Terceira etapa: Executando a busca em largura, fechando o v´ertice 9. Quarta etapa: Executando a busca em largura, fechando o v´ertice 4. 41.

(43) 4.1 O Algoritmo Reverse Cuthill Mckee (RCM). Quinta etapa: Executando a busca em largura, fechando o v´ertice 1. Sexta etapa: Executando a busca em largura, fechando o v´ertice 3. S´etima etapa: Executando a busca em largura, fechando o v´ertice 6. Oitava etapa: Executando a busca em largura, fechando o v´ertice 5. 42.

(44) 4.1 O Algoritmo Reverse Cuthill Mckee (RCM). 43. Nona etapa: Executando a busca em largura, fechando o v´ertice 2. D´ecima etapa: Executando a busca em largura, fechando o v´ertice 8. D´ecima primeira etapa: Executando a busca em largura, fechando o v´ertice 7. D´ecima segunda etapa: Executando a busca em largura, fechando o v´ertice 10. Grafo rerrotulado e Matriz reordenada env = 19 e lb = 3.

(45) 4.1 O Algoritmo Reverse Cuthill Mckee (RCM). 44. O RCM ao executar a busca em largura percorrendo os v´ertices pelas adjacˆencias, tende a aproximar os r´otulos dos v´ertices, pois como os v´ertices adjacentes est˜ao mais pr´oximos no grafo a tendˆencia ´e que eles sejam rerrotulados em sequˆencia. Isso significa que os ´ındices das colunas na matriz, para uma dada linha, estar˜ao mais pr´oximos. A ideia de realizar a busca em ordem crescente de graus, possibilita que os v´ertices, que se encontram na fila, n˜ao distanciam muito dos seus adjacentes. O ideal ´e que a Fila n˜ao fique com muitos elementos. A Figura 9 apresenta um exemplo dessa explica¸ca˜o. Nas Figuras 9(c), 9(d) e 9(e) aplicamos o Algoritmo RCM considerando a ordem decrescente de graus. Observe que ao fechar o v´ertice 1 (maior grau) a fila ficou com muitos elementos, isso ocasionou um afastamento do v´ertice 3 em rela¸ca˜o ao v´ertice 9, que entrar´a no final da fila. Nas Figuras 9(f), 9(g) e 9(h) o Algoritmo RCM ´e aplicado considerando a ordem crescente de graus. Nota-se que a redu¸ca˜o no tamanho do envelope foi maior.. (a) Grafo original. (b) Matriz original. (c) RCM com maior grau. (d) RCM com maior grau. (e) Matriz Reordenada: lb() = 7 e env() = 16. (f) RCM com menor grau. (g) RCM com menor grau. (h) Matriz Reordenada: lb() = 7 e env() = 11. Figura 9: Exemplo de como funciona o Algoritmo RCM.

(46) 4.1 O Algoritmo Reverse Cuthill Mckee (RCM). 45. Com o objetivo de melhorar a qualidade da solu¸ca˜o e tentar diminuir o tempo de processamento propomos duas modifica¸co˜es para o Algoritmo 11, descritas nas Se¸co˜es 4.1.1 e 4.1.2.. 4.1.1. Proposta 1 para o Algoritmo RCM (RCM-P1). Considerando o algoritmo de Dijkstra (CORMEN et al., 2001) (Algoritmo 12) para a obten¸ca˜o do v´ertice inicial, ao inv´es do Algoritmo 10 definimos um novo algoritmo denominado RCM-P1 (Algoritmo 11). A u ´nica modifica¸ca˜o em rela¸ca˜o ao Algoritmo 11 se observa na linha 1, onde a busca pelo v´ertice inicial ´e um v´ertice perif´erico (Algoritmo 13). Vale ressaltar que para encontrar o v´ertice perif´erico o Algoritmo 12 ´e executado |V | vezes, onde em cada uma das vezes a origem necess´aria a sua execu¸ca˜o ´e um v´ertice distinto do grafo. Ao executar o algoritmo para um determinado v´ertice a excentricidade do v´ertice ´e armazenada. Por fim, todos os valores das excentricidades armazenadas s˜ao comparados e o v´ertice que obtiver o maior valor ´e definido como v´ertice perif´erico. Algoritmo 12: Dijkstra 1 vini //V´ ertice inicial 2 d(vini , vini ) = 0 //Distˆ ancia do v´ertice inicial para ele mesmo ´e zero 3 d(vini , i) = infinito, i, i ∈ V − vini 4 fechado = ∅ //Conjunto de v´ ertices fechados 5 aberto = v //Conjunto de v´ ertices abertos 6 anterior(i) = 0, ∀i, i ∈ V 7 enquanto (aberto 6= ∅) fa¸ ca 8 k = v´ertice pertencente S a aberto, mais pr´oximo do v´ertice inicial 9 fechado = fechado k 10 aberto = aberto - k 11 para cada vizinho i de k que est´ a em aberto fa¸ ca 12 custo = min{d(vini , i), d(vini , k) + c(k, i)} 13 se (custo < d(vini , i)) ent˜ ao 14 d(vini , i) = custo 15 anterior(i) = k 16 fim se 17 fim para 18 fim enqto. 4.1.2. Proposta 2 para o Algoritmo RCM (RCM-P2). Utilizando a estrutura de n´ıvel do v´ertice pseudo-perif´erico obtida pela heur´ıstica proposta por George e Liu (1979) e efetuando a renumera¸ca˜o dos v´ertices a partir de suas.

Referências

Documentos relacionados

Frente ao exposto, este trabalho teve por objetivo avaliar discentes da disciplina de Matemática Discreta nos conteúdos de lógica formal, teoria dos conjuntos e

Deve-se acessar no CAPG, Coordenadorias &gt; Processo de Inscrição &gt; “Selecionar Área/Linha para Inscrição” e indicar as áreas de concentração e linhas de pesquisa nas

(grifos nossos). b) Em observância ao princípio da impessoalidade, a Administração não pode atuar com vistas a prejudicar ou beneficiar pessoas determinadas, vez que é

Nas fraturas subtrocantéricas instáveis, como Seinsheimer IV-V com fragmentos que não podem ser reduzidos pelo método fe- chado em mesa de tração, a parte lateral da porção

Segundo Éric Laurent, a psicose ordinária se caracteriza pela não resposta aos significantes-mestres tradicionais, manifestando o fim do poder do Nome-do-Pai como

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on

Os dados referentes aos sentimentos dos acadêmicos de enfermagem durante a realização do banho de leito, a preparação destes para a realização, a atribuição