Brenno Albino Lugon. Algoritmos de reordenamento de matrizes esparsas aplicados a precondicionadores ILU(p)

Tamanho: px
Começar a partir da página:

Download "Brenno Albino Lugon. Algoritmos de reordenamento de matrizes esparsas aplicados a precondicionadores ILU(p)"

Transcrição

1 Brenno Albino Lugon Algoritmos de reordenamento de matrizes esparsas aplicados a precondicionadores ILU(p) Vitória - ES 2013

2

3 Brenno Albino Lugon Algoritmos de reordenamento de matrizes esparsas aplicados a precondicionadores ILU(p) Trabalho de conclusão de curso apresentado a Universidade Federal do Espírito Santo, para a obtenção de Título de Graduação, na Área de Ciência da Computação. Orientadora: Prof a Lucia Catabriga Vitória - ES 2013

4 Lugon, Brenno A. Algoritmos de reordenamento de matrizes esparsas aplicados a precondicionadores ILU(p) 63 páginas Trabalho de conclusão de curso - Universidade Federal do Espírito Santo. Centro Tecnológico. Departamento de Informática. 1. reordenamentos 2. matrizes esparsas 3. precondicionadores I. Universidade Federal do Espírito Santo. Centro Tecnológico. Departamento de Informática. Comissão Julgadora: Prof a Lucia Catabriga Orientadora Prof a Maria Cristina Rangel Prof a Andrea Maria Pedrosa Valli

5 Epígrafe Passion. It lies in all of us. Sleeping, waiting, and though unwanted, unbidden. It will stir, open its jaws, and howl. It speaks to us, guides us. Passion rules us all. And we obey. What other choice do we have? Passion is the source of our finest moments. The joy of love, the clarity of hatred, and the ecstasy of grief. It hurts sometimes more than we can bear. If we could live without passion, maybe we d know some kind of peace. But we would be hollow. Empty rooms, shuttered and dank. Without passion, we d be truly dead. Angelus S02E17 "Passion" Buffy the Vampire Slayer

6 Agradecimentos A Deus. Aos meus pais, Sérgio e Gezella, por todo o apoio. Ao meu irmão Ryann. E meus cachorros Boby e Meg. A todos da minha família que são presentes. Ao meu namorado Robson, que há cinco anos me completa. Aos meus verdadeiros amigos. Em especial a minha orientadora Lucia, por toda a ajuda, orientação e paciência.

7 Resumo O uso de precondicionadores é uma técnica eficiente para acelerar a convergência de métodos iterativos não estacionários. Nesse contexto, podemos reduzir o tempo de execução desses métodos aplicando uma simples troca de linhas e colunas em uma matriz esparsa. Esse processo, chamado de reordenamento, visa reduzir o número de operações com ponto flutuante durante a montagem das matrizes precondicionadoras. Este trabalho faz um estudo comparativo dos algoritmos de reordenamento: Sloan, Reverse Cuthill Mckee, Espectral, Nested Dissection e Approximate Minimum Degree, avaliando o impacto que causam quando utilizamos o método de resolução GMRES com o precondicionador baseado na fatoração LU incompleta, ILU(p). Palavras-chave: matrizes esparsas, reordenamento, precondicionadores, GMRES

8 Abstract The use of preconditioning is an efficient technique to accelerate the convergence of nonstationary iterative methods. In this context, we can reduce runtime of these methods by applying a simple exchange of rows and columns in a sparse matrix. This process, called reordering, aims to reduce the number of floating point operations during the preconditioner matrices computation. This work makes a comparative study of reordering algorithms: Sloan, Reverse Cuthill Mckee, Spectral, Nested Dissection and Approximate Minimum Degree, evaluating the impact they have when using the solver method GMRES applied to a preconditioner based on incomplete LU factorization, ILU(p). Keywords: sparse matrix, reordering, ILU preconditioner, GMRES

9 Lista de Figuras 1.1 Representações da matriz net Armazenamento CSR Configurações da matriz A e fill-in Grafo, Matriz e Reordenamento Exemplo de execução do Algoritmo Terminologia do algoritmo Sloan Grafo rerrotulado - RCM Grafo rerrotulado - Espectral Bisseção de G: Vértices separadores S e partições A e B Exemplo de Grafo de Eliminação Funcionamento dos algoritmos de Grau Mínimo rail_ Esparsidade rail_ Preenchimento rail_ Iterações rail_ Tempo de CPU aft01 - Esparsidade aft01 - Preenchimento aft01 - Iterações

10 5.8 aft01 - Tempo de CPU F EM_3D_thermal1 - Esparsidade F EM_3D_thermal1 - Preenchimento F EM_3D_thermal1 - Iterações F EM_3D_thermal1 - Tempo de CPU thermomech_t K - Esparsidade thermomech_t K - Preenchimento thermomech_t K - Iterações thermomech_t K - Tempo de CPU Baumann - Esparsidade Baumann - Preenchimento Baumann - Iterações Baumann - Tempo de CPU Dubcova2 - Esparsidade Dubcova2 - Preenchimento Dubcova2 - Iterações Dubcova2 - Tempo de CPU bones01 - Esparsidade bones01 - Preenchimento bones01 - Iterações bones01 - Tempo de CPU

11 Lista de Tabelas 4.1 Exemplo de execução - RCM Exemplo de execução - Espectral Características das matrizes testadas Medições - rail_ Medições - aft Medições - F EM_3D_thermal Medições - thermomech_t K Medições - Baumann Medições - Dubcova Medições - bones Análise Final

12 Sumário 1 Introdução 1 2 Sistemas Lineares Resolução de Sistemas Lineares Método do Resíduo Mínimo Generalizado (GMRES) Precondicionadores Fatoração LU incompleta (ILU) Matrizes Esparsas Armazenamento Otimizado Métricas de Minimização Fill-in Largura de Banda Envelope Grafos Permutação e Reordenamento Algoritmos de Reordenamento Sloan Reverse Cuthill McKee (RCM) Espectral

13 4.4 Nested Dissection (ND) Approximate Minimum Degree (AMD) Testes Computacionais Matriz rail_ Matriz aft Matriz F EM_3D_thermal Matriz thermomech_t K Matriz Baumann Matriz Dubcova Matriz bones Conclusões 53 Referências Bibliográficas 56 A Implementações CSR 60

14

15 Capítulo 1 Introdução No processo de solução numérica de muitas aplicações é comum recairmos na necessidade de manipular matrizes de grande porte vinculadas a sistemas lineares. Tais aplicações possuem milhares de variáveis, mas cada variável individual depende apenas de algumas poucas, e por isso a maior parte dos coeficientes dessas matrizes são nulos. Dinâmicas de fluidos computacionais, otimização, simulação de problemas físicos e químicos, grafos, sistemas eletromagnéticos são exemplos de aplicações cujos processos de solução recaem na necessidade de manipular matrizes esparsas. Na Figura 1.1 podemos observar representações provenientes de um problema de otimização. A matriz net125 de Alexander Andrianov, SAS Institute Inc. (Timothy A. Davis, 2013a) representada como um grafo não-direcionado (Figura 1.1a) e como uma matriz esparsa (Figura 1.1b). O uso de estruturas de dados otimizadas para armazenar matrizes esparsas visa reduzir a quantidade de memória usada e a quantidade de operações de ponto flutuante. Tipos de armazenamentos como o Compressed Sparse Row (CSR) ou Compressed Sparse Column (CSC) são exemplos de estruturas eficientes onde se armazenam apenas os elementos não nulos da matriz e consequentemente melhoram o desempenho dos algoritmos que necessitam executar operações com matrizes esparsas.

16 Capítulo 1. Introdução 2 (a) Grafo não-direcionado (b) Matriz esparsa Figura 1.1: Representações da matriz net125 Para solução de sistemas lineares de grande porte, Saad (2003) sugere a utilização de métodos iterativos baseados em projeções de subespaços de Krylov por suas boas propriedades numéricas e computacionais. Além disso, técnicas de precondicionamento baseadas na decomposição LU incompleta (Benzi et al., 1999) (Camata et al., 2012) aceleram a convergência e consequentemente melhoram a eficiência desses métodos na obtenção da solução. Neste trabalho, iremos estudar classes de algoritmos de reordenamento que têm como objetivo a redução do preenchimento (ou fill-in) que ocorre ao utilizarmos precondicionador baseado na decomposição LU incompleta. Assim, diminui-se o número de operações com ponto flutuante, melhorando o tempo de execução dos métodos iterativos não estacionários. Por fim, iremos comparar a eficiência de cada método quanto ao tempo de execução, calculando o tempo gasto para resolver o sistema linear sem nenhum pré-processamento, e o tempo para resolvê-lo após o pré-processamento, avaliando os resultados de acordo com algumas métricas como Envelope, Largura de Banda e quantidade de preenchimento. Poucos estudos têm sido feitos atualmente com relação a algoritmos de reordenamento. Artigos como Sloan (1986) e Sloan (1989), descrevem um algoritmo de reordena-

17 3 mento que parece ter sido pouco estudado, sem muitas outras referências na literatura. Além disso, esses artigos possuem implementações de códigos antigos e pouco estruturados, na linguagem de programação FORTRAN. Dos artigos referenciados, a maior parte se preocupa em estudar algoritmos individualmente, de forma que poucos estudos se preocupam em compará-los. Uma exceção é o estudo feito por Ghidetti (2011). Nele, a autora compara algoritmos de reordenamentos também estudados neste trabalho, como RCM e Espectral, além de outra abordagem do algoritmo Nested Dissection. Carmo (2005) também compara a influência de algoritmos de reordenamento como o RCM e AMD aplicados em matrizes esparsas no desempenho do método Cholesky controlado gradiente conjugado. Os capítulos estão divididos de forma a facilitar a compreensão do leitor. No segundo capítulo, revisa-se alguns conceitos básicos sobre sistemas de equações lineares e sobre métodos de resolução desses sistemas. No terceiro capítulo, apresenta-se matrizes esparsas e as vantagens computacionais que podemos obter ao armazená-las adequadamente. No quarto capítulo, descreve-se sobre os algoritmos de reordenamento escolhidos para estudo, com uma breve explicação do funcionamento de cada um deles. No quinto capítulo, expõe-se os resultados obtidos através de testes computacionais, em uma análise detalhada de cada uma das matrizes testadas. No sexto capítulo, apresenta-se as conclusões e considerações finais, sintetizando todos os resultados obtidos. Por fim, o Apêndice A apresenta pseudocódigos em formato CSR de alguns algoritmos utilizados neste trabalho.

18

19 Capítulo 2 Sistemas Lineares Seja uma equação linear de n incógnitas definida como a i1 x 1 + a i2 x a in x n = b i, um sistema linear é um conjunto de m equações lineares da forma a 11 x 1 + a 12 x a 1n x n = b 1 a 21 x 1 + a 22 x a 2n x n = b 2. a m1 x 1 + a m2 x a mn x n = b m onde a ij, b i, para 1 i m, 1 j n, são números reais (ou complexos) chamados de coeficientes do sistema. Assim, podemos representar um sistema linear na forma matricial Ax = b a 11 a 12 a 1n a 21 a 22 a 2n.... x 1 x 2. = b 1 b 2. a m1 a m2 a mn x n b m A matriz A é chamada de matriz do sistema, o vetor coluna x são as incógnitas do sistema e o vetor coluna b é o vetor de termos independentes (Boldrini et al., 1986).

20 Capítulo 2. Sistemas Lineares 6 Seja A uma matriz. A é dita quadrada se possui o mesmo número de linhas e colunas (m = n). A é diagonal se a ij = 0, para i j. A matriz transposta de A, denotada por A T, é uma matriz onde a ij = a ji. A é chamada de matriz triangular superior (U) se a ij = 0 para i > j e, matriz triangular inferior (L) se a ij = 0 para i < j. A é dita identidade se a ij = 1 quando i = j e a ij = 0 quando i j. A é simétrica se A = A T. A é estruturalmente simétrica se, quando a ij 0 então a ji 0, mas não necessariamente a ij = a ji. Seja um vetor v, v 0, e um escalar λ R tais que Av = λv, λ é um autovalor de A e v um autovetor de A associado a λ (Boldrini et al., 1986) (Saad, 2003). 2.1 Resolução de Sistemas Lineares A solução de um sistema linear pode ser encontrada através de métodos Diretos ou métodos Iterativos. Os métodos Diretos são capazes de encontrar a solução exata, sujeita a erros de arredondamento, em um número finito de passos. Apesar disso, não são eficazes quando aplicados em matrizes esparsas de grande porte. O processo de encontrar a solução de uma matriz triangular superior ou inferior, baseado na Eliminação de Gauss, é um exemplo de método Direto. Os cálculos envolvidos nos Algoritmos 1 e 2 são triviais, sendo feitos através de substituições sucessivas (resolve o sistema Lx = c) ou retroativas (resolve o sistema Ux = d). Algoritmo 1: Substituição Sucessiva 1 x 1 = b 1 /a 11 2 soma = 0 3 para i = 2,...,n faça 4 soma = b i 5 para j = 1,...,i faça 6 soma = soma a ij x j 7 fim 8 x i = soma/a ii 9 fim

21 Resolução de Sistemas Lineares Algoritmo 2: Substituição Retroativa 1 x n = b n /a nn 2 soma = 0 3 para i = n 1,...,1 faça 4 soma = b i 5 para j = i + 1,...,n faça 6 soma = soma a ij x j 7 fim 8 x i = soma/a ii 9 fim Já os métodos Iterativos são técnicas mais eficazes para resolver sistemas lineares de grandes porte. Essa classe de métodos depende de uma tolerância pré-fixada e proporcionam uma boa qualidade de solução quanto a erros de arredondamento, uma vez que não alteram a matriz A e o vetor b no processo iterativo. (Saad, 2003). Os métodos Iterativos dividem-se ainda em estacionários e não-estacionários. Os estacionários possuem uma matriz de iteração constante, enquanto que os não-estacionários procuram obter em cada iteração a melhor aproximação utilizando informações das iterações anteriores. Eles se baseiam em projeções de subespaços de Krylov, formados a partir de K m (A,r 0 ) = span { r 0,Ar 0,A 2 r 0,...,A m 1 r 0 } (2.1) onde m é a dimensão do subespaço, r 0 = b Ax 0 e span { r 0,Ar 0,A 2 r 0,...,A m 1 r 0 } representa a base geradora do subespaço vetorial K m. Esses métodos têm como objetivo transformar o sistema Ax = b em um problema de minimização do resíduo r = b Ax, para x K m Método do Resíduo Mínimo Generalizado (GMRES) O método do Resíduo Mínimo Generalizado (GMRES) desenvolvido por Saad and Schultz (1986) é um método iterativo não-estacionário utilizado para determinar a solução aproximada de um sistema linear da forma Ax = b.

22 Capítulo 2. Sistemas Lineares 8 O algoritmo usa o processo de Arnoldi para calcular uma base ortonormal do subespaço de Krylov. A base ortonormal x k é dada por x 0 + V y k, onde V é a matriz cujas colunas são os vetores v k calculados pelo processo de Arnoldi. Já o vetor y k é obtido pela solução do sistema H k y k = β k e 1, onde H k é uma matriz superior chamada Hessenberg, cujos elementos são calculados durante a ortogonalização do processo de Arnoldi, β k = r 0 2, r 0 = b Ax 0 e e 1 é o vetor canônico de dimensão k (Gonçalez, 2005). A fim de reduzir o número de operações de ponto flutuante e o armazenamento, o algoritmo pode ser implementado considerando um número fixo de elementos na base. Este procedimento é conhecido como reinicialização (ou restart) (Saad, 2003). A cada k iterações é gerado um novo espaço vetorial de Krylov com k elementos na base. Para valores grandes de k, o método fica mais robusto e converge com menos iterações, enquanto que para valores pequenos de k, o método necessita de mais iterações, porém cada iteração é menos custosa. 2.2 Precondicionadores Com objetivo de acelerar a convergência dos métodos iterativos baseados em espaços de Krylov, o precondicionamento consiste em encontrar uma matriz M que seja simples de construir e que reduza o número de iterações ao resolver um sistema linear. Um bom precondicionador M deve ser uma aproximação de A que possa ser facilmente invertível, de forma que utilizar M 1 A ou AM 1, ao invés de A nas operações matriz vetor, melhore a convergência do método iterativo. Para o precondicionamento do método GMRES consideramos neste trabalho o precondicionador à esquerda. Algebricamente, considerando o sistema Ax = b e aplicando o precondicionador, temos o sistema equivalente M 1 Ax = M 1 b. No processo iterativo, devemos agora adicionar a matriz precondicionada aos produtos matriz vetor. Portanto, ao invés de resolvermos v = Ax, iremos resolver v = M 1 Ax.

23 Precondicionadores Esta operação é feita em duas etapas: 1. Calcula-se p = Ax 2. Calcula-se v = M 1 p, resolvendo o sistema Mv = p. Porém a matriz M é decomposta em LU pela fatoração LU incompleta (seção 2.2.1). Logo, resolver o sistema Mv = p equivale a resolver o sistema LUv = p. Essa operação também é feita em duas etapas: 1. Seja Uv = x, calcula-se Lx = p por substituições sucessivas (Algoritmo 1) 2. Calcula-se U v = x por substituições retroativas (Algoritmo 2) Fatoração LU incompleta (ILU) Dada uma matriz quadrada A, podemos decompô-la em uma matriz triangular superior U e uma matriz triangular inferior L, onde A = LU. Este método é conhecido como fatoração LU. Porém, construir um precondicionador M baseado na fatoração LU completa, de uma matriz esparsa A, resultaria no preenchimento (fill-in) de muitas posições originalmente nulas, isto é, muitos elementos nulos em A seriam não nulos em M. Assim, considerando que um precondicionador precisa ser somente uma boa aproximação de A, podemos utilizar uma fatoração aproximada M = L U A chamada de fatoração incompleta. Algoritmo 3: Fatoração ILU(0) 1 para i = 2,...,n faça 2 para k = 1,...,i 1 e a ik 0 faça 3 a ik = a ik /a kk 4 para j = k + 1,...,n faça 5 a ij = a ij (a ik * a kj ) 6 fim 7 fim 8 fim

24 Capítulo 2. Sistemas Lineares 10 O precondicionador ILU(0), descrito pelo Algoritmo 3, não admite preenchimentos em nenhuma etapa da fatoração. Portanto L e U possuem o mesmo padrão de esparsidade e a mesma quantidade de elementos não nulos de A. Diferente do ILU(0) que somente permite computar a fatoração de elementos não nulos, o ILU(p), descrito pelo Algoritmo 4, admite preenchimento até o nível p. Quando p = n 1 temos a fatoração LU completa. Além disso, a fatoração é menos exata e mais rápida quanto menor o valor de p. Em termos de programação, é criada uma matriz auxiliar lev que é inicializada no algoritmo como: { 0 aij 0 lev ij = n 1 caso contr ario Algoritmo 4: Fatoração ILU(p) 1 para todo a ij 0 faça 2 lev ij = 0 3 fim 4 para i = 2,...,n faça 5 para k = 1,...,i 1 e a ik 0 faça 6 se lev ij p então 7 a ik = a ik /a kk 8 fim 9 para j = k + 1,...,n faça 10 a ij = a ij (a ik * a kj ) 11 lev ij = min{lev ij,lev ik + lev kj + 1} 12 fim 13 fim 14 se lev ij > p então 15 a ij = 0 16 fim 17 fim O algoritmo é similar ao ILU(0), porém a matriz auxiliar lev controla o nível de preenchimento de cada elemento (linha 11 do Algoritmo 4). No final do algoritmo, na linha 14, se o nível de preenchimento do elemento ij for maior do que o p dado como entrada, esse elemento é zerado.

25 Capítulo 3 Matrizes Esparsas (Stoer and Bulirsch, 2002) define uma matriz esparsa como uma matriz onde a maioria de seus elementos são nulos. (Saad, 2003) contesta que, na verdade, uma matriz é dita esparsa quando podemos tirar vantagens da grande quantidade de zeros, uma vez que estes não precisam ser armazenados. Para isso, é preciso definir estruturas de dados adequadas para uma implementação eficiente de métodos de solução numéricos, sejam eles diretos ou iterativos. 3.1 Armazenamento Otimizado Uma forma de reduzir os gastos computacionais de operações em matrizes esparsas é otimizar a forma de armazenamento dessa matriz. Neste trabalho utiliza-se o método chamado Compress Sparse Row (CSR). No armazenamento CSR tradicional substitui-se o armazenamento denso da matriz A, por três vetores auxiliares: AA, JA e IA. O vetor AA armazena todas as contribuições não nulas da matriz A linha a linha. O vetor JA armazena a coluna correspondente que cada coeficiente não nulo ocuparia em A. Já o vetor IA diz a posição em AA do primeiro elemento não nulo de cada linha de A com seu último elemento sendo igual ao número de elementos não nulos acrescido de um.

26 Capítulo 3. Matrizes Esparsas 12 Figura 3.1: Armazenamento CSR 3.2 Métricas de Minimização Fill-in O processo de fatoração LU quando aplicado em uma matriz esparsa tende a preencher muitos elementos nulos, diminuindo consideravelmente o grau de esparsidade da matriz. Com isso, o tempo computacional para resolver o sistema por um método iterativo não-estacionário com precondicionador pode aumentar muito, uma vez que precisamos calcular os fatores L e U da matriz precondicionada M como visto na seção Várias heurísticas, baseadas simplesmente na troca de linhas e colunas, foram criadas para reduzir o preenchimento (ou fill-in) das matrizes. Algoritmos como o Nested Dissection ou de Grau Mínimo visam simplesmente reduzir o fill-in, enquanto que RCM, Sloan e Espectral tentam aproximar os elementos não-nulos da diagonal principal, o que consequentemente também causa redução do fill-in. (a) (b) (c) (d) Figura 3.2: A configuração da matriz em (a) causa muito preenchimento, representado por em (b). Em (c), a simples troca das linhas e colunas 1 e 5 de (a), reduz o preenchimento a zero na matriz em (d).

27 Métricas de Minimização Largura de Banda Seja A uma matriz estruturalmente simétrica, a largura de banda de A é definida como: lb(a) = max i=1,..,n {b i} b i = (i j) a ij 0, i = 1,...,n ou seja, a largura de banda pode ser definida como a maior distância entre o primeiro elemento não-nulo da linha i até a diagonal principal (Alan George, 1994). Exemplo: A = lb(a) = Envelope Seja A uma matriz estruturalmente simétrica, o envelope de A é definido como: env(a) = n i=1 b i Assim, podemos definir o envelope como a soma das distâncias entre o primeiro elemento não-nulo de cada linha i até a diagonal principal (Alan George, 1994).

28 Capítulo 3. Matrizes Esparsas 14 Exemplo: A = env(a) = Grafos Conceitos importantes em teoria de grafos são fundamentais para o entendimento deste trabalho e dos algoritmos estudados. Isto porque o problema de reordenamento de matrizes pode ser visto como um problema de rerrotulação em grafos. Seja G = (V,E) um grafo formado pelos vértices V = {v 1,v 2,v 3,...,v n } e um conjunto de arestas E = {e 1,e 2,e 3,...,e n }, dizemos que um vértice é adjacente a outro se há uma aresta que é incidente nesses dois vértices. O conjunto de vizinhos de um vértice consiste de todos os vértices adjacentes a ele. O número de vizinhos de v V (G) designa-se grau do vértice v, denotado por d G (v). Considere o subconjunto de vértices X = x 1,x 2,...,x n V (G) e suponha que a aresta x i x i+1 E(G) para todo i 1,2,...,k 1. Se os vértices de X são todos distintos, diz-se que X define um caminho. Um ciclo é um caminho com mesmo vértice final e inicial. Um grafo é dito conexo se possui um caminho entre qualquer par de vértices. Uma árvore é um grafo conexo sem ciclos. Definimos estrutura de nível EN(v) = N 1, N 2,...,N k uma árvore com níveis denotados por N 1, N 2,...,N k. Seja v,w V (G), denomina-se distância d(v,w) de um grafo como sendo o comprimento do menor caminho entre v e w. A excentricidade de um vértice v é a maior distância de v a todos os outros vértices de G. Definimos diâmetro de G como sendo a

29 Permutação e Reordenamento maior excentricidade do grafo G e o pseudo-diâmetro é uma excentricidade alta de G, porém não necessariamente a maior. Dado um grafo G, os vértices periféricos de G são vértices cuja excentricidade é igual ao diâmetro de G. Vértices com altas excentricidades, porém não necessariamente a maior definem os vértices pseudo-periféricos. Dados dois grafos H e G, diz-se que H é um subgrafo de G quando V (H) V (G) e E(H) E(G). Um grafo G = (V (G),E(G)) diz-se bipartido se seu conjunto de vértices admite uma partição em subconjuntos V 1 e V 2 tal que não existem arestas que unem dois vértices de V 1 ou V 2. Definimos como matriz de adjacência de um grafo G, a matriz A G = a ij, tal que { 1 se ij E(G) a ij = 0 caso contrário Por fim, a matriz Laplaciana L de um grafo G pode ser definida como L = D A, onde D é uma matriz diagonal contendo os graus de cada vértice v i do grafo G e A é a matriz de adjacência de G. Ou seja, grau(v i ) se i = j l ij = 1 se i j e v i é adjacente a v j 0 caso contrário 3.4 Permutação e Reordenamento Permutações de linhas e/ou colunas são operações muito utilizadas na manipulação de matrizes. A técnica consiste em multiplicar a matriz original A com uma matriz de permutação P, construída a partir da matriz identidade. Seja, por exemplo, A uma matriz 5 5. A matriz P correspondente a uma permutação das linhas 1 e 4 seria: P = Assim, a nova representação para o sistema linear é (P AP T )(P x) = P b.

30 Capítulo 3. Matrizes Esparsas 16 O processo de reordenamento de uma matriz tem forte relação com conceitos de grafos descritos na Seção 3.3, pois formam a base para a maioria dos algoritmos de reordenamento. Assim, podemos representar a matriz como um grafo a fim de facilitar a visualização e o entendimento desses algoritmos. O processo equivalente ao reordenamento da matriz consiste em rerrotular o grafo alterando os rótulos dos vértices sem modificar sua estrutura de ligação. Quanto mais próximos são os valores dos rótulos dos vértices no grafo, mais agrupados ficarão os elementos na matriz correspondente. A Figura 3.3 mostra a relação entre o grafo, a matriz e os reordenamentos. O grafo G1 em (a) possui a matriz de adjacência M1 em (b). Note que, sem reordenamento, lb(m1) = 7 e env(m1) = 27. Ao aplicarmos uma rerrotulação no grafo G2 em (c), tem-se a matriz de adjacência M2 em (d), onde lb(m2) = 3 e env(m2) = 14. (a) Grafo G1 (b) Matriz de Adjacência M1 de G1 (c) Grafo G2 (d) Matriz de Adjacência M2 de G2 Figura 3.3: Grafo, Matriz e Reordenamento

31 Capítulo 4 Algoritmos de Reordenamento Alguns dos algoritmos de reordenamento descritos abaixo necessitam encontrar um vértice inicial. A escolha desse vértice impacta diretamente na qualidade da solução. Segundo George and Liu (1979), vértices pseudo-periféricos geralmente produzem bons resultados e por isso são boas escolhas de vértice inicial. O Algoritmo 5 constrói a estrutura de nível dos vértices, comparando a profundidade dessas estruturas, encontrando os vértices mais distantes entre si. Algoritmo 5: Escolha do vértice pseudo-periférico 1 Escolha um vértice s de grau mínimo 2 Construa a estrutura de nível de s: L(s) = {l 1, l 2,..., l h(s) } 3 Ordene os vértices em l h(s) em ordem crescente de graus 4 Percorra l h(s) ordenado e forme uma lista q contendo um vértice de cada grau 5 para cada x q faça 6 Construa a estrutura de nível de x 7 se h(x) > h(s) e w(x) < w(s) então 8 s = x 9 fim 10 fim 11 s é o vértice pseudo-periférico

32 Capítulo 4. Algoritmos de Reordenamento 18 No Algoritmo 5, h é a profundidade da estrutura de nível, ou seja, o número total de níveis da estrutura de nível. Já w refere-se a máxima quantidade de vértices em um determinado nível, dentre todos os níveis. A Figura 4.1, representa a estrutura de nível do grafo ilustrado na Figura 3.3a na Seção 3.4, e exemplifica a escolha do vértice pseudo-periférico. (a) h(2) = 6 e w(2) = 3 (b) h(3) = 6 e w(3) = 2 Figura 4.1: Exemplo de execução do Algoritmo 5 O algoritmo inicia escolhendo o vértice de menor grau, o vértice 2, gerando sua estrutura de nível representado em (a). Os vértices do último nível são ordenados por grau e forma-se q contendo um vértice de cada grau. Como o último nível possui os vértices 3 e 7 com mesmo grau, vamos escolher apenas um deles, o 3. O próximo passo então é gerar a estrutura de nível do vértice 3, representado em (b), e comparar com a do vértice 2. A estrutura de nível dos vértices 2 e 3 possuem seis níveis, portanto h(2) = 6 e h(3) = 6. Já a máxima quantidade de vértices w(2) = 3 em N 5 e w(3) = 2. Logo, como h(2) = h(3), o algoritmo não satisfaz a condição no passo 7 e termina com 2 como vértice pseudo-periférico.

33 Sloan 4.1 Sloan Proposto por Sloan (1986), o método visa reduzir o envelope e largura de banda de matrizes esparsas estruturalmente simétricas, podendo ser eficientemente usado para rotulação de malhas no método de elementos finitos. Segundo Sloan (1986), testes feitos em uma coleção de matrizes coletadas por Everstine (1979) mostrou o Sloan sendo mais eficiente do que métodos como Reverse Cuthill-McKee (George, 1971) e Gibbs (Gibbs et al., 1976). Entretanto, essa coleção é muito antiga e possui matrizes que, atualmente, podem ser consideradas de pequeno porte. Por isso a necessidade de novos testes em uma coleção de matrizes de ordem maior, oriundas de problemas mais atuais. Figura 4.2: Terminologia do Algoritmo Sloan O algoritmo funciona atribuindo estados a cada vértice. Um vértice que ainda não recebeu nenhuma rotulação recebe o estado chamado pós-ativo. Todo vértice que é adjacente a um vértice pós-ativo, mas não tem estado pós-ativo é definido com estado ativo. Os vértices adjacentes a um vértice ativo, mas não possuem um estado ativo ou pós-ativo, são definidos com estado pré-ativo. Já aqueles que não possuem estados ativo, pós-ativo ou pré-ativo, são definidos como inativos (Figura 4.2).

34 Capítulo 4. Algoritmos de Reordenamento 20 A partir de dois vértices pseudo-periféricos, um vértice inicial e um vértice final dados como entrada, é criado uma fila de prioridades. Essa fila, formada apenas por vértice ativos ou pré-ativos, vai sendo atualizada com informações do grafo e o vértice com a maior prioridade é o próximo a ser escolhido para receber o novo rótulo. A prioridade de cada vértice se relaciona com o estado desse vértice e com sua distância até o vértice final. Por fim, após todos os vértices serem escolhidos e rerrotulados, o processo é finalizado. O Algoritmo 6 descreve os passos para o reordenamento de uma matriz como apresentado em Sloan (1986) e Sloan (1989). Ainda segundo Sloan (1989), testes empíricos sobre grandes coleções de problemas sugerem que, atribuindo W 1 = 1 e W 2, = 2, conseguimos obter bons reordenamentos. Porém, apesar deste trabalho seguir a sugestão de Sloan (1989) com W 1 = 1 e W 2 = 2, alguns testes empíricos com outros valores de W 1 e W 2 melhoraram a qualidade da solução. Portanto, seria necessário um estudo mais aprofundando sobre a escolha desses parâmetros. Algoritmo 6: Sloan 1 Entre com os vértices pseudo-periféricos, o vértice inicial s e o vértice final e 2 Gere a estrutura de nível do vértice final, EN(e) = {l 1,l 2,...,l h(e) }, e construa um vetor de distâncias δ i de cada vértice i até o vértice final. Note que se o vértice i se encontra no nível j de L(e), então δ i = j 1 3 Para cada vértice do grafo, atribua estado inativo e prioridade inicial, P i, sendo P i W 1 * δ i W 2 * (d i + 1) 4 Insira s na fila de vértices a serem escolhidos e atribua e ele estado pré-ativo 5 Enquanto a fila não estiver vazia, faça os passos Procure na fila de vértices a serem escolhidos o vértice i de maior prioridade 7 Exclua o vértice i da fila. Se i não for pré-ativo, vá para o passo 8. Caso contrário, examine cada vértice j que é adjacente a i e faça P j = P j + W 2. Se j for inativo, insira j na fila de vértices a serem escolhidos e atribua a ele estado pré-ativo 8 Atribua ao vértice i um novo rótulo e dê a ele estado pós-ativo 9 Examine cada vértice j que é adjacente a i. Se j não for pré-ativo, não faça nada. Caso contrário, faça P j = P j + W 2, atribua a j estado ativo e examine cada vértice k adjacente a j. Se k for ativo ou pré-ativo, faça P k = P k + W 2. Caso contrário, se k for inativo, faça P k = P k + W 2, insira k na fila de vértices a serem escolhidos, e atribua a ele estado pré-ativo 10 Termine com uma nova ordenação de vértices

35 Reverse Cuthill McKee (RCM) 4.2 Reverse Cuthill McKee (RCM) Proposto por Cuthill and McKee (1969), o algoritmo Cuthill Mckee é um método de reordenamento aplicado a matrizes esparsas para redução do envelope e largura de banda. Estudos feitos posteriormente por George (1971) mostraram que a solução do Cuthill Mckee pode ser melhorada simplesmente invertendo a ordem de numeração. Foi então definido o Reverse Cuthill Mckee, que passou a ser umas das heurísticas mais utilizadas para o problema de minimização da largura de banda e do envelope devido a boa qualidade de solução, o baixo tempo de execução e a facilidade de implementação. O Algoritmo 7 tenta rotular os vértices de maneira que os nós adjacentes recebam rótulos da forma mais ordenada possível. Recebendo como entrada um grafo, ele percorreo a partir de um vértice inicial e caminha pelos vértices adjacentes em ordem crescente de graus. A qualidade da solução do RCM depende criticamente da escolha do vértice inicial. George and Liu (1979) mostrou que vértices com altas excentricidades são boas escolhas. O Algoritmo 5 descreve os passos para encontrar os vértices pseudo-periféricos. Algoritmo 7: Reverse Cuthill Mckee 1 Encontrar um vértice inicial x 2 para i = 1,...,n faça 3 Encontrar todos os vértices adjacentes a i que ainda não foram rerrotulados e atribuir a eles um novo rótulo por ordem crescente de graus 4 fim 5 Inverter a ordem de numeração Uma maneira mais eficiente de implementar o RCM, descrito no Algoritmo 7, foi proposto por Ghidetti (2011). A autora percebeu que o processo de percorrer os vértices adjacentes do grafo em ordem crescente de graus é equivalente a uma busca em largura neste grafo. Portanto, como o Algoritmo 5 já faz uma busca em largura para encontrar o vértice inicial, basta guardar a estrutura de nível desse vértice e percorrer essa estrutura em ordem crescente de graus. Esses passos estão descritos no Algoritmo 8.

36 Capítulo 4. Algoritmos de Reordenamento 22 Algoritmo 8: Reverse Cuthill Mckee 1 Encontrar um vértice inicial x e sua respectiva estrutura de nível 2 para i = 1,...,n faça 3 Renumerar todos os vértices pertencentes ao nível i da estrutura de nível de x em ordem crescente de graus 4 fim 5 Inverter a ordem de numeração A Tabela 4.1 mostra um exemplo de execução do algoritmo RCM, aplicado no grafo da Figura 3.3a. A primeira coluna refere-se a ordem de escolha dos vértices. A segunda coluna refere-se a fila de vértices adjacentes. A última coluna mostra os novos rótulos que cada vértice irá receber. Essa rerrotulação é mostrada na Figura 4.3. Escolha Fila Novos rótulos , , , 1, , , , Tabela 4.1: Exemplo de execução do RCM Figura 4.3: Grafo rerrotulado 4.3 Espectral Proposto por Barnard et al. (1993), o algoritmo Espectral tem como principal objetivo reduzir o tamanho do envelope. O novo reordenamento é calculado a partir da permutação do vetor de autovetores associado ao segundo menor autovalor λ 2 da matriz laplaciana associada ao grafo.

37 Espectral Segundo Fiedler (1973), o segundo menor autovalor λ 2 define a conectividade algébrica e seu autovetor associado tem relação com a distância entre os vértices do grafo. Posteriormente Juvan and Mohar (1992) aplicou o uso desses autovetores para problemas de minimização de largura de banda para reordenamentos. A grande vantagem do algoritmo em relação a outros algoritmos de reordenamento apresentados é a facilidade de implementá-lo em paralelo. Diferente do RCM ou do Sloan que necessitam gerar estruturas de nível, o Espectral envolve apenas uma grande quantidade de operações de ponto flutuante, tais como multiplicações e produtos de matrizes, e por isso a implementação em paralelo pode ser feita sem esforço através de métodos como Lanczos ou abordagens Multinível (Barnard et al., 1993). Algoritmo 9: Espectral 1 Calcular o 2 o menor autovalor da matriz laplaciana L e o autovetor v associado 2 Ordenar v em ordem crescente (ou decrescente) A maior dificuldade na implementação do Algoritmo 9 é encontrar os autovalores e autovetores de uma matriz, em particular, o segundo menor autovalor e seu autovetor associado. Para isto, utiliza-se neste trabalho a biblioteca CHACO 2.2 (Hendrickson and Leland, 2013) que implementa o algoritmo Multilevel Symmlq/RQI para o cálculo desses autovalores e autovetores. Este algoritmo é baseado no método iterativo RQI (Rayleigh Quocient Iteration) cuja qualidade da solução depende da tolerância escolhida. O Algoritmo 9 apresenta algumas modificações com relação ao algoritmo definido em Barnard et al. (1993). Na versão original, ordena-se o autovetor em ordem crescente e decrescente, e em seguida escolhe-se o melhor resultado com relação a redução do envelope. Entretanto, testes realizados em um conjunto de matrizes não mostrou uma diferença considerável de redução e portanto, a fim de reduzir o tempo de CPU para esse algoritmo, foi considerado apenas a ordenação decrescente do autovetor. A Tabela 4.2 mostra um exemplo de execução do algoritmo Espectral, também aplicado no grafo da Figura 3.3a. A primeira coluna refere-se aos vértices e a segunda coluna

38 Capítulo 4. Algoritmos de Reordenamento 24 refere-se ao autovetor associado ao segundo menor autovalor da matriz Laplaciana do grafo. Esse autovetor está ordenado decrescentemente e a nova ordem dos vértices define os novos rótulos na terceira coluna. A rerrotulação é mostrada na Figura 4.4. Vértice Autovetor Novos rótulos Tabela 4.2: Exemplo de execução do Espectral Figura 4.4: Grafo rerrotulado 4.4 Nested Dissection (ND) O algoritmo Nested Dissection, proposto por George (1973), tem como objetivo reduzir o preenchimento (fill-in) em fatorações de matrizes esparsas. Consiste em encontrar um conjunto S de vértices separadores de um grafo G, cuja remoção divide G em dois subgrafos disjuntos, A e B. O subgrafo A é rerrotulado primeiro, em seguida B, e por último o conjunto de vértices separadores S. Assim, os vértices separadores são movidos para o final da matriz, e o processo é aplicado recursivamente para A e B. Algoritmo 10: Nested Dissection 1 Particione G = (V,E) em subgrafos A, B, e S 2 Repita o passo 1 até que A, B ε ou A, B = 1 3 Obtenha a ordenação fazendo a recursão em pós-ordem, rerrotulando os vértices de A, em seguida os de B e por último os vértices de S

39 Approximate Minimum Degree (AMD) Figura 4.5: Bisseção de G: Vértices separadores S e partições A e B A complexidade do algoritmo é encontrar o conjunto de vértices separadores, que divide G em duas partições. Logo, um bom método para bisseção de G impacta diretamente na qualidade da solução. Este trabalho faz uso da biblioteca METIS (Karypis, 2013), que implementa heurísticas eficientes baseadas em algoritmos multinível (Karypis and Kumar, 1998). A proposta desses algoritmos é reduzir o tamanho de G eliminando vértices e arestas, particionando-o em grafos menores. Em seguida essas partições são refinadas e projetadas de volta ao grafo original (Hendrickson and Leland, 1995). 4.5 Approximate Minimum Degree (AMD) Algoritmos de Grau Mínimo são heurísticas muito usadas para redução de preenchimento (fill-in) da fatoração LU aplicadas em matrizes esparsas de grande porte. Muitos algoritmos baseados no Grau Mínimo surgiram nas últimas décadas como Quotient Minimum Degree (George and Liu, 1981), Multiple Minimum Degree (Liu, 1985), e Approximate Minimum Degree (Davis et al., 1994). Esses algoritmos baseiam-se na evolução do grau dos vértices, eliminando a cada passo o vértice de menor grau, fazendo com que seus vizinhos se tornem adjacentes. O novo grafo gerado pela remoção de um vértice é chamado de Grafo de Eliminação, exemplificado na Figura 4.6.

40 Capítulo 4. Algoritmos de Reordenamento 26 (a) Grafo Original (b) Grafo de Eliminação Figura 4.6: Exemplo de Grafo de Eliminação. O grafo original em (a) e o Grafo de Eliminação em (b) criado após a remoção do vértice 1 Como tratamos os grafos através de suas matrizes de representação (adjacência), eliminar o vértice de menor grau é equivalente a deslocar a coluna (da matriz reduzida) com o menor número de elementos não nulos para a posição i. As linhas e colunas 1 até i 1 já estão ordenadas, portanto o número de elementos não nulos dessas linhas e colunas é fixo, já que elas não serão mais acessadas (Figura 4.7). Figura 4.7: Funcionamento dos algoritmos de Grau Mínimo

41 Approximate Minimum Degree (AMD) O AMD usa técnicas baseadas em grafos quocientes que permite obter aproximações com baixo custo computacional para o grau mínimo. Davis et al. (1994) mostra que essas aproximações são frequentemente iguais ao grau do vértice, e melhoram o tempo do algoritmo AMD com relação aos outros algoritmos de Grau Mínimo. Neste trabalho a biblioteca de Timothy A. Davis (2013b), versão 2.3.1, implementa o AMD. Algumas modificações foram feitas nesse código para permitir que os programas tivessem a leitura e a saída compatíveis com as estruturas e códigos adotados no restante das implementações. Algoritmo 11: AMD 1 para i = 1,...,n faça 2 Escolher um vértice v i de menor grau no Grafo de Eliminação G i 1 3 Eliminar v i de G i 1 para formar o novo Grafo de Eliminação G i 4 fim

42

43 Capítulo 5 Testes Computacionais Neste capítulo iremos comparar os resultados obtidos pelos testes computacionais. A Tabela 5.1 apresenta as principais características de um conjunto de matrizes estruturalmente simétricas, mostrando o nome da matriz, o número de vetores k usado no GMRES, o número de elementos não-nulos nnz, a dimensão n da matriz, a tolerância ε estabelecida no GMRES, a porcentagem de esparsidade da matriz calculada pela fórmula spa(a) = ((n * n) nnz)/(n * n) * 100, e a área de aplicação. Nome k nnz n ε spa(.) Área de Aplicação RAIL_ ,87 Transferência de Calor AFT ,81 Problema Acústico FEM_3D_THERMAL ,87 Problema Térmico THERMOMECH_TK ,99 Problema Térmico BAUMANN ,99 Problema Químico DUBCOVA ,97 Problema de EDP BONES Modelagem 3D Tabela 5.1: Características das matrizes testadas Vale ressaltar que a tolerância usado no algoritmo Espectral foi de 10 4 para todas as matrizes testadas. As matrizes estão no formato Matrix Market disponíveis nos repositórios da Universidade da Flórida em (Timothy A. Davis, 2013a). A tolerância ε

44 Capítulo 5. Testes Computacionais 30 do GMRES foi escolhida de forma que a solução convergisse para o valor esperado. A maioria das matrizes apresentadas tiveram boa qualidade de solução com 10 10, exceto a matriz thermomech_t K que foi suficiente a tolerância Já a quantidade de vetores na base k foi escolhido empiricamente, buscando o menor tempo de execução do GMRES. Por último, os testes foram realizados em um notebook com processador Intel Core i5-460m 2.53GHz, com 4GB de memória RAM e sistema operacional Ubuntu Cada seção abaixo contém três páginas com informações e análises de cada matriz da Tabela 5.1. A primeira página inicia-se com uma figura que mostra a esparsidade da matriz após o reordenamento com cada um dos algoritmos. Em seguida, há uma tabela com os valores do envelope, largura de banda da nova matriz gerada por cada algoritmo, além do tempo de processamento (em segundos) desse algoritmo. Lembrando que, como os algoritmos ND e AMD não são baseados na redução do envelope e largura de banda, esses valores não são mostrados nessa tabela. Na segunda página, dois gráficos/tabelas apresentam informações sobre a quantidade de elementos não-nulos criados (preenchimento) e número de iterações gerados na execução do GMRES em seis níveis diferentes, para cada algoritmo de reordenamento. Como não há preenchimento no nível 0, a respectiva coluna não apresenta nenhum dado. Na terceira página, um último gráfico/tabela com o tempo de processamento final (em segundos) para cada algoritmo em cada um dos níveis de preenchimento seguido de uma sucinta análise. O tempo de processamento final mostrado equivale ao tempo de construção da matriz precondicionada + tempo de resolução do algoritmo GMRES + tempo de execução do respectivo algoritmo de reordenamento. O símbolo significa que o algoritmo GMRES não convergiu. O critério decisivo para a não-convergência foi a análise da redução do resíduo a cada iteração externa. Nas tabelas de Tempo de CPU o símbolo indica o melhor resultado para cada nível de preenchimento. Já o símbolo indica os tempos que não foram vantajosos, ou seja, o tempo para resolver a matriz reordenada não foi melhor que o tempo para resolvê-la sem reordenamento.

45 Matriz rail_ Matriz rail_5177 (a) Original (b) SLOAN (c) RCM (d) ESPECTRAL (e) ND (f) AMD Figura 5.1: Esparsidades da matriz rail_5177 env(.) lb(.) Tempo de CPU Original Sloan ,035 RCM ,014 Espectral ,043 ND - - 0,029 AMD - - 0,003 Tabela 5.2: Medições da matriz rail_5177

46 Capítulo 5. Testes Computacionais 32 ILU(0) ILU(1) ILU(2) ILU(20) ILU(40) ILU(60) S/ reord Sloan RCM Espectral ND AMD Figura 5.2: Preenchimento da matriz rail_5177 ILU(0) ILU(1) ILU(2) ILU(20) ILU(40) ILU(60) S/ reord Sloan RCM Espectral ND AMD Figura 5.3: Iterações da matriz rail_5177

47 Matriz rail_5177 ILU(0) ILU(1) ILU(2) ILU(20) ILU(40) ILU(60) S/ reord. 73,85 1,22 0,70 31,78 169,98 243,62 Sloan 1,08 0,60 0,49 0,78 1,40 1,78 RCM 1,18 0,62 0,47 1,04 1,88 2,55 Espectral 1,22 0,66 0,55 1,92 3,20 2,58 ND 4,93 0,84 0,61 0,40 0,37 0,36 AMD 5,06 0,80 0,53 0,33 0,28 0,27 Figura 5.4: Tempo de CPU da matriz rail_5177 Analisando os algoritmos de reordenamento, a Tabela 5.2 nos mostra que o Sloan foi o algoritmo que mais reduziu o envelope da matriz, porém foi o que reduziu menos a largura de banda. Já o RCM teve uma ótima qualidade de redução da largura de banda e o pior resultado de envelope. O Espectral teve uma solução intermediária. Com relação ao tempo de CPU, o AMD foi o mais rápido, enquanto o Espectral foi o mais lento. Analisando os precondicionadores na Figura 5.2, podemos observar uma redução drástica do preenchimento nos níveis 20, 40 e 60 para os algoritmos ND e AMD com relação os demais algoritmos, o que não foi tão evidente nos níveis 0, 1 e 2. O preenchimento neste caso impactou diretamente no tempo de CPU mostrado na Figura 5.4. Apesar de todos os casos terem sido vantajosos, em comparação aos tempos sem reordenamento nenhum, o ND e, em especial o AMD, se destacaram para ILU s grandes enquanto que o Sloan se destacou para ILU s pequenos. O algoritmo AMD com ILU(60) produziu o menor tempo de CPU.

48 Capítulo 5. Testes Computacionais Matriz af t01 (a) Original (b) SLOAN (c) RCM (d) ESPECTRAL (e) ND (f) AMD Figura 5.5: Esparsidades da matriz af t01 env(.) lb(.) Tempo de CPU Original Sloan ,082 RCM ,056 Espectral ,002 ND - - 0,063 AMD - - 0,003 Tabela 5.3: Medições da matriz af t01

49 Matriz af t01 ILU(0) ILU(1) ILU(2) ILU(10) ILU(20) ILU(30) S/ reord Sloan RCM Espectral ND AMD Figura 5.6: Preenchimento da matriz af t01 ILU(0) ILU(1) ILU(2) ILU(10) ILU(20) ILU(30) S/ reord Sloan RCM Espectral ND AMD Figura 5.7: Iterações da matriz af t01

50 Capítulo 5. Testes Computacionais 36 ILU(0) ILU(1) ILU(2) ILU(10) ILU(20) ILU(30) S/ reord. 2,14 0,96 0,80 3,82 12,22 22,23 Sloan 1,91 1,00 0,77 2,34 6,27 10,74 RCM 2,92 1,30 0,80 2,47 7,31 13,42 Espectral 2,11 0,97 0,85 6,80 20,20 28,48 ND 6,35 2,74 1,71 3,04 4,13 4,30 AMD 9,58 2,48 1,76 2,50 3,68 4,09 Figura 5.8: Tempo de CPU da matriz aft01 Podemos perceber na Tabela 5.3 que os algoritmos Sloan, RCM e Espectral reduziram pouco o envelope. Já com relação a largura de banda, não houve reduções. Isto deve-se ao fato da matriz já possuir os elementos não nulos bem próximos da diagonal principal, como podemos notar na Figura 5.5a. Com isso, o preenchimento na Figura 5.6 também não apresentou reduções muito grandes, com exceção do ND e AMD nos níveis de preenchimento 10 e 20. O Espectral não foi capaz de reduzir o preenchimento em nenhum nível, enquanto o Sloan e RCM tiveram reduções moderadas. O número de iterações na Figura 5.7 foi desvantajoso na maioria das vezes. Já o tempo de CPU na Figura 5.8 passou a obter melhores resultados nos níveis de preenchimento maiores. O ND e AMD tiveram os melhores tempos nos níveis 10 e 20 e o Espectral, provavelmente devido ao alto preenchimento, foi desvantajoso em todos os casos. O algoritmo SLOAN com ILU(2) produziu o menor tempo de CPU.

51 Matriz F EM_3D_thermal1 5.3 Matriz F EM_3D_thermal1 (a) Original (b) SLOAN (c) RCM (d) ESPECTRAL (e) ND (f) AMD Figura 5.9: Esparsidades da matriz F EM_3D_thermal1 env(.) lb(.) Tempo de CPU Original Sloan ,414 RCM ,243 Espectral ,110 ND - - 0,248 AMD - - 0,004 Tabela 5.4: Medições da matriz F EM_3D_thermal1

52 Capítulo 5. Testes Computacionais 38 ILU(0) ILU(1) ILU(2) ILU(3) ILU(4) ILU(10) S/ reord Sloan RCM Espectral ND AMD Figura 5.10: Preenchimento da matriz F EM_3D_thermal1 ILU(0) ILU(1) ILU(2) ILU(3) ILU(4) ILU(10) S/ reord Sloan RCM Espectral ND AMD Figura 5.11: Iterações da matriz F EM_3D_thermal1

53 Matriz F EM_3D_thermal1 ILU(0) ILU(1) ILU(2) ILU(3) ILU(4) ILU(10) S/ reord. 0,63 2,72 7,74 20,13 43,38 444,29 Sloan 1,08 2,96 7,12 16,73 34,48 397,83 RCM 0,97 2,82 6,99 16,53 34,84 465,32 Espectral 0,78 2,76 7,63 20,28 44,11 613,41 ND 1,07 5,27 16,76 44,87 77,37 369,46 AMD 0,84 4,83 13,20 39,69 78,52 902,20 Figura 5.12: Tempo de CPU da matriz F EM_3D_thermal1 Analisando a Tabela 5.4, o Sloan teve a melhor redução de envelope e pior redução de largura de banda. Foi também o algoritmo que teve o maior tempo computacional. Com relação ao preenchimento na Figura 5.10, podemos perceber pouca redução em relação a matriz sem reordenamentos. O ND e o AMD foram vantajosos apenas em ILU(10), enquanto o Espectral apenas em ILU(1). O Sloan e o RCM tiveram comportamento semelhante até ILU(4), e em ILU(10) o Sloan reduz o preenchimento em mais da metade comparado com o RCM. As iterações na Figura 5.11 tem comportamento bem coerente. Apesar disso, os tempos de processamento na Figura 5.12 não foram muito vantajosos, principalmente em ILU(0) e ILU(1). Apenas nos níveis 2, 3 e 4 o Sloan e o RCM conseguem reduzir um pouco o tempo final. Em ILU(10) o ND passou a ter o melhor resultado, mesmo tendo gerado mais preenchimento que o Sloan, e ter convergido em mais iterações. Contudo, observamos que o menor tempo de CPU ocorre em ILU(0) na matriz sem reordenamentos.

54 Capítulo 5. Testes Computacionais Matriz thermomech_t K (a) Original (b) SLOAN (c) RCM (d) ESPECTRAL (e) ND (f) AMD Figura 5.13: Esparsidades da matriz thermomech_t K env(.) lb(.) Tempo de CPU Original Sloan ,112 RCM ,581 Espectral ,738 ND - - 0,863 AMD - - 0,192 Tabela 5.5: Medições da matriz thermomech_t K

55 Matriz thermomech_t K ILU(0) ILU(4) ILU(8) ILU(12) ILU(16) ILU(20) S/ reord Sloan RCM Espectral ND AMD Figura 5.14: Preenchimento da matriz thermomech_t K ILU(0) ILU(4) ILU(8) ILU(12) ILU(16) ILU(20) S/ reord Sloan RCM Espectral ND AMD Figura 5.15: Iterações da matriz thermomech_t K

56 Capítulo 5. Testes Computacionais 42 ILU(0) ILU(4) ILU(8) ILU(12) ILU(16) ILU(20) S/ reord. 95,87 244,41 797, ,92 Sloan 105,90 44,07 45,71 50,32 59,32 RCM 123,45 43,45 45,11 52,04 63,24 Espectral 107,80 45,45 47,09 54,03 64,46 ND 52,72 51,90 54,73 59,82 AMD 55,94 55,47 57,61 66,34 Figura 5.16: Tempo de CPU da matriz thermomech_t K É interessante observar as esparsidades de cada matriz reordenada na Figura Os algoritmos Sloan, RCM e Espectral foram capazes de aproximar os elementos não nulos bastante dispersos em 5.13a para perto da diagonal principal em 5.13b, 5.13c e 5.13d. Com relação a Tabela 5.5, podemos destacar o Espectral com melhor redução do envelope, porém maior tempo de CPU, e o RCM com melhor redução de largura de banda e pior redução de envelope. Todos os algoritmos reduziram consideravelmente o preenchimento na Figura 5.14, mantendo um comportamento bem semelhante ao longo dos ILU s. Quanto as iterações (Figura 5.15) e tempo de CPU (Figura 5.16) percebemos que as matrizes geradas pelos algoritmos não convergem para o ILU(0). A não-convergência se mantém em ILU(4) para o ND e AMD, passando a convergir com o Sloan, RCM e Espectral. Destaque para todos os tempos terem sido vantajosos, sendo o melhor resultado para o RCM em ILU(8).

57 Matriz Baumann 5.5 Matriz Baumann (a) Original (b) SLOAN (c) RCM (d) ESPECTRAL (e) ND (f) AMD Figura 5.17: Esparsidades da matriz Baumann env(.) lb(.) Tempo de CPU Original Sloan ,074 RCM ,056 Espectral ,656 ND - - 1,191 AMD - - 0,174 Tabela 5.6: Medições da matriz Baumann

58 Capítulo 5. Testes Computacionais 44 ILU(0) ILU(1) ILU(2) ILU(3) ILU(4) ILU(5) S/ reord Sloan RCM Espectral ND AMD Figura 5.18: Preenchimento da matriz Baumann ILU(0) ILU(1) ILU(2) ILU(3) ILU(4) ILU(5) S/ reord Sloan RCM Espectral ND AMD Figura 5.19: Iterações da matriz Baumann

59 Matriz Baumann ILU(0) ILU(1) ILU(2) ILU(3) ILU(4) ILU(5) S/ reord. 23,38 57,73 79,39 87,9 148,95 Sloan 34,45 60,66 180,63 97,11 RCM 54,27 46,43 44,99 50,83 58,66 Espectral 63,67 66,84 58,91 64,61 69,92 ND 123,29 111,84 73,56 AMD 75,25 76,59 76,63 Figura 5.20: Tempo de CPU da matriz Baumann Analisando a Tabela 5.6, os algoritmos RCM e o Sloan tiveram a mesma qualidade com relação a redução do envelope e largura de banda, porém o tempo de execução do Sloan foi de vezes maior. As Figuras 5.19 e 5.20 revelam um comportamento peculiar e fora do esperado. A matriz reordenada com Sloan, após convergir em ILU(1), passa a não convergir em ILU(2) e ILU(3). O mesmo ocorre com a matriz sem reordenamentos em ILU(4). O melhor tempo de CPU foi do RCM, apesar do ND e AMD possuírem o menor preenchimento. Uma consideração importante é o fato de que apesar do Sloan e RCM possuírem a mesma qualidade de solução, a convergência e tempo de CPU final da matriz com esses reordenamentos foram discrepantes. Isso sugere que um reordenamento pode alterar muito o condicionamento da matriz. Para essa matriz, os algoritmos de reordenamento não reduziram o tempo final de execução. O menor tempo de CPU ocorreu em ILU(0) na matriz sem reordenamentos.

60 Capítulo 5. Testes Computacionais Matriz Dubcova2 (a) Original (b) SLOAN (c) RCM (d) ESPECTRAL (e) ND (f) AMD Figura 5.21: Esparsidades da matriz Dubcova2 env(.) lb(.) Tempo de CPU Original Sloan ,571 RCM ,320 Espectral ,889 ND - - 0,794 AMD - - 0,040 Tabela 5.7: Medições da matriz Dubcova2

61 Matriz Dubcova2 ILU(0) ILU(1) ILU(2) ILU(3) ILU(4) ILU(5) S/ reord Sloan RCM Espectral ND AMD Figura 5.22: Preenchimento da matriz Dubcova2 ILU(0) ILU(1) ILU(2) ILU(3) ILU(4) ILU(5) S/ reord Sloan RCM Espectral ND AMD Figura 5.23: Iterações da matriz Dubcova2

62 Capítulo 5. Testes Computacionais 48 ILU(0) ILU(1) ILU(2) ILU(3) ILU(4) ILU(5) S/ reord. 16,56 31,32 82,33 302,63 978, ,07 Sloan 9,11 19,25 18,50 19,25 20,37 21,94 RCM 8,01 18,20 17,46 18,06 18,99 20,76 Espectral 9,18 18,26 18,54 20,43 23,24 27,55 ND 15,55 20,59 21,37 22,14 23,82 25,46 AMD 15,64 19,67 19,70 20,16 21,24 22,68 Figura 5.24: Tempo de CPU da matriz Dubcova2 Na Tabela 5.7 podemos perceber que todos os algoritmos reduziram bastante as métricas analisadas. O Sloan se destaca, apesar de ter tido o maior tempo computacional. Em todos os níveis de preenchimento há um melhora significativa na redução do preenchimento para todos os algoritmos na Figura O Sloan e RCM mantiveram o preenchimento similar, liderando até o nível 3 de preenchimento. A partir desse nível o AMD passa a ter a melhor redução. Já na Figura 5.23 podemos reparar que nem sempre as iterações das matrizes reordenadas foi menor do que da matriz sem reordenamentos. Os tempos de CPU finais na Figura 5.24 apresentaram um excelente comportamento. Além de ter havido melhora em todos os níveis de preenchimento, os tempos são bastante equiparáveis entre os algoritmos de reordenamento. Destaque para os níveis maiores, que reduziram muito o tempo de CPU e possuem pouca discrepância dos tempos do nível anterior. Ainda assim, o menor tempo ocorreu em ILU(0) com o RCM.

63 Matriz bones Matriz bones01 (a) Original (b) SLOAN (c) RCM (d) ESPECTRAL (e) ND (f) AMD Figura 5.25: Esparsidades da matriz bones01 env(.) lb(.) Tempo de CPU Original Sloan ,027 RCM ,944 Espectral ,932 ND - - 0,985 AMD - - 0,067 Tabela 5.8: Medições da matriz bones01

64 Capítulo 5. Testes Computacionais 50 ILU(0) ILU(1) ILU(2) ILU(3) ILU(4) ILU(5) S/ reord Sloan RCM Espectral ND AMD Figura 5.26: Preenchimento da matriz bones01 ILU(0) ILU(1) ILU(2) ILU(3) ILU(4) ILU(5) S/ reord Sloan RCM Espectral ND AMD Figura 5.27: Iterações da matriz bones01

65 Matriz bones01 ILU(0) ILU(1) ILU(2) ILU(3) ILU(4) ILU(5) S/ reord. 850,93 372,92 439,06 786, , ,51 Sloan 364,73 307,84 417,29 605, , ,14 RCM 335,38 242,10 336,44 513,85 958, ,23 Espectral 303,54 221,28 405,99 753, , ,77 ND 1582,48 392,03 538, , , ,05 AMD 981,76 307,08 492,61 983, , ,21 Figura 5.28: Tempo de CPU da matriz bones01 Os dados da Tabela 5.8 mostram que o Espectral foi o algoritmo que mais reduziu o envelope. Já a largura de banda aumentou em todos os algoritmos, com destaque para o Sloan que além de ter tido a pior largura de banda, teve pior desempenho computacional. Já na Figura 5.26 podemos perceber que o Sloan e RCM tiveram o menor preenchimento em ILU(1), ILU(2) e ILU(3), perdendo para o ND e AMD nos níveis seguintes. Apesar disso, a redução do preenchimento no ND e AMD não foi capaz de melhorar o número de iterações nem o tempo computacional, como podemos ver nas Figuras 5.27 e Mais do que isso, os tempos finais do ND e AMD não foram, na maioria das vezes, ao menos vantajosos. Diferente dos algoritmos Sloan, RCM e Espectral que, apesar de pouco, reduziram os tempos de CPU em todos os níveis de preenchimento. O menor tempo ocorreu com o algoritmo Espectral em ILU(1).

Data de entrega: 30 de junho de 2015

Data de entrega: 30 de junho de 2015 Universidade Federal do Espírito Santo DI/PPGEM/PPGI 2 o Trabalho de Algoritmos Numéricos II - 15/1 Estudo Sobre a Influência do Reordenamento e Precondicionamento aplicados a Sistemas Esparsos de Grande

Leia mais

Universidade Federal do Espírito Santo DI/PPGEM/PPGI 1 o Trabalho de Algoritmos Numéricos II - Computação Científica 17/1

Universidade Federal do Espírito Santo DI/PPGEM/PPGI 1 o Trabalho de Algoritmos Numéricos II - Computação Científica 17/1 Universidade Federal do Espírito Santo DI/PPGEM/PPGI 1 o Trabalho de Algoritmos Numéricos II - Computação Científica 17/1 Métodos Iterativos Não Estacionários para Sistemas Esparsos de Grande Porte 1 Introdução

Leia mais

Universidade Federal do Espírito Santo Departamento de Informática 1 o Trabalho de Algoritmos Numéricos I - 17/2 Sistemas Lineares

Universidade Federal do Espírito Santo Departamento de Informática 1 o Trabalho de Algoritmos Numéricos I - 17/2 Sistemas Lineares Universidade Federal do Espírito Santo Departamento de Informática 1 o Trabalho de Algoritmos Numéricos I - 17/2 Sistemas Lineares (Cursos: Engenharia Mecânica, Engenharia de Computação e Ciência da Computação)

Leia mais

Precondicionadores baseados na aproximação da inversa da matriz de coeficientes

Precondicionadores baseados na aproximação da inversa da matriz de coeficientes Precondicionadores baseados na aproximação da inversa da matriz de coeficientes João Paulo K. Zanardi, Italo C. N. Lima, Programa de Pós Graduação em Eneganharia Mecânica, FEN, UERJ 20940-903, Rio de Janeiro,

Leia mais

Algoritmos Numéricos 2 a edição

Algoritmos Numéricos 2 a edição Algoritmos Numéricos 2 a edição Capítulo 2: Sistemas lineares c 2009 FFCf 2 2.1 Conceitos fundamentais 2.2 Sistemas triangulares 2.3 Eliminação de Gauss 2.4 Decomposição LU Capítulo 2: Sistemas lineares

Leia mais

Universidade Federal do Espírito Santo Departamento de Informática 1 o Trabalho de Algoritmos Numéricos I - 14/2 Sistemas Lineares

Universidade Federal do Espírito Santo Departamento de Informática 1 o Trabalho de Algoritmos Numéricos I - 14/2 Sistemas Lineares Universidade Federal do Espírito Santo Departamento de Informática 1 o Trabalho de Algoritmos Numéricos I - 14/2 Sistemas Lineares (Cursos: Engenharia de Computação e Ciência da Computação) Data de entrega:

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos,

Leia mais

LCAD. LNCC - Programa de Verão Minicurso M16 Estrutura de Dados e Solvers. Lucia Catabriga

LCAD. LNCC - Programa de Verão Minicurso M16 Estrutura de Dados e Solvers. Lucia Catabriga LNCC - Programa de Verão 2008 Minicurso M16 Estrutura de Dados e Solvers Lucia Catabriga www.inf.ufes.br/~luciac LCAD - Laboratório de Computação de Alto Desempenho Departamento de Informática - CT/UFES

Leia mais

Resolução de Sistemas Lineares. Ana Paula

Resolução de Sistemas Lineares. Ana Paula Resolução de Sistemas Lineares Sumário 1 Introdução 2 Alguns Conceitos de Álgebra Linear 3 Sistemas Lineares 4 Métodos Computacionais 5 Sistemas Triangulares 6 Revisão Introdução Introdução Introdução

Leia mais

Autovalores e Autovetores

Autovalores e Autovetores Algoritmos Numéricos II / Computação Científica Autovalores e Autovetores Lucia Catabriga 1 1 DI/UFES - Brazil Junho 2016 Introdução Ideia Básica Se multiplicarmos a matriz por um autovetor encontramos

Leia mais

decomposição de Cholesky.

decomposição de Cholesky. Decomposição LU e Cholesky Prof Doherty Andrade - DMA-UEM Sumário 1 Introdução 1 2 Método de Eliminação de Gauss 1 3 Decomposição LU 2 4 O método de Cholesky 5 5 O Algoritmo para a decomposição Cholesky

Leia mais

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano CÁLCULO NUMÉRICO Profa. Dra. Yara de Souza Tadano yaratadano@utfpr.edu.br Aula 12 04/2014 Sistemas de Equações Lineares Parte 2 FATORAÇÃO LU Cálculo Numérico 3/37 FATORAÇÃO LU Uma fatoração LU de uma dada

Leia mais

Sistemas de equações lineares

Sistemas de equações lineares É um dos modelos mais u3lizados para representar diversos problemas de Engenharia (cálculo estrutural, circuitos elétricos, processos químicos etc.) Conservação da carga: i 1 i 2 i 3 = 0 i 3 i 4 i 5 =

Leia mais

étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA UNIVERSIDADE DE JOÃO DEL-REI PRÓ-REITORIA DE PESQUISA CENTRO

Leia mais

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher TGR BCC Representação Computacional de Grafos Prof. Ricardo José Pfitscher Cronograma Representação Matriz de djacências Lista de djacências Matriz de Incidências Representação Como podemos representar

Leia mais

Sistemas Lineares - Eliminação de Gauss

Sistemas Lineares - Eliminação de Gauss 1-28 Sistemas Lineares - Andréa Maria Pedrosa Valli Laboratório de Computação de Alto Desempenho (LCAD) Departamento de Informática Universidade Federal do Espírito Santo - UFES, Vitória, ES, Brasil 2-28

Leia mais

EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL: PRIMEIRO BIMESTRE: EDGARD JAMHOUR. QUESTÃO 1: Indique as afirmativas verdadeiras.

EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL: PRIMEIRO BIMESTRE: EDGARD JAMHOUR. QUESTÃO 1: Indique as afirmativas verdadeiras. EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL: PRIMEIRO BIMESTRE: EDGARD JAMHOUR QUESTÃO 1: Indique as afirmativas verdadeiras. ( ) O número Pi não pode ser representado de forma exata em sistemas numéricos de

Leia mais

Sistemas de equações lineares

Sistemas de equações lineares DMPA IM UFRGS Cálculo Numérico Índice Sistema de Equações Lineares 1 Sistema de Equações Lineares 2 com pivoteamento parcial 3 Método de Jacobi Método Gauss-Seidel Sistema de Equações Lineares n equações

Leia mais

Resolução de sistemas de equações lineares: Fatorações de matrizes

Resolução de sistemas de equações lineares: Fatorações de matrizes Resolução de sistemas de equações lineares: Fatorações de matrizes Marina Andretta/Franklina Toledo ICMC-USP 27 de agosto de 2012 Baseado no livro Análise Numérica, de R. L. Burden e J. D. Faires. Marina

Leia mais

Resolução de sistemas de equações lineares: Fatorações de matrizes

Resolução de sistemas de equações lineares: Fatorações de matrizes Resolução de sistemas de equações lineares: Fatorações de matrizes Marina Andretta/Franklina Toledo ICMC-USP 27 de fevereiro de 2015 Baseado no livro Análise Numérica, de R. L. Burden e J. D. Faires. Marina

Leia mais

Disciplina: Cálculo Numérico IPRJ/UERJ. Sílvia Mara da Costa Campos Victer. Aula 6 - Solução de Sistema de Equações Algébricas

Disciplina: Cálculo Numérico IPRJ/UERJ. Sílvia Mara da Costa Campos Victer. Aula 6 - Solução de Sistema de Equações Algébricas Disciplina: Cálculo Numérico IPRJ/UERJ Sílvia Mara da Costa Campos Victer Aula 6 - Solução de Sistema de Equações Algébricas Métodos diretos: 1- Eliminação de Gauss com substituição recuada 2- Decomposição

Leia mais

étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA UNIVERSIDADE DE JOÃO DEL-REI PRÓ-REITORIA DE PESQUISA CENTRO

Leia mais

Otimização em Grafos

Otimização em Grafos Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 33 Definição do Problema Dado: um grafo ponderado G = (V, E), orientado ou não, onde d : E R + define as distâncias

Leia mais

Escalonamento. Sumário. 1 Pré-requisitos. 2 Sistema Linear e forma matricial. Sadao Massago a Pré-requisitos 1

Escalonamento. Sumário. 1 Pré-requisitos. 2 Sistema Linear e forma matricial. Sadao Massago a Pré-requisitos 1 Escalonamento Sadao Massago 2011-05-05 a 2014-03-14 Sumário 1 Pré-requisitos 1 2 Sistema Linear e forma matricial 1 3 Forma escalonada 3 4 Método de eliminação de Gauss (escalonamento) 5 5 A matriz inversa

Leia mais

Revisão: Matrizes e Sistemas lineares. Parte 01

Revisão: Matrizes e Sistemas lineares. Parte 01 Revisão: Matrizes e Sistemas lineares Parte 01 Definição de matrizes; Tipos de matrizes; Operações com matrizes; Propriedades; Exemplos e exercícios. 1 Matrizes Definição: 2 Matrizes 3 Tipos de matrizes

Leia mais

2. Sistemas lineares

2. Sistemas lineares 2. Sistemas lineares 2.1 Conceitos fundamentais. 2.2 Sistemas triangulares. 2.3 Eliminação de Gauss. 2.4 Decomposição LU. 2.5 Decomposição de Cholesky. 2.6 Decomposição espectral. 2.7 Uso da decomposição.

Leia mais

Matrizes Semelhantes e Matrizes Diagonalizáveis

Matrizes Semelhantes e Matrizes Diagonalizáveis Diagonalização Matrizes Semelhantes e Matrizes Diagonalizáveis Nosso objetivo neste capítulo é estudar aquelas transformações lineares de R n para as quais existe pelo menos uma base em que elas são representadas

Leia mais

Autovalores e Autovetores

Autovalores e Autovetores Autovalores e Autovetores Lucia Catabriga Algoritmos Numéricos II Computação Científica Universidade Federal do Espírito Santo de junho de 24 Resumo Este texto tem por objetivo introduzir os conceitos

Leia mais

Resolução de Sistemas de Equações Lineares

Resolução de Sistemas de Equações Lineares 1 As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia e não têm a intenção de substituir o livro-texto, nem qualquer outra bibliografia. Resolução de Sistemas de Equações

Leia mais

Gauss-Seidel para Solução de Sistemas com Matrizes Banda Usando Armazenamento Especial

Gauss-Seidel para Solução de Sistemas com Matrizes Banda Usando Armazenamento Especial Universidade Federal do Espírito Santo Departamento de Informática Algoritmos Numéricos 2016/2 Profa. Claudine Badue Trabalho 1 Objetivos Gauss-Seidel para Solução de Sistemas com Matrizes Banda Usando

Leia mais

Resolução de sistemas de equações lineares: Fatorações de matrizes

Resolução de sistemas de equações lineares: Fatorações de matrizes Resolução de sistemas de equações lineares: Fatorações de matrizes Marina Andretta/Franklina Toledo ICMC-USP 5 de fevereiro de 2014 Baseado no livro Análise Numérica, de R. L. Burden e J. D. Faires. Marina

Leia mais

Matemática Discreta 10

Matemática Discreta 10 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 10 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti 1 Muitas

Leia mais

CONCEITOS BÁSICOS EM GRAFOS

CONCEITOS BÁSICOS EM GRAFOS Um grafo (simples) G é formado por um conjunto de vértices, denotado por V(G), e um conjunto de arestas, denotado por E(G). Cada aresta é um par (não ordenado) de vértices distintos. Se xy é uma aresta,

Leia mais

4.1 Resolvendo o Sistema Linear

4.1 Resolvendo o Sistema Linear 4 Solução Numérica 4.1 Resolvendo o Sistema Linear Resolveremos o sistema (2 7) pelo método de Usawa acelerado por Gradiente Conjugado (ver [15, pp. 202]). Primeiro eliminamos a variável u e depois resolvemos

Leia mais

Grafos: componentes fortemente conexos, árvores geradoras mínimas

Grafos: componentes fortemente conexos, árvores geradoras mínimas Grafos: componentes fortemente conexos, árvores geradoras mínimas SCE-183 Algoritmos e Estruturas de Dados 2 Thiago A. S. Pardo Maria Cristina 1 Componentes fortemente conexos Um componente fortemente

Leia mais

Teoria dos Grafos Aula 6

Teoria dos Grafos Aula 6 Teoria dos Grafos Aula 6 Aula passada Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Aula de hoje BFS implementação Complexidade Busca em profundidade (DFS) Conectividade, componentes

Leia mais

Parte 1 - Matrizes e Sistemas Lineares

Parte 1 - Matrizes e Sistemas Lineares Parte 1 - Matrizes e Sistemas Lineares Matrizes: Uma matriz de tipo m n é uma tabela com mn elementos, denominados entradas, e formada por m linhas e n colunas. A matriz identidade de ordem 2, por exemplo,

Leia mais

Resolução de problemas com apenas restrições lineares de igualdade

Resolução de problemas com apenas restrições lineares de igualdade Resolução de problemas com apenas restrições lineares de igualdade Marina Andretta ICMC-USP 14 de outubro de 2014 Marina Andretta (ICMC-USP) sme0212 - Otimização não-linear 14 de outubro de 2014 1 / 22

Leia mais

A = Utilizando ponto flutuante com 2 algarismos significativos, 2 = 0, x (0)

A = Utilizando ponto flutuante com 2 algarismos significativos, 2 = 0, x (0) MAP 22 - CÁLCULO NUMÉRICO (POLI) Lista de Exercícios sobre Sistemas Lineares : Utilizando o método de eliminação de Gauss, calcule o determinante e a seguir a inversa da matriz abaixo. Efetue todos os

Leia mais

Análise empírica de algoritmos de ordenação

Análise empírica de algoritmos de ordenação Análise empírica de algoritmos de ordenação Mario E. Matiusso Jr. (11028407) Bacharelado em Ciências da Computação Universidade Federal do ABC (UFABC) Santo André, SP Brasil mario3001[a]ig.com.br Resumo:

Leia mais

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos Caminhos Mínimos entre Todos os Vértices 1/ 48 Caminhos Mínimos entre Todos os Vértices Eduardo Camponogara Departamento de Automação e Sistemas Universidade Federal de Santa Catarina DAS-9003: Introdução

Leia mais

Figura : Monitoria. Monitoria Cálculo Numérico

Figura : Monitoria. Monitoria Cálculo Numérico Monitoria Cálculo Numérico 207-02 NOME Email Dia / Horário Local Ana Sofia Nunez de Abreu nunez.asofia@gmail.com Sex. 0-2h D- Luiz Eduardo Xavier luizeduardosxavier@gmail.com Ter, 5-7h Lab Rafael Mendes

Leia mais

GABRIEL BUJOKAS

GABRIEL BUJOKAS APLICAÇÕES DE ÁLGEBRA LINEAR À COMBINATÓRIA GABRIEL BUJOKAS (GBUJOKAS@MIT.EDU) A gente vai discutir algumas das aplicações clássicas de álgebra linear à combinatória. Vamos começar relembrando alguns conceitos

Leia mais

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32 Grafos - Introdução Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/2015 1 / 32 Conceito Definição de Grafo Formalmente, um grafo é: Um conjunto de nós/vértices (V).

Leia mais

Exercícios: Vetores e Matrizes

Exercícios: Vetores e Matrizes Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Faça um programa que possua um vetor

Leia mais

Álgebra Linear. Professor Alessandro Monteiro. 1º Sábado - Matrizes - 11/03/2017

Álgebra Linear. Professor Alessandro Monteiro. 1º Sábado - Matrizes - 11/03/2017 º Sábado - Matrizes - //7. Plano e Programa de Ensino. Definição de Matrizes. Exemplos. Definição de Ordem de Uma Matriz. Exemplos. Representação Matriz Genérica m x n 8. Matriz Linha 9. Exemplos. Matriz

Leia mais

atualmente na literatura envolverem, em algum momento, a solução de um sistema algébrico e linear de equações.

atualmente na literatura envolverem, em algum momento, a solução de um sistema algébrico e linear de equações. Capítulo 5 Equações Algébricas Lineares A solução de modelos matemáticos associados a grande maioria dos problemas de engenharia requer a utilização de métodos computacionais eficientes para efetuar as

Leia mais

SISTEMAS LINEARES. Solução de um sistema linear: Dizemos que a sequência ou ênupla ordenada de números reais

SISTEMAS LINEARES. Solução de um sistema linear: Dizemos que a sequência ou ênupla ordenada de números reais SISTEMAS LINEARES Definições gerais Equação linear: Chamamos de equação linear, nas incógnitas x 1, x 2,..., x n, toda equação do tipo a 11 x 1 + a 12 x 2 + a 13 x 3 +... + a 1n x n = b. Os números a 11,

Leia mais

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização

Leia mais

Resolução de sistemas de equações lineares: Método dos Gradientes Conjugados

Resolução de sistemas de equações lineares: Método dos Gradientes Conjugados Resolução de sistemas de equações lineares: Método dos Gradientes Conjugados Marina Andretta/Franklina Toledo ICMC-USP 24 de março de 2015 Baseado no livro Cálculo Numérico, de Neide B. Franco Marina Andretta/Franklina

Leia mais

. (1) Se S é o espaço vetorial gerado pelos vetores 1 e,0,1

. (1) Se S é o espaço vetorial gerado pelos vetores 1 e,0,1 QUESTÕES ANPEC ÁLGEBRA LINEAR QUESTÃO 0 Assinale V (verdadeiro) ou F (falso): (0) Os vetores (,, ) (,,) e (, 0,) formam uma base de,, o espaço vetorial gerado por,, e,, passa pela origem na direção de,,

Leia mais

Instituto Superior Técnico Departamento de Matemática Última actualização: 18/Nov/2003 ÁLGEBRA LINEAR A

Instituto Superior Técnico Departamento de Matemática Última actualização: 18/Nov/2003 ÁLGEBRA LINEAR A Instituto Superior Técnico Departamento de Matemática Secção de Álgebra e Análise Última actualização: 18/Nov/2003 ÁLGEBRA LINEAR A REVISÃO DA PARTE III Parte III - (a) Ortogonalidade Conceitos: produto

Leia mais

Questões de Computação Científica no contexto da Otimização

Questões de Computação Científica no contexto da Otimização Questões de Computação Científica no contexto da Otimização Universidade Federal do Espírito Santo Mestrado em Informática Abril de 2009 Sumário Introdução 1 Introdução 2 3 Sumário Introdução 1 Introdução

Leia mais

Sistemas de equações lineares

Sistemas de equações lineares Capítulo 3 Sistemas de equações lineares Os sistemas de equações lineares fazem parte da descrição matemática dos mais diversos fenômenos em todas as áreas das ciências naturais e também são peça fundamental

Leia mais

Resolução de Sistemas Lineares. Método de Gauss. O algoritimo conhecido como Método de Gauss é desenvolvido a partir de dois ingredientes básicos:

Resolução de Sistemas Lineares. Método de Gauss. O algoritimo conhecido como Método de Gauss é desenvolvido a partir de dois ingredientes básicos: Resolução de Sistemas Lineares Método de Gauss O algoritimo conhecido como Método de Gauss é desenvolvido a partir de dois ingredientes básicos: Resolução de Sistemas Lineares Triangulares Procedimento

Leia mais

é encontrado no cruzamento da linha i com a coluna j, ou seja, o primeiro índice se refere à linha e o segundo à coluna.

é encontrado no cruzamento da linha i com a coluna j, ou seja, o primeiro índice se refere à linha e o segundo à coluna. Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal De Santa Catarina Campus São José Professora: ELENIRA OLIVEIRA VILELA COMPONENTE CURRICULAR: ALG ÁLG. LINEAR MATRIZES

Leia mais

Utilização de Algoritmos Genéticos para Otimização de Altura de Coluna da Matriz de Rigidez em Perfil no Método dos Elementos Finitos

Utilização de Algoritmos Genéticos para Otimização de Altura de Coluna da Matriz de Rigidez em Perfil no Método dos Elementos Finitos Utilização de Algoritmos Genéticos para Otimização de Altura de Coluna da Matriz de Rigidez em Perfil no Método dos Elementos Finitos André Luiz Ferreira Pinto Pontifícia Universidade Católica do Rio de

Leia mais

Matrizes e Sistemas Lineares

Matrizes e Sistemas Lineares MATEMÁTICA APLICADA Matrizes e Sistemas Lineares MATRIZES E SISTEMAS LINEARES. Matrizes Uma matriz de ordem mxn é uma tabela, com informações dispostas em m linhas e n colunas. Nosso interesse é em matrizes

Leia mais

SME Cálculo Numérico. Lista de Exercícios: Gabarito

SME Cálculo Numérico. Lista de Exercícios: Gabarito Exercícios de prova SME0300 - Cálculo Numérico Segundo semestre de 2012 Lista de Exercícios: Gabarito 1. Dentre os métodos que você estudou no curso para resolver sistemas lineares, qual é o mais adequado

Leia mais

Matemática II /06 - Matrizes 1. Matrizes

Matemática II /06 - Matrizes 1. Matrizes Matemática II - 00/0 - Matrizes Matrizes Introdução Se m e n são números naturais, chama-se matriz real de tipo m n (m vezes n ou m por n) a uma função A : f; ; :::; mg f; ; :::; ng R: (i; j) A (i; j)

Leia mais

Matrizes esparsas: definição

Matrizes esparsas: definição Matrizes esparsas: definição o objetivo é mostrar os métodos de armazenamento e manipulação de matrizes esparsas esparsidade de uma matriz é a relação entre o número de elementos nulos de uma matriz e

Leia mais

Resolução de sistemas de equações lineares: Método de eliminação de Gauss - estratégias de pivotamento

Resolução de sistemas de equações lineares: Método de eliminação de Gauss - estratégias de pivotamento Resolução de sistemas de equações lineares: Método de eliminação de Gauss - estratégias de pivotamento Marina Andretta ICMC-USP 28 de março de 2012 Baseado no livro Análise Numérica, de R. L. Burden e

Leia mais

JÚNIOR ASSIS BARRETO BERNARDES UMA MODIFICAÇÃO NA HEURÍSTICA DE SNAY PARA REDUÇÃO DO CUSTO COMPUTACIONAL DO MÉTODO DOS GRADIENTES CONJUGADOS

JÚNIOR ASSIS BARRETO BERNARDES UMA MODIFICAÇÃO NA HEURÍSTICA DE SNAY PARA REDUÇÃO DO CUSTO COMPUTACIONAL DO MÉTODO DOS GRADIENTES CONJUGADOS JÚNIOR ASSIS BARRETO BERNARDES UMA MODIFICAÇÃO NA HEURÍSTICA DE SNAY PARA REDUÇÃO DO CUSTO COMPUTACIONAL DO MÉTODO DOS GRADIENTES CONJUGADOS LAVRAS - MG 2016 JÚNIOR ASSIS BARRETO BERNARDES UMA MODIFICAÇÃO

Leia mais

Considere a função f(x). Para algum x a f (x) pode não existir. Suponha que. Max f(x) s. a a x b

Considere a função f(x). Para algum x a f (x) pode não existir. Suponha que. Max f(x) s. a a x b Considere a função f(x). Para algum x a f (x) pode não existir. Suponha que se queira resolver o seguinte PPNL: Max f(x) s. a a x b Pode ser que f (x) não exista ou que seja difícil resolver a equação

Leia mais

6 Estudo de Casos: Valor da Opção de Investimento em Informação por Aproximação com Números Fuzzy 6.1. Introdução

6 Estudo de Casos: Valor da Opção de Investimento em Informação por Aproximação com Números Fuzzy 6.1. Introdução 6 Estudo de Casos: Valor da Opção de Investimento em Informação por Aproximação com Números Fuzzy 6.1. Introdução Este capítulo apresenta o segundo estudo de casos, no qual também são empregados números

Leia mais

Métodos Numéricos. Turma CI-202-X. Josiney de Souza.

Métodos Numéricos. Turma CI-202-X. Josiney de Souza. Métodos Numéricos Turma CI-202-X Josiney de Souza josineys@inf.ufpr.br Agenda do Dia Aula 15 (21/10/15) Sistemas Lineares Métodos Diretos: Regra de Cramer Método da Eliminação de Gauss (ou triangulação)

Leia mais

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

4 Testes e experimentos realizados 4.1. Implementação e banco de dados 32 4 Testes e experimentos realizados 4.1. Implementação e banco de dados Devido à própria natureza dos sites de redes sociais, é normal que a maior parte deles possua uma grande quantidade de usuários

Leia mais

Álgebra Linear e Geometria Anaĺıtica. Matrizes e Sistemas de Equações Lineares

Álgebra Linear e Geometria Anaĺıtica. Matrizes e Sistemas de Equações Lineares universidade de aveiro departamento de matemática Álgebra Linear e Geometria Anaĺıtica Agrupamento IV (ECT, EET, EI) Capítulo 1 Matrizes e Sistemas de Equações Lineares Geometria anaĺıtica em R 3 [1 01]

Leia mais

- identificar operadores ortogonais e unitários e conhecer as suas propriedades;

- identificar operadores ortogonais e unitários e conhecer as suas propriedades; DISCIPLINA: ELEMENTOS DE MATEMÁTICA AVANÇADA UNIDADE 3: ÁLGEBRA LINEAR. OPERADORES OBJETIVOS: Ao final desta unidade você deverá: - identificar operadores ortogonais e unitários e conhecer as suas propriedades;

Leia mais

Introdução aos Métodos Numéricos. Instituto de Computação UFF

Introdução aos Métodos Numéricos. Instituto de Computação UFF Introdução aos Métodos Numéricos Instituto de Computação UFF Conteúdo Erros e Aproximações Numéricas Sistemas de Equações Lineares. Métodos diretos Interpolação Ajuste de Curvas Zeros de Função Sistemas

Leia mais

CRIVO QUADRÁTICO: UM ESTUDO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES

CRIVO QUADRÁTICO: UM ESTUDO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES CRIVO QUADRÁTICO: UM ESTUDO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES Alex Zanella Zaccaron 1 ; Adriana Betânia de Paula Molgora 2 1 Estudante do Curso de

Leia mais

Análise Dinâmica de Sistemas Mecânicos e Controle

Análise Dinâmica de Sistemas Mecânicos e Controle Análise Dinâmica de Sistemas Mecânicos e Controle Unidade 3 Espaço de Estados: álgebra e resolução das equações dinâmicas Prof. Thiago da Silva Castro thiago.castro@ifsudestemg.edu.br Para trabalhar no

Leia mais

Métodos de Ordenação Parte I

Métodos de Ordenação Parte I Estrutura de Dados II Métodos de Ordenação Parte I Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais da Prof a Ana Eliza e Prof. Robson Lins Rearranjar

Leia mais

[a11 a12 a1n 7. SISTEMAS LINEARES 7.1. CONCEITO. Um sistema de equações lineares é um conjunto de equações do tipo

[a11 a12 a1n 7. SISTEMAS LINEARES 7.1. CONCEITO. Um sistema de equações lineares é um conjunto de equações do tipo 7. SISTEMAS LINEARES 7.1. CONCEITO Um sistema de equações lineares é um conjunto de equações do tipo a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1 a 11 x 1 + a 12 x 2 +... + a 1n x n = b 2... a n1 x 1 + a

Leia mais

Método prático para extrair uma base de um conjunto de geradores de um subespaço de R n

Método prático para extrair uma base de um conjunto de geradores de um subespaço de R n Método prático para extrair uma base de um conjunto de geradores de um subespaço de R n 1. Descrição do método e alguns exemplos Colocamos o seguinte problema: dado um conjunto finito: A = {a 1, a 2,...,

Leia mais

Matrizes hermitianas e unitárias

Matrizes hermitianas e unitárias Matrizes hermitianas e unitárias Amit Bhaya, Programa de Engenharia Elétrica COPPE/UFRJ Universidade Federal do Rio de Janeiro amit@nacad.ufrj.br http://www.nacad.ufrj.br/ amit Matrizes complexas O produto

Leia mais

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática

Leia mais

Geometria anaĺıtica e álgebra linear

Geometria anaĺıtica e álgebra linear Geometria anaĺıtica e álgebra linear Francisco Dutenhefner Departamento de Matematica ICEx UFMG 22/08/13 1 / 24 Determinante: teorema principal Teorema: Se A é uma matriz quadrada, então o sistema linear

Leia mais

Otimização em Grafos

Otimização em Grafos Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 35 Teoria dos Grafos - Relembrando Árvore Um grafo G é uma árvore se é conexo e não possui ciclos (acíclico).

Leia mais

3.1 CRIAR A GEOMETRIA/MALHA;

3.1 CRIAR A GEOMETRIA/MALHA; 72 3 METODOLOGIA A metodologia adotada no presente trabalho foi a de utilizar a ferramenta de dinâmica dos fluidos computacional (CFD) para simular dispositivos microfluídicos de diferentes geometrias

Leia mais

MATRIZES - PARTE Mais exemplos Multiplicação de duas matrizes AULA 26

MATRIZES - PARTE Mais exemplos Multiplicação de duas matrizes AULA 26 AULA 26 MATRIZES - PARTE 2 26. Mais exemplos Nesta aula, veremos mais dois algoritmos envolvendo matrizes. O primeiro deles calcula a matriz resultante da multiplicação de duas matrizes e utiliza três

Leia mais

Profs. Alexandre Lima e Moraes Junior 1

Profs. Alexandre Lima e Moraes Junior  1 Raciocínio Lógico-Quantitativo para Traumatizados Aula 07 Matrizes, Determinantes e Solução de Sistemas Lineares. Conteúdo 7. Matrizes, Determinantes e Solução de Sistemas Lineares...2 7.1. Matrizes...2

Leia mais

AULA 8- ÁLGEBRA MATRICIAL VERSÃO: OUTUBRO DE 2016

AULA 8- ÁLGEBRA MATRICIAL VERSÃO: OUTUBRO DE 2016 CURSO DE ADMINISTRAÇÃO CENTRO DE CIÊNCIAS SOCIAIS APLICADAS UNIVERSIDADE CATÓLICA DE PETRÓPOLIS MATEMÁTICA 01 AULA 8- ÁLGEBRA MATRICIAL VERSÃO: 0.1 - OUTUBRO DE 2016 Professor: Luís Rodrigo E-mail: luis.goncalves@ucp.br

Leia mais

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Exercícios: Árvores 1. Utilizando os conceitos de grafos, defina uma árvore.

Leia mais

Álgebra Linear e Geometria Analítica

Álgebra Linear e Geometria Analítica Álgebra Linear e Geometria Analítica Engenharia Electrotécnica Escola Superior de Tecnologia de Viseu wwwestvipvpt/paginaspessoais/lucas lucas@matestvipvpt 007/008 Álgebra Linear e Geometria Analítica

Leia mais

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013 Teoria dos Grafos Aula 5 - Estruturas de Dados para Grafos Profª. Alessandra Martins Coelho março/2013 Estrutura é o que caracteriza o próprio grafo e independe da forma como ele é representado. A representação

Leia mais

Álgebra Linear Semana 04

Álgebra Linear Semana 04 Álgebra Linear Semana 04 Diego Marcon 17 de Abril de 2017 Conteúdo 1 Produto de matrizes 1 11 Exemplos 2 12 Uma interpretação para resolução de sistemas lineares 3 2 Matriz transposta 4 3 Matriz inversa

Leia mais

Universidade Federal de Alagoas UFAL Centro de Tecnologia - CTEC Programa de Pós-Graduação em Engenharia Civil - PPGEC

Universidade Federal de Alagoas UFAL Centro de Tecnologia - CTEC Programa de Pós-Graduação em Engenharia Civil - PPGEC Universidade Federal de Alagoas UFAL Centro de Tecnologia - CTEC Programa de Pós-Graduação em Engenharia Civil - PPGEC Introdução à Mecânica do Contínuo Tensores Professor: Márcio André Araújo Cavalcante

Leia mais

Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile?

Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile? Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile? Paula Prata João Muranho Instituto de Telecomunicações Departamento de Informática Universidade da Beira Interior Instituto

Leia mais

1, , ,

1, , , Ministério da Educação Universidade Tecnológica Federal do Paraná Câmpus Francisco Beltrão Licenciatura em Informática Fundamentos de Geometria Analítica e Álgebra Linear Profª Sheila R. Oro Este texto

Leia mais

CRIVO QUADRÁTICO: IMPLEMENTAÇÃO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES

CRIVO QUADRÁTICO: IMPLEMENTAÇÃO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES CRIVO QUADRÁTICO: IMPLEMENTAÇÃO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES Alex Zanella Zaccaron1; Adriana Betânia de Paula Molgora2 1Estudante do Curso de

Leia mais

Álgebra Linear. Professor Alessandro Monteiro. 1º Sábado - Matrizes - 11/03/2017

Álgebra Linear. Professor Alessandro Monteiro. 1º Sábado - Matrizes - 11/03/2017 º Sábado - Matrizes - //7. Plano e Programa de Ensino. Matrizes. Exemplos. Ordem de Uma Matriz. Exemplos. Representação 7. Matriz Genérica m x n 8. Matriz Linha 9. Exemplos. Matriz Coluna. Exemplos. Diagonal

Leia mais

Um sistema linear é um conjunto de n equações lineares do tipo:

Um sistema linear é um conjunto de n equações lineares do tipo: Um sistema linear é um conjunto de n equações lineares do tipo: Este sistema pode ser representado através de uma representação matricial da forma: A.x = b onde: A matriz de coeficientes de ordem x vetor

Leia mais

CI065 CI755 Algoritmos e Teoria dos Grafos

CI065 CI755 Algoritmos e Teoria dos Grafos CI065 CI755 Algoritmos e Teoria dos Grafos Exercícios 11 de outubro de 2017 1 Fundamentos 1. Seja S = {S 1,..., S n } uma família de conjuntos. O grafo intercessão de S é o grafo G S cujo conjunto de vértices

Leia mais

Solução de Sistemas Lineares: Métodos Exatos

Solução de Sistemas Lineares: Métodos Exatos Capítulo 4 Solução de Sistemas Lineares: Métodos Exatos 4 Introdução Uma variedade de problemas de engenharia pode ser resolvido através da análise linear; entre eles podemos citar: determinação do potencial

Leia mais

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações? 8/0/06 GRAFOS Prof. André Backes Definição Como representar um conjunto de objetos e as suas relações? Diversos tipos de aplicações necessitam disso Um grafo é um modelo matemático que representa as relações

Leia mais

O gráfico da função constante é uma reta paralela ao eixo dos x passando pelo ponto (0, c). A imagem é o conjunto Im = {c}.

O gráfico da função constante é uma reta paralela ao eixo dos x passando pelo ponto (0, c). A imagem é o conjunto Im = {c}. UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA CIVIL DISCIPLINA: FUNDAMENTOS DE MATEMÁTICA Funções do 1 o Grau Prof.:

Leia mais

Departamento de Estatística

Departamento de Estatística Departamento de Estatística Universidade Federal de São Carlos José Carlos Fogo São Carlos Julho de 207 Sumário Vetores Definição Representação gráfica no R 2 2 2 Propriedades algébricas 2 2 Vetores especiais

Leia mais

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó

Leia mais

Formulação Multidimensional Operações Globais

Formulação Multidimensional Operações Globais e conectividade Formulação Multidimensional PME5425 Métodos de Elementos Finitos de Alta Ordem com Aplicações em Mecânica dos Fluidos e Transferência de Calor Prof. Programa de Pós-Graduação em Engenharia

Leia mais