184
DESENVOLVIMENTO DE UM MODELO DE ARMAZENAMENTO DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS DE OTIMIZAÇÃO NÃO LINEARES NILO AMÉRICO FONSECA DE MELO UNIVERSIDADE ESTADUAL DO NORTE FLUMINENSE - UENF CAMPOS DOS GOYTACAZES - RJ NOVEMBRO - 2002

DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

Embed Size (px)

Citation preview

Page 1: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

DESENVOLVIMENTO DE UM MODELO DE ARMAZENAMENTO

DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES

ESPARSOS E SEU USO EM PROBLEMAS DE OTIMIZAÇÃO NÃO

LINEARES

NILO AMÉRICO FONSECA DE MELO

UNIVERSIDADE ESTADUAL DO NORTE FLUMINENSE - UENF

CAMPOS DOS GOYTACAZES - RJ

NOVEMBRO - 2002

Page 2: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

DESENVOLVIMENTO DE UM MODELO DE ARMAZENAMENTO

DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES

ESPARSOS E SEU USO EM PROBLEMAS DE OTIMIZAÇÃO NÃO

LINEARES

NILO AMÉRICO FONSECA DE MELO

“Tese apresentada ao Centro de Ciências e

Tecnologia da Universidade Estadual do Norte

Fluminense, como parte das exigências para

obtenção de título de Doutor em Ciências de

Engenharia”.

Orientador: Prof. José Ramón Arica Chávez

CAMPOS DOS GOYTACAZES - RJ

NOVEMBRO - 2002

ii

Page 3: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

Ficha catalográfica feita na Biblioteca do CCT UENF

MELO, Nilo Américo Fonseca.

Desenvolvimento de um Modelo de Armazenamento Dinâmico de Dados para Resolução de Sistemas Lineares Esparsos e seu uso em Problemas de Otimização Não Lineares. / Nilo Américo Fonseca de Melo -- [ Campos dos Goytacazes ], 2002.

x, 174 f. , enc.; 30 cm (CCT/UENF, D. Sc. Ciências de Engenharia - Engenharia de Produção, 2002).

Tese - Universidade Estadual do Norte Fluminense, CCT.

Bibliografia: f. 134 – 136.

1. Matrizes Esparsas. 2.Problemas Lineares Esparsos. 3. Programação não Linear. I. UENF.CCT II. Título.

CDD - 658.5

iii

Page 4: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

DESENVOLVIMENTO DE UM MODELO DE ARMAZENAMENTO

DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES

ESPARSOS E SEU USO EM PROBLEMAS DE OTIMIZAÇÃO NÃO

LINEARES

NILO AMÉRICO FONSECA DE MELO

“Tese apresentada ao Centro de Ciências e

Tecnologia da Universidade Estadual do Norte

Fluminense, como parte das exigências para

obtenção de título de Doutor em Ciências de

Engenharia”.

Aprovada em 21 de novembro de 2002.

Comissão Examinadora

_________________________________________________________ Prof. Carlos Alberto de Jesus Martinhon (Doutor, Eng. Sistemas) - UFF

_________________________________________________________ Prof. Geraldo Galdino de Paula Junior (Doutor, Eng. Sistemas) - UENF

_________________________________________________________ Profª. Gudelia Morales (Doutora, Eng. Sistemas) - UENF

_________________________________________________________ Prof. José Ramón Arica Chávez (Doutor, Eng. Sistemas) – UENF

Orientador

iv

Page 5: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

DEDICATÓRIA

À minha filha Mariana.

À minha companheira Érika.

Aos meus pais, avós, irmãos e irmãs.

v

Page 6: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

AGRADECIMENTOS

Ao professor José Ramón Arica Chávez, meu orientador, pela dedicação, incentivo e

amizade demonstrada ao longo de todo o desenvolvimento deste trabalho.

Aos professores do LEPROD/CCT/UENF, pelo auxilio

vi

Page 7: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

Resumo da Tese apresentada ao CCT/UENF como parte dos requisitos necessários

para a obtenção do grau de Mestre em Ciências de Engenharia

DESENVOLVIMENTO DE UM MODELO DE ARMAZENAMENTO DINÂMICO DE

DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO

EM PROBLEMAS DE OTIMIZAÇÃO NÃO LINEARES

Nilo Américo Fonseca de Melo

21 de Novembro de 2002

Orientador: José Ramón Arica Chávez

Área de Concentração: Engenharia de Produção

Neste trabalho, desenvolvemos um modelo dinâmico de armazenamento de

dados para matrizes esparsas onde serão guardados somente os elementos não

nulos da matriz. Tal modelo utiliza o conceito de lista duplamente encadeada de

ponteiros e é aplicado para a resolução de sistemas lineares esparsos utilizando o

processo de Eliminação Gaussiana. O modelo desenvolvido tem como principal

característica a capacidade de alterar o seu tamanho de acordo com a criação ou

eliminação elementos, durante os cálculos computacionais. Técnicas de

pivotamento são utilizadas para garantir uma escolha adequada do elemento pivô.

O processo de pivotamento é constituído pelo intercâmbio de linhas e colunas da

matriz, de acordo com critérios para tentar manter a esparcidade da matriz e a

precisão dos resultados.

Os conceitos anteriores são aplicados para o desenvolvimento de algoritmo

para resolução de problemas de otimização não lineares esparsos, utilizando o

método seqüencial quadrático.

vii

Page 8: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

Abstract of the Thesis submitted to the CCT/UENF in partial fulfillment of the

requirements for the degree of Doctor of Sciences.

DEVELOPMENT OF A MODEL OF DYNAMIC STORAGE OF DATA FOR

RESOLUTION OF SPARSE LINEAR SYSTEMS AND HIS USE IN NO LINEAR

OPTIMIZATION PROBLEMS

Nilo Américo Fonseca de Melo

November 21, 2002.

Chair of Committee: José Ramón Arica Chávez

Major Subject: Industrial Engineering

In this work, we developed a dynamic model of data storage for sparse matrix

where only the non-zero elements of the matrix will be kept. Such a model use the

concept of double linked list of pointers and it is applied for the resolution of sparse

linear systems using Gaussian Elimination process. The developed model has as

main characteristic the capacity to alter his size in agreement with the creation or

elimination of elements, during the computer calculations. Pivotal techniques are

used to guarantee an appropriate choice of the element pivot. The pivotal process is

constituted by the exchange of lines and columns of the matrix, in agreement with

criteria trying to maintain the sparsity of the matrix and the precision of the results.

The previous concepts are applied for the algorithm development for resolution

of sparse no linear optimization problems, using the quadratic sequential method.

viii

Page 9: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

SUMÁRIO

CAPÍTULO I - INTRODUÇÃO…………………………………….................................. 1

1.1 - Objetivo..............................................................................................................2

1.2 – Estrutura do presente trabalho .......................................................................2

CAPÍTULO II - EXPLORANDO ESPARCIDADE …………………………………........ 4

2.1 – Formas de Explorar a Esparcidade.................................................................4

2.1.1 – Forma Clássica .................................................................................5

2.1.2 – Forma Orientada a computador ........................................................5

CAPÍTULO III - MODELOS DE ARMAZENAMENTO ............................................. 10

3.1 – Um Modelo Simples de Armazenagem de Dados........................................12

3.2 – Um Modelo de Armazenamento Dinâmico (Zlatev 1991) ............................14

3.3 – Armazenamento dos preenchimentos..........................................................19

3.4 – Procedimento de Coleta de Lixo (“Garbage Collection”) ...........................26

3.5 – Espaços Livres ...............................................................................................33

3.6 – O uso de Lista Encadeada no modelo de armazenamento dinâmico........34

3.7 – Outros Modelos de Armazenamento ............................................................38

3.8 – Conceitos Preliminares..................................................................................39

3.8.1 – Variáveis .........................................................................................39

3.8.2 – O Tipo Ponteiro da Linguagem Pascal............................................40

3.8.3 – Listas Lineares ................................................................................41

3.8.3.1 – Encadeamento de Listas ..........................................................41

3.9 – O Modelo de Armazenamento Proposto ......................................................43

3.10 – O cálculo da Eliminação Gaussiana no modelo proposto........................52

CAPÍTULO IV - ESTRATÉGIAS DE PIVOTAMENTO ............................................ 70

4.1 – Pivotamento para Matrizes Densas ..............................................................67

ix

Page 10: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

4.2 – Conceitos básicos para construção de estratégias de pivotamento para

matrizes esparsas. ..................................................................................................70

4.3 – Grupo 1: Estratégias de pivotamento com mudanças a priori...................73

4.4 – Grupo 2: Estratégias de pivotamento baseadas no uso da função de custo

de Markowitz............................................................................................................78

4.5 – Grupo 3: Estratégias de pivotamento baseadas em uma minimização local

de preenchimentos .................................................................................................86

4.6 – Escolha da estratégia de Pivotamento.........................................................89

CAPÍTULO V - MÉTODO SEQÜENCIAL QUADRÁTICO ....................................... 94

5.1 – Descrição do Método MSQ............................................................................93

5.2 – Algoritmo Seqüencial Quadrático Básico (PSQ) .........................................96

5.3 - Extensão do algoritmo básico PSQ incluindo Restrições de Desigualdade

..................................................................................................................................97

5.4 – Função de Mérito..........................................................................................100

5.5 – Algoritmo de solução...................................................................................103

CAPÍTULO VI – TESTES E RESULTADOS NUMÉRICOS .................................. 108

CAPÍTULO VII - CONCLUSÕES E RECOMENDAÇÕES ..................................... 130

REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................... 133

ANEXOS ................................................................................................................ 136

x

Page 11: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

SIGLAS

CN – Column Number (Número da Coluna)

EG – Eliminação Gaussiana

FPO – Fluxo de Potência Ótimo

CL – Coleta de Lixo

K.K.T. – Karush-Kuhn-Tucker

MSQ – Método Seqüencial Quadrático

NZ –Número de Elementos não Nulos (Non Zero)

PSQ - Programação Seqüencial Quadrática

RN – Row Number (Número da Linha)

xi

Page 12: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

1

CAPÍTULO I

INTRODUÇÃO

Existem vários problemas que a sua formulação matemática envolve a

resolução de grandes sistemas de equações lineares, do tipo bAx = , onde muitos

elementos da matriz são nulos. Estes problemas são chamados de problemas de

Grande Porte Esparsos. Existem técnicas específicas para o armazenamento e a

realização dos cálculos para evitar a manipulação destes elementos nulos. Uma

classe de problemas que pode ser usada como exemplo de problemas de grande

porte esparsos é a classe dos problemas de otimização de fluxo em rede, onde

podemos destacar os seguintes exemplos:

A

• Fluxo de petróleo em uma rede composta de tubulações, poços e

pontos de entrega;

• Fluxo de informações em uma rede de computadores;

• Fluxo de energia elétrica em uma rede composta de geradores,

consumidores e cabos de transmissão.

O problema de otimização do fluxo de energia elétrica(Carpentier-1962),

também conhecido como Problema de Fluxo de Potência Ótimo (FPO), foi a principal

motivação para o desenvolvimento do modelo de armazenamento e o método de

resolução de sistemas lineares de equações com matrizes esparsas, assim como

Page 13: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

2

sua aplicação na resolução de problemas não lineares esparsos de grande porte

aqui apresentados.

1.1 - Objetivo

O presente trabalho tem como objetivo o desenvolvimento e implementação

de um modelo de armazenamento e de um algoritmo para resolver sistemas de

equações lineares esparsos ( bAx = ) utilizando esta estrutura, desenvolvendo-se,

também, um método para resolução de problemas de otimização não lineares

esparsos.

O método utilizado neste trabalho para solução de problemas de programação

não linear é baseado no Método Seqüencial Quadrático (MSQ). Neste método, o

problema de programação não linear é resolvido através da formulação de uma

seqüência de subproblemas quadráticos cujas soluções convergem a um ponto que

satisfaz as condições de Karush-Kuhn-Tucker (K.K.T.) do problema original.

1.2 – Estrutura do presente trabalho

Neste trabalho, apresentamos o desenvolvimento de um modelo de

armazenamento e um método para resolver sistemas de equações lineares, bem

como a sua aplicação na implementação de um algoritmo para solução de

problemas de otimização não lineares de grande porte utilizando o Método

Seqüencial Quadrático. Está organizado em sete capítulos assim distribuídos:

• Capítulo 1: introdução.

• Capítulo 2: descreve as formas de explorar a esparcidade (a Forma

Clássica e a Forma Orientada a Objeto).

Page 14: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

3

• Capítulo 3: apresenta e compara vários modelos de armazenamento e

manipulação de dados para matrizes esparsas, desenvolvendo-se um

novo modelo baseado nas vantagens dos modelos apresentados.

• Capítulo 4: apresenta e compara as técnicas de pivotamento para

matrizes esparsas.

• Capítulo 5: descreve o Método Seqüencial Quadrático e aplica o

modelo de armazenamento de dados desenvolvido no capítulo 3 e as

técnicas de pivotamento mostradas no capítulo 4 para adaptar tal

método para o caso de problemas esparsos.

• Capítulo 6: detalha os resultados computacionais obtidos com a

implementação aplicada a alguns problemas testes.

• Capítulo 7: discute as conclusões e as recomendações para o

aprimoramento do algoritmo apresentado.

Page 15: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

4

CAPÍTULO II

EXPLORANDO ESPARCIDADE

Seja uma matriz comum, ou seja, A

não tem nenhuma propriedade ou estrutura especial (A não é necessariamente

simétrica ou definida positiva). A matriz A é chamada de esparsa se muitos

elementos n) ..., 2, 1,j m, ..., ,2 ,1(

))( , , , nAranknmn(mRA mxn =∈∈≥∈ ΝΝ

==∈ iAij são iguais a zero. Nestes casos, o

tempo computacional e o espaço necessário para o armazenamento dos dados do

problema podem ser reduzidos quando alguma técnica de esparcidade é explorada.

Mais ainda: vários problemas esparsos só poderão ser resolvidos com sucesso se

a

a

esparcidade for explorada.

2.1 – Formas de Explorar a Esparcidade

é explorada,

existem duas diferentes formas de tratar a esparcidade de uma matriz:

- forma orientada à computação.

Nos casos em que nenhuma propriedade particular da matriz

- A forma clássica;

A

Page 16: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

5

2.1.1 – Forma Clássica

Na forma clássica de explorar a esparcidade, tenta-se armazenar somente

elementos não nulos na memória do computador e trabalhar somente com estes

elementos durante os cálculos computacionais.

Algumas variações da definição anterior podem ser encontradas em muitas

aplicações. Por exemplo: além dos elementos nulos, em algumas aplicações

evitam-se armazenar alguns elementos não nulos, como no caso dos elementos da

diagonal principal da matriz triangular inferior L que se tornarão iguais a 1 durante o

processo de Eliminação Gaussiana (EG).

Deve-se ainda enfatizar que alguns elementos não nulos podem se tornar

iguais a zero, durante os cálculos computacionais. Tais elementos são normalmente

mantidos na memória do computador, quando utilizamos a forma clássica de

explorar a esparcidade. Isto significa que iremos trabalhar com alguns elementos

nulos durante os cálculos computacionais o que implica um acréscimo no tempo

computacional e no espaço necessário para o armazenamento dos dados.

É evidente que a forma clássica de explorar a esparcidade é influenciada pela

precisão dos cálculos, onde os elementos da matriz (especialmente os elementos

nulos) serão calculados utilizando aritmética exata e, mais ainda, todos os cálculos

necessários durante o processo de solução do sistema serão executados da mesma

maneira.

2.1.2 – Forma Orientada a computador

Na forma orientada a computador de explorar a esparcidade, evita-se

trabalhar com elementos não nulos de “pequena” magnitude. Torna-se óbvio que é

preciso definir um critério apropriado para determinar se um elemento deve ser

desprezado. Em geral, a definição de tal critério não é feita tão facilmente. Por

Page 17: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

6

outro lado, algumas classes de problemas esparsos somente poderão ser tratadas

nos computadores atuais se for utilizada a forma orientada à computação.

Quando utilizamos computadores de aritmética aproximada, os cálculos

computacionais não serão efetuados utilizando a aritmética exata. Nestes casos,

elementos não nulos são produzidos enquanto cálculos exatos produziriam

elementos nulos.

Para ilustrar as afirmações anteriores, considere a solução do seguinte

sistema de equações algébricas:

Ax=b (2.1) ))( , , ,( 11 nArankRxRbRA nxnxnxn =∈∈∈

Para resolver tal sistema iremos utilizar um processo conhecido como

Eliminação Gaussiana (EG) onde os elementos da matriz A serão decompostos em

duas matrizes triangulares nxnRL ∈ nxnRU ∈ . Os cálculos efetuados durante o

processo EG são baseados nas seguintes f

e

órmulas:

++=== −+ 11

n, ..., 2, s1, sj i, 1,-n ..., 2, 1, s,a )(a a - aa )s(sj

(s)ss

(s)is

)s(ij

)s(ij

(2.2)

n ..., 2, 1,ji, ,Aaa ,a ij(1)ij

)s(ss =∈=≠ 0

onde:

s - estágio do processo de Eliminação Gaussiana já executado.

Os elementos da matriz triangular inferior L são dados por:

n ..., 2,j 1,ji 1,-n ..., 2, 1,j ,aa

l )j(jj

)j(ij

ij ++==−= (2.3)

n, ..., 2, 1,i , == 1 lii (2.4)

(2.5) 1-j ...., 2, 1,i n, ..., 3, 2,j ,lij === 0

Page 18: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

7

Os elementos da matriz triangular superior U são dados por:

(2.6) n, ..., 1,i i,j n, ..., 2, 1,i ,a )s(ijij +=== u

1- i ..., 2, 1,j n, ..., 3, 2,i ,uij === 0 (2.7)

Pode-se observar de 2.2 que elementos )a 1+ podem ser não nulos apesar de

)

ij

s(ij

)s(ija serem iguais a zero. Isto acontece quando e são não nulos. O

elemento a criado durante os cálculos da EG, enquanto , é conhecido

como preenchimento (“fill-in”).

nte os cálculos são executados com erros

de arredondamento, desta forma temos:

U = A + E ,

s(isa )s(

sja

01 ≠+ )s( 0=)s(ija

Se os cálculos forem executados usando aritmética exata, então o produto LU

será igual à matriz A . Contudo, geralme

n x nRE ∈L (2.8)

ter fatores L e U mais densos

do que os obtidos com utilização da aritmética exata.

A matriz E é chamada de matriz de perturbação e contém a correção dos

erros de arredondamentos gerados nos cálculos. Técnicas de pivotamento são

normalmente utilizadas no intuito de tentar manter os elementos da matriz E os

menores possíveis e tentar diminuir o número de preenchimentos durante os

cálculos. Quando a aritmética aproximada é utilizada, então o )s(ija pode ser um

elemento não nulo até mesmo quando o valor exato de )s(ija 1+ deveria ser igual a zero

(ou, em outras palavras, preenchimentos podem ser produzidos também por causa

de erros computacionais, erros de arredondamento). Isto significa que se aplicarmos

a forma orientada a computador então poderemos ob

1+

Page 19: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

8

É óbvio que se o valor exato de )a 1+ é zero, enquanto o valor calculado é

diferente de zero, então espera-se que o valor calculado seja, de alguma forma,

pequeno. Desta forma poderá ser vantajoso atribuir valores nulos a quando

estes forem menores do que um parâmetro definido. Isto significa que pequenos

elementos serão removidos da memória do computador e não serão envolvidos nos

cálculos. Estes elementos serão ditos eliminados (“dropped”) durante a EG.

s(ij

)s(ija 1+

A maneira mais simples de eliminar um elemento poderá ser descrita a seguir.

Seja T um número não negativo. Então um elemento obtido durante EG é

considerado pequeno e desprezado se:

n) ..., 2, s1,sj n, ..., 2, s1,si 1,-n ..., 2, 1, (s T a )s( ≤+1ij ++=++== (2.9)

á conduzir a

to pode ser feito por um processo de refinamento

iterativo conforme pode ser observado a seguir:

=+==−= +−1 (2.10)

o

O parâmetro T, usado no critério acima, é chamado de tolerância de

eliminação. Torna-se claro que a aplicação de uma tolerância de eliminação nos

cálculos computacionais poder fatores imprecisos L e U. Então, se isto

acontecer, uma aproximação b)LU(x1−= da solução exata bAx será,

normalmente, imprecisa. Algumas vezes é necessário tentar recuperar a precisão

perdida pela eliminação e is

1 1−=

1-p ..., 2, 1,i ,dxx ,r)LU(d ,Axbr ii1iiiii

nde:

ir – vetor de resíduos;

di – vetor de correções;

p – e parada, ver

Stewart (1973), Voevodin (1977), Wilkinson (1963 e 1965);

ri 0

número de iterações definido por algum critério apropriado d

∞→→

i

Page 20: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

9

a solução

mais próxima da solução exata, usando um critério de parada apropriado.

m ndo

consideramos T = 0 e aceitando a primeira aproximação como solução final.

tacional será

alcançada somente quando duas condições a seguir forem satisfeitas:

Muitos elementos serão retirados durante a EG.

- to iterativo é convergente e a taxa de convergência é

uficientemente rápida.

A partir de uma solução aproximada 1x poderá ser calculada um

Se a tolerância de eliminação T é suficientemente grande, então os fatores

calculados L e U serão geralmente esparsos e algumas vezes mais esparsos do que

os fatores calculados utilizando a forma clássica (sem a retirada de “pequenos”

elementos). A forma clássica de explorar a esparcidade poderá ser considerada

como um caso particular da forma orientada a co putação, obtida qua

1x

Se um fator de eliminação T grande é utilizado na forma orientada à

computação, então se espera que o armazenamento seja reduzido, porque muitos

elementos serão desconsiderados durante os cálculos computacionais.

Conseqüentemente, o cálculo computacional também será reduzido, isto porque a

redução do tempo computacional para realizar a Eliminação Gaussiana é

normalmente maior do que o aumento do tempo computacional gasto com

acréscimos de iterações, com o refinamento interativo necessário para recuperar a

precisão perdida com um fator de “dropped” T grande. Contudo, é bastante claro

que a redução tanto do armazenamento quanto do tempo compu

-

O processo de refinamen

s

Se estas duas condições não forem satisfeitas, é preferível utilizar a forma

clássica. Exemplos comparando a forma clássica com a forma orientada a

computação podem ser observados em Zlatev (1991), onde algumas formas de

tratar a esparcidade são comparadas pelo espaço necessário para o

armazenamento dos elementos dos fatores L e U e tempo computacional gasto nos

cálculos. Os resultados lá encontrados demonstram que, para algumas classes de

Page 21: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

10

rio apropriado de eliminação

T para eliminação de “pequenos” elementos não nulos.

matrizes, a forma clássica é mais eficiente do que a forma orientada à computação.

Contudo, existem classes de matrizes em que a forma orientada à computação

consegue melhores resultados do que a forma clássica, ressaltando que alguns

problemas esparsos somente podem ser tratados nos computadores atuais quando

a forma orientada à computação é utilizada com um crité

Page 22: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

11

CAPÍTULO III

MODELOS DE ARMAZENAMENTO

Nos casos de problemas com matrizes esparsas, uma questão importante na

implementação de códigos computacionais é determinar a forma em que os

elementos não nulos da matriz serão armazenados na memória do computador. Um

modelo eficiente de armazenamento deve satisfazer a algumas exigências onde

podemos destacar:

- A redução da quantidade de informação a ser armazenada;

- A simplicidade do modelo de armazenamento sob o ponto de vista do usuário;

- A eficiência na execução de diferentes operações básicas de Álgebra Linear;

Tais exigências trabalham em direções opostas, sendo uma tarefa difícil

encontrar um modelo que atenda, de forma satisfatória, tais requisitos.

Existem vários modelos de armazenamento dos elementos não nulos de uma

matriz esparsa.

Um modelo de armazenamento, observado em ZLATEV (1991), é descrito a

seguir:

Page 23: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

12

3.1 – Um Modelo Simples de Armazenagem de Dados

Seja uma matriz A esparsa e seja NZ o número de elementos não nulos de A.

As informações sobre os elementos não nulos de A serão armazenados inicialmente

em três vetores: um de números reais AORIG e dois de números inteiros RNORIG e

CNORIG, de tamanho no mínimo igual a NZ. A notação usada nos nomes dos

vetores será explicada a seguir:

- A letra “A”, utilizada no primeiro vetor, refere-se ao fato de que os elementos

não nulos da matriz A serão armazenados no primeiro vetor.

- “RN” é a abreviatura de “Row Number” (número da linha) e refere-se ao fato

de que os números das linhas dos elementos da matriz A serão armazenados

no vetor RNORIG.

- “CN” é a abreviatura de “Column Number” (número da coluna) e refere-se ao

fato de que os números das colunas dos elementos da matriz A serão

armazenados no vetor CNORIG.

- “ORIG” é a abreviatura de “Original” e refere-se ao fato de que os três vetores

mencionados anteriormente (AORIG, RNORIG e CNORIG) irão armazenar os

elementos não nulos da matriz original A, os seus números de linhas e seus

números de colunas, respectivamente.

Um dos modelos mais simples de armazenamento consiste no

armazenamento dos elementos da matriz A nas primeiras NZ posições do vetor

AORIG, sendo que a ordem em que estes serão estocados é arbitrária. Contudo, se

um elemento ij da matriz A é armazenado na posição K ,ou seja,

AORIG(K)= ij , então os elementos da posição K dos vetores RNORIG e CNORIG

deverão conter a linha e a coluna deste elemento: RNORIG(K)=i e CNORIG(K)=j.

Somente os elementos não nulos da matriz A junto com o número de suas linhas e

colunas serão armazenados nos vetores AORIG, RNORIG e CNORIG,

respectivamente.

a )NZK( ≤≤1

a

Page 24: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

13

O modelo de armazenamento apresentado anteriormente pode ser utilizado

em operações em que os elementos da matriz A permanecem inalterados durante

operações básicas de álgebra linear. Operações deste tipo são ditas “estáticas” e o

modelo de armazenamento para tais operações é também conhecido como “modelo

de armazenamento estático”. Alguns exemplos de operações estáticas podem ser

observados a seguir:

- Cálculo do produto entre vetores e matrizes;

- Cálculo do vetor residual do processo de refinamento iterativo ( ); Axbr −=

- Cálculo da norma um de uma matriz;

- Cálculo da Max-norma de uma matriz.

Se os elementos da matriz A variam durante a execução de operações de

álgebra linear, tais operações são ditas “dinâmicas”. Algumas operações dinâmicas

que não produzem novos elementos não nulos (preenchimentos), conhecidas como

operações simplesmente dinâmicas, podem ser eficientemente executadas

utilizando o modelo de armazenamento apresentado anteriormente. Dentre estas

operações podemos destacar:

- Multiplicação de um vetor por uma constante;

- Escalonamento de uma matriz.

Contudo, algumas operações algébricas importantes não podem ser

executadas utilizando o modelo de armazenagem descrito anteriormente. Dentre

estas podemos ressaltar:

- Eliminação Gaussiana;

- Transformações Ortogonais.

Normalmente, tais operações transformam alguns elementos nulos em

elementos não nulos durante os cálculos, isto é, poderão aparecer preenchimentos

Page 25: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

14

durante a performance destas operações, alterando o padrão de esparcidade da

matriz. Estas operações são conhecidas como operações essencialmente

dinâmicas.

Nas operações onde os elementos não variam (operações estáticas) ou em

que os elementos variam sem alteração do padrão de esparcidade (operações

simplesmente dinâmicas), os modelos de armazenamento estático, como o

apresentado anteriormente, são largamente utilizados pela sua simplicidade.

Contudo, nas operações essencialmente dinâmicas, é necessário um modelo de

armazenamento que facilite a inclusão de novos elementos imediatamente após a

produção dos mesmos, ao qual denominamos “dinâmico” e será descrito a seguir.

3.2 – Um Modelo de Armazenamento Dinâmico (Zlatev 1991)

Durante operações de Álgebra Linear essencialmente dinâmica,

preenchimentos poderão aparecer independente do algoritmo utilizado. O modelo

de armazenamento deve facilitar o armazenamento destes elementos e,

conseqüentemente, auxiliar no próprio cálculo visando à redução do tempo

computacional.

Para facilitar a explanação iremos considerar durante todo o trabalho a

utilização da Eliminação Gaussiana como método de resolução de um sistema linear

de equações do tipo:

A 1 x mn x m1 =≥∈∈ (3.1) n,rank(A) n,m ,Rb ,RA ,Rx ,bx x n∈=

Assuma que o modelo de armazenamento estático apresentado na Seção 3.1

é inicialmente utilizado para estocar os elementos da matriz A. Em outras palavras,

os elementos da matriz A serão armazenados nas primeiras NZ posições do vetor de

elementos reais AORIG, enquanto o número da linha e da coluna de cada elemento

será armazenado nas posições correspondentes aos vetores de elementos inteiros

Page 26: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

15

RNORIG e CNORIG, respectivamente. Considere como exemplo a seguinte matriz

A com 12 elementos não nulos (NZ=12):

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

0.90.200000.20.1000.300.30.10

0000.10.20.90.3006.0

A (3.2)

Usando o modelo de armazenamento estático anteriormente mencionado,

teremos:

Posição Vetor 1 2 3 4 5 6 7 8 9 10 11 12 AORIG 9.0 1.0 9.0 2.0 2.0 3.0 6.0 1.0 1.0 2.0 3.0 3.0RNORIG 5 4 1 4 2 3 1 3 2 5 1 3 CNORIG 5 3 5 4 1 5 1 2 2 4 4 3

Podemos observar que os elementos são armazenados sem obedece

nenhuma ordem específica.

O modelo de armazenamento dinâmico de Zlatev irá usar uma rotina

ordenação que, a partir do modelo estático apresentado anteriormente, irá reorde

os elementos dos vetores AORIG, RNORIG e CNORIG para realizar a Elimina

Gaussiana de forma eficiente, utilizando os seguintes vetores e matrizes:

- ALU(NN) – vetor de elementos reais de dimensão NN. Neste v

encontraremos os elementos não nulos da matriz A, sendo que estes se

ordenados pelas linhas em que se encontram, ou seja, primeiro se

armazenados os elementos da primeira linha, em seguida serão armazena

os elementos da segunda linha e assim por diante. Os elementos não n

da matriz A serão armazenados nas primeiras NZ posições;

(3.3)

r a

de

nar

ção

etor

rão

rão

dos

ulos

Page 27: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

16

- CNLU(NN1) – vetor de elementos inteiros de dimensão NN1, onde será

armazenado o número das colunas dos elementos do vetor ALU na mesma

posição em que estes se encontram, ou seja, se um elemento aij A∈ é

armazenado na posição K de ALU (ALU(K) = ), onde NZK ≤≤1 , então o

número da coluna deste elemento será armazenado na posição K do vetor

CNLU (CNLU(K

ija

) = j).

- RNLU(NN) – vetor de elementos inteiros de dimensão NN, onde serão

armazenados os números das linhas dos elementos não nulos da matriz A

ordenados por coluna, ou seja, primeiro serão armazenados os números das

linhas dos elementos não nulos da primeira coluna, em seguida serão

armazenados os números das linhas dos elementos não nulos da segunda

coluna, e assim por diante.

- HA(NHA,11) – matriz de elementos inteiros de NHA linhas e 11 colunas, onde

serão armazenadas informações adicionais para execução da EG. As três

primeiras colunas da matriz HA contêm informações sobre os vetores ALU e

CNLU, sendo que a primeira coluna informa a posição no vetor ALU onde

está armazenado o primeiro elemento não nulo da linha, ou seja, HA(i,1)

contém a posição no vetor ALU do primeiro elemento não nulo da linha i. A

terceira coluna informa a posição no vetor ALU onde está armazenado o

último elemento não nulo da linha, ou seja, HA(i,3) contém a posição no vetor

ALU do último elemento não nulo da linha i. A segunda coluna informa a

posição do elemento que será comparado e calculado durante o estágio s da

EG. Esta coluna inicia com a posição do primeiro elemento não nulo da linha

e ao final do estágio esta coluna deverá mostrar as linhas da matriz A que

ainda serão utilizadas na EG (“parte ativa das linhas” da matriz A). As três

colunas seguintes da matriz HA contêm informações sobre o vetor RNLU. A

quarta coluna informa a posição no vetor RNLU onde está armazenado o

número da linha do primeiro elemento não nulo da coluna em questão, ou

seja, HA(i,4) contém a posição no vetor RNLU onde está armazenado o

número da linha do primeiro elemento não nulo da coluna i. A sexta coluna

informa a posição no vetor RNLU onde está armazenado o número da linha

do último elemento não nulo da coluna em questão, ou seja, HA(i,6) contém a

Page 28: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

17

≥ e

posição no vetor RNLU onde está armazenado o número da linha do último

elemento não nulo da coluna i. A quinta coluna informa a posição do

elemento que será comparado e calculado durante o estágio s da EG. Esta

coluna inicia com a posição do número da linha do primeiro elemento não

nulo da coluna e ao final do estágio esta coluna deverá mostrar as colunas da

matriz A que ainda serão utilizadas na EG (“parte ativa das colunas” da matriz

A). As demais colunas da matriz HA contêm outras informações para facilitar

a execução da EG.

Os parâmetros NN, NN1, NHA são tais que , N1 NNHA ≥ ,

onde NZ é o número de elementos não nulos da matriz A e N=n é a ordem da matriz

A. Normalmente, os parâmetros NN e NN1 são maiores do que NZ, reservando

espaços livres para o armazenamento de elementos nulos que, durante o cálculo, se

tornaram não nulos (preenchimentos).

NZNN ≥ NZN

O modelo de armazenamento dinâmico, descrito anteriormente, consiste em

dois grupos de vetores. No primeiro grupo de vetores os elementos da matriz A,

juntamente com os seus números de colunas, são ordenados pelas linhas nos

vetores ALU e CNLU, sendo que a informação do primeiro e do último elemento de

cada linha é armazenada nas três primeiras colunas da matriz HA. Os vetores ALU

e CNLU, juntamente com as três primeiras colunas de HA, são conhecidos como

“Lista Ordenada por Linhas” ou “Estrutura Orientada por Linha”. No segundo grupo

de vetores, os números das linhas dos elementos da matriz A são ordenados pelas

colunas no vetor RNLU, a informação do primeiro e do último elemento de cada

coluna é armazenada nas três próximas colunas da matriz HA. O vetor RNLU,

juntamente com as quarta, quinta e sexta colunas de HA, é conhecidos como “Lista

Ordenada por Colunas” ou “Estrutura Orientada por Coluna”

Para exemplificar, considere a matriz (3.2) e os vetores AORIG, RNORIG e

CNORIG da Tabela (3.3). A estrutura dinâmica correspondente seria a seguinte:

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15ALU 6.0 3.0 9.0 2.0 1.0 1.0 3.0 3.0 1.0 2.0 2.0 9.0 CNLU 1 4 5 1 2 2 3 5 3 4 4 5

(3.4)
Page 29: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

18

Nº LINHA Linha 1 Linha 2 Linha 3 Linha 4 Linha 5 Espaço Livre

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15RNLU 1 2 2 3 3 4 1 4 5 1 3 5 Nº COLUNA

Coluna 1

Coluna 2

Coluna 3

Coluna 4 Coluna 5 Espaço Livre

MATRIZ HA COLUNA

LINHA 1 2 3 4 5 6

1 1 1 3 1 1 2 2 4 4 5 3 3 4 3 6 6 8 5 5 6 4 9 9 10 7 7 9 5 11 11 12 10 10 12 Informações sobre as

posições iniciais e finais dos vetores ALU e CNLU

Informações sobre as posições iniciais e finais dos

vetores RNLU

(3.6)

(3.5)

Page 30: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

19

3.3 – Armazenamento dos preenchimentos

Conforme pode ser observado na seção anterior, o modelo de

armazenamento dinâmico é muito mais complexo do que o modelo de

armazenamento estático.

A principal razão para utilizar o modelo dinâmico é a necessidade de

armazenar os preenchimentos que irão surgir durante o processo de Eliminação

Gaussiana ou outras operações de uma forma conveniente. O armazenamento de

tais preenchimentos seria impossível se o modelo estático fosse utilizado. A seguir

será explicado como é feito o armazenamento destes preenchimentos utilizando um

modelo dinâmico de armazenamento.

Seja )s(ij um novo preenchimento criado na linha i e coluna j no estágio s de

uma Eliminação Gaussiana(EG). A EG foi utilizada como exemplo, mas a mesma

idéia pode ser aplicada para outras operações algébricas bastando que algumas

modificações sejam feitas. O processo de armazenamento deste preenchimento é

composto dos seguintes passos:

a

1. Fazer uma cópia dos elementos da linha i no espaço livre do vetor

ALU, depois do último elemento armazenado;

2. Fazer uma cópia dos elementos correspondentes aos números das

colunas dos elementos da linha i no espaço livre do vetor CNLU,

depois do último elemento armazenado;

3. Atualizar o conteúdo das três primeiras colunas da linha i da matriz HA

(HA(i,1), HA(i,2) e HA(i,3)).

4. Armazenar o novo elemento no final da cópia da linha i no vetor ALU e

armazenar o número da coluna deste elemento na mesma posição no

vetor CNLU.

5. A inclusão deste novo elemento no final da linha i irá provocar

modificação do elemento HA(i,3), sendo necessário atualizar esta

matriz.

Page 31: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

20

6. As posições ocupadas, antes das operações acima, pelos elementos

da linha i e pelos números de suas colunas são liberadas. Uma

posição liberada é indicada colocando zero no vetor CNLU.

Para exemplificar o processo descrito anteriormente, observe, passo a passo,

as operações no estágio 1 da Eliminação Gaussiana da matriz (3.2). Neste estágio

o elemento será eliminado e serão criados dois preenchimentos ,nas colunas 4 e

5 da linha 2, conforme pode ser observado a seguir.

21a

⎢⎢⎢⎢

−−=

0.2.2

0.300.30.100.3100.10

(3.7)

que estava armazenado na posição 3 da lista ordenada

nhas c ento gerado na coluna 4 da linha 2 pode ser

do çã

⎥⎥

⎢⎢

0.9000000.100

⎥⎥⎥⎥

⎤⎡ 0.90.3006.0

A

Como o elemento 21a

por li foi eliminado, o preen him

armazena nesta posi o.

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15ALU 6.0 3.0 9.0 -1.0 1.0 1.0 3.0 3.0 1.0 2.0 2.0 9.0 CNLU 1 4 5 4 2 2 3 5 3 4 4 5 Nº LIN

Livre HA Linha 1 Linha 2 Linha 3 Linha 4 Linha 5 Espaço

Para o armazenamento do preenchimento criado na coluna 5 da linha 2 ser

preciso a realização de alguns passos:

1º passo: Criação de uma cópia da linha i no espaço livre dos vetores ALU e CNLU

depois do último elemento armazenado;

(3.8)

á

,

Page 32: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

21

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15ALU 6.0 3.0 9.0 -1.0 1.0 1.0 3.0 3.0 1.0 2.0 2.0 9.0 -1.0 1.0 CNLU 1 4 5 4 2 2 3 5 3 4 4 5 4 2 Nº LINHA Linha 1 Linha 2 Linha 3 Linha 4 Linha 5 Cópia da

Linha 2 Livre

2º passo: Atualizar matriz HA;

MATRIZ HA COLUNA

LINHA 1 2 3 4 5 6

1 1 1 3 1 1 2 2 13 13 14 3 3 4 3 6 6 8 5 5 6 4 9 9 10 7 7 9 5 11 11 12 10 10 12 Informações sobre as

posições iniciais e finais dos vetores ALU e CNLU

Informações sobre as posições iniciais e finais dos

vetores RNLU

3º passo: Armazenar o preenchimento e o número de sua coluna nos vetores ALU

CNLU;

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15ALU 6.0 3.0 9.0 -1.0 1.0 1.0 3.0 3.0 1.0 2.0 2.0 9.0 -1.0 1.0 -3CNLU 1 4 5 4 2 2 3 5 3 4 4 5 4 2 5Nº LINHA Linha 1 Linha 2 Linha 3 Linha 4 Linha 5 Linha 2

4º passo: Atualizar o elemento HA(2,3);

MATRIZ HA COLUNA

LINHA 1 2 3 4 5 6

1 1 1 3 1 1 2 2 13 13 15 3 3 4 3 6 6 8 5 5 6 4 9 9 10 7 7 9 5 11 11 12 10 10 12 Informações sobre as

posições iniciais e finais dos vetores ALU e CNLU

Informações sobre as posições iniciais e finais dos

vetores RNLU

(3.10)

e

.0

(3.12)

(3.9)

(3.11)

Page 33: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

22

5º passo: Liberar os espaços ocupados pelos antigos elementos nos vetores ALU e

CNLU;

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ALU 6.0 3.0 9.0 -1.0 1.0 1.0 3.0 3.0 1.0 2.0 2.0 9.0 -1.0 1.0 -3.0CNLU 1 4 5 0 0 2 3 5 3 4 4 5 4 2 5 Nº LINHA Linha 1 Espaço

Livre Linha 3 Linha 4 Linha 5 Linha 2

O modelo de armazenamento é inicialmente compacto e ordenado. Contudo,

a estrutura, geralmente, não permanece compacta após o início da EG. O que se

mantém ainda compacta é a estrutura dentro de cada linha, ou seja, não existem

posições vagas entre dois elementos de uma mesma linha nos vetores ALU e CNLU.

Podemos observar que os elementos das posições 4 e 5 , que antes das

operações da EG no estágio 1 eram ocupadas por elementos da linha 2, estão livres

(o número dos elementos do vetor CNLU nestas posições é igual a zero). O fato de

haver posições vagas entres as linhas depois do começo da EG indica que, antes de

se fazer uma cópia da linha i no final da estrutura, pode ser vantajoso verificar se

existe posição vaga antes do primeiro (ou depois do último) elemento da linha i.

Nestes casos o preenchimento é armazenado em uma destas posições vagas, a

matriz HA é atualizada de forma conveniente.

O número de cópias de linhas é normalmente reduzido quando se explora

posições livres antes do primeiro ou depois do último elemento das linhas como

descrito anteriormente. Contudo, muitas cópias são realizadas, sendo que a

capacidade dos vetores ALU e CNLU (NN e NN1) pode ser excedida. Se isto

acontecer, então é necessário compactar a estrutura destes dois vetores executando

um procedimento chamado Coleta de Lixo (CL), que será descrito na seção

seguinte. Devemos enfatizar que, o fato de explorar posições livres antes do

primeiro e depois do último elemento da linha, irá reduzir, além do número de cópias

das linhas, o número de procedimentos CL necessário para a EG. Este segundo

efeito é freqüentemente mais importante e significativo do que a redução do número

de cópias das linhas.

(3.13)

Page 34: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

23

Um procedimento similar ao aplicado na lista ordenada por linhas (ALU, CNLU

e as três primeiras colunas de HA) pode ser aplicado na lista ordenada por colunas

(RNLU e quarta, quinta e sexta colunas de HA) para acrescentar um preenchimento

na estrutura, conforme pode ser descrito nos seguintes passos:

1. Fazer uma cópia dos elementos dos números das linhas dos

elementos da coluna i no espaço livre do vetor RNLU, depois do

último elemento armazenado;

2. Atualizar o conteúdo da quarta, quinta e sexta colunas da linha i da

matriz HA (HA(i,4), HA(i,5) e HA(i,6)).

3. Armazenar o novo elemento no final da cópia feita no vetor RNLU.

4. A inclusão deste novo elemento, no final da linha i, irá provocar

modificação do elemento HA(i,6), sendo necessário atualizar esta

matriz.

5. Liberar as posições ocupadas, antes das operações acima, pelos

números das linhas no vetor RNLU (uma posição liberada é

indicada colocando zero no vetor RNLU).

Considerando ainda o estágio 1 da Eliminação Gaussiana da matriz (3.2),

onde será criado um preenchimento no elemento a , podem-se observar, passo a

passo, as alterações que o procedimento anterior irá provocar na lista ordenada por

colunas.

24

1º passo: Criação de uma cópia dos números das linhas dos elementos da coluna 4

do vetor RNLU, depois do último elemento armazenado;

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15RNLU 1 0 2 3 3 4 1 4 5 1 3 5 1 4 5 Nº COLUNA

Coluna 1

livre Coluna 2 Coluna 3 Coluna 4 Coluna 5 Cópia da Coluna 4

Neste ponto pode-se observar que não existem espaços livres no final d

estrutura para o armazenamento do número da coluna do preenchimento que ser

(3.14)

a

á

Page 35: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

24

criado na segunda coluna, apesar deste espaço existir no meio da estrutura. Será

necessário compactar a estrutura para o armazenamento do preenchimento criado.

2º passo: Compactar a estrutura usando Coleta de Lixo;

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 RNLU 1 2 3 3 4 1 4 5 1 3 5 1 4 5 0 Nº COLUNA

Coluna 1

Coluna 2 Coluna 3 Coluna 4 Coluna 5 Cópia da Coluna 4

livre

3º passo: Armazenar o preenchimento no final do vetor RNLU;

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 RNLU 1 2 3 3 4 1 4 5 1 3 5 1 4 5 2 Nº COLUNA

Coluna 1

Coluna 2 Coluna 3 Coluna 4 Coluna 5 Cópia da Coluna 4

livre

4º passo: Atualizar o elemento HA(4,6);

MATRIZ HA COLUNA

LINHA 1 2 3 4 5 6

1 1 1 2 1 1 2 2 13 13 15 3 3 4 3 6 6 8 5 5 6 4 9 9 10 13 13 15 5 11 11 12 10 10 12 Informações sobre as

posições iniciais e finais dos vetores ALU e CNLU

Informações sobre as posições iniciais e finais dos

vetores RNLU

5º passo: Liberar os espaços ocupados pelos antigos elementos da coluna 4

vetor RNLU;

(3.15)

(3.17)

no

(3.16)

Page 36: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

25

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 RNLU 1 2 3 3 4 0 0 0 1 3 5 1 4 5 2 Nº COLUNA

Coluna 1

Coluna 2 Coluna 3 Espaço Livre Coluna 5 Cópia da Coluna 4

livre

Observando a criação do preenchimento no elemento , pode-se observar

que a lista ordenada por colunas e a matriz HA ficará da seguinte forma:

25a

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16RNLU 1 2 2 3 3 4 0 0 2 1 3 5 1 4 5 2 Nº COLUNA Coluna 1 Coluna 2 Coluna 3 Espaço

Livre Coluna 5 Coluna 4

MATRIZ HA COLUNA

LINHA 1 2 3 4 5 6

1 1 1 2 1 1 2 2 13 13 15 3 3 4 3 6 6 8 5 5 6 4 9 9 10 13 13 16 5 11 11 12 9 9 12 Informações sobre as

posições iniciais e finais dos vetores ALU e CNLU

Informações sobre as posições iniciais e finais dos

vetores RNLU

Conforme pôde ser observado na lista ordenada por linha, a lista ordenada

por colunas também é compacta no início da EG, porém, geralmente, esta estrutura

não permanece compacta após o início dos cálculos, ou seja, apesar de não

existirem posições vagas entre os elementos de uma mesma coluna, podem existir

posições vagas entre os elementos de duas colunas distintas.

Como na lista ordenada por linhas, o número de cópias dos elementos de

uma coluna para o final da lista pode ser reduzido, consideravelmente, quando as

posições vazias no início e no fim de cada coluna são aproveitadas para a inclusão

de um novo preenchimento. Contudo, muitas cópias podem ser ainda necessárias,

o que pode exceder a capacidade do vetor RNLU. Se isto acontecer, então é

necessário compactar novamente a estrutura, eliminando os espaços vagos entre as

(3.

(3.18)

(3.19)

20)

Page 37: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

26

colunas (procedimento de Coleta de Lixo). Deve ser enfatizando que o

aproveitamento de posições vazias no início e no fim de cada coluna pode não só

reduzir o número de cópias das colunas, mas também o número de vezes em que o

procedimento de Coleta de Lixo será executado.

Deve se ainda observar que os elementos pivôs )s(ssa serão armazenados em

um vetor de números reais PIVOT de tamanho igual ou superior a N. As posições

ocupadas pelo elemento pivô e por seus números de linha e coluna nos vetores

ALU, RNLU e CNLU, respectivamente, serão liberados no início do estágio s da EG

e poderão ser usados para armazenar preenchimentos.

)s(ssa

3.4 – Procedimento de Coleta de Lixo (“Garbage Collection”)

s ordenadas é conhecido como Coleta de

Lixo (CL) ou “Garbage Collection”.

bilitando que novas cópias sejam feitas

no final deste vetor.

ordenada por linhas (vetores ALU e CNLU). Este processo será executado em dois

Quando um preenchimento )sa é criado durante os cálculos da EG é

necessário que partes dos vetores ALU e CNLU sejam copiados para o final destes

vetores. Porém, se muitas cópias forem feitas pode não haver espaços suficientes

para outras cópias. Por outro lado, podem existir espaços livres entre elementos de

diferentes linhas, isto porque depois dos elementos serem copiados para o final dos

vetores, os espaços ocupados por estes serão liberados. Nestes casos, é

necessária a compressão (compactação) da lista ordenada por linha, ou seja,

eliminar espaços vagos no meio destas estruturas, criando, assim, espaços no final

das listas e possibilitando que novas cópias necessárias sejam feitas. Este processo

de compactação dos elementos das lista

(ij

Uma situação similar ocorre na lista ordenada por colunas. Quando um

preenchimento é criado, partes do vetor RNLU serão copiadas para o final deste.

Quando faltar espaço no final deste vetor, será necessário executar um processo de

CL para compactar esta lista ordenada, possi

Para ilustrar o processo, considere que uma CL será feita em uma lista

Page 38: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

27

passos. No primeiro passo serão levantadas algumas informações para o segundo

passo. O segundo passo será a compressão efetiva da estrutura em questão.

Durante o primeiro passo, as posições dos primeiros elementos não nulos de

cada linha são localizados no vetor ALU e marcados da seguinte forma: HA(i,1) =

CNLU(HA(i,1)) e CNLU(HA(i,1)) = -i para i = 1, 2, ... , N. O primeiro passo da CL na

lista ordenada por linhas pode ser executado com complexidade de ordem N (O(N)),

onde O(N) significa que o número de operações é definido por um polinômio onde a

maior potência deste polinômio é N.

No Exemplo (3.13), suponhamos que seja necessário fazer uma CL. Abaixo

podemos observar os vetores ALU e CNLU e a matriz HA antes e depois de ser

executado o primeiro passo da CL.

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ALU 6.0 3.0 2.0 1.0 1.0 3.0 3.0 1.0 2.0 2.0 9.0 0 1.0 -1.0 CNLU 1 4 0 0 2 3 5 3 4 4 5 1 2 4 Nº LINHA Linha 1 Espaço

Livre Linha 3 Linha 4 Linha 5 Linha 2 Espaço

Livre

MATRIZ HA COLUNA

LINHA 1 2 3 4 5 6

1 1 1 2 1 1 2 2 12 12 14 3 3 4 3 5 5 7 5 5 6 4 8 8 9 7 7 9 5 10 10 11 10 10 11 Informações sobre as

posições iniciais e finais dos vetores ALU e CNLU

Informações sobre as posições iniciais e finais dos

vetores RNLU Estrutura antes do primeiro passo da CL

(3.19)
Page 39: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

28

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ALU 6.0 3.0 2.0 1.0 1.0 3.0 3.0 1.0 2.0 2.0 9.0 0 1.0 -1.0

CNLU 1 4 0 0 2 3 5 3 4 4 5 1 2 4 Nº LINHA Linha 1 Espaço

Livre Linha 3 Linha 4 Linha 5 Linha 2 Espaç

o Livre

MATRIZ HA COLUNA

LINHA 1 2 3 4 5 6

1 1 1 2 1 1 2 2 1 12 14 3 3 4 3 2 5 7 5 5 6 4 3 8 9 7 7 9 5 4 10 11 10 10 11 Informações sobre as

posições iniciais e finais dos vetores ALU e CNLU

Informações sobre as posições iniciais e finais dos

vetores RNLU Estrutura depois de fazer HA(i,1) = CNLU(HA(i,1))

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ALU 6.0 3.0 2.0 1.0 1.0 3.0 3.0 1.0 2.0 2.0 9.0 0 1.0 -1.0 CNLU -1 4 0 0 -3 3 5 -4 4 -5 5 -2 2 4 Nº LINHA Linha 1 Espaço

Livre Linha 3 Linha 4 Linha 5 Linha 2 Espaço

Livre

(3.20)

(3.21)

MATRIZ HA COLUNA

LINHA 1 2 3 4 5 6

1 1 1 2 1 1 2 2 1 12 14 3 3 4 3 2 5 7 5 5 6 4 3 8 9 7 7 9 5 4 10 11 10 10 11 Informações sobre as

posições iniciais e finais dos vetores ALU e CNLU

Informações sobre as posições iniciais e finais dos

vetores RNLU Estrutura depois de fazer CNLU(HA(i,1)) = -i

Page 40: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

29

Considere, agora, o segundo passo da CL. Seja NCNLU a última posição

ocupada nos vetores ALU e CNLU (NCNLU ≤ NN, onde NN é o comprimento destes

dois vetores). Considere a variável NEWPOS e assuma que NEWPOS = 1 no início

do processo. Verifique os componentes CNLU(K) para K = 1, 2, ..., NCNLU. Se

CNLU(K) = 0, então a localização K está livre e nada é feito. Se CNLU(K) < 0, então

uma nova linha começa na posição K do vetor ALU. Neste caso, os elementos

armazenados na posição K dos vetores ALU e CNLU devem ser movidos para

posição NEWPOS dos respectivos vetores. A matriz HA deve ser atualizada e a

variável NEWPOS deve avançar para próxima posição. As mudanças necessárias

estão descritas abaixo:

ALU(NEWPOS) = ALU(K)

CNLU(NEWPOS) = HA(-CNLU(K),1)

HA(-CNLU(K),1) = NEWPOS

HA(-CNLU(K),2) = NEWPOS + HA(-CNLU(K),2) – K + 1

HA(-CNLU(K),3) = NEWPOS + HA(-CNLU(K),3) – K + 1

NEWPOS = NEWPOS+1

Se CNLU(K) > 0 então, os elementos armazenados na posição K dos v

ALU e CNLU devem ser movidos para posição NEWPOS dos respectivos ve

a variável NEWPOS deve avançar para próxima posição. Neste caso

necessário atualizar a matriz HA. Tais mudanças podem ser observadas a seg

ALU(NEWPOS) = ALU (K)

CNLU(NEWPOS) = CNLU (K)

NEWPOS = NEWPOS +1

A seguir podemos observar os vetores ALU e CNLU e a matriz

Exemplo (3.13) depois de ser executado o segundo passo da CL.

(3.22)

etores

tores e

não é

uir:

(3.23)

HA do

Page 41: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

30

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15ALU 6.0 3.0 1.0 3.0 3.0 1.0 2.0 2.0 9.0 0 1.0 -1.0 CNLU 1 4 2 3 5 3 4 4 5 1 2 4 0 0 0 Nº LINHA Linha 1 Linha 3 Linha 4 Linha 5 Linha 2 Espaço

Livre

MATRIZ HA COLUNA

LINHA 1 2 3 4 5 6

1 1 2 2 1 1 2 2 10 11 12 3 3 4 3 3 3 5 5 5 6 4 6 6 7 7 7 9 5 8 8 9 10 10 11 Informações sobre as

posições iniciais e finais dos vetores ALU e CNLU

Informações sobre as posições iniciais e finais do

vetores RNLU Estrutura depois de executar o 2º passo da CL

No final deste processo, a estrutura estará totalmente comprimida e a ú

posição ocupada será NEWPOS –1. Neste caso, é esperado que tenh

espaços livres suficientes no final da lista ordenada por linhas para se fazer a

da linha necessária, a qual não foi possível ser feita antes do início da C

verdade este foi o motivo de se realizar este processo de compactação).

mesmo depois do processo, não houver espaços livres suficientes no final da

para a cópia de uma determinada linha, então, o programa deverá mandar

mensagem de erro informando que o comprimento destes vetores é muito pequ

A complexidade do segundo passo é de ordem NN (O(NN)), onde NN

comprimento dos vetores ALU e CNLU.

O processo de CL na lista ordenada por coluna é executado de

semelhante. A única diferença significativa é que, durante o primeiro pass

posições dos primeiros elementos contendo os números das linhas dos elem

não nulos de cada coluna são localizadas no vetor RNLU e marcadas da seg

forma: RNLU(HA(j,4)) = -j e HA(j,4) = RNLU(HA(j,4)) para j = s, s+1, ... , N (sup

que a CL deverá ser executada no estágio s).

(3.24)

s

ltima

amos

cópia

L (na

Se,

lista

uma

eno.

é o

forma

o, as

entos

uinte

ondo

Page 42: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

31

No Exemplo (3.18) suponhamos que seja necessário fazer uma CL. Abaixo

podemos observar os vetores ALU e CNLU e a matriz HA antes e depois de ser

executado o primeiro passo da CL.

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 RNLU 1 2 2 3 3 4 0 0 0 3 5 1 4 5 2 Nº COLUNA Coluna 1 Coluna 2 Coluna 3 Espaço Livre Coluna

5 Coluna 4

MATRIZ HA COLUNA

LINHA 1 2 3 4 5 6

1 1 1 2 1 1 2 2 12 12 13 3 3 4 3 5 5 7 5 5 6 4 8 8 9 12 12 15 5 10 10 11 10 10 11 Informações sobre as

posições iniciais e finais dos vetores ALU e CNLU

Informações sobre as posições iniciais e finais dos

vetores RNLU Estrutura antes do primeiro passo da CL

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 RNLU 1 2 2 3 3 4 0 0 0 3 5 1 4 5 2 Nº COLUNA Coluna 1 Coluna 2 Coluna 3 Espaço Livre Coluna

5 Coluna 4

MATRIZ HA COLUNA

LINHA 1 2 3 4 5 6

1 1 1 2 1 1 2 2 12 12 13 2 3 4 3 5 5 7 3 5 6 4 8 8 9 1 12 15 5 10 10 11 3 10 11 Informações sobre as

posições iniciais e finais dos vetores ALU e CNLU

Informações sobre as posições iniciais e finais dos

vetores RNLU Estrutura depois de fazer HA(j,4) = RNLU(HA(j,1))

(3.25)

(3.26)

Page 43: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

32

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 RNLU -1 2 -2 3 -3 4 0 0 0 -5 5 -4 4 5 2 Nº COLUNA Coluna 1 Coluna 2 Coluna 3 Espaço Livre Coluna

5 Coluna 4

MATRIZ HA COLUNA

LINHA 1 2 3 4 5 6

1 1 1 2 1 1 2 2 12 12 13 3 3 4 3 5 5 7 5 5 6 4 8 8 9 12 12 15 5 10 10 11 10 10 11 Informações sobre as

posições iniciais e finais dos vetores ALU e CNLU

Informações sobre as posições iniciais e finais dos

vetores RNLU Estrutura depois de fazer RNLU(j) = -j

A seguir podemos observar o vetor RNLU e a matriz HA do Exemplo (3

depois de ser executado o segundo passo da CL.

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15RNLU 1 2 2 3 3 4 3 5 1 4 5 2 0 0 0Nº COLUNA Coluna 1 Coluna 2 Coluna 3 Coluna

5 Coluna 4 Espaço Livr

MATRIZ HA COLUNA

LINHA 1 2 3 4 5 6

1 1 1 2 1 1 2 2 12 12 13 3 3 4 3 5 5 7 5 5 6 4 8 8 9 9 9 12 5 10 10 11 7 7 8 Informações sobre as

posições iniciais e finais dos vetores ALU e CNLU

Informações sobre as posições iniciais e finais dos

vetores RNLU Estrutura antes do primeiro passo da CL

(3.27)

.18)

e

(3.28)
Page 44: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

33

No final deste processo a estrutura estará totalmente comprimida e a última

posição ocupada será NEWPOS –1. Neste caso, é esperado que tenhamos

espaços livres suficientes no final da lista ordenada por colunas para se fazer a

cópia da coluna necessária, a qual não foi possível ser feita antes do início da CL

(na verdade este foi o motivo de se realizar este processo de compactação). Se,

mesmo depois do processo, não houver espaços livres suficientes no final da lista

para a cópia de uma determinada coluna, então, o programa deverá mandar uma

mensagem de erro informando que o comprimento destes vetores é muito pequeno.

A complexidade dos dois passos da CL na lista ordenada por colunas é de

ordem N-s+1 (O(N-s+1)) para o primeiro passo e de ordem NN1 (O(NN1)) para o

segundo passo, onde NN1 é o comprimento do vetor RNLU .

3.5 – Espaços Livres

Considere os vetores ALU, RNLU e CNLU, usados no processo de

armazenamento dinâmico descrito anteriormente, de tamanhos NN, NN1 e NN,

respectivamente. Uma vez que preenchimentos serão criados durante o processo

de EG (ou qualquer outra operação algébrica) então serão necessários espaços

adicionais vazios neste vetores para o armazenamento destes, ou seja, os

comprimentos destes vetores deverão ser maiores do que o número de elementos

não nulos do início do processo de armazenamento dinâmico, isto é, NN ≥ NZ e

NN1≥ NZ. Estas posições vazias extras são chamadas de Espaços Livres.

É muito importante determinar quantas posições extras serão necessárias.

Infelizmente, este número depende do número de preenchimentos criados durante

as operações algébricas e, mais ainda, este número não é conhecido no início dos

cálculos computacionais. Segundo Zlatev (1991), experimentos com milhares de

matrizes indicaram que, em geral, uma escolha de NN ∈ [5*NZ, 10*NZ] e NN1 =

0,6*NN, quando a forma clássica de explorar a esparcidade é utilizada, e NN ∈

[2*NZ, 3*NZ] e NN1 = 0,6*NN, quando a forma orientada a computador é utilizada,

são boas escolhas. Contudo, algumas matrizes podem ainda produzir um número

Page 45: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

34

superior de preenchimentos. Neste caso, é necessário escolher valores superiores

aos mencionados anteriormente para os parâmetros NN e NN1.

As observações feitas anteriormente são baseadas em resultados numéricos

obtidos de extensivos experimentos computacionais com matrizes esparsas. Alguns

destes experimentos podem ser observados em Zlatev (1991).

3.6 – O uso de Lista Encadeada no modelo de armazenamento dinâmico

O modelo de armazenamento dinâmico discutido na Seção 3.2 utiliza duas

listas ordenadas (a primeira ordenada por linhas e a segunda ordenada por colunas).

Isto não significa que este é o único modelo de armazenamento dinâmico e,

provavelmente, não é o melhor modelo para todas as situações. Um outro modelo é

baseado em listas conhecidas como Listas Encadeadas (”linked lists”).

A idéia básica do modelo utilizando Listas Encadeadas pode ser observada

em Zlatev (1991), sendo descrita a seguir.

meça a coluna j.

Se um elemento não nulo ija é armazenado na posição K (1 < K < NZ) do

vetor ALU então, a posição onde o próximo elemento não nulo da linha i é

armazenado no vetor ALU pode ser encontrado em RNLU(K), enquanto a posição

onde o próximo elemento não nulo da coluna j é armazenado no vetor ALU pode ser

encontrado em CNLU(K). Valores negativos nos vetores RNLU e CNLU indicam o

final de uma linha e de uma coluna, respectivamente. Além dos vetores ALU, RNLU

e CNLU são necessários dois vetores inteiros de comprimento N (HA(*,1) e HA(*,4)).

O elemento HA(i,1) indica a posição no vetor ALU onde começa a linha i. O

elemento HA(j,4) indica a posição no vetor ALU onde co

Para exemplificar o modelo dinâmico descrito anteriormente, consideremos

novamente a matriz (3.2).

Page 46: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

35

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

0902000002010003003010

000010200300

....

.....

.6.0

A (3.2)

O modelo de armazenamento dinâmico utilizando o conceito de lista

encadeada, descrito no parágrafo anterior, pode ser observado abaixo:

POSIÇÃO 1 2 3

4 5 6 7 8 9 10 11 12 13 14 15 ALU 9.0 2.0 2.0 1.0 3.0 3.0 1.0 1.0 2.0 3.0 6.0 RNLU -5 1 -2 3 -3 5 6 -2 8 -1 10 CNLU -5 -4 2 -3 1 4 -2 7 -1 3 9

MATRIZ HA COLUNA

LINHA 1 4

1 11 11 2 9 8 3 7 6 4 4 10 5 2 5

Vejamos agora como são feitas a inserção de um preenchimen

dos elementos nulos, quando utilizamos a estrutura anterior. Consid

estágio da EG da matriz (3.2). Neste estágio o elemento a

preenchimento = -1 é criado, conforme pode ser observado abaixo

121

124a

⎥⎥⎦⎢

⎢⎣ 0.90.2000

00.20.100

⎥⎥⎥⎥⎤⎡ 00.3006.0

⎢⎢⎢⎢ −

= 0.300.30.100100.10

A

(3.30)

to e a remoçã

ere o primei

é zerado e

.

(3.31)

(3.29)

o

ro

o

Page 47: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

36

,1) = 9. O próximo elemento desta linha está armazenado na

posição 8, isto porque RNLU(9) = 8. A segunda linha terminava neste elemento

-2 C a inserção do elemento

U(8)= n n q a term na gora

leme .

O preenchimento será armazenado na posição 12 do vetor ALU. O primeiro

elemento da linha 2, que será zerado, está armazenado na posição 9 do vetor ALU,

isto porque HA(2

(RNLU(8)= ). om 124 no final da linha devemos atualizar a

o RNL 12 e f eaz r N R L (1U 2) = -2 i, d aic do u e segu and l ainh i a

neste e nto

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ALU 9.0 2.0 2.0 1.0 3.0 3.0 1.0 1.0 2.0 3.0 6.0 -1.0 RNLU -5 1 -2 3 6 -3 5 12 8 -1 10 -2 CNLU -5 -4 1 4 -2 -1 9 2 -3 7 3

MATRIZ HA COLUNA

LINHA 1 4

1 11 11 2 9 8 3 7 6 4 4 10 5 2 5

O primeiro elemento da coluna 4 é armazenado na posição 10

isto porque HA(4,4) = 10. O próximo elemento desta coluna será o

. Desta forma devemos fazer CNLU(12) = CNLU(10) e CNLU(10)

124a

(3.33)

do vetor AL

preenchimen

= 12.

(3.32)

U,

to

Page 48: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

37

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ALU 9.0 2.0 2.0 1.0 3.0 3.0 1.0 1.0 2.0 3.0 6.0 -1.0 RNLU -5 1 -2 3 -3 5 6 12 8 -1 10 -2 CNLU -5 -4 2 -3 1 4 -2 7 -1 12 9 3

MATRIZ HA COLUNA

LINHA 1 4

1 11 11 2 9 8 3 7 6 4 4 10 5 2 5

Uma vez inserido o preenchimento, podemos zerar e remover o elemento

Isto é feito zerando o valor da posição 9 dos vetores ALU, RNLU e C

atualizando o elemento HA(2,1)=8, indicando que o primeiro elemento não nu

segunda linha, que se encontrava na nona posição dos vetores ALU e RNLU

encontra agora oitava posição, e alterando o elemento CNLU(11)=-1, indicando

o último elemento não nulo da primeira coluna se encontra na décima prim

posição do vetor CNLU.

POSIÇÃO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1ALU 9.0 2.0 2.0 1.0 3.0 3.0 1.0 1.0 0 3.0 6.0 -1.0 RNLU -5 1 -2 3 -3 5 6 12 0 -1 10 -2 CNLU -5 -4 2 -3 1 4 -2 7 0 12 -1 3

MATRIZ HA COLUNA

LINHA 1

4 1 11 11 2 8 8 3 7 6 4 4 10 5 2 5

(3.34)

.

NLU,

lo da

, se

que

eira

121a

5

(3.35)
Page 49: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

38

O modelo baseado em listas encadeadas tem pelo menos três vantagens,

comparado ao modelo de armazenamento baseado em listas ordenadas, discutido

anteriormente:

• Não é preciso fazer cópias das linhas ou colunas para o final da

estrutura, quando acrescentamos um preenchimento;

• Não é preciso fazer Coleta de Lixo;

• A inserção de um preenchimento é um processo simples.

É claro que o número da linha e da coluna de um elemento implicará o

acréscimo de dois vetores de tamanho NN. Ou seja, se um elemento a é

armazenado na posição K do vetor ALU, os números da linha i e da coluna j serão

armazenados na mesma posição K dos dois novos vetores.

ij

Existem várias desvantagens nos códigos computacionais baseados em listas

encadeadas (ver Duff – 1985 e Osterby et al – 1983). A principal desvantagem da

estrutura baseada em listas encadeadas é que se for preciso o número da linha (ou

da coluna) de um elemento não nulo, então é preciso procurar pela lista das linhas

(ou das colunas) até que o número da linha (ou coluna) desejado seja encontrado.

3.7 – Outros Modelos de Armazenamento

Outros modelos de armazenamento podem ser encontrados na literatura.

Vale ressaltar que muitos destes modelos são elaborados para problemas especiais.

Dentre os modelos podemos citar os seguintes:

• Gilbert-Peierls, ver Zlatev (1991);

• Bit-maps, ver Duff (1985);

• Hash coding, ver Duff (1985);

• Modelo de armazenamento para matrizes banda, ver Dongarra et al

(1979), Jennings (1977) e Rice et al (1985);

• Técnicas Frontais e Multifrontais, ver Duff et al (1983) e Reid (1984);

Page 50: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

39

• Técnicas “Multigrid”, ver Wesseling (1982).

3.8 – Conceitos Preliminares

Para apresentarmos o modelo desenvolvido neste trabalho, iremos lembrar

alguns conceitos básicos de programação de computadores. Tais conceitos serão

discutidos a seguir:

3.8.1 – Variáveis

Uma variável é um espaço alocado na memória para o armazenamento de

um tipo de dado específico. Quando utilizamos uma variável, fornecemos a esta um

identificador (nome) para este espaço e toda vez que nos referenciamos a este

identificador estaremos referenciando ao dado armazenado.

Quando declaramos uma estrutura de dados, utilizando variáveis, devemos

dimensionar, direta ou indiretamente, o tamanho desta estrutura, ou seja, estaremos

dimensionando a quantidade de memória necessária para o armazenamento dos

dados. Neste sentido, podemos classificar a estrutura de dados como estática, uma

vez o tamanho desta estrutura não será alterado durante a execução do programa.

Esta característica pode dificultar ou até mesmo inviabilizar a codificação de certas

rotinas de cálculos descritas anteriormente.

Como se pode observar nos modelos de armazenamentos descritos nas

Seções 3.2 e 3.6, as estruturas de dados apresentadas nestas seções utilizam

vetores de tamanhos fixos NN e NN1, onde NN≥ NZ e NN1 NZ. Nestes casos, as

estruturas são dimensionadas com uma folga, onde o excesso de posições é

reservado para o armazenamento dos preenchimentos que irão surgir durante os

cálculos computacionais. Se o espaço reservado para a quantidade de

preenchimentos que irão ser criados não for suficiente, então, o programa deverá

interromper a sua execução e emitir uma mensagem de erro.

Page 51: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

40

Além deste problema, o Modelo descrito na Seção 3.2 terá uma estrutura não

totalmente ordenada, pois algumas linhas serão movidas para o final dos vetores,

sendo necessária, em alguns momentos, a compactação da estrutura pelo

procedimento de Coleta de Lixo. Neste caso, seria necessária uma estrutura de

dados que fosse realmente dinâmica, ou seja, uma estrutura que altere o seu

tamanho de acordo com a quantidade de dados armazenados e não uma estrutura

de tamanho fixo e superdimensionada para existirem posições extras para

armazenar os preenchimentos que serão criados posteriormente. Seria interessante

que tal estrutura se mantivesse ordenada e compactada durante as iterações do

programa, evitando assim a perda de tempo com o processo de CL ou qualquer

outro procedimento de ordenação ou compactação.

Na linguagem de programação Pascal existe um tipo de dado que facilita a

montagem da estrutura mencionada anteriormente e é conhecido como “Pointer”

(Ponteiro) que será discutido na próxima seção.

3.8.2 – O Tipo Ponteiro da Linguagem Pascal

O ponteiro (“Pointer”) é um tipo de dado criado para o gerenciamento de uma

área da memória conhecida como “heap”. Esta área de memória é chamada

também de área de armazenamento dinâmico. Diferente das variáveis dos outros

tipos do Pascal que armazenam os dados, o objetivo das variáveis do tipo “Pointer” é

indicar onde encontrar os dados na área de armazenamento dinâmico. Em outras

palavras, o ponteiro aponta para os dados armazenados na “heap”, ou seja, uma

variável do tipo ponteiro conterá um endereço de memória onde podemos encontrar

um dado armazenado.

Uma outra diferença das variáveis do tipo Ponteiro é que estas são criadas

somente durante a execução do programa principal, enquanto as variáveis dos

outros tipos são declaradas e criadas antes da execução do programa. Além disto,

as variáveis do tipo ponteiro podem também ser destruídas em tempo de execução,

liberando espaço na memória do computador para o armazenamento de outros

dados.

Page 52: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

41

Maiores informações sobre ponteiro podem ser encontradas em Wood (1987).

Geralmente, os ponteiros são utilizados para montar estruturas de dados que

aproveitem a sua característica dinâmica de poder ser criado ou destruído enquanto

o programa está sendo executado. A seguir, iremos apresentar algumas destas

estruturas.

3.8.3 – Listas Lineares

Segundo Veloso et al (1984), a lista linear é uma estrutura que permite

representar um conjunto de dados de forma a preservar a relação de ordem linear

entre os elementos do conjunto. Os elementos de uma lista linear são chamados de

nós, os quais podem conter, cada um deles, um dado simples ou um dado

composto.

n

n nós

Define-se uma lista linear como sendo o conjunto de )0 nós

n21 n ..., ,n ,n , organizados estruturalmente de forma a refletir as posições relativas dos

mesmos na lista, onde 1n e nn são, respectivamente, o primeiro e o último nó da

ra nk<1 , o nó kn é precedido pelo nó 1−kn e seguido do nó 1+kn . A figura

abaixo representa uma lista linear com

( ≥n

lista. Pa <

1n 2n . . . 1−kn kn 1+kn . . . 1−nn nn

3.8.3.1 – Encadeamento de Listas

As operações de inserção e remoção de nós em uma lista exig

esforço computacional e podem ser um fator determinante do baix

computacional do programa.

(3.36)

em um grande

o desempenho

Page 53: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

42

Suponha que a lista (3.36) seja montada em um vetor de dimensão vn. É

necessário fazer uma estimativa a priori do comprimento máximo que a lista pode

tomar para que o vetor que a contiver seja declarado com no mínimo este tamanho

( n≥ ). Caso haja uma tentativa de ultrapassar a estimativa do comprimento do

vetor, o processamento deverá ser interrompido e emitida uma mensagem de erro.

Conforme já mencionado anteriormente, este é um dos maiores problemas de se

utilizar um vetor para representar uma lista, pois o vetor não pode, na maioria das

linguagens de programação, ter o seu tamanho alterado dinamicamente para

permitir a representação de uma lista de comprimento maior do que o inicialmente

previsto.

vn

Uma forma de permitir o crescimento dinâmico do comprimento de uma lista é

representá-la por um encadeamento de nós que indique a ordem de cada nó na lista.

Assim, cada nó deverá conter, além do dado propriamente dito, a indicação do

próximo nó da lista (referência). Uma lista montada pelo encadeamento de nós é

conhecida como Lista Encadeada. A seguir, podemos observar a representação

esquemática de uma lista encadeada.

n4n3 n5n2n1

(3.37)

Como pode ser observada na figura anterior, a ordem dos nós na lista

encadeada é lógica, ou seja, um nó localizado na posição k não é necessariamente

o nó que precede o nó localizado na posição k-1 e nem o nó que antecede o nó

localizado na posição k+1.

Em alguns casos, é necessário, além da informação do próximo nó da lista, a

indicação do nó anterior. Nestes casos a estrutura mais indicada é a lista

duplamente encadeada. Uma lista duplamente encadeada é aquela em que cada nó

Page 54: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

43

possui duas referências, onde a primeira é usada para indicar o nó predecessor,

enquanto que a segunda aponta para o nó sucessor. A figura a seguir mostra uma

representação esquemática de uma lista duplamente encadeada.

3.9 – O Modelo de Armazenamento Proposto

O modelo de armazenamento, desenvolvido neste trabalho, é basead

no modelo de armazenamento dinâmico de Zlatev (1991), apre

anteriormente na Seção 3.2, quanto no modelo de listas encadeadas apresen

Seção 3.6.

O modelo irá armazenar os dados na forma de listas encadeadas, ut

ponteiros, onde cada nó da lista irá armazenar um registro contendo, além d

armazenado, informações sobre o seu antecessor e o seu sucessor.

Inicialmente será montado um modelo de armazenamento semelh

modelo estático apresentado na Seção 3.1. A principal diferença do mod

questão é que este irá utilizar uma lista duplamente encadeada de ponteiros

dos vetores AORIG, RNORIG e CNORIG. Esta lista terá NZ nós, onde cada

composto de um pointer do tipo registro chamado de POAORIG. Cada nó

terá as seguintes informações: AORIG, RNORIG, CNORIG, Anterior e Suce

As três primeiras informações (AORIG, RNORIG e CNORIG

respectivamente, o valor de um elemento da matriz A, o número da linha e da

deste elemento. Se um elemento da matriz A é armazenado em

específico, então os campos deste nó terão os seguintes valores:

ija

AORIG = ija

n4n3 n5n2n1

RNORIG = i

CNORIG = j

(3.38)

o tanto

sentado

tado na

ilizando

o dado

ante ao

elo em

no lugar

nó será

da lista

ssor.

) são,

coluna

um nó

(3.39)
Page 55: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

44

O campo Anterior terá o endereço do ponteiro anterior ao nó em questão,

enquanto o campo Sucessor terá o endereço do ponteiro seguinte ao nó em

questão. O campo Anterior do primeiro nó terá o valor nulo (“nil”) indicando que na

lista não existe nó anterior a ele. Da mesma forma, o campo Sucessor do último nó

da lista terá o valor nulo (“nil”) indicando que não existe nó após este.

Além destas informações, é necessário indicar em que endereço irá ser

encontrado o primeiro nó da lista (a cabeça da lista). Esta informação será

armazenada em uma variável do tipo Pointer chamada POAORIGINICIAL.

Vamos considerar novamente a matriz (3.2) como exemplo.

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

0902000002010003003010

000010200300

....

.....

.6.0

A (3.2)

O primeiro passo do modelo de armazenamento desenvolvido será o

armazenamento dos elementos desta matriz na seguinte lista encadeada.

488F:000C AORIG = 1.0

RNORIG = 3

CNORIG = 2

Anterior = Nil

Sucessor = 488F:0034

488F:0034 AORIG = 3

RNORIG = 3

CNORIG = 5

Anterior = 488F:000C

Sucessor = 488F:0048

Page 56: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

45

488F:0048 AORIG = 9

RNORIG = 5

CNORIG = 5

Anterior = 488F:0034

Sucessor = 488F:005C

488F:005C AORIG = 3

RNORIG = 1

CNORIG = 4

Anterior = 488F:0048

Sucessor = 488F:0070

488F:0070 AORIG = 2.0

RNORIG = 4

CNORIG = 4

Anterior = 488F:005C

Sucessor = 488F:0084

488F:0084 AORIG = 2.0

RNORIG = 2

CNORIG = 1

Anterior = 488F:0070

Sucessor = 488F:0098

488F:0098 AORIG = 6.0

RNORIG = 1

CNORIG = 1

Anterior = 488F:0084

Sucessor = 488F:00AC

488F:00AC AORIG = 3.0

RNORIG = 3

CNORIG = 3

Anterior = 488F:0098

Sucessor = 488F:00C0

488F:00C0 AORIG = 1.0

RNORIG = 4

CNORIG = 3

Page 57: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

46

Anterior = 488F:00AC

Sucessor = 488F:00D4

488F:00D4 AORIG = 1.0

RNORIG = 2

CNORIG = 2

Anterior = 488F:00C0

Sucessor = 488F:00E8

488F:00E8 AORIG = 2.0

RNORIG = 5

CNORIG = 4

Anterior = 488F:00D4

Sucessor = nil

3.40 – Lista Duplamente Encadeada Inicial do Modelo de Armazenamento Proposto

O próximo passo do modelo de armazenamento proposto será a montagem

de duas listas ordenadas, sendo ambas listas duplamente encadeadas, formadas

por ponteiros. Na primeira lista, os elementos serão ordenados pelas linhas, sendo

que a informação do primeiro e do último elemento de cada linha é armazenada nas

duas primeiras colunas da matriz HA.

Cada nó desta lista será composto de um pointer do tipo registro, chamado de

POALUCNLU, contendo as seguintes informações:

• ALU – este campo irá armazenar o valor do elemento da matriz A.

• CNLU – este campo irá armazenar o número da coluna do elemento.

• Anterior – este campo irá armazenar o endereço da memória do elemento

anterior. O valor Nil indica que não existe elemento anterior ao elemento em

questão, ou seja, este elemento é o primeiro da lista.

Page 58: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

47

• Sucessor - este campo irá armazenar o endereço da memória do próximo

elemento da lista. O valor Nil indica que não existe elemento seguinte ao

elemento em questão, ou seja, este elemento é o último da lista.

Esta primeira lista é baseada na “Lista Ordenada por Linhas”, descrita no

modelo de armazenamento dinâmico, mostrado na Seção 3.2, e na lista encadeada

descrita na Seção 3.6. As principais diferenças do modelo desenvolvido neste

trabalho para as listas apresentadas nas Seções 3.2 e 3.6 é o fato deste ser

desenvolvido utilizando uma estrutura de armazenamento realmente dinâmica, ou

seja, uma estrutura que será dimensionada para armazenar somente os dados

existentes e não uma estrutura onde será preciso definir, a priori, a máxima

quantidade possível de elementos que serão criados durante os cálculos

computacionais. Uma outra vantagem que poderá ser observada na estrutura

proposta é o fato de que esta permanecerá ordenada e compacta durante todo o

processo de EG, fato este que dispensa o uso de rotinas computacionais de

ordenação ou compactação da estrutura como a Coleta de Lixo, descrita em 3.4.

Page 59: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

48

488F:0110 ALU = 6.0

CNLU = 1

Anterior = Nil

Sucessor = 488F:0124

488F:0124 ALU = 3.0

CNORIG = 4

Anterior = 488F:0110

Sucessor = 488F:0138

488F:0138 ALU = 2.0

CNLU = 1

Anterior = 488F:0124

Sucessor = 488F:014C

488F:014C ALU = 1.0

CNLU = 2

Anterior = 488F:0138

Sucessor = 488F:0160

488F:0160 ALU = 1.0

CNLU = 2

Anterior = 488F:014C

Sucessor = 488F:0174

488F:0174 ALU = 3.0

CNLU = 3

Anterior = 488F:0160

Sucessor = 488F:0188

488F:0188 ALU = 3.0

CNLU = 5

Anterior = 488F:0174

Sucessor = 488F:019C

488F:019C ALU = 1.0

CNLU = 3

Anterior = 488F:0188

Sucessor = 488F:01B0

Page 60: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

49

488F:01B0 ALU = 2.0

CNLU = 4

Anterior = 488F:019C

Sucessor = 488F:01C4

488F:01C4 ALU = 2.0

CNLU = 4

Anterior = 488F:01B0

Sucessor = 488F:01D8

488F:01D8 ALU = 9.0

CNLU = 5

Anterior = 488F:01C4

Sucessor = nil

3.41 – Lista Ordenada por Linhas do Modelo Proposto.

As duas primeiras colunas da matriz HA serão preenchidas com os endereços

dos ponteiros do primeiro e do último elemento de cada linha, como pode ser

observado a seguir:

MATRIZ HA COLUNA

LINHA

1 2 3 4

1 488F:0110 488F:0124 2 488F:0138 488F:014C 3 488F:0160 488F:0188 4 488F:019C 488F:01B0 5 488F:01C4 488F:01D8 Informações sobre as

posições iniciais e finais dos ponteiros da lista ordenada por linhas

3.42 – Duas primeiras colunas da Matriz HA do Modelo Proposto.

Na segunda lista, os elementos serão ordenados pelas colunas, sendo que a

informação do primeiro e do último elemento de cada coluna é armazenada na

Page 61: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

50

terceira e quarta coluna da matriz HA. Cada nó desta lista será composto de um

pointer do tipo registro chamado de PORNLU, contendo as seguintes informações:

• RNLU – este campo irá armazenar o número da linha do elemento.

• Anterior – este campo irá armazenar o endereço da memória do elemento

anterior. O valor Nil indica que não existe elemento anterior ao elemento em

questão, ou seja, este elemento é o primeiro da lista.

• Sucessor - este campo irá armazenar o endereço da memória do próximo

elemento da lista. O valor Nil indica que não existe elemento seguinte ao

elemento em questão, ou seja, este elemento é o último da lista.

488F:0200 RNLU = 1

Anterior = Nil

Sucessor = 488F:020C

488F:020C RNLU = 2

Anterior = 488F:0200

Sucessor = 488F:0218

488F:0218 RNLU = 2

Anterior = 488F:020C

Sucessor = 488F:0224

488F:0224 RNLU = 3

Anterior = 488F:0218

Sucessor = 488F:0230

488F:0230 RNLU = 3

Anterior = 488F:0224

Sucessor = 488F:023C

Page 62: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

51

488F:023C RNLU = 4

Anterior = 488F:0230

Sucessor = 488F:0248

488F:0248 RNLU = 1

Anterior = 488F:023C

Sucessor = 488F:0254

488F:0254 RNLU = 4

Anterior = 488F:0248

Sucessor = 488F:0260

488F:0260 RNLU = 5

Anterior = 488F:0254

Sucessor = 488F:026C

488F:026C RNLU = 3

Anterior = 488F:0260

Sucessor = 488F:0278

488F:0278 RNLU = 5

Anterior = 488F:026C

Sucessor = Nil

3.43 – Lista Ordenada por Colunas do Modelo Proposto.

A terceira e quarta coluna da matriz HA serão preenchidas com os endereços

dos ponteiros do primeiro e do último elemento de cada coluna, como pode ser

observado a seguir:

Page 63: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

52

MATRIZ HA COLUNA

LINHA

1 2 3 4

1 488F:0110 488F:0124 488F:0200 488F:020C 2 488F:0138 488F:014C 488F:0218 488F:0224 3 488F:0160 488F:0188 488F:0230 488F:023C 4 488F:019C 488F:01B0 488F:0248 488F:0260 5 488F:01C4 488F:01D8 488F:026C 488F:0278 Informações sobre as

posições iniciais e finais dos ponteiros da lista ordenada por linhas

Informações sobre as posições iniciais e finais

dos ponteiros da lista ordenada por colunas

3.44 – Terceira e quarta colunas da matriz HA do Modelo Proposto

3.10 – O cálculo da Eliminação Gaussiana no modelo proposto

Para facilitar o entendimento de como é feita a EG, a inclusão de um

preenchimento e a retirada de um elemento que se tornou nulo durante os cálculos,

vamos considerar a matriz do Exemplo (3.2) com NZ=11 (número de elementos não

nulos).

⎥⎥⎦⎢

⎢⎣ 0902000

0020100..

..

⎥⎥⎥⎥⎤⎡ 00300 .6.0

⎢⎢⎢⎢

= 030030100000102...

..

primeiro passo da decomposição Gaussiana é triangularizar a matriz,

efetua

coluna.

A

As listas iniciais (lista ordenada por linha e lista ordenada por coluna)

referentes a esta matriz estão mostradas em (3.41) e (3.43), sendo que suas

representações podem ser observadas em (3.45a).

O

ndo operações lineares entre suas linhas e colunas. Este processo constitui-

se de zerar os elementos que se encontram abaixo da diagonal principal, coluna a

Page 64: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

53

o utilizados dois ponteiros auxiliares IND_LATUAL e IND_LPROX. O

ponteiro IND_LATUAL será posicionado no primeiro elemento não nulo da primeira

linha da lista ordenada por linha eço este que está indicado em

HAPO1(1,1).

Considere a primeira coluna da matriz A , acima. Neste caso, existe um

elemento não nulo na segunda linha que deverá ser zerado. Para executar tais

operações serã

s (3.45b), ender

M RIZ HAPO1 ATCOLUNA

LINHA

1

2

1 488F:0110 488F:0124 2 488F:0138 488F:014C 3 488F:0160 488F:0188 4 48 8F:019C 488F:01B05 48 8 8F:01C4 488F:01D Informações sobre as

posições iniciais e finais dos ponteiros da lista ordenada por linhas

Para encontrar a próxima linha com elemento não nulo, será utilizado um

ponteiro auxiliar IND_CATUAL que será inicialmente posicionado no primeiro

elemento da primeira coluna da lista ordenada por colunas (3.45b), endereço este

que está armazenado em HAPO2(1,1).

(3.44a)

Page 65: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

54

MATRIZ HAPO2 COLUNA

LINHA

3

4

1 488F:0200 488F:020C2 488F:0218 488F:02243 488F:0230 488F:023C4 488F:0248 488F:02605 488F:026C 488F:0278 Informações sobre as

posições iniciais e finais dos ponteiros da lista ordenada por colunas

(3.44b)

O ponteiro IND_CATUAL irá percorrer os elementos desta coluna até

encontrar um elemento que esteja abaixo da primeira linha (3.45c), ou seja, que

esteja abaixo da diagonal principal, se este existir. Isto é feito verificando se o

campo RNLU do elemento é superior ao valor 1. No exemplo em questão, o valor

encontrado foi 2 (3.45c), indicando que o primeiro elemento não nulo da primeira

coluna está localizado na segunda linha. Sendo assim, o ponteiro IND_LPROX será

posicionado no primeiro elemento não nulo da segunda linha da lista ordenada por

linhas (3.45d).

Page 66: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

55

ALU: 6.0CNLU: 1ANTERIOR: NIL

:488F:0124SUCESSOR

488F:0110

ALU: 2.0CNLU: 1ANTERIOR:488F:0124

:488F:014CSUCESSOR

488F:0138

ALU: 1.0CNLU: 2ANTERIOR:488F:0138

:488F:0160SUCESSOR

488F:014C

ALU: 1.0CNLU: 2ANTERIOR:488F:014C

:488F:0174SUCESSOR

488F:0160

ALU: 3.0CNLU: 3ANTERIOR:488F:0160

:488F:0188SUCESSOR

488F:0174

ALU: 3.0CNLU: 5

:488F:0174PRÓXIMO:488F:019CSUCESSOR

488F:0188

ALU: 1.0CNLU: 3

:488F:0188PRÓXIMO:488F:01B0SUCESSOR

488F:019C

ALU: 2.0CNLU: 4

:488F:019CPRÓXIMO:488F:01C4SUCESSOR

488F:01B0

ALU: 2.0CNLU: 4

:488F:01B0PRÓXIMO:488F:01D8SUCESSOR

488F:01C4

ALU: 9.0CNLU: 5

:488F:01C4PRÓXIMO: NILSUCESSOR

488F:01D8

ALU: 3.0CNLU: 4ANTERIOR:488F:0110

:488F:0138SUCESSOR

488F:0124 NILNIL

RNLU: 1ANTERIOR: NIL

:488F:020CSUCESSOR

488F:0200

RNLU: 2ANTERIOR:488F:020C

:488F:0224SUCESSOR

488F:0218

RNLU: 3ANTERIOR:488F:0218

:488F:0230SUCESSOR

488F:0224

RNLU: 3ANTERIOR:488F:0224

:488F:023CSUCESSOR

488F:0230

RNLU: 4ANTERIOR:488F:0230

0248:488F:SUCESSOR

48 23C8F:0

RNLU: 1ANTERIOR:488F:023C

:488F:0254SUCESSOR

488F:0248

RNLU: 4ANTERIOR:488F:0248

:488F:0260SUCESSOR

488F:0254

RNLU: 5ANTERIOR:488F:0254

:488F:026CSUCESSOR

488F:0260

RNLU: 3ANTERIOR:488F:0260

:488F:0278SUCESSOR

488F:026C

RNLU: 5ANTERIOR:488F:026CSUCESSOR: NIL

488F:0278

RNLU: 2ANTERIOR:488F:0200

:488F:0218SUCESSOR

488F:020C NILNIL

3.45a

ALU: 6.0CNLU: 1ANTERIOR: NIL

:488F:0124SUCESSOR

488F:0110

ALU: 2.0CNLU: 1ANTERIOR:488F:0124

:488F:014CSUCESSOR

488F:0138

ALU: 1.0CNLU: 2ANTERIOR:488F:0138

:488F:0160SUCESSOR

488F:014C

ALU: 1.0CNLU: 2ANTERIOR:488F:014C

:488F:0174SUCESSOR

488F:0160

ALU: 3.0CNLU: 3ANTERIOR:488F:0160

:488F:0188SUCESSOR

488F:0174

ALU: 3.0CNLU: 5

:488F:0174PRÓXIMO:488F:019CSUCESSOR

488F:0188

ALU: 1.0CNLU: 3

:488F:0188PRÓXIMO:488F:01B0SUCESSOR

488F:019C

ALU: 2.0CNLU: 4

:488F:019CPRÓXIMO:488F:01C4SUCESSOR

488F:01B0

ALU: 2.0CNLU: 4

:488F:01B0PRÓXIMO:488F:01D8SUCESSOR

488F:01C4

ALU: 9.0CNLU: 5

:488F:01C4PRÓXIMO: NILSUCESSOR

488F:01D8

ALU: 3.0CNLU: 4ANTERIOR:488F:0110

:488F:0138SUCESSOR

488F:0124 NILNIL

RNLU: 1ANTERIOR: NIL

:488F:020CSUCESSOR

488F:0200

RNLU: 2ANTERIOR:488F:020C

:488F:0224SUCESSOR

488F:0218

RNLU: 3ANTERIOR:488F:0218

:488F:0230SUCESSOR

488F:0224

RNLU: 3ANTERIOR:488F:0224

:488F:023CSUCESSOR

488F:0230

RNLU: 4ANTERIOR:488F:0230

:488F:0248SUCESSOR

488F:023C

RNLU: 1ANTERIOR:488F:023C

:488F:0254SUCESSOR

488F:0248

RNLU: 4ANTERIOR:488F:0248

:488F:0260SUCESSOR

488F:0254

RNLU: 5ANTERIOR:488F:0254

:488F:026CSUCESSOR

488F:0260

RNLU: 3ANTERIOR:488F:0260

:488F:0278SUCESSOR

488F:026C

RNLU: 5ANTERIOR:488F:026CSUCESSOR: NIL

488F:0278

RNLU: 2ANTERIOR:488F:0200

:488F:0218SUCESSOR

488F:020C NILNIL

3.45b

Page 67: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

56

ALU: 6.0CNLU: 1ANTERIOR: NIL

:488F:0124SUCESSOR

488F:0110

ALU: 2.0CNLU: 1ANTERIOR:488F:0124

:488F:014CSUCESSOR

488F:0138

ALU: 1.0CNLU: 2ANTERIOR:488F:0138

:488F:0160SUCESSOR

488F:014C

ALU: 1.0CNLU: 2ANTERIOR:488F:014C

:488F:0174SUCESSOR

488F:0160

ALU: 3.0CNLU: 3ANTERIOR:488F:0160

:488F:0188SUCESSOR

488F:0174

ALU: 3.0CNLU: 5

:488F:0174PRÓXIMO:488F:019CSUCESSOR

488F:0188

ALU: 1.0CNLU: 3

:488F:0188PRÓXIMO:488F:01B0SUCESSOR

488F:019C

ALU: 2.0CNLU: 4

:488F:019CPRÓXIMO:488F:01C4SUCESSOR

488F:01B0

ALU: 2.0CNLU: 4

:488F:01B0PRÓXIMO:488F:01D8SUCESSOR

488F:01C4

ALU: 9.0CNLU: 5

:488F:01C4PRÓXIMO: NILSUCESSOR

488F:01D8

ALU: 3.0CNLU: 4ANTERIOR:488F:0110

:488F:0138SUCESSOR

488F:0124 NILNIL

RNLU: 1ANTERIOR: NIL

:488F:020CSUCESSOR

488F:0200

RNLU: 2ANTERIOR:488F:020C

:488F:0224SUCESSOR

488F:0218

RNLU: 3ANTERIOR:488F:0218

:488F:0230SUCESSOR

488F:0224

RNLU: 3ANTERIOR:488F:0224

:488F:023CSUCESSOR

488F:0230

RNLU: 4ANTERIOR:488F:0230

:488F:0248SUCESSOR

488F:023C

RNLU: 1ANTERIOR:488F:023C

:488F:0254SUCESSOR

488F:0248

RNLU: 4ANTERIOR:488F:0248

:488F:0260SUCESSOR

488F:0254

RNLU: 5ANTERIOR:488F:0254

:488F:026CSUCESSOR

488F:0260

RNLU: 3ANTERIOR:488F:0260

:488F:0278SUCESSOR

488F:026C

RNLU: 5ANTERIOR:488F:026CSUCESSOR: NIL

488F:0278

RNLU: 2ANTERIOR:488F:0200

:488F:0218SUCESSOR

488F:020C NILNIL

3.45c

ALU: 6.0CNLU: 1ANTERIOR: NIL

:488F:0124SUCESSOR

488F:0110

ALU: 2.0CNLU: 1ANTERIOR:488F:0124

:488F:014CSUCESSOR

488F:0138

ALU: 1.0CNLU: 2ANTERIOR:488F:0138

:488F:0160SUCESSOR

488F:014C

ALU: 1.0CNLU: 2ANTERIOR:488F:014C

:488F:0174SUCESSOR

488F:0160

ALU: 3.0CNLU: 3ANTERIOR:488F:0160

:488F:0188SUCESSOR

488F:0174

ALU: 3.0CNLU: 5

:488F:0174PRÓXIMO:488F:019CSUCESSOR

488F:0188

ALU: 1.0CNLU: 3

:488F:0188PRÓXIMO:488F:01B0SUCESSOR

488F:019C

ALU: 2.0CNLU: 4

:488F:019CPRÓXIMO:488F:01C4SUCESSOR

488F:01B0

ALU: 2.0CNLU: 4

:488F:01B0PRÓXIMO:488F:01D8SUCESSOR

488F:01C4

ALU: 9.0CNLU: 5

:488F:01C4PRÓXIMO: NILSUCESSOR

488F:01D8

ALU: 3.0CNLU: 4ANTERIOR:488F:0110

:488F:0138SUCESSOR

488F:0124 NILNIL

RNLU: 1ANTERIOR: NIL

:488F:020CSUCESSOR

488F:0200

RNLU: 2ANTERIOR:488F:020C

:488F:0224SUCESSOR

488F:0218

RNLU: 3ANTERIOR:488F:0218

:488F:0230SUCESSOR

488F:0224

RNLU: 3ANTERIOR:488F:0224

:488F:023CSUCESSOR

488F:0230

RNLU: 4ANTERIOR:488F:0230

:488F:0248SUCESSOR

488F:023C

RNLU: 1ANTERIOR:488F:023C

:488F:0254SUCESSOR

488F:0248

RNLU: 4ANTERIOR:488F:0248

:488F:0260SUCESSOR

488F:0254

RNLU: 5ANTERIOR:488F:0254

:488F:026CSUCESSOR

488F:0260

RNLU: 3ANTERIOR:488F:0260

:488F:0278SUCESSOR

488F:026C

RNLU: 5ANTERIOR:488F:026CSUCESSOR: NIL

488F:0278

RNLU: 2ANTERIOR:488F:0200

:488F:0218SUCESSOR

488F:020C NILNIL

3.45d

Page 68: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

57

Neste instante, o ponteiro IND_LATUAL está localizado no primeiro elemento

da primeira linha enquanto o IND_LPROX está localizado no primeiro elemento da

segunda linha.

IND_LATUAL

IND_LPROX

(3.46)

⎥⎥⎥⎥⎢= 30310A⎥⎥

⎢⎢⎢

⎢⎢

09020000020100000

000010200300

....

.....

.6.0

Como o elemento de IND_LPROX está localizado abaixo da diagonal

principal, este elemento deverá ser zerado no processo de triangulariazação.

Para zerar o elemento da primeira coluna que se encontra na segunda linha

(L2), será preciso somar a segunda linha (L2) com o negativo da razão dos campos

ALU dos ponteiros IND_LPROX e IND_LATUAL, multiplicado pela primeira linha

(L1). Tais operações podem ser expressas da seguinte forma:

L2 = L2 – ((IND_LPROX^.ALU / IND_LATUAL^.ALU) * L1) (3.47)

O negativo da razão dos campos ALU dos ponteiros IND_LPROX e

IND_LATUAL será armazenado na variável TEMP. Então, as operações podem ser

expressas da seguinte forma:

L2 = L2 +(TEMP * L1) (3.48)

Uma vez calculado o valor da variável TEMP, o próximo passo será zerar o

primeiro elemento localizado na segunda linha e primeira coluna. Neste caso, serão

eliminadas as referências deste elemento na listas ordenadas por linhas e por

colunas, ou em outras palavras liberar os espaços que este elemento ocupava na

memória para o armazenamento de futuros dados que serão criados durante os

Page 69: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

58

cálculos computacionais (preenchimentos). Por questões funcionais, este elemento

será marcado e só será eliminado das listas ordenadas quando todos os elementos

da primeira e segunda linha forem analisados (3.50a).

Agora, o ponteiro IND_LATUAL irá avançar para o próximo elemento da

primeira linha, se este existir. O ponteiro IND_LPROX irá tentar avançar para o

elemento da segunda linha que mais se aproximar, sem ultrapassar, da coluna do

elemento apontado por IND_LATUAL (3.50b).

IND_LATUAL

IND_LPROX

(3.49)

⎥⎥⎥ ⎥⎢= 30310A⎥⎥

⎢⎢⎢

⎢⎢

09020000020100000

000010200300

....

.....

.6.0

Neste instante, serão comparados os valores dos campos CNLU dos

ponteiros IND_ATUAL e IND_LPROX. Como os valores destes campos são

diferentes (IND_LATUAL^.CNLU=4 e IND_LPROX^.CNLU=2), então será criado um

preenchimento na segunda linha e quarta coluna.

Será criado um novo ponteiro na lista ordenada por linhas em um espaço

vazio de memória, sendo feitos os apontamentos do IND_LPROX para este novo

ponteiro e deste novo ponteiro para o elemento seguinte ao IND_LPROX, se este

existir (3.50c).

Ao campo RNLU deste novo ponteiro será atribuído o valor do campo CNLU

do ponteiro IND_LATUAL, neste caso, o valor 4, indicando que este novo elemento

está na quarta coluna. Ao campo ALU deste novo ponteiro será atribuído o valor -1.

Page 70: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

59

O novo ponteiro da lista ordenada por linhas foi criado no endereço

488F:01EC. Fisicamente, este ponteiro está localizado depois do endereço do

último ponteiro desta lista (488F:01D8), porém, logicamente, este ponteiro está

posicionado entre os ponteiros de endereço 488F:014C e 488F:0160, como pode ser

observado nos campos ANTERIOR e SUCESSOR destes ponteiros (3.50c).

A criação e inclusão deste preenchimento na lista ordenada por linhas não

implicam procedimentos de altos custos computacionais, uma vez que os passos

necessários para efetuar tal inclusão são somente a criação de um novo ponteiro e a

mudança dos endereços dos campos “ANTERIOR” e “SUCESSOR” do ponteiro

IND_LPROX e do ponteiro seguinte.

A inclusão do preenchimento, conforme descrita anteriormente, apresenta

ainda a vantagem de manter ordenada a lista organizada por linhas, sem a

necessidade de executar qualquer procedimento extra de arrumação.

Page 71: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

60

ALU: 1.0CNLU: 2ANTERIOR:488F:0138

:488F:0160SUCESSOR

488F:014C

ALU: 1.0CNLU: 2ANTERIOR:488F:014C

:488F:0174SUCESSOR

488F:0160

ALU: 3.0CNLU: 3ANTERIOR:488F:0160

:488F:0188SUCESSOR

488F:0174

ALU: 3.0CNLU: 5

:488F:0174PRÓXIMO:488F:019CSUCESSOR

488F:0188

ALU: 1.0CNLU: 3

:488F:0188PRÓXIMO:488F:01B0SUCESSOR

488F:019C

ALU: 2.0CNLU: 4

:488F:019CPRÓXIMO:488F:01C4SUCESSOR

488F:01B0

ALU: 2.0CNLU: 4

:488F:01B0PRÓXIMO:488F:01D8SUCESSOR

488F:01C4

ALU: 9.0CNLU: 5

:488F:01C4PRÓXIMO: NILSUCESSOR

488F:01D8

ALU: 3.0CNLU: 4ANTERIOR:488F:0110

:488F:0138SUCESSOR

488F:0124 NILNIL

RNLU: 1ANTERIOR: NIL

:488F:020CSUCESSOR

488F:0200

RNLU: 2ANTERIOR:488F:020C

:488F:0224SUCESSOR

488F:0218

RNLU: 3ANTERIOR:488F:0218

:488F:0230SUCESSOR

488F:0224

RNLU: 3ANTERIOR:488F:0224

:488F:023CSUCESSOR

488F:0230

RNLU: 4ANTERIOR:488F:0230

:488F:0248SUCESSOR

488F:023C

RNLU: 1ANTERIOR:488F:023C

:488F:0254SUCESSOR

488F:0248

RNLU: 4ANTERIOR:488F:0248

:488F:0260SUCESSOR

488F:0254

RNLU: 5ANTERIOR:488F:0254

:488F:026CSUCESSOR

488F:0260

RNLU: 3ANTERIOR:488F:0260

:488F:0278SUCESSOR

488F:026C

RNLU: 5ANTERIOR:488F:026CSUCESSOR: NIL

488F:0278

RNLU: 2ANTERIOR:488F:0200

:488F:0218SUCESSOR

488F:020C NILNIL

3.50a

ALU: 1.0CNLU: 2ANTERIOR:488F:0138

:488F:0160SUCESSOR

488F:014C

ALU: 1.0CNLU: 2ANTERIOR:488F:014C

:488F:0174SUCESSOR

488F:0160

ALU: 3.0CNLU: 3ANTERIOR:488F:0160

:488F:0188SUCESSOR

488F:0174

ALU: 3.0CNLU: 5

:488F:0174PRÓXIMO:488F:019CSUCESSOR

488F:0188

ALU: 1.0CNLU: 3

:488F:0188PRÓXIMO:488F:01B0SUCESSOR

488F:019C

ALU: 2.0CNLU: 4

:488F:019CPRÓXIMO:488F:01C4SUCESSOR

488F:01B0

ALU: 2.0CNLU: 4

:488F:01B0PRÓXIMO:488F:01D8SUCESSOR

488F:01C4

ALU: 9.0CNLU: 5

:488F:01C4PRÓXIMO: NILSUCESSOR

488F:01D8

ALU: 3.0CNLU: 4ANTERIOR:488F:0110

:488F:0138SUCESSOR

488F:0124 NILNIL

RNLU: 1ANTERIOR: NIL

:488F:020CSUCESSOR

488F:0200

RNLU: 2ANTERIOR:488F:020C

:488F:0224SUCESSOR

488F:0218

RNLU: 3ANTERIOR:488F:0218

:488F:0230SUCESSOR

488F:0224

RNLU: 3ANTERIOR:488F:0224

:488F:023CSUCESSOR

488F:0230

RNLU: 4ANTERIOR:488F:0230

:488F:0248SUCESSOR

488F:023C

RNLU: 1ANTERIOR:488F:023C

:488F:0254SUCESSOR

488F:0248

RNLU: 4ANTERIOR:488F:0248

:488F:0260SUCESSOR

488F:0254

RNLU: 5ANTERIOR:488F:0254

:488F:026CSUCESSOR

488F:0260

RNLU: 3ANTERIOR:488F:0260

:488F:0278SUCESSOR

488F:026C

RNLU: 5ANTERIOR:488F:026CSUCESSOR: NIL

488F:0278

RNLU: 2ANTERIOR:488F:0200

:488F:0218SUCESSOR

488F:020C NILNIL

3.50b

Page 72: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

61

ALU: 1.0CNLU: 2ANTERIOR:488F:0138

:488F:01ECSUCESSOR

488F:014C

ALU: 1.0CNLU: 2ANTERIOR:488F:01EC

:488F:0174SUCESSOR

488F:0160

ALU: - 1.0CNLU: 2ANTERIOR:488F:014C

:488F:0160SUCESSOR

488F:01EC

ALU: 3.0CNLU: 3ANTERIOR:488F:0160

:488F:0188SUCESSOR

488F:0174

ALU: 3.0CNLU: 5

:488F:0174PRÓXIMO:488F:019CSUCESSOR

488F:0188

ALU: 1.0CNLU: 3

:488F:0188PRÓXIMO:488F:01B0SUCESSOR

488F:019C

ALU: 2.0CNLU: 4

:488F:019CPRÓXIMO:488F:01C4SUCESSOR

488F:01B0

ALU: 2.0CNLU: 4

:488F:01B0PRÓXIMO:488F:01D8SUCESSOR

488F:01C4

ALU: 9.0CNLU: 5

:488F:01C4PRÓXIMO: NILSUCESSOR

488F:01D8

ALU: 3.0CNLU: 4ANTERIOR:488F:0110

:488F:0138SUCESSOR

488F:0124 NILNIL

RNLU: 1ANTERIOR: NIL

:488F:020CSUCESSOR

488F:0200

RNLU: 2ANTERIOR:488F:020C

:488F:0224SUCESSOR

488F:0218

RNLU: 3ANTERIOR:488F:0218

:488F:0230SUCESSOR

488F:0224

RNLU: 3ANTERIOR:488F:0224

:488F:023CSUCESSOR

488F:0230

RNLU: 4ANTERIOR:488F:0230

:488F:0248SUCESSOR

488F:023C

RNLU: 1ANTERIOR:488F:023C

:488F:0254SUCESSOR

488F:0248

RNLU: 4ANTERIOR:488F:0248

:488F:0260SUCESSOR

488F:0254

RNLU: 5ANTERIOR:488F:0254

:488F:026CSUCESSOR

488F:0260

RNLU: 3ANTERIOR:488F:0260

:488F:0278SUCESSOR

488F:026C

RNLU: 5ANTERIOR:488F:026CSUCESSOR: NIL

488F:0278

RNLU: 2ANTERIOR:488F:0200

:488F:0218SUCESSOR

488F:020C NILNIL

3.50c

Page 73: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

62

Além do ponteiro criado na lista ordenada por linhas, deverá ser criado um

novo ponteiro na lista ordenada por colunas, o qual irá indicar em que linha o

preenchimento, criado na quarta coluna da matriz, se encontra. Para sua criação,

iremos utilizar um ponteiro auxiliar IND_CATUAL_AUX que, inicialmente, irá receber

o endereço de HAPO[4,3], que é o endereço do primeiro elemento da quarta coluna.

Após receber este endereço, o ponteiro auxiliar irá percorrer toda a quarta coluna até

encontrar a posição em que este deve ser inserido para manter a lista devidamente

ordenada (3.51a). O campo RNLU deste elemento receberá o valor 2, indicando que

o preenchimento será criado na segunda linha da quarta coluna.

O novo ponteiro da lista ordenada por colunas foi criado no endereço

488F:0284. Fisicamente, este ponteiro foi criado depois do endereço do último

ponteiro desta lista (488F:0278), porém, logicamente, este ponteiro está posicionado

entre os ponteiros de endereço 488F:0248 e 488F:0254, como pode ser observado

nos campos ANTERIOR e SUCESSOR dos mesmos (3.51b).

A criação e inclusão deste preenchimento na lista ordenada por colunas

implicam a criação de um novo ponteiro, a execução de uma busca na coluna para

encontrar a posição que o novo ponteiro dever ser inserido logicamente na lista e a

mudança dos endereços dos campos “ANTERIOR” e “SUCESSOR” do ponteiro

IND_CATUAL_AUX e do ponteiro seguinte.

A inclusão do preenchimento, conforme descrita anteriormente, além de evitar

a cópia de elementos para o final da estrutura também apresenta a vantagem de

manter organizadas as listas ordenadas por linha e por colunas sem a necessidade

de executar qualquer procedimento extra de arrumação.

Page 74: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

63

ALU: 1.0CNLU: 2ANTERIOR:488F:0138

:488F:01ECSUCESSOR

488F:014C

ALU: 1.0CNLU: 2ANTERIOR:488F:01EC

:488F:0174SUCESSOR

488F:0160

ALU: 1.0CNLU: 2ANTERIOR:488F:014C

:488F:0160SUCESSOR

488F:01EC

ALU: 3.0CNLU: 3ANTERIOR:488F:0160

:488F:0188SUCESSOR

488F:0174

ALU: 3.0CNLU: 5

:488F:0174PRÓXIMO:488F:019CSUCESSOR

488F:0188

ALU: 1.0CNLU: 3

:488F:0188PRÓXIMO:488F:01B0SUCESSOR

488F:019C

ALU: 2.0CNLU: 4

:488F:019CPRÓXIMO:488F:01C4SUCESSOR

488F:01B0

ALU: 2.0CNLU: 4

:488F:01B0PRÓXIMO:488F:01D8SUCESSOR

488F:01C4

ALU: 9.0CNLU: 5

:488F:01C4PRÓXIMO: NILSUCESSOR

488F:01D8

ALU: 3.0CNLU: 4ANTERIOR:488F:0110

:488F:0138SUCESSOR

488F:0124 NILNIL

RNLU: 1ANTERIOR: NIL

:488F:020CSUCESSOR

488F:0200

RNLU: 2ANTERIOR:488F:020C

:488F:0224SUCESSOR

488F:0218

RNLU: 3ANTERIOR:488F:0218

:488F:0230SUCESSOR

488F:0224

RNLU: 3ANTERIOR:488F:0224

:488F:023CSUCESSOR

488F:0230

RNLU: 4ANTERIOR:488F:0230

:488F:0248SUCESSOR

488F:023C

RNLU: 1ANTERIOR:488F:023C

:488F:0254SUCESSOR

488F:0248

RNLU: 4ANTERIOR:488F:0248

:488F:0260SUCESSOR

488F:0254

RNLU: 5ANTERIOR:488F:0254

:488F:026CSUCESSOR

488F:0260

RNLU: 3ANTERIOR:488F:0260

:488F:0278SUCESSOR

488F:026C

RNLU: 5ANTERIOR:488F:026CSUCESSOR: NIL

488F:0278

RNLU: 2ANTERIOR:488F:0200

:488F:0218SUCESSOR

488F:020C NILNIL

3.51ª

ALU: 1.0CNLU: 2ANTERIOR:488F:0138

:488F:01ECSUCESSOR

488F:014C

ALU: 1.0CNLU: 2ANTERIOR:488F:01EC

:488F:0174SUCESSOR

488F:0160

ALU: 1.0CNLU: 2ANTERIOR:488F:014C

:488F:0160SUCESSOR

488F:01EC

ALU: 3.0CNLU: 3ANTERIOR:488F:0160

:488F:0188SUCESSOR

488F:0174

ALU: 3.0CNLU: 5

:488F:0174PRÓXIMO:488F:019CSUCESSOR

488F:0188

ALU: 1.0CNLU: 3

:488F:0188PRÓXIMO:488F:01B0SUCESSOR

488F:019C

ALU: 2.0CNLU: 4

:488F:019CPRÓXIMO:488F:01C4SUCESSOR

488F:01B0

ALU: 2.0CNLU: 4

:488F:01B0PRÓXIMO:488F:01D8SUCESSOR

488F:01C4

ALU: 9.0CNLU: 5

:488F:01C4PRÓXIMO: NILSUCESSOR

488F:01D8

ALU: 3.0CNLU: 4ANTERIOR:488F:0110

:488F:0138SUCESSOR

488F:0124 NILNIL

RNLU: 1ANTERIOR: NIL

:488F:020CSUCESSOR

488F:0200

RNLU: 2ANTERIOR:488F:020C

:488F:0224SUCESSOR

488F:0218

RNLU: 3ANTERIOR:488F:0218

:488F:0230SUCESSOR

488F:0224

RNLU: 3ANTERIOR:488F:0224

:488F:023CSUCESSOR

488F:0230

RNLU: 4ANTERIOR:488F:0230

:488F:0248SUCESSOR

488F:023C

RNLU: 1ANTERIOR:488F:023C

:488F:0284SUCESSOR

488F:0248

RNLU: 4ANTERIOR:488F:0284

:488F:0260SUCESSOR

488F:0254

RNLU: 2ANTERIOR:488F:0248

:488F:0254SUCESSOR

488F:0284

RNLU: 5ANTERIOR:488F:0254

:488F:026CSUCESSOR

488F:0260

RNLU: 3ANTERIOR:488F:0260

:488F:0278SUCESSOR

488F:026C

RNLU: 5ANTERIOR:488F:026CSUCESSOR: NIL

488F:0278

RNLU: 2ANTERIOR:488F:0200

:488F:0218SUCESSOR

488F:020C NILNIL

3.51b

Page 75: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

64

Após a criação do preenchimento nas listas ordenadas, podemos observar

que o ponteiro IND_LATUAL está posicionado no último elemento da primeira linha

(IND_LATUAL=HAPO1[1,2]), indicando que não será preciso comparar outros

elementos entre estas duas linhas. Neste instante, os elementos selecionados

deverão ser eliminados nas listas ordenadas.

Na lista ordenada por linhas, basta eliminar os elementos selecionados nos

processos anteriores (3.52a).

Na lista ordenada por colunas, será preciso eliminar a referência ao elemento

eliminado. Para isto, será usado um ponteiro auxiliar (IND_CATUAL2), que será

posicionado no primeiro elemento da coluna em que o elemento estava localizado

(IND_CATUAL2:=HAPO2[AUX_CNLU,3]) (3.52b), percorrendo esta coluna até

encontrar um elemento com o valor da linha correspondente ao elemento eliminado

(IND_CATUAL2^.RNLU<>LN_PROX)(3.52c).

Uma vez encontrado o elemento em questão, este será eliminado da lista

ordenada por colunas (3.52d).

Page 76: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

65

ALU: 1.0CNLU: 2ANTERIOR:488F:0138

:488F:01ECSUCESSOR

488F:014C

ALU: 1.0CNLU: 2ANTERIOR:488F:01EC

:488F:0174SUCESSOR

488F:0160

ALU: 1.0CNLU: 2ANTERIOR:488F:014C

:488F:0160SUCESSOR

488F:01EC

ALU: 3.0CNLU: 3ANTERIOR:488F:0160

:488F:0188SUCESSOR

488F:0174

ALU: 3.0CNLU: 5

:488F:0174PRÓXIMO:488F:019CSUCESSOR

488F:0188

ALU: 1.0CNLU: 3

:488F:0188PRÓXIMO:488F:01B0SUCESSOR

488F:019C

ALU: 2.0CNLU: 4

:488F:019CPRÓXIMO:488F:01C4SUCESSOR

488F:01B0

ALU: 2.0CNLU: 4

:488F:01B0PRÓXIMO:488F:01D8SUCESSOR

488F:01C4

ALU: 9.0CNLU: 5

:488F:01C4PRÓXIMO: NILSUCESSOR

488F:01D8

ALU: 3.0CNLU: 4ANTERIOR:488F:0110

:488F:0138SUCESSOR

488F:0124 NILNIL

RNLU: 1ANTERIOR: NIL

:488F:020CSUCESSOR

488F:0200

RNLU: 2ANTERIOR:488F:020C

:488F:0224SUCESSOR

488F:0218

RNLU: 3ANTERIOR:488F:0218

:488F:0230SUCESSOR

488F:0224

RNLU: 3ANTERIOR:488F:0224

:488F:023CSUCESSOR

488F:0230

RNLU: 4ANTERIOR:488F:0230

:488F:0248SUCESSOR

488F:023C

RNLU: 1ANTERIOR:488F:023C

:488F:0284SUCESSOR

488F:0248

RNLU: 4ANTERIOR:488F:0284

:488F:0260SUCESSOR

488F:0254

RNLU: 2ANTERIOR:488F:0248

:488F:0254SUCESSOR

488F:0284

RNLU: 5ANTERIOR:488F:0254

:488F:026CSUCESSOR

488F:0260

RNLU: 3ANTERIOR:488F:0260

:488F:0278SUCESSOR

488F:026C

RNLU: 5ANTERIOR:488F:026CSUCESSOR: NIL

488F:0278

RNLU: 2ANTERIOR:488F:0200

:488F:0218SUCESSOR

488F:020C NILNIL

3.52a

ALU: 1.0CNLU: 2ANTERIOR:488F:0138

:488F:01ECSUCESSOR

488F:014C

ALU: 1.0CNLU: 2ANTERIOR:488F:01EC

:488F:0174SUCESSOR

488F:0160

ALU: 1.0CNLU: 2ANTERIOR:488F:014C

:488F:0160SUCESSOR

488F:01EC

ALU: 3.0CNLU: 3ANTERIOR:488F:0160

:488F:0188SUCESSOR

488F:0174

ALU: 3.0CNLU: 5

:488F:0174PRÓXIMO:488F:019CSUCESSOR

488F:0188

ALU: 1.0CNLU: 3

:488F:0188PRÓXIMO:488F:01B0SUCESSOR

488F:019C

ALU: 2.0CNLU: 4

:488F:019CPRÓXIMO:488F:01C4SUCESSOR

488F:01B0

ALU: 2.0CNLU: 4

:488F:01B0PRÓXIMO:488F:01D8SUCESSOR

488F:01C4

ALU: 9.0CNLU: 5

:488F:01C4PRÓXIMO: NILSUCESSOR

488F:01D8

ALU: 3.0CNLU: 4ANTERIOR:488F:0110

:488F:0138SUCESSOR

488F:0124 NILNIL

RNLU: 1ANTERIOR: NIL

:488F:020CSUCESSOR

488F:0200

RNLU: 2ANTERIOR:488F:020C

:488F:0224SUCESSOR

488F:0218

RNLU: 3ANTERIOR:488F:0218

:488F:0230SUCESSOR

488F:0224

RNLU: 3ANTERIOR:488F:0224

:488F:023CSUCESSOR

488F:0230

RNLU: 4ANTERIOR:488F:0230

:488F:0248SUCESSOR

488F:023C

RNLU: 1ANTERIOR:488F:023C

:488F:0284SUCESSOR

488F:0248

RNLU: 4ANTERIOR:488F:0284

:488F:0260SUCESSOR

488F:0254

RNLU: 2ANTERIOR:488F:0248

:488F:0254SUCESSOR

488F:0284

RNLU: 5ANTERIOR:488F:0254

:488F:026CSUCESSOR

488F:0260

RNLU: 3ANTERIOR:488F:0260

:488F:0278SUCESSOR

488F:026C

RNLU: 5ANTERIOR:488F:026CSUCESSOR: NIL

488F:0278

RNLU: 2ANTERIOR:488F:0200

:488F:0218SUCESSOR

488F:020C NILNIL

3.52b

Page 77: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

66

ALU: 1.0CNLU: 2ANTERIOR:488F:0138

:488F:01ECSUCESSOR

488F:014C

ALU: 1.0CNLU: 2ANTERIOR:488F:01EC

:488F:0174SUCESSOR

488F:0160

ALU: 1.0CNLU: 2ANTERIOR:488F:014C

:488F:0160SUCESSOR

488F:01EC

ALU: 3.0CNLU: 3ANTERIOR:488F:0160

:488F:0188SUCESSOR

488F:0174

ALU: 3.0CNLU: 5

:488F:0174PRÓXIMO:488F:019CSUCESSOR

488F:0188

ALU: 1.0CNLU: 3

:488F:0188PRÓXIMO:488F:01B0SUCESSOR

488F:019C

ALU: 2.0CNLU: 4

:488F:019CPRÓXIMO:488F:01C4SUCESSOR

488F:01B0

ALU: 2.0CNLU: 4

:488F:01B0PRÓXIMO:488F:01D8SUCESSOR

488F:01C4

ALU: 9.0CNLU: 5

:488F:01C4PRÓXIMO: NILSUCESSOR

488F:01D8

ALU: 3.0CNLU: 4ANTERIOR:488F:0110

:488F:0138SUCESSOR

488F:0124 NILNIL

RNLU: 1ANTERIOR: NIL

:488F:020CSUCESSOR

488F:0200

RNLU: 2ANTERIOR:488F:020C

:488F:0224SUCESSOR

488F:0218

RNLU: 3ANTERIOR:488F:0218

:488F:0230SUCESSOR

488F:0224

RNLU: 3ANTERIOR:488F:0224

:488F:023CSUCESSOR

488F:0230

RNLU: 4ANTERIOR:488F:0230

:488F:0248SUCESSOR

488F:023C

RNLU: 1ANTERIOR:488F:023C

:488F:0284SUCESSOR

488F:0248

RNLU: 4ANTERIOR:488F:0284

:488F:0260SUCESSOR

488F:0254

RNLU: 2ANTERIOR:488F:0248

:488F:0254SUCESSOR

488F:0284

RNLU: 5ANTERIOR:488F:0254

:488F:026CSUCESSOR

488F:0260

RNLU: 3ANTERIOR:488F:0260

:488F:0278SUCESSOR

488F:026C

RNLU: 5ANTERIOR:488F:026CSUCESSOR: NIL

488F:0278

RNLU: 2ANTERIOR:488F:0200

:488F:0218SUCESSOR

488F:020C NILNIL

3.52c

ALU: 1.0CNLU: 2ANTERIOR:488F:0138

:488F:01ECSUCESSOR

488F:014C

ALU: 1.0CNLU: 2ANTERIOR:488F:01EC

:488F:0174SUCESSOR

488F:0160

ALU: 1.0CNLU: 2ANTERIOR:488F:014C

:488F:0160SUCESSOR

488F:01EC

ALU: 3.0CNLU: 3ANTERIOR:488F:0160

:488F:0188SUCESSOR

488F:0174

ALU: 3.0CNLU: 5

:488F:0174PRÓXIMO:488F:019CSUCESSOR

488F:0188

ALU: 1.0CNLU: 3

:488F:0188PRÓXIMO:488F:01B0SUCESSOR

488F:019C

ALU: 2.0CNLU: 4

:488F:019CPRÓXIMO:488F:01C4SUCESSOR

488F:01B0

ALU: 2.0CNLU: 4

:488F:01B0PRÓXIMO:488F:01D8SUCESSOR

488F:01C4

ALU: 9.0CNLU: 5

:488F:01C4PRÓXIMO: NILSUCESSOR

488F:01D8

ALU: 3.0CNLU: 4ANTERIOR:488F:0110

:488F:0138SUCESSOR

488F:0124 NILNIL

RNLU: 1ANTERIOR: NIL

:488F:020CSUCESSOR

488F:0200

RNLU: 2ANTERIOR:488F:020C

:488F:0224SUCESSOR

488F:0218

RNLU: 3ANTERIOR:488F:0218

:488F:0230SUCESSOR

488F:0224

RNLU: 3ANTERIOR:488F:0224

:488F:023CSUCESSOR

488F:0230

RNLU: 4ANTERIOR:488F:0230

:488F:0248SUCESSOR

488F:023C

RNLU: 1ANTERIOR:488F:023C

:488F:0284SUCESSOR

488F:0248

RNLU: 4ANTERIOR:488F:0284

:488F:0260SUCESSOR

488F:0254

RNLU: 2ANTERIOR:488F:0248

:488F:0254SUCESSOR

488F:0284

RNLU: 5ANTERIOR:488F:0254

:488F:026CSUCESSOR

488F:0260

RNLU: 3ANTERIOR:488F:0260

:488F:0278SUCESSOR

488F:026C

RNLU: 5ANTERIOR:488F:026CSUCESSOR: NIL

488F:0278 NILNIL

3.52d

Page 78: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

67

CAPÍTULO IV

ESTRATÉGIAS DE PIVOTAMENTO

Neste capítulo, iremos utilizar o processo de Eliminação Gaussiana (EG) para

solucionar um sistema de equações lineares com matrizes esparsas. Independente

do método utilizado na solução do sistema, o uso de uma estratégia de pivotamento

é uma ferramenta que pode ser eficientemente utilizada para tentar minimizar o

número de preenchimentos tentando preservar, tanto quanto possível, a esparcidade

original da matriz e, ao mesmo tempo, manter os erros de arredondamento nos

menores valores possíveis, sendo que, em alguns casos, somente a utilização de

um pivotamento adequado irá garantir a estabilidade do sistema durante os cálculos

computacionais.

Normalmente, os requisitos de preservar a esparcidade e a precisão não

podem ser satisfeitos simultaneamente. É preciso uma atenção especial para

manter um certo balanço nas exigências quanto à esparcidade e precisão. Alguns

exemplos onde a falta de tal balanço provocou resultados catastróficos podem ser

observados em Zlatev (1991). A seguir podem se observar algumas estratégias de

pivotamento.

4.1 – Pivotamento para Matrizes Densas

Seja nxnRA ∈ uma matriz quadrada genérica. Assuma que uma Eliminação

Gaussiana seja utilizada para representar a matriz A como o produto de uma matriz

triangular inferior nxnRL ∈ e uma matriz triangular superior nxnRU ∈ , ou seja, A = LU.

Page 79: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

68

Sej

(4.1)

para assegurar que os cálculos computacionais não irão comprometer os resultados.

Para o estágio considere os três conjuntos a seguir:

é a parte ativa da matriz

iii. é a parte ativa da coluna j no estágio s;

parte ativa da matriz é a parte que ainda não foi triangularizada.

esso de pivotamento são

normalmente executados por uma das seguintes regras:

a )(sija o elemento da linha i e coluna j da matriz A no estágio s da Eliminação

Gaussiana. A fatoração é executada da seguinte forma:

)(1)()()()1( )( s

sjs

sss

iss

ijs

ij aaaa −+ −= a

onde:

• s = 1, 2, ..., n-1;

• i = s+1, s+2, ..., n;

• j = s+1, s+2, ..., n;

• }1-n ..., ,2 ,1{ 0)( ∈∀≠ sa sss

O elemento )(sss é conhecido como “elemento pivô” ou simplesmente “pivô”.

O processo de pivotamento é constituído pelo intercâmbio de linhas e colunas da

matriz A, de acordo com algum critério, para garantir uma escolha adequada do

elemento pivô. Em muitos casos, mudanças de pivô são necessárias até mesmo

a

1}-n ..., 2, ,1{∈s

i. A no estágio s; sA

ii. is é a parte ativa da linha i no estágio s; R

jsC

onde:

-

Os intercâmbios de linhas e colunas do proc

Page 80: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

69

a parte ativa i (ou da parte ativa da coluna j) no

estágio s. Mova este elemento para a

(ou das colunas

valor

absoluto da parte ativa da matriz A no estágio s. Mova este elemento para a

posiçã

P e Q, onde a

matriz será uma matriz para permutar linhas enquanto a matriz Q será uma matriz

para permutar colunas. Neste caso o uma

estratégia de pivotamento pode ser representado da seguinte forma:

tilizar qualquer pivotamento para

garantir a estabilidade. Porém, o uso de pivotamento para tentar manter a

esparc . Alguns

exemplos podem ser observados em Zlatev(1991).

Ste

A matriz A é não singular (existe );

os sem erros de

arredondamento;

Pivotamento Parcial – seja )(sisa (ou )(s

sja ) um dos maiores elementos em

valor absoluto d isR da linha jsC

posição (s,s) pelo intercâmbio das linhas i e s

j e s).

Pivotamento Completo – seja )(sa um dos maiores elementos emij

sA

o (s,s) pelo intercâmbio tanto das linhas i e s quanto das colunas j e s.

Os intercâmbios necessários para qualquer uma das duas regras anteriores

podem ser representados por matrizes de permutações denominadas

P

, o processo de decomposição utilizand

nxnnxn Q ,RP , RPAQLU ∈∈= (4.2)

Um critério importante que deve ser observado é como a estratégia de

pivotamento afeta a estabilidade do processo de EG, isto é, algumas matrizes

podem ser decompostas sem que seja necessário u

idade da matriz pode comprometer a estabilidade desta durante a EG

wart (1973) prova que se as seguintes condições são satisfeitas:

• 1−A

• Os cálculos computacionais podem ser executad

então, não irá acontecer nem “Overflow” nem “Underflow”.

Page 81: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

70

O algoritmo EG com qualquer uma das duas regras de pivotamento (parcial

ou completo) não irá falhar, isto é, todos os elementos pivôs serão não nulos.

odavia, erros de arredondamento geralmente são inevitáveis quando

cálculos computacion osição

resultante da EG pode ser representada da seguinte forma:

T

ais são realizados em computadores. Então, a decomp

EQLU PA += (4.3)

o

nde nxnRE ∈ é chamada de matriz de perturbação, e seus elementos

..., 2, (i eij 1, n) ..., 2, 1, j n, == satisfazem a seguinte relação

επ nij b ne ≤ (4.4)

onde ε é a precisão do computador, π é uma constante de ordem O(1) que

independe da matriz A, e ( ) a maxb )s(ijnj sn,i s,kslK ≤≤≤≤≤≤

= .

4.2 – Conceitos básicos para construção

ri s.

urante o processo de Eliminação Gaussiana (EG) de uma matriz esparsa A

se

de estratégias de pivotamento para

mat zes esparsa

D

0=) , mas se 0≠)s(isa e 0≠)s(

sja então será criado um novo elemento não nulo

(preenchimento) na linha i e coluna j no próximo estágio da EG, ou seja, 01 ≠+ )s(ija .

Para manter baixos o tempo computacional e a exigência de armazenamento

deve-se tentar manter o número de preenchimentos pequeno. O requisito de manter

o número de preenchimentos pequeno é equivalente ao requisito de preservar a

esparcidade da matriz A durante a os cálculos dos fatores L e U. Uma estratégia de

s(ija

Page 82: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

71

e pivotamento para matrizes esparsas tem a finalidade de calcular

decomposições e mais precisas e esparsas. Os requisitos de esparcidade e

precis

ento para matrizes esparsas normalmente tentam conciliar este dois

requisitos.

s estratégias de pivotamento podem ser divididas em três grupos (Zlatev-

1991):

• Grupo 1 – Estratégias de pivotamento com mudanças a priori;

• mento baseadas no uso da função de

custo de Markowitz;

Um es esparsas pertencentes a

qualquer um dos três grupos anteriores pode ser obtida de alguma estratégia de

pivotamen

• Relaxamento da exigência de precisão;

eja r(i,s) e c(j,s) o número de elementos não nulos na parte ativa da linha

i no estágio s e na parte ativa da coluna j no estágio s. Seja

pivotamento é uma ferramenta muito útil na tentativa de se evitar a criação excessiva

de preenchimentos. Uma vez que o pivotamento evita a criação de preenchimentos,

este também reduz o cálculo computacional necessário para EG e,

conseqüentemente, a propagação de erros computacionais. Neste sentido, uma

estratégia d

L U

ão trabalham em direções opostas, e apesar disto, as estratégias de

pivotam

A

Grupo 2 – Estratégias de pivota

• Grupo 3 – Estratégias de pivotamento baseadas na minimização local

do número de preenchimentos.

a estratégia de pivotamento para matriz

to para matrizes densas utilizando os seguintes princípios:

• Introdução de algum critério adicional para preservar a esparcidade

durante os cálculos computacionais.

isR

jsC

S

Page 83: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

72

( )(s)ij

Rais a max

is)s(

ij ∈=α (4.5)

e

( )(s)ij

Cajs a max

js)s(

ij ∈=β (4.6)

laxada pela introdução de um fator

de estabilidade e pela escolha dos elementos pivôs em cada estágio s (s = 1, 2,

..., n-1) entre os elementos não nulos de um conjunto de estabilidade , que

depende da estratégia de pivotamento utilizada e do fator de estabilidade u. Os

elementos deste conjunto satisfazem, pelo menos, uma destas duas relações:

A exigência de precisão é normalmente re

1≥u

ss AB ⊆

is)s(

ijau α≥ , is)s(

ijau β≥ . (4.7)

As estratégias de esparcidade dos três grupos tentam preservar a

esparcidade de diferentes formas. Contudo, o seguinte princípio comum pode ser

formulado para estratégias dos diferentes grupos. Um subconjunto de candidatos a

pivô

conseqüentemente a escolha do

fator de estabilidade u, irão influir diretamente no tamanho do conjunto de

estabilidade e do subconjunto de candidatos . Quanto maior é o fator de

ss (s = 1, 2, ..., n-1) será definido como: * BC ⊆

e}esparcidad de critério algum satisfaz :{ )()()(* sijs

sij

sijs aBaaC ∧∈= (4.8)

O elemento pivô do estágio s será escolhido do subconjunto de candidatos *sC .

O relaxamento da exigência de precisão, e

sB *sC

Page 84: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

73

estabi

ões (4.7). Logo, maior será o tamanho conjunto de

estabilidade e o critério de estabilidade adotado para formar o conjunto de

candidatos será aplicado em um conjunto maior.

alguns detalhes das estratégias dos três grupos

mencionados anteriormente.

4.3 – Grupo 1: Estratégias de pivotamento com mudanças a priori

As est

ou colunas de posição. Uma estratégia

(1991) e descrita pelos seguintes passos:

n as

lidade u, normalmente, maior será o número de elementos que satisfaçam,

pelo menos, umas das relaç

sB

*sC

A seguir, serão mostrados

ratégias de pivotamento deste grupo podem ser feitas trocando linhas

deste grupo pode ser observada em Zlatev

Passo 1: Troque, a priori, as posições das linhas (colunas) da matriz A

de tal forma que estas fiquem orde ad por um número crescente de

elementos não nulos, isto é, r(1,1) ≤ r(2,1) ≤ ... ≤ r(n,1)

• Passo 2: No estágio s (s = 1, 2, ..., n-1) da EG escolha como pivô um

elemento ) na linha s (coluna s) que tenha o menor número de

te elemento para a posição (s,s)

trocando sua coluna (linha) de posição com a coluna (linha) s.

Uma vez que foram feitas as trocas de linhas no Passo 1, então os conjuntos

e serão definidos da seguinte forma:

)s(sja ( )s(

isa

elementos não nulos na coluna C ( R ) e que satisfaça a primeira

(segunda) condição (4.7). Traga es

js is

*ssB C

} : { )()()( sss auRaaB α≥∧∈= (4.9)

:{ )()(* aaC ss=

sssjsssjsjs

(s)sm

*(s)sm

*)( sjcsmcBCCaB ssss

sjssjsjs ≥⇒∈∉∈∧∈ (4.10) )},(),(a ,a ,(

Page 85: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

74

a ormar este

conjunto, serão escolhidos os maiores elementos em módulo (

A definição (4.9) do conjunto de estabilidade sB diz que, par f

ss)s(

sjau α≥ ) da parte

ativa d sj

definição (4.10) do conjunto de candidato à pivô diz que os elementos deste

conjunto serão escolhidos os elementos sj

possuírem o menor número de elementos não nulos em suas colunas

s)s(

sj ≥⇒∈∉∈ .

Se forem feitas as trocas das colunas no Passo 1, então, os conjuntos e

a linha s ( )s( Ra ∈ ).

ss

A

do conjunto de estabilidade ( )s( Ba ∈ ) que s

))s,j(c)s,m(cBa ,Ca ,Ca( s(s)sm

*s

(s)sm

*

s

sC serão definidos da seguinte forma:

B

*

} : { )()()(sss

sisss

sisiss auCaa β≥∧∈= (4.11)

to de estabilidade diz que, para formar este

conjunto, serão escolhidos os maiores elementos em módulo (

B

),(),(a ,a ,(:{ (s)ms

*(s)ms

*)()()(* sjrsmrBCCaBaaC ssss

isss

iss

iss ≥⇒∈∉∈∧∈=

}

A definição (4.11) do conjun sB

ss)s(

isau β≥ ) da parte

ativa da coluna s ( ).

este

conjunto serão escolhidos os elementos do conjunto de estabilidade ( ) que

possuírem o menor número de elementos não nulos em suas linhas

Ca( s(s)ms

*s

)s(is ≥⇒∈∉∈ .

Considere a seguinte matriz :

(4.12

ss)s(

sj Ca ∈

)

A definição (4.12) do conjunto de candidato à pivô diz que os elementos d

s)s(

is Ba ∈

))s,j(r)s,m(rBa ,Ca , *s

(s)ms

A

Page 86: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

75

⎢⎢⎡

0201001006000....1.0

Os números de elementos não nulos em suas linhas no estágio s=1 são:

• 2

• 3

• 3 (4.14)

Executando o passo 1 da estratégia de pivotamento, as linhas da matriz

serão trocas de tal forma que estas fiquem ordenadas pelo número crescente de

elementos não nulos. Desta forma, a matriz terá a seguinte estrutura:

⎢⎢⎢⎢⎢⎡

=

00301001002010010

006000

...

...

.1.0

(4.15)

O

⎥⎥⎥⎥

⎦⎢⎢⎢⎢

=

010200209002010003010010

......

...A (4.13) ⎥⎥

=),(r 11

=),(r 12

=),(r 13

2

• =),(r 15 4

=),(r 14

A

⎥⎦⎢⎣ 10200209 ....

⎥⎥⎥⎥⎥002010 ..

A

elemento 11α será 6.0, ou seja, o maior elemento, em módulo, da linha 1. O

conjunto de estabilidade com um fator de estabilidade sB 4=u será:

}a{Bs 15= (4.16)

Page 87: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

76

O

nto pivô será o . Neste caso, será preciso trocar de posição as

colunas nº 1 e nº 5, sendo que a matriz

⎢⎢⎢⎢⎢⎢

=

09020020100100103

0102002010001000

.......

....

.6.0

A

Pode-se o

de elementos não nulos do que a primeira coluna. Se o elemento pivô escolhido

fosse o elemento , teríamos que zerar somente o elemento , ou seja, teríamos

apena ç

-s

mostra

que a escolha de um fator de estabilidade inadequado pode provocar a criação de

um n

conjunto de candidatos *sC será:

}a{C*s 15= (4.17)

O eleme 15a

A ficará da seguinte forma:

⎥⎥⎥⎥⎥

0010 . (4.18)

bservar, em (4.18), que a quinta coluna contém um número menor

15a 55a

s que efetuar uma opera ão elementar entre as linhas 1 e 5. Com o elemento

pivô 11a deve zerar os elementos 1514 a e a ,a13 . Para isto devem e efetuar

operações elementares entre as linha 1 e 3, 1 e 4, e 1 e 5. Este exemplo

úmero maior de preenchimento, mais cálculos computacionais e

conseqüentemente uma maior propagação de erros, podendo, inclusive,

comprometer a estabilidade do processo EG.

Se usarmos um fator de estabilidade 10=u , o conjunto de estabilidade

referente à matriz apresentada em (4.15) será:

(4.19)

sB

}a,a{Bs 1511=

O conjunto de candidatos *sC será:

Page 88: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

77

C*s }a{ 11= (4.20)

elemento pivô será e, neste caso, não será preciso efetuar troca de

colunas e

teríamos apenas que efetuar uma operação

Considere a matriz do exemplo (4.13). Uma vez ordenadas suas linhas em

um número crescente de elem

(4.15). Neste exemplo, pode-se observa

linha e sim na segunda linha onde o elemento é

o único el

Outras estratégias do Grupo 1, baseadas em trocas a priori, podem ser

observadas em Duff et al (1974) e Reid (1977).

é mais direta e confiável do que códigos

baseados nas estratégias do grupo 2 ou do grupo 3.

11aO

para efetuar EG terá que ser zerado somente o elemento 51a , ou seja,

elementar entre as linhas 1 e 5.

entos não nulos, esta matriz assume a estrutura

r que a melhor escolha para o elemento

pivô não se encontra na primeira 23a

emento não nulo da terceira coluna.

A estratégia de pivotamento pertencente a este grupo apresenta várias

vantagens sobre as estratégias de pivotamento dos dois outros grupos (Zlatev –

1991). Entre elas podemos destacar:

• Somente trocas de linhas (ou colunas) são necessárias durante a EG.

Tais trocas podem ser facilmente e eficientemente implementadas

(Gustavson – 1972 e 1978).

• O desenvolvimento de códigos computacionais baseados nesta

estratégia de pivotamento

• A quantidade de informação adicional que deve ser mantida e

atualizada durante a fatoração é menor do que a necessária para

estratégias dos grupos 2 e 3.

Page 89: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

78

• O código computacional, normalmente, será menor do que os códigos

baseados nas estratégias dos grupos 2 e 3.

tipo de estratégia podem produzir muitos preenchimentos durante

as decomposição de algumas matrizes. Infelizmente, esta desvantagem é bastante

séria,

d

com o padrão de esparcidade bem

similar. Nestes casos, é interessante testar o desempenho de um código baseado

na estratégia do grupo 1 antes d

utilizada para um problema específico.

a o caso em que todos os elementos

não nu

pode alterar drasticamente a estrutura da matriz e o padrão de

esparcidade. Alguns exemplos disto podem ser observados em Zlatev (1991).

4.4 – Grupo 2: Estratégias de pivotame

de Markowitz.

As estratégias do grupo 2 são baseadas na função de custo de Markowitz dos

elementos não nulos. A função de custo de Markowitz do elemento é definida

como sendo o produto do número dos elementos da parte ativa da linha i, com

coluna j, com exceção do próprio elemento .

Existe somente uma desvantagem das estratégias do grupo 1. Os códigos

baseados neste

porque o excesso de preenchimentos irá provocar o aumento do tempo

computacional e do espaço necessário na memória dos computa ores para

armazenamento dos dados do problema. Desta forma, as estratégias de

pivotamento deste grupo são indicadas para problemas que, durante a resolução,

irão decompor uma seqüência de matrizes

e decidir qual estratégia de pivotamento deve ser

As conclusões anteriores são válidas par

los são considerados durante todo o processo de EG, isto é, quando a forma

clássica de explorar a esparcidade é aplicada. Se a forma orientada a computador é

utilizada (os elementos 01 ≠+ )s(ija são removidos do processo de armazenamento

dinâmico quando estes forem muito “pequenos”) então, esta situação pode mudar,

pois, isto

nto baseadas no uso da função de custo

)s(ija

exceção do próprio elemento )s(ija , pelo número dos elementos da parte ativa da

)s(ija

Page 90: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

79

]

[ ] [ 11 −−= )s,i(rM ijs )s,j(c* (4.21)

Tal produto pode ser interpretado como sendo o número máximo de

preenchimentos que pode ser cria

estágio s. É claro que isto só aconteceria se todos os elementos das intersecções

das colunas dos elementos não nulos da linha i com as linhas dos elementos não

nulos da coluna j fossem elementos nulos no estágio s. Observe o exemplo a

seguir.

do se o elemento )s(ija for escolhido como pivô do

00000000000000000000

000000

262422

151311

aaaa

aaa

62

55

42

35

aa

a (4.22)

A função de custo de Markowitz do elemento , no exemplo acima, será

igual a = [3-1]*[3-1] = 4, ou seja, se o elemento for escolhido como pivô.

Neste caso, serão criados 4 preenchimentos nos locais marcado com X como pode

ser co

)(a 222

222M )(a 222

nstatado a seguir.

XXaa

XXa0000

0042

aa

00000

000000

62

55

35

2624

(4.23)

aaaaa

00000

22

151311

Page 91: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

80

o, ero de preenchimentos será menor do

que 4. Observe o exemplo a seguir onde o elemento ≠) .

Isto ocorre porque os elementos )(a 244 , )(a 2

46 , )(a 264 e )(a 2

66 são nulos. Se algum

destes elementos não for nulo entã o núm

0244(a

00000 62

55

a

Durante o processo de EG, o valor do elemento )(a 2 será alterado e somente

serão criados 3 preenchimentos nos locais marcado com X, como pode ser

00000000000000

0000

4442

35

262422

1311

aaa

aaa

aaa

(4.24)

constatado a seguir. Porém a função de custo de Markowitz do elemento

continuará valendo 4.

0015

a

44

)(a 222

XXaa

Xaaa

aaaaaa

00000000

00000000

000000

62

55

4442

35

262422

151311

(4.25)

Para saber o número real de preenchimentos que serão criados pela escolha

de um determinado pivô , durante um estágio s, seria preciso verificar se todas

as intersecções das colunas dos elementos não nulos da linha i com as linhas dos

elementos não nulos da coluna j são elementos nulos. Isto pode comprometer o

tempo computacional do processo.

O custo ótimo de Markowitz no estágio s ( ) é definido da seguinte forma:

)s(ija

sM

Page 92: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

81

( 26)

D kowitz, no estágio s, pode ser (e

freqüentemente é) maior do que o mínimo custo de Markowitz no estágio s

), isto porque o mínimo custo ij não

nulos da parte ativa da matriz, enquanto o custo ótimo só considera os elementos

não nulos pertencentes ao conjunto de estabilidade .

)M(minM ijsBa

ss

)s(ij ∈

= 4.

eve ser ressaltado que o custo ótimo de Mar

( )Mmin(M ijs*s = considera todos os elementos (a )s

)s(ija s

Seja um conjunto de dimensão

B

sI )s(p ( 11 +−≤≤ sn)s(p ) dos índices das

linhas da parte ativa da matriz A que possuam a menor quantidade de elementos

não nulos no estágio s, definido da seguinte forma:

Page 93: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

82

s i{I p(s)) ..., 2, 1,m },n ..., 1, s,s{(i }i..., ,i , mp(s)2 =+∈=

nde:

i(r

1 (4.27)

o

)s,i(r...)s,i(rs, )s(p≤≤≤ 21 (4.28)

)s,i(r)s,r(i )nis

)

Ii( p(s)s ≤⇒≤≤∧ (4.29) ∉

CO conjunto de estabilidade ( s ) e o conjunto de candidatos a pivô ( s ) nesta

estratégia são definidos da seguinte forma:

B *

)}Ii()au( )Aa( /a{B sis)s(

ijs)s(

ij)s(

ijs ∈∧≥∧∈= α (4.30)

)}MM()Ba( / a{C sijss)s(

ij)s(

ij*s =∧∈= (4.31)

As estratégias de M

arkowitz podem ser também aplicadas para efetuarem

trocas de colunas ao invés de linhas. Neste caso, as fórmulas anteriores (4.28, 4.29

e 4.30) serão modificadas para

)s,i(c...)s,i(c)s,i(c )s(p≤≤≤ 21 (4.32)

)s,j(c)s,c(j )njsIj( p(s)s ≤⇒≤≤∧∉ (4.33)

)}Ij()au( )Aa( /a{B sjs)s(

ijs)s(

ij)s(

ijs ∈∧≥∧∈= β (4.34)

As estratégias de pivotamento baseadas na função de custo de Markowitz

podem ser divididas em duas classes:

• A classe de Estratégias de Markowitz Generalizadas (EMG) - esta

classe engloba todas as estratégias onde o elemento pivô do estágio s

Page 94: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

83

) é escolhido arbitrariamente do conjunto de candidatos

• A classe de Estratégias de Markowitz Generalizadas Aprimoradas

s (s

alor absoluto do conjunto de candidatos .

que classe de estratégia

deve ser escolhida entre a EMG e a EMGA para um problema específico. Tal

escolha pode não parecer muito importante para a precisão dos resultados, uma

vez que os elementos do conjunto de candidatos C são também elementos do

es de

matrizes para as quais o uso de estratégias de pivotamento da classe EMGA é

nitidam

(s = 1, 2, ..., n-1*sC .

(EMGA) - esta classe contém todas as estratégias baseadas na função

de custo de Markowitz onde o elemento pivô do estágio = 1, 2, ...,

n-1) é escolhido como sendo aquele elemento que possuir o maior

v *sC

Uma questão importante que deve ser levantada é

*s

conjunto de estabilidade sB nas duas estratégias de pivotamento. Contudo, pode-se

verificar tanto experimentalmente, quanto teoricamente, que existem class

ente superior às estratégias da classe EMG. Tal afirmação é comprovada

pelos seguintes teoremas:

Teorema 4.1: Seja nxnRA∈ uma matriz diagonalmente dominante (o valor absoluto

de qualquer elemento da diagonal é maior do que a soma dos valores absolutos dos

outros elementos em suas linhas) e de estrutura simétrica

( n) ..., 2, (1,j e n) ..., 2, (1,i aa jiij ∈∀∈∀≠⇒≠ 00 ). Então, o processo EG é estável,

quando qualquer estratégia de pivotamento da classe EMGA é usada.

Page 95: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

84

Teorema 4.2: Assuma que:

i) O sistema bAx = tem solução;

) é a solução encontrada; yii

iii) δ<− yx seja exigido.

Seja )(G δ o conjunto de todas as possíveis seqüências de pivotamento da

classe EMG que não são aceitáveis (isto é, qualquer estratégia do conjunto )(G δ

pode ser escolhida durante a fatoração da matriz que não irá satisf

seja,

A azer (iii), ou

δ≥− yx ).

Seja )(G* δ o conjunto de estratégias de pivotamento da classe EMGA com

parâmetros iguais aos da Classe u e )s(p 1)-n ..., 2, ,s( 1= )(G δ .

Então G* δ .

teriores ns exempl numéricos em q e as

estratégias de pivotamento da classe EMG falham, enquanto estratégias de

pivotamento da classe EMGA não, podem ontradas e Zlatev (1991).

s estratégias de pivotamento apresentadas anteriormente dependem de dois

parâm e lidad

irão

afetar diretamente o tamanho do conjunto de índices e também o tamanho dos

)(G)(δ ⊆

As provas dos teoremas an e algu os u

ser enc m

A

etros: o fator d estabi e u e do número p(s) de linhas (ou colunas) de

onde será escolhido o elemento pivô do estágio s. Mudanças no fator de

estabilidade u irão alterar o conjunto de estabilidade sB e conseqüentemente o

conjunto de candidatos *sC . Alterações no número p(s) de linhas (ou colunas)

s

conjuntos de estabilidade sB e de candidatos *sC .

A estratégia original de Markowitz (1957) utilizava um fator de estabilidade

∞=u e um conjunto sI de dimensão 1

I

+−= sn)s(p . Isto significa que nenhuma

restrição de estabilidade será aplicada e, conseqüentemente, o conjunto de

estabilidade sB será formado por toda a parte ativa da matriz A, ou seja, ABs = . O

valor de p(s) utilizado implica afirmar que o conjunto de índices sI será formado

pelos índices de todas as linhas da parte ativa da matriz A . Tais valores de u e

)s(p podem deixar o código computacional excessivamente lento, podendo

Page 96: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

85

inclusive comprometer a estabilidade do processo EG. Por tais razões os valores

anteriores de e não são mais utilizados nos códigos atuais.

1), podem-se observar outros exemplos em que a escolha de

valores inapropriados de e para alguns problemas podem demorar muito

durant

u )s(p

Em Zlatev (199

u )s(p

e a procura do elemento pivô, comprometendo o tempo computacional do

processo de EG.

A seguir, podemos observar alguns valores de u e )s(p utilizados em três

códigos computacionais conhecidos:

Código Tipo de u )s(p

Estratégia

MA18 (Curtis e Reid (1971)) EMG 4=u 1+− sn

MA28 (Duff (1977)) EMG 10=u 1+− sn

Y12M (Zlatev et al(1981)) EMGA [ ]16 ,u 4∈ )q,snmin( 1+−

Os valores de e de da tabela anterior são os valores recomendados

nos respectivos códigos, porém podem-se especificar valores diferentes destes

utilizados. Os valores de dos dois primeiros códigos são fixos. No código

Y12M, de Zlatev et al., o valor recomendado de

u )s(p

)s(p

3=q para matrizes esparsas em

geral.

m tação de estratégias do primeiro grupo (Estratégias de

Pivotamento com Mudança a Priori). A maior dificuldade de implementação surge

da ne a h

ra junto de

índices

A implementação de uma estratégia deste grupo para matrizes esparsas é

mais difícil do que a imple en

cessidade de ordenar s lin as (ou colunas) em um número crescente de

elementos não nulos na partes ativa da matriz pa a elaboração do con

I no início de cada estágio . Este processo requer um tempo

computa ssário na memória. Porém, o

número de preenchimentos gerados durante a EG é normalmente reduzido em

comparação às estratégias do primeiro grupo. Conseqüentemente, tal redução irá

s

cional extra e um aumento do espaço nece

Page 97: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

86

provocar um redução considerável no tempo computacional total e no espaço

necessário de memória para resolver o sistema bAx = .

4.5 – Grupo 3: Estratégias de pivotamento baseadas em uma minimização local

de preenchimentos

s estratégias do grupo 3 são baseadas no número de preenchimentos

criado l

rá chamado d Função de Custo de Preenchimentos ( ). O menor

valor da função de custo é chamado de valor Mínimo da Função de Custo de

Preenchimen efinido da seguinte forma:

F *ijs =

O menor valor da função de custo dos elementos do conjunto de

estabilidade é chamado de valor Ótimo da Função de Custo de Preenchimentos

) e é definido da seguinte forma:

s(s)ijijss ∈≤≤∈= (4.36)

É claro que F

Preenchimentos é calculado somente nos elementos do conjunto de estabilidade,

enquant reenchimentos é calculado em

toda parte ativa da matriz

A

s por cada e emento )s(ija se este for escolhido como pivô do estágio s da EG.

Tal valor se e ijsF

ijsF

tos ( ijsF ) e é d*

)ni s1},-n ..., 2, 1,{(s )Fn( ijs ≤≤∈ (4.35) mi

ijsF

B

( sF

s

F )Ba n,i s1},-n ..., 2, 1,{(s )Fmin(

*

ijsF≥ uma vez que o valor Ótimo da Função de Custo de s

o o valor Mínimo da Função de Custo de P

A .

atos será definido como:

Sejam os conjuntos I e B como já definidos anteriormente em (4.27) e

(4.30), respectivamente. O conjunto de candid

s s

*sC

Page 98: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

87

s(ij

)s(ij

*s = }FF B sijss

) =∧∈ (4.37) a/a{C

Observe o exemplo abaixo

aaaa

444342

34

2422

000

(4.38)

aa

aa

13

1311

0

000

No t

não nulos sã

(4.39)

a

es ágio 1=s a Função de Custo de Preenchimentos ( ijsF ) dos elementos

o:

1111 =F

1131 =F

0221 =F

0241 =F

1131 =F

2341 =F

421 =F

2431 =F

1441 =F

1

Para um 5=)s(p e um fator de estabilidade ∞=u , os conjuntos sI e sB

serão:

}5 4, 3, ,2 ,{I s 1= (4.40)

}a,a,a,a,a,a,a,a,a{Bs 444342343124221311= (4.41)

Page 99: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

88

O valor Ótimo da Função de Custo de Preenchimentos ( sF ) é igual a zero, e o

conjunto de candidatos *sC será definido como:

(4.42)

• A classe de Estratégias de Mínimo “Fill-in” Generalizadas

}a,a{C*s 2422=

As estratégias de pivotamento baseadas na Função de Custo de

Preenchimentos podem ser divididas em duas classes:

• A classe de Estratégias de Mínimo “Fill-in” Generalizadas (EMFG)

- esta classe engloba todas as estratégias onde o elemento pivô do

estágio s (s = 1, 2, ..., n-1) é escolhido, arbitrariamente, do conjunto de

candidatos *sC .

Aprimoradas (EMFGA) - esta classe contém todas as estratégias

baseadas na função de custo de preenchimento onde o elemento pivô

do estágio s (s = 1, 2, ..., n-1) é escolhido como sendo aquele

elemento que possuir o maior valor absoluto do conjunto de candidatos *sC .

No Exemplo (4.38), se estiver sendo utilizada uma estratégia da classe

EMFG, o elemento pivô poderá ser qualquer um dos dois elementos do conjunto de

candidatos ( 22a ou 24a ). Se estiver sendo utilizada uma estratégia da classe EMFGA

o elemento pivô será aquele que possuir o maior valor absoluto entre os dois

elementos, ou seja, o elemento pivô será o elemento 22a se 2422 aa > ou será 24a

se 2224 aa > .

A implementação das estratégias de pivotamento deste grupo é muito mais

difícil do que a implementação das estratégias dos outros dois grupos anteriores.

Page 100: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

89

Duff e

odem ser úteis para

algumas matrizes especiais. Desta forma, estratégias deste grupo são incluídas em

pacote

4.6 – Escolha da estratégia de Pivotamento

nalisando as estratégias de pivotamento apresentadas neste capítulo, pode-

se con

e

uma seqüência de matrizes com o padrão de

esparcidade bem similar. Nestes casos, é interessante testar o desempenho de um

código baseado na estratégia do grupo 1 antes de decidir qual estratégia de

pivotamento deve ser utilizada para um problema específico.

As estratégias de pivotamento do grupo2 (estratégias de pivotamento

baseadas no uso da função de custo de Markowitz) não apresentam a desvantagem

das estratégias do grupo 1 de produzir muitos preenchimentos para alguns tipos de

matrizes, porém as estratégias do grupo 2 necessitam de mais espaço para o

armazenamento de dados, efetua mais cálculos computacionais e apresenta maior

dificuldade na implementação quando comparadas às estratégias do grupo1.

Mesmo apresentando tais desvantagens, as estratégias deste grupo normalmente

Reid (1974) fizeram alguns experimentos computacionais com estratégias

deste grupo e concluíram que “apesar deste algoritmo ser muito mais caro

computacionalmente, sob esta consideração seu custo não é totalmente proibitivo”.

As estratégias de pivotamento do terceiro grupo p

s computacionais para matrizes esparsas, não devendo, contudo, ser a única

estratégia de pivotamento disponível.

A

cluir que não existe uma estratégia mais indicada para todas as situações.

As estratégias de pivotamento do grupo 1: (estratégias de pivotamento com

mudanças a priori) apresentam várias vantagens sobre as outras duas estratégias,

porém a principal desvantagem das estratégias deste grupo é elas poderem produzir

muitos preenchimentos durante a decomposição de algumas matrizes com um

padrão de esparcidade específico.

As estratégias de pivotamento deste grupo são indicadas para problemas qu

durante a resolução irão decompor

Page 101: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

90

são mais vantajosas, pois, por gerarem menos preenchimentos, acabam gastando

menos tempo nos cálculos computacionais.

As estratégias de pivotamento do grupo 3 (estratégias de pivotamento

baseadas em uma minimização eenchimentos) apresentam uma

implementação muito difícil e alto custo computacional. Apesar destes algoritmos

serem muito mais caros computacionalmente, em comparação às estratégias do

grupo 1 e do grupo 2, seu custo não é totalmente proibitivo.

As estratégias de pivotamento do terceiro grupo podem ser úteis para

algumas matrizes especiais, como, por ex mplo, a matriz com o seguinte padrão de

esparc

local de pr

e

idade:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

xxxxxxxxxxxxxx

xxxx

000000000000000000000000000000000000

00000000000000000000000000000000000000000000000

00000000000000000000000000

xxxx 0000000000

xxxxxx

xxxxxxxxxxxx

xxxxxxxxxxxx

xxxx

000

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

0

(4.43)
Page 102: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

91

tratégia de pivotamento baseado na função de

usto de Markowitz em 4.43 irá provocar um preenchimento três vezes maior do que

a apl

r Duff–1985, Duff–1986, Reid–1986,

Zlatev et al–1981 e Osterby et al–1983), não devendo, contudo, ser a única

estratégia de pivotamento disponível.

Neste trabalho será implementado um código computacional com as

estratégias do grupo 1 e do grupo 2.

A aplicação de qualquer es

c

icação de uma estratégia baseada em uma minimização local de

preenchimentos. Desta forma, estratégias deste grupo são incluídas em pacotes

computacionais para matrizes esparsas (ve

Page 103: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

92

MÉTODO SEQÜENCIAL QUADRÁTICO

s Métodos Seqüenciais Quadráticos (MSQ) são considerados como uma

das técn s d

otimizaçã om

Est m o mação

seqüencia ou e ewton (ou

Quasi-Newton) para resolver as condições de K.K.T. do problema original. Como

resultado, tem-se um subproblema que consiste em uma aproximação quadrática da

função o linear das restrições.

Conseqüentemente, este tipo de processo é conhecido também como aproximação

Lagrangeano Projetada, ou aproximação Lagrange-Newton, ver Bazaraa (1993) e

Melo (1998).

este capítulo, iremos abordar alguns aspectos importantes do método

seqüencia uadrátic id rt ão de mestrado

de Melo (1998) e aplicar o modelo de armazenamento de dados e as estratégias de

pivotamento, vistas nos capítulos anteriores, para desenvolver um algoritmo

seqüe ti ar os. Alguns algoritmos serão

aproveitados do trabalho citado anteriormente, não sendo detalhados novamente.

CAPÍTULO V

O

ica mais eficientes para resolução de problemas não lineares e

o c restrições (ver Powell,1983).

es étodos, também conhecidos como métodos de pr gra

l ( recursiva) quadrática (PSQ), empregam o método d N

Lagrangeana otimizada sobre uma aproximaçã

N

l q o, analisar o algoritmo desenvolv o na disse aç

ncial quadrá co p a problemas espars

Page 104: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

93

5.1 – D

ara apresentar o conceito deste método, considere um problema não linear

conten

escrição do Método MSQ

P

do unicamente restrições de igualdade onde todas as funções são contínuas

e duas vezes diferenciáveis, como se segue:

ni

Rx onde ∈

l ..., 2, 1,i 0(x)h f(x) min :

== , (5.1)

As condições de otimalidade para o problema (5.1) requerem uma solução

primal e um vetor de multiplicadores de Lagrange qu

xxhvxf t

(5.2)

e:

• - Jacobiano das restrições h(x).

Pode-se escrever o sistema de equações acima de forma mais compacta

como:

. (5.3)

Usando o método Newton-Raphson para resolver (5.3) obtém-se:

k

kkkkk 0=⎥

⎤⎢⎣

⎡−−

∇+ , (5.4)

Ps.a.

nRx ∈ lRv ∈ e satisfaçam:

,0)(,0)()(

==∇−∇

h

ond

• )x(f∇ - gradiente da função objetivo f(x).

)x(h∇

W 0=)v,x(

vvxx

)v ,x(W)v ,x(W

Page 105: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

94

e W.

a

de equações (5.4) da próxima iteração . Escrevendo o

Jacobiano como:

⎡ ∇∇0

2 )x(h)x(L

k

Tk

• –

• – representa a Hessiana da função objetivo f(x) no ponto .

Usando (5.2) e (5.5), pode-se escrever (5.4) como:

(5.6)

onde:

• - gradiente da função objetivo no ponto .

Substituindo por

onde:

• W∇ - representa o Jacobiano d

Então, dada solução )v ,x( kk de uma iteração anterior, resolvendo o sistem

obtêm-se os valores )v ,x(

W∇

⎥⎦

⎢⎣ ∇

=∇)x(h

)v ,x(W kkk , (5.5)

onde:

)x(hv)x(f)x(L kk222 ∇∑+∇=∇ representa a Hessiana do

Lagrangeano da função f(x) no ponto kx .

• )x(h k∇ representa o Jacobiano das restrições h(x) no ponto .

kk

kx

)(2kxf∇ kx

• )(2kxh∇ – representa a Hessiana das restrições h(x) no ponto kx .

),())((,)()()()())((2

kkk

kt

kkkt

kkk

xhxxxhvxhxfvvxhxxxL

−=−∇∇−−∇=−∇+−∇

)x(f k∇ )x(f kx

)xx( k− x∆ em (5.6), obtém-se:

Page 106: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

95

kk −=∆

sistema de equações (5.7) para

)x(hx)x(h)x(fv)x(hx)x(L k

tkk −∇=∇+∆∇ 2

(5.7) ∇

Resolvendo o v) ,x( ∆ , onde xxx k ∆+= , até

que , encontra-se uma solução de K.K.T. para (5.1), se esta existir.

Ao invés de resolver o sistema d

de KKT para o problema (5.1), pode-se empregar um subproblema de minimização

quadrática cujas condições de otimalidade são idênticas às condições do problema

original.

de ser observado abaixo, onde o termo constante

foi inserido na função objetivo por conveniência:

0=∆x

e equações (5.7) para encontrar uma solução

Tal subproblema po )x(f k

l ..., 2, 1,i x)x(h)x(h .a. s

x)x(Lxx)x(f)f(x minimizar ),x(PQ

Tkiki

kkkkk

==∆∇+

∆∇∆+∆∇+

02

λ (5.8)

vetor de multiplicadores de Lagrange λ do subproblema quadrático (5.8)

satisfaz:

2 (5.9)

A solução de (5.8)

TT 1 2

O

λ)x(hx)x(L)x(f T∇=∆∇+∇

resulta em um vetor n-dimensional kx∆ , sendo que o novo

ponto 1+kx é definido como:

kkkk xx ∆+=+x α1 (5.10)

onde:

Page 107: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

96

• um vetor de busc ional

k é a n-dimensx∆

kα é um tamanho de passo não negativo (0 < αk ≤ 1).

do.

5.2 – Algoritmo Seqüencial Quadrático Básico (PSQ)

Início: o contador

Um ponto ótimo do subproblema quadrático (5.8), se existir, é um ponto de

K.K.T. e satisfaz as equações (5.7), onde v é um conjunto de multiplicadores de

Lagrange associados às restrições de (5.8).

A seguir pode-se observar um algoritmo rudimentar para resolução do

subproblema quadrático (5.8), assumindo que o subproblema é bem comporta

Fazer 1=k e selecionar uma solução inicial conveniente

Primal-Dual ( kk .

Passo Principal: Resolver o subproblema quadrático (5.8) para obter uma

solução e o r u

restrições de iguald

)v,x

kx∆ bte m conjunto de multiplicadores de Lagrange 1+kv associados às

ade. Se 0=∆ kx , então )v,x( kk 1+ satisfaz as condições de K.K.T.

(5.2) para o problema P, então PARE. Caso contrário, faça kkk xxx ∆+=+1 ,

incrementar de 1, e repetir o passo principal.

anterior ver Bazaraa (1993).

k

Para uma análise da convergência do algoritmo

Page 108: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

97

5.3 - Extensão do algoritmo básico PSQ incluindo Restrições de Desigualdade

onsidere a inclusão de restrições de desigualdade no

proble

i == 0 (5.11)

• Formulação IQP (Innequality Constrained Quadratic Programming)

• Formulação EQP (Equality Constrained Quadratic Programming)

Na formulação IQP todas a restrições do problema original são linearizadas e

incluídas no subproblema quadrático como pode ser observado abaixo.

m ..., 1,j ,)x(g j =≤ 0C

ma P, onde as funções )x(g j são contínuas e duas vezes diferenciáveis,

conforme se segue:

f(x) minimizar :Pl ..., 1,i )x(h s.a. m ..., 1,j )x(g j =≤ 0

Neste caso, existem basicamente duas formulações alternativas para o

subproblema quadrático:

m ..., 1,j x)x(g)x(g

l ..., 1,i x)x(h)x(h s.a.

x)x(Lxx)x(f)f(x r Minimiza:)v ,u ,x(PQ

Tkjkj

Tkiki

kTT

kkkkk

=≤∆∇+

==∆∇+

∆∇∆+∆∇+

0

021 2

(5.12)

Na formulação EQP se tem uma previsão do conjunto ativo , ou seja das

restrições de desigualdade

kI

( )0≤)x(g kj que serão satisfeitas exatamente em seus

limites ( )0=)x(g kj no ponto , e será atualizada a cada iteração. O subproblema

quadrático é definido apenas em função das restrições ativas na iteração :

kx

k

Page 109: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

98

kj Ij 0)(ˆ)(g ∈=∆∇+ xxgx kjk

onde:

• )x(g)x(g kjkj = tal qu

i

2k

l ..., 1,i 0)()(h s.a.

)(21)()f(xMinimizar :) v,u ,(

==∆∇+

∆∇∆+∆∇+

xxhx

xxLxxxfx

T

Tkik

kTT

k

(5.13)

e

PQ kkk

KIj ∈

• tal que )x(g)x(g kjk ∇=∇ KIj ∈

Neste trabalho, iremos utilizar a Formulação EQP com uma aproximação

definida positiva B da Matriz Hessiana do Lagrangeano, quando a referida hessiana

não fo

ma seja

definida positiva. O algoritmo utilizado foi o desenvolvido na dissertação de

mestrado de Melo (1998). Desta forma o subprob

r definida positiva. A estratégia para obter tal aproximação é perturbar,

quando necessário, a diagonal principal da matriz Hessiana até que a mes

lema quadrático (5.13) fica:

kT

kjkj

Tkiki x)x(h)x(h s.a. =∆∇+ 0

T

Ij x)x(g)x(g

l ..., 1,i

x Bxx(QP

∈=∆∇+

=

∆′

0

1

(5.14)

• tal que

Tkkkkk x)x(f)f(x r Minimiza:)v ,u , ∆+∆∇+

2

onde:

)x(g)x(g kjkj = KIj ∈

tal que )x(g)x(g kjk ∇=∇ KIj ∈ •

• B é uma aproximação definida positiva da hessiana do

Lagrangeano

)(2kxL∇

Page 110: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

99

Neste caso, a resolução do subproblema quadrático consiste apenas da

solução do seguinte sistema de equ

ações lineares.

k

k

k

k

k

Tk

b)x(f

vx

* J

JB−

∇−=

+

+

1

1

0 (5.15)

onde:

kkj

kik

kkj

IjEi

, )x(g)x(h

b

Ij

∈∈

=

(5.16)

kik

Ei ,

)x(g)x(h

∈∈

∇∇

=

ativo atualização do conjunto ativo utilizado

neste trabalho é o mesmo desenvolvido na dissertação de mestrado de Melo (1998).

rática é

que a sua convergência só é garantida quando o algoritmo é iniciado próximo de

uma solução desejada, Gill et al. (1986), enquanto, na prática, esta condição

dificilmente poderá ser realizada.

ma maneira de assegurar a convergência global do algoritmo é garantir que

seja uma solução melhor do que . Isto pode ser feito utilizando o vetor

J

Um aspecto crítico desta formulação é a atualização da previsão do conjunto

kI a cada iteração. O algoritmo de

A principal desvantagem do método de programação seqüencial quad

U

1+kx kx x∆

(soluç

eu valor (função de descida). Para

garantir tal decréscimo na função, introduz-se a idéia da Função de Mérito.

ão do subproblema quadrático) como uma direção de descida para uma

função que garanta um decréscimo razoável no s

Page 111: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

100

5.4 – Função

ma Função de Mérito é definida como sendo uma função que, juntamente

com a função objetivo, é minimizada na solução do problema, servindo como função

de de orcionando

ve ser uma função fácil de ser avaliada, e não deve

erá utilizada neste trabalho é a Função Lagrangeana

Aumentada (FALAG), também conhecida como função de penalidade de

multiplicadores.

onsidere primeiro o caso em que todas restrições não lineares são

igualdades. A função Lagrangeana Aumentada associada é definida como:

de Mérito

U

scida e prop uma idéia da não otimalidade do ponto atual.

Preferivelmente esta de

prejudicar a convergência do algoritmo.

A função de mérito que s

C

)x(h)x(h )x(hv f(x) :) v, ,x( TTALAG µµ

21

++ (5.17)

• - multiplicador de Lagrange estimado.

F

onde:

v

µ - parâmetro de penalidade não negativa.

ockfaller (1973) introduziu a função de mérito Lagrangeano Aumentado para

o problema contendo restrições de igualdade e desigualdade:

R

))x(g)x(g)x(h)x(h( )x(gu)x(hv)x(f),u,v,x(L TTTT ++++= µµ2

1 (5.18)

nde:

o

Page 112: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

101

⎢⎢⎢⎢

−≥=

contrário caso u

u)x(g se)x(g

)x(gi

iii

i

µ

µ (5.19)

eira derivada descontínua, o que pode

rsveld (1992) para tornar a função de mérito suave, consiste no

créscimo de variáveis de folga as restrições de desigualdade exclusivamente na

definição da função de mérito (de forma que são usadas unicamente na definição do

modo, definimos a seguinte função Lagrangeana

Aumentada:

A função de mérito anterior tem prim

causar dificuldades nas buscas lineares baseadas na primeira derivada.

Uma extensão dessa idéia, desenvolvida por Gill et al. (1986) e usada

também por Elde

a

tamanho do passo). Deste

)s)x(g)x(h( )s)x(g(u)x(hv)x(f),s,u,v,x(FALAG22

21

++++++= µµ (5.20)

As variáveis de folga serão definidas no começo da iteração k como:

TT

⎢⎢

−− x(g,ax( 0

=−= contrário caso ),

u )m

0 se)),x(g,max(s i

ki

ki

i

µ

µ0 (5.21)

Podemos reescrever de maneira mais simplificada a relação (5.20),

odificando levemente a definição (5.21), como:

m

)s)x(c( )s)x(c(u)x(f),s,u,v,x( TG 2

1++++= µµ (5.22)

e:

FALA2

ond

⎥⎦

⎤⎡⎤⎡ vx(h⎢⎣

=⎥⎦

⎢⎣

=u

u ,)x(g)

)x(c

Page 113: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

102

⎢⎢⎢⎢⎢

=∈∈

=

contrário caso ),u

-)(xmax(0,-g

0 e Ei se)),(xmax(0,-gI,i se,

si

ki

kii

µ

µ0

I = conjunto de índices correspondentes às restrições h(x),

E = conjunto de índices correspondentes às restrições ativas g(x).

Definindo-se kuu −=∆ kk λ como direção de busca para os multiplicadores de

estimados ku , Lagrange ( )kkkkk s)x(cx)x(cs ++∆∇−=∆ , como direção de busca

para as variáveis de folga k ks e x∆ como direção de busca para , obtida da

solução do seguinte problema quadrático

kx

0)()(c s.a.

)(21)(f(x

i

2k

=∆∇+

∆∇∆+∆∇+

xxcx

xxLxxxfMinimizar

Tkik

kTT

k (5.23)

onde

)

kλ são os multiplicadores associados a solução kx∆ de (5.23).

Ass , uma busca linear é feita na função de

érito, ao longo das direções de busca

im, para obter a próxima iteração

m kk s e u , ∆∆∆ kx :

+ ,xxx kkkk ∆+= α1

kkkk ∆+=+

u ,uu α1 (5.24)

,sss kkkk ∆+=+ α1

Page 114: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

103

onde requerer-se que, na nova iteração, a função de mérito seja

suficientemente reduzida, i.e., que a função

kkkkkkkkkALAG

)( ),ss,uu,xx(Fαφ µααα ∆+∆+∆+ (5.25)

satisfaça, por exemplo,

=

)()((0) )()(

00φηαφ

φασφαφ′≤

′≤− (5.26)

onde 2

0 ≤≤< ησ (ver l. (1986) para uma prova que estas condições

são satisfeitas).

A escolha do parâmetro de penalidade

1 Gill et a

µ e o algoritmo da Função de Mérito

utilizados neste trabalho são aqueles desenvolvidos por Gill et al (1986) e utilizados

em Melo (1998).

5.5 – Algoritmo de solução

O algoritmo de programação seqüencial quadrático implementado neste

trabalho pode ser estabelecido como:

• Passo Inicial: Fazer φ== kI e k 1

Escolher um ponto inicial viável e valores iniciais para: 0x

000 e x , ,u µλ ∆0 .

• Passo 1: Calcular os valores de

Onde:

kkk2

k b e J ),x(f ,)x(f ∇∇ ,

kkj

kik Ij )x(g

l} ..., E{1,i )x(hJ

∈∇∈∇

= ,

Page 115: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

104

kkj

kik Ij )x(g

l}

..., E{1,i )x(h

B∈

∈= ,

• Passo 2: Verificar se ositiva. Se é definida

positiva fazer 2 , caso contrário, perturbar a diagonal principal

até conseguir ção

) é definida px(f k2∇ )x(f k

2∇

)x(fB k∇=

uma aproxima B definida positiva, utilizando o algoritmo

para obter uma aproximação B de Melo(1998).

• Passo 3: Resolver o subproblema quadrático PQ’ utilizando a formulação EQP:

kT

kjkj

Tkiki

TTkkkkk

Ei x)x(h)x(h s.a.

xBxx)x(f)f(x r Minimiza:)v ,u ,x('PQ

∈=∆∇+

∆∆+∆∇+

021

Ij x)x(g)x(g ∈=∆∇+ 0

• Passo 4: Testar os valores encontrados de 1+∆ kx e 1+kλ para verificar se 1+∆ kx é

solução ótima do problema quadrático (5.12). Caso seja, ir ao passo 5.

r restrições ao

conjunto ativo do problema PQ’ (5.14) utilizando o algoritmo do

conjunto ativo de Melo(1998) e voltar ao passo 3.

• Passo 5

Caso contrário, verificar se precisa acrescentar ou retira

kI

: Se 01 =∆ +kx , então é um ponto de K.K.T., faça kx 11 ++ = kku λ e PARE.

Caso contrário, calcule o tamanho do passo α utilizando a função de

mérito Lagrangeano Aumentado (5.22), faça kkk uu −=∆ + λ1 e atualize e

:

kx

ku

11 ++ ∆+= kkk x xx α

11 ++ ∆+= kkk u uu α

Page 116: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

105

• Passo 6: Verificar se é viável para o problema original. Caso seja, ir ao

o algoritmo de

viabilidade de Melo (1998) com:

1+kx

passo 7. Caso contrário, corrigir o ponto 1+kx utilizando

11 ++ ∆+= kkk x lamxx .

• Passo 7: Se 01 =−+ kk xx então PARE. Caso contrário, faça e ir ao

passo1.

A resolução do problema

1+= kk

QP ′ no Passo 3 consiste em resolver o sistema de

equações lineares (5.15), como pode ser observado abaixo:

k

k

k

k

k

Tk

b)x(f

vx

* J

JB−

∇−=

+

+

1

1

0, (5.15)

onde:

kkj

kik

kkj

kik

IjEi

, )x(g)x(h

b

IjEi

, )x(g)x(h

J

∈∈

=

∈∈

∇∇

=

Se o problema original for esparso, então o Jacobiano e da aproximação

definida positiva da matriz hessiana do Lagrangeano

kJ

B conseqüentemente também

serão esparsos. Neste caso, o sistema de equações (5.15) será esparso, ou seja,

muitos elementos da matriz 0k

Tk

JJB

serão nulos. Como é preciso resolver o

sistema (5.15) várias vezes em uma iteração do algoritmo, o cálculo efetuado com

os elementos nulos pode comprometer o tempo computacional e a precisão dos

resultados. Neste caso, o sistema poderá ser resolvido utilizando o modelo de

armazenamento e as estratégias de pivotamento desenvolvidas nos capítulos

Page 117: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

106

anteriores. O modelo de armazenamento evita cálculos desnecessários com os

elementos nulos, o que irá reduzir consideravelmente o tempo computacional do

algoritmo, enquanto as estratégias de pivotamento irão reduzir o número de

preenchimentos que serão gerados durante a resolução do sistema, o que irá

melhorar a precisão dos resultados.

Page 118: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

107

CAPÍTULO VI

os sistemas de equações lineares serão utilizadas matrizes testes das

classe

s matrizes da classe E(n,c) são definidas da seguinte forma:

TESTES E RESULTADOS NUMÉRICOS

Neste capítulo, serão apresentados os resultados numéricos obtidos a partir

da resolução de sistemas de equações lineares com matrizes testes e de problemas

de otimização não lineares simulando problemas de fluxo de potência ótimo.

N

s E(n,c) e D(n,c), apresentada em Zlatev(1991) e descritas a seguir:

A

n ..., 2, 1,i ,4 , ==iia

1-n ..., 2, 1,i 1,11 , =−== ++ iiii aa (6.1)

c-n ..., 2, 1,i ,1 , , =−==+cii aa + ici

seguir, podemos observar o padrão de esparcidade de uma matriz teste da

classe

onde:

• 3≥n

• nc ≤≤1

A

E, com parâmetros n=20 e c=5, ou seja, uma matriz E(20,5). Os elementos

não nulos serão representados por x .

Page 119: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

108

⎥⎥⎥⎥

⎥⎥⎥⎥

⎦⎢⎢⎢⎢⎢⎢⎢⎢⎢

⎢⎢

⎢⎢

⎣ 000000000000000000000000000000000

000000000000000000000000000000000000000000000000

000000000000000

000000000000000000000000000

0000000000000000000

xxxxxxx

xxxxxxxx

xxxxxxxxx

xxxxxxxxx

xxxx

As matrizes da classe D(n,c) são definidas da seguinte forma:

⎢⎢⎡

000000000000000000000000000000

xxxxxxx

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢

00000000000000000000000000000000000000000000000000000000000000000

xxxxxx

xxxxxxxxx

xxxx

(6.2)

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢

000000000000000000000000000000000000000000000000000000000000000000000000000

xxxxxxxxxx

xxxxxxxxxx

xxxxx

n ..., 2, 1,i ,1 , ==iia

c-n ..., 2, 1,i 1 , =+=+ ia cii

n ..., 2,c-n ,1i 1 , ++−=+=+− cnia cnii

1-c-n ..., 2, 1,i ,1 , =−=++ ia cii (6.3)

n ..., 1,c-n ,i ,1 , +−=−=++− cnia cnii

1,i ,162 , ==++ciia 1-c-n ..., 2,

n ..., c,-n ,1i ,162 , −−==++− cna cnii

i-11 ..., 2, 1,j 10, ..., 2, ,1i ,10011 , ==×=++− ja jini

Page 120: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

109

onde:

• 14≥n

• 131 −≤≤ nc

A seguir, podemos observar o padrão de esparcidade de uma matriz teste da

classe

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

000000000000000000000000000000000000000000000000

00000000000000000000000000000000

0000000000000000000000000000000000

0000000000000000000000000000000

000000000000000000000000000

00000000000000000000000

0000000000000000000

xxxxxxxx

xxxxxxxxxxxx

xxxxxx

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

As principais características das matrizes testes das duas classes pode

bservadas na tabela a seguir:

D, com parâmetros n=20 e c=5, ou seja, uma matriz D(20,5):

⎥⎥⎤

⎢⎢⎢⎢⎡

000000000000000

000000

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

⎥⎥

⎦⎢⎢

⎣ 00000000000000000000000000000000xxxx

xxxx

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

)

o

(6.4

m ser

Page 121: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

110

Classe Dimensão NZ Menor

Elemento

Maior

Elemento

E(n,c) nxn 225 −− cn 1 4

D(n,c) nxn 554 +n 1 )1 ,1000max( +n

6.5 – Características das Matrizes Testes

Inicialmente, os sistemas serão resolvidos considerando toda a matriz,

inclusive os elementos nulos. Depois, os problemas serão resolvidos simulando o

modelo de armazenamento dinâmico apresentado em Zlatev (1991) e descrito na

eção 3.2, porém não será executado nenhum procedimento de compactação e

reordenação dos dados como, por exemplo, o procedimento de Coleta de Lixo.

Posteriormente, os problemas serão resolvidos utilizando o Modelo de

Armazenamento Proposto neste trabalho.

Em todos os casos anteriores, serão utilizadas matrizes de dimensões de

50x50 até 3000x3000, variando de 50 em 50.

Todas as instâncias criadas serão resolvidas de três formas. Primeiramente

os sistemas serão resolvidos sem a utilização de nenhuma técnica de pivotamento.

Após isto, os sistemas serão resolvidos utilizando técnicas de pivotamento dos

grupos I (Pivotamento a Priori) e II (Pivotamento Markowitz), apresentadas no

capítulo 4.

PO), que serão resolvidos utilizando o

método seqüencial quadrático. Tais problemas serão solucionados utilizando o

modelo de armazenamento padrão (com matrizes) e o modelo de armazenamento

proposto neste trabalho.

S

Serão criados, ainda, problemas de otimização não lineares simulando

problemas de fluxo de potência ótimo (F

Na resolução dos sistemas de equações lineares, serão comparados os

tempos computacionais, as porcentagens de preenchimentos gerados e os erros

Page 122: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

111

relativos percentuais obtidos. Na resolução dos problemas de otimização não

lineare

Na resolução dos sistemas lineares com matrizes das Classes D (6.6) e E

ores tempos computacionais.

s, serão comparados somente os tempos computacionais.

O programa foi codificado em Delphi, sendo que os testes foram realizados

em um computador portátil com processador Athlon de 1.4 Ghz, com 256 Mbytes de

memória RAM. As tabelas com os resultados computacionais podem ser

observadas no Anexo.

(6.7), utilizando o modelo padrão, podemos observar que a opção que não usou

estratégias de pivotamento apresentou os menores tempos. Por outro lado, a

estratégia de Markowitz apresentou os mai

Duração da Resolução Matrizes Classe D no Modelo Padrão

00:00:0000:02:5300:05:4600:08:3800:11:3100:14:2400:17:1700:20:10

50 400

750

1100

1450

1800

2150

2500

2850

Dimensão da Matriz (n)

Tem

po

Matrizes Classe D ***SEM PIVOTAMENTO***Matrizes Classe D ***PIVOTAMENTO APRIORI ***Matrizes Classe D ***PIVOTAMENTOMARKOWITZ ***

6.6 – Comparação entre os tempos computacionais das técnicas de pivotamento na

resolução de sistemas lineares com matrizes da Classe D, utilizando o Modelo

Padrão (Tabelas 1, 2 e 3 do Anexo).

Page 123: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

112

Duração da Resolução Matrizes Classe E no Modelo Padrão

00:00:0000:02:5300:05:4600:08:3800:11:3100:14:2400:17:1700:20:10

50 400

750

1100

1450

1800

2150

2500

2850

Dimensão da Matriz (n)

Tem

po

Matrizes Classe E*** SEMPIVOTAMENTO ***Matrizes Classe E*** PIVOTAMENTO APRIORI ***Matrizes Classe E*** PIVOTAMENTOMARKOWITZ ***

6.7 – Comparação entre os tempos computacionais das técnicas de pivotamento na

resolução de sistemas lineares com matrizes da Classe E, utilizando o Modelo

Padrão (Tabelas 4, 5 e 6 do Anexo).

Na resolução dos sistemas lineares com matrizes das Classes D (6.8) e E

Markowitz apresentou os maiores tempos computacionais.

(6.9), utilizando o Modelo apresentado em Zlatev (sem procedimentos de Coleta de

Lixo), novamente podemos observar que a opção que não usou estratégias de

pivotamento apresentou os menores tempos. Por outro lado, a estratégia de

Page 124: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

113

Duração da Resolução Matrizes Classe D no Modelo apresentado em Zlatev sem Garbage Collection

00:00:0000:01:2600:02:5300:04:1900:05:4600:07:1200:08:3800:10:0500:11:31

50 400

750

1100

1450

1800

2150

2500

2850

Dimensão da Matriz (n)

Tem

po

Matrizes Classe D ***SEM PIVOTAMENTO***Matrizes Classe D ***PIVOTAMENTO APRIORI ***Matrizes Classe D ***PIVOTAMENTOMARKOWITZ ***

6.8 – Comparação entre os tempos computacionais das técnicas de pivotamento na

resolução de sistemas lineares com matrizes da Classe D, utilizando o Modelo

apresentado em Zlatev, sem usar procedimentos de Coleta de Lixo (Tabelas 7, 8 e 9

do Anexo).

Duração da Resolução Matrizes Classe E no Modelo apresentado em Zlatev sem Garbage Collection

00:07:1200:08:38

00:00:0000:01:26

50 400

750

1100

1450

1800

2150

2500

2850

00:02:5300:04:1900:05:46

Dimensão da Matriz (n)

Tem

po

Matrizes*** SEM

Classe E

PIVOTAMENTO ***Matrizes Classe E*** PIVOTAMENTO APRIORI ***Matrizes Classe E*** PIVOTAMENTOMARKOWITZ ***

6.9 – Comparação entre os tempos computacionais das técnicas de pivotamento na

resolução de sistemas de equações lineares com matrizes da Classe E, utilizando o

Modelo apresentado em Zlatev, sem usar procedimentos de Coleta de Lixo (Tabelas

10, 11 e 12 do Anexo).

Page 125: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

114

Na resolução dos sistemas lineares com matrizes da Classe D, utilizando o

Modelo Proposto, a opção em que não usou estratégias de pivotamento continuou

apresentando os menores tempos computacionais (6.10), porém a estratégia do

Grupo II (Markowitz) apresentou tempos menores do que a estratégia do Grupo I (a

Priori). Este fato pode ser explicado, pois a estratégia de Markowitz, apesar da

possuir mais cálculos, produziu menos preenchimentos do que a estratégia de

Pivotamento a Priori (6.11).

Duração da Resolução Matrizes Classe D no Modelo Proposto

00:00:0000:43

50 400

750

1100

1450

1800

2150

2500

2850

Dimensão da Matriz (n)

00:00:01:2600:02:1000:02:53

Tem

00:03:3600:04:1900:05:0200:05:46

po

Matrizes Classe D ***SEM PIVOTAMENTO***Matrizes Classe D ***PIVOTAMENTO APRIORI***Matrizes Classe D ***PIVOTAMENTOMARKOWITZ ***

6.10 – Comparação entre os tempos computacionais das técnicas de pivotamento na

solução de sistemas lineares com matrizes da Classe D, utilizando o Modelo

Proposto (Tabelas 13, 14 e 15 do Anexo).

re

Page 126: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

115

Porcentagem de Fill-in na Resolução de Matrizes Classe D no Modelo Proposto

0.00%2.00%4.00%6.00%8.00%

10.00%12.00%14.00%16.00%

50 350

650

950

1250

1550

1850

2150

2450

2750

Dimensão da Matriz (n)

Tem

po

Matrizes Classe D ***SEM PIVOTAMENTO***Matrizes Classe D ***PIVOTAMENTO APRIORI***Matrizes Classe D ***PIVOTAMENTOMARKOWITZ ***

6.11 – Comparação entre as Porcentagens de Preenchimentos Gerados pelas

técnicas de pivotamento na resolução de sistemas com matrizes da Classe D,

utilizando o Modelo Proposto (Tabelas 13, 14 e 15 do Anexo).

A resolução dos sistemas lineares com matrizes da Classe D, utilizando o

Model

te no aumento do tempo computacional.

o Proposto, sem utilizar estratégias de Pivotamento apresentou os menores

tempos computacionais (6.10), mas apresentou também, em alguns casos, erros

extremamente altos, alcançando valores de até 510+ (6.12). Neste caso a utilização

de uma técnica de pivotamento é necessária para garantir a precisão dos resultados,

mesmo que isto acarre

Page 127: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

116

Erro Relativo Pencentual na Resolução de Matrizes Classe D no Modelo Proposto

0.00E+002.00E+044.00E+046.00E+048.00E+041.00E+051.20E+051.40E+05

50 400

750

1100

1450

1800

2150

2500

2850

Dimensão da Matriz (n)

Tem

poMatrizes Classe D*** SEMPIVOTAMENTO ***Matrizes Classe D*** PIVOTAMENTO APRIORI***Matrizes Classe D*** PIVOTAMENTOMARKOWITZ ***

6.12 – Comparação entre os Erros Relativos obtidos pelas técnicas de pivotamento

na resolução de sistemas lineares com matrizes da Classe D, utilizando o Modelo

Proposto (Tabelas 13, 14 e 15 do Anexo).

Na resolução dos sistemas lineares com matrizes da Classe E, utilizando o

Model

estes casos aconteceram com matrizes de pequenas

imensões. Na medida que a dimensão da matriz foi aumentando, a porcentagem

e preenchimento diminuiu, porém permaneceu superior às estratégias dos Grupos I

e II (6.14). A precisão dos resultados obtidos nos três casos é satisfatória (6.15).

o Proposto, a opção que não usou estratégias de pivotamento continuou

apresentando os menores tempos computacionais (6.13). As estratégias dos

Grupos I (Pivotamento a Priori) e II (Markowitz) apresentaram tempos praticamente

semelhantes (6.13). A porcentagem de preenchimentos gerados na opção que não

usou estratégias de pivotamento foi relativamente alta em alguns casos, alcançando

valores de até 35% (6.14). Mas isto não chegou a comprometer o tempo

computacional, pois

d

d

Page 128: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

117

Duração da Resolução Matrizes Classe E no Modelo Proposto

00:00:0000:00:1700:00:3500:00:5200:01:0900:01:2600:01:4400:02:01

50 400

750

1100

1450

1800

2150

2500

2850

Dimensão da Matriz (n)

Tem

po

Matrizes Classe E ***SEM PIVOTAMENTO***Matrizes Classe E ***PIVOTAMENTO APRIORI***Matrizes Classe E ***PIVOTAMENTOMARKOWITZ ***

6.13 – Comparação entre os tempos computacionais das técnicas de pivotamento na

resolução de sistemas de equações lineares com matrizes da Classe E, utilizando o

Modelo Proposto (Tabelas 16, 17 e 18 do Anexo).

Porcentagem de Fill-in na Resolução de Matrizes Classe E no Modelo Proposto

0.00%5.00%

10.00%15.00%20.00%25.00%30.00%35.00%40.00%

50 400

750

1100

1450

1800

2150

2500

2850

Dimensão da Matriz (n)

Tem

po

Matrizes Classe E*** SEMPIVOTAMENTO ***Matrizes Classe E*** PIVOTAMENTO APRIORI***Matrizes Classe E*** PIVOTAMENTOMARKOWITZ ***

6.14 – Comparação entre as Porcentagens de Preenchimentos Gerados pelas

técnicas de pivotamento na resolução de sistemas de equações lineares com

matrizes da Classe E, utilizando o Modelo Proposto (Tabelas 16, 17 e 18 do Anexo).

Page 129: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

118

Erro Relativo (%) na Resolução de Matrizes Classe E no Modelo Proposto

0.00E+00

2.00E-11

4.00E-11

6.00E-11

8.00E-11

1.00E-10

50 400

750

1100

1450

1800

2150

2500

2850

Dimensão da Matriz (n)

Tem

poMatrizes Classe E*** SEMPIVOTAMENTO ***Matrizes Classe E*** PIVOTAMENTO APRIORI***Matrizes Classe E*** PIVOTAMENTOMARKOWITZ ***

6.15 – Comparação entre os Erros Relativos obtidos pelas técnicas de pivotamento

na resolução de sistemas de equações lineares com matrizes da Classe E, utilizando

o Modelo Proposto (Tabelas 16, 17 e 18 do Anexo).

Comparando os tempos computacionais obtidos na resolução dos sistemas

lineare

mente inferiores ao Modelo Proposto (6.17).

s com matrizes da classe D, sem usar estratégias de Pivotamento, podemos

observar que o Modelo Padrão apresentou os maiores tempos computacionais,

enquanto o Modelo de Zlatev e o Modelo Proposto apresentaram tempos

semelhantes (6.16), sendo que o Modelo de Zlatev apresentou tempos

computacionais ligeira

Page 130: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

119

Comparação dos Tempos de Duração Matrizes Classe D *** SEM PIVOTAMENTO ***

00:00:0000:01:2600:02:5300:04:1900:05:4600:07:1200:08:38

50 400

750

1100

1450

1800

2150

2500

2850

dimensão da Matriz (n)

Tem

po

Matriz Classe DModelo Proposto

Matriz Classe DModelo Padrão

Matriz Classe DZlatev sem GarbageCollection

6.16 – Comparação entre os tempos computacionais entre os modelos de

armazenamento na resolução de sistemas de equações lineares com matrizes da

Classe D, sem utilizar técnicas de pivotamento (Tabelas 1, 7 e 13 do Anexo).

Comparação dos Tempos de Duração Matrizes Classe D *** SEM PIVOTAMENTO ***

00:

00:00:17

00:00:22

po

00:00:00

50 400

750

1100

1450

1800

2150

2500

2850

dim

00:00:04

00:00:09

00:13

ensão da Matriz (n)

Tem

Matriz Classe DModelo Proposto

Matriz Classe DZlatev sem GarbageCollection

6.17 – Comparação entre os tempos computacionais entre os modelos de

armazenamento na resolução de sistemas de equações lineares com matrizes da

Classe D, sem utilizar técnicas de pivotamento, não considerando o Modelo Padrão

(Tabelas 7 e 13 do Anexo).

Page 131: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

120

Comparando os tempos computacionais obtidos na resolução dos sistemas

lineares com matrizes da classe D, utilizando estratégia de Pivotamento do Grupo I

(Pivotamento a Priori), podemos observar que o Modelo Padrão novamente

apresentou os maiores tempos computacionais (6.18), enquanto o Modelo de Zlatev

e o Modelo Proposto apresentaram tempos semelhantes (6.19).

Comparação dos Tempos de Duração Matrizes Classe D *** Com Pivotamento a Priori ***

00:00:00

00:02:53

00:05:46

00:08:38

Tem

po

00:11:31

00:14:24

50 400

750

1100

1450

1800

2150

2500

2850

dimensão da Matriz (n)

Matriz Classe DModelo Proposto

Matriz Classe DModelo Padrão

Matriz Classe DZlatev sem GarbageCollection

6.18 – Comparação entre os tempos computacionais entre os modelos de

armazenamento na resolução de sistemas de equações lineares com matrizes da

Classe D, utilizando técnicas de pivotamento do Grupo I (Tabelas 2, 8 e 14 do

Anexo).

Page 132: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

121

Comparação dos Tempos de Duração Matrizes Classe D *** Com Pivotamento a Priori ***

00:00:0000:00:4300:01:2600:02:1000:02:5300:03:3600:04:1900:05:0200:05:46

50 40 75 110

145

180

250

285

dimensão da Ma (n)

Tem

po

0 0 0 0 0 0 0 0

215

triz

Matriz Classe DModelo Proposto

Matriz Classe DZlatev sem GarbageCollection

6.19 – Comparação entre os tempos computacionais entre os modelos de

armazenamento na resolução de sistemas de equações lineares com matrizes da

Classe D, utilizando técnicas de pivotamento do Grupo I (Pivotamento a Priori), não

consid

omparando os tempos computacionais obtidos na resolução dos sistemas

lineare

erando o Modelo Padrão (Tabelas 8 e 14 do Anexo).

C

s com matrizes da classe D, utilizando estratégia de Pivotamento do Grupo II

(Pivotamento Markowitz), podemos observar que o Modelo Proposto apresentou os

menores tempos computacionais, seguidos pelo Modelo de Zlatev e pelo Modelo

Padrão (6.20 e 6.21).

Page 133: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

122

Comparação dos Tempos de Duração Matrizes Classe D *** Com Pivotamento Markowitz ***

00:00:0000:02:5300:05:4600:08:3800:11:3100:14:2400:17:1700:20:10

50 400

750

1100

1450

1800

2150

2500

2850

dimensão da Matriz (n)

Tem

po

Matriz Classe DModelo Proposto

Matriz Classe DModelo Padrão

Matriz Classe DZlatev sem GarbageCollection

6.20 – Comparação entre os tempos computacionais entre os modelos de

armazenamento na resolução de sistemas de equações lineares com matrizes da

Classe D, utilizando técnicas de pivotamento do Grupo II (Tabelas 3, 9 e 15 do

Anexo).

Comparação dos Tempos de Duração Matrizes Classe D *** Com Pivotamento Markowitz ***

00:08:3800:10:0500:11:31

Matriz Classe DModelo Proposto

00:00:0000:01:2600:02:5300:04:19

50 400

750

1100

1450

1800

2150

2500

2850

dimensão da Matriz (n)

Te

00:05:4600:07:12

mpo

Matriz Classe DZlatev sem GarbageCollection

6.21

as de pivotamento do Grupo II (Pivotamento Markowitz),

não considerando o Modelo Padrão (Tabelas 9 e 15 do Anexo).

– Comparação entre os tempos computacionais entre os modelos de

armazenamento na resolução de sistemas de equações lineares com matrizes da

Classe D, utilizando técnic

Page 134: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

123

Comparando os tempos computacionais obtidos na resolução dos sistemas

lineares com matrizes da classe E, sem usar estratégias de pivotamento e utilizando

estratégia do Grupo I (a Priori), podemos observar que o Modelo Padrão apresentou

os maiores tempos computacionais, enquanto o Modelo de Zlatev e o Modelo

Proposto apresentaram tempos semelhantes (6.22 e 6.24), sendo que o Modelo de

Proposto apresentou tempos computacionais ligeiramente inferiores ao Modelo de

Zlatev (6.23 e 6.25).

Comparação dos Tempos de Duração Matrizes Classe E *** SEM PIVOTAMENTO ***

00:00:0000:01:2600:02:5300:04:1900:05:4600:07:1200:08:3800:10:05

50 400

750

1100

1450

1800

2150

2500

2850

dimensão da Matriz (n)

Tem

po

Matriz Classe EModelo Proposto

Matriz Classe EModelo Padrão

Matriz Classe EZlatev sem GarbageCollection

6.22 – Comparação entre os tempos computacionais entre os modelos de

armazenamento na resolução de sistemas de equações lineares com matrizes da

Classe E, sem utilizar técnicas de pivotamento (Tabelas 4, 10 e 16 do Anexo).

Page 135: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

124

Comparação dos Tempos de Duração Matrizes Classe E *** SEM PIVOTAMENTO ***

00:00:00

00:00:09

00:00:17

00:00:26

00:00:35

00:00:43

50 40 75 110

145

180

215

250

285

dimensão da Matriz (n)

0 0 0 0 0 0 0 0

Tem

poMatriz Classe EModelo Proposto

Matriz Classe EZlatev sem GarbageCollection

arma matrizes da

lasse E, sem utilizar técnicas de pivotamento, não considerando o Modelo Padrão

6.23 – Comparação entre os tempos computacionais entre os modelos de

zenamento na resolução de sistemas de equações lineares com

C

(Tabelas 10 e 16 do Anexo).

Comparação dos Tempos de Duração Matrizes Classe E *** Com Pivotamento a Priori ***

00:00:00

00:02:53

00:05:46

50

Te

00:08:38

400

750

1100

1450

1800

2150

2500

2850

mp

00:11:31

00:14:24

o

Matriz Classe EModelo Proposto

Matriz Classe EModelo Padrão

dimensão da Matriz (n)

Matriz Classe EZlatev sem GarbageCollection

.24 – Comparação entre os tempos computacionais entre os modelos de

Classe E, utilizando técnicas de pivotamento do Grupo I (Tabelas 5, 11 e 17 do

nexo).

6

armazenamento na resolução de sistemas de equações lineares com matrizes da

A

Page 136: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

125

Comparação dos Tempos de Duração Matrizes Classe E *** Com Pivotamento a Priori ***

00:00:5240

0

750

1100

1450

1800

2150

2500

2850

dimensão da Matriz (n)

Te

00:00:0000:00:1700:00:35

5000:01:0900:01:2600:01:4400:02:0100:02:18

mpo

Matriz Classe EModelo Proposto

Matriz Classe EZlatev sem GarbageCollection

– Comparação entre os tempos computacionais entre os modelos de

zenamento na resolução de sistemas de equações lineares com

6.25

arma matrizes da

lasse E, utilizando técnicas de pivotamento do Grupo I (Pivotamento a Priori), não

Comparando os tempos computacionais obtidos na resolução dos sistemas

(Pivo resentou os

enores tempos computacionais, seguidos pelo Modelo de Zlatev e pelo Modelo

C

considerando o Modelo Padrão (Tabelas 11 e 17 do Anexo).

lineares com matrizes da classe E, utilizando estratégia de Pivotamento do Grupo II

tamento Markowitz), podemos observar que o Modelo Proposto ap

m

Padrão (6.26 e 6.27).

Page 137: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

126

Comparação dos Tempos de DuraE *** Com Pivotamento Ma

ção Matrizes Classe rkowitz ***

00:08:38

2500

2850

dimensão da Matriz (n)

Te

00:00:0000:02:5300:05:46

50 400

750

1100

1450

1800

2150

00:11:3100:14:2400:17:1700:20:10

mpo

Matriz Classe EModelo Proposto

Matriz Classe EModelo Padrão

Matriz Classe EZlatev sem GarbageCollection

– Comparação entre os tempos computacionais entre os modelos de

zenamento na resolução de sistemas de equações lineares com ma

6.26

arma trizes da

lasse E, utilizando técnicas de pivotamento do Grupo II (Tabelas 6, 12 e 18 do

C

Anexo).

Comparação dos Tempos de Duração Matrizes Classe E *** Com Pivotamento Markowitz ***

00:02:5304:19

50 400

750

1100

1450

1800

2150

2500

2850

Te

00:00:05:4600:07:1200:08:38

mpo

Matriz Classe EModelo Proposto

Matriz Classe EZlatev sem Garbage

00:00:0000:01:26 Collection

dimensão da Matriz (n)

.27 – Comparação entre os tempos computacionais entre os modelos de

Classe E, utilizando técnicas de pivotamento do Grupo II (Pivotamento Markowitz),

ão considerando o Modelo Padrão (Tabelas 12 e 18 do Anexo).

6

armazenamento na resolução de sistemas de equações lineares com matrizes da

n

Page 138: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

127

Na resolução dos problemas de otimização não lineares simulando problemas

de FPO, tanto com Função Objetivo Linear (6.28) quanto com Função Objetivo Não

inear (6.29), o Método Seqüencial Quadrático (MSQ) utilizando o Modelo Proposto

Mode

L

apresentou tempos computacionais significantemente inferiores ao MSQ utilizando o

lo Padrão.

Função Objetivo Linear

00:05:46l

00:00:0000:00:4300:01:2600:02:1000:02:53

00:05:02

50 100 150 200 250 300 350

Nº de Barras

Tem

po C

omp

ona

Modelo de

Proposto00:03:3600:04:19

utac

i

Armazenamento

Modelo deArmazenamentoPadrão

6.28 – Comparação dos Tempos Computacionais da Resolução de Problemas de

Otimização simulando problemas de Fluxo de Potência Ótima com Função Objetivo

Linear (Tabelas 19 do Anexo).

Função Objetivo Não Linear

00:00:0000:01:2600:02:5300:04:1900:05:4600:07:1200:08:3800:10:0500:11:31

50 100 150 200 250 300 350

Nº de Barras

Tem

po C

ompu

taci

onal

Modelo deArmazenamentoPropostoModelo deArmazenamentoPadrão

Page 139: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

128

.29 – Comparação dos Tempos Computacionais da Resolução de Problemas de

timização simulando problemas de Fluxo de Potência Ótima com Função Objetivo

ão Linear (Tabelas 20 do Anexo).

6

O

N

Page 140: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

129

CA V

NC ES O ÕE

Neste t lh sen mos

matrizes esparsas, sendo do r de lineares de

equações atra d todo aus na sian

Foram a os p ime ra d lineares em

um método S e Qua o p es pr e otimização

não lineares s

Os modelos de armazenamento dinâmic tiliz apresentam

como princip ge efin p qua ecessária de

posições ext a arma me el ue dos, durante

os cálculos m ion pre nt exata de

preenchimen u o c nã he da dos cálculos,

sendo feita uma estimativa de posições necessárias. Tal estimativa pode ser super

ou sub dimensionada. Quando estimamos ma es necessárias,

estaremos s a ndo mó putacional. Quando estimamos menos

posições do s ssá s cá om ais rompidos por

falta de espa a óri omp

criados. Ne a od dize a de ento não é

realmente di a ve est lter ma trabalha com

um tamanho pré-dimensionado. Esta característica pode dificultar ou até mesmo

inviabilizar a codificação de certas rotinas computacionais.

PÍTULO II

CO LUSÕ E REC MENDAÇ S

raba o, de volve um modelo de armazenamento dinâmico para

utiliza para a esolução sistemas

vés o mé de G s (Elimi ção Gaus a).

utiliz dos roced ntos pa resolução e sistemas

eqü ncial drátic ara a r olução de oblemas d

espar os.

os que u am vetores

al desvanta m a d ição, a riori, da ntidade n

ras p ra o zena nto dos ementos q serão cria

co putac ais ( enchime os). A quantidade

tos q e serã riados o é con cida antes execução

is posiçõ do que as

obrec rrega a me ria com

que a nece rias, o lculos c putacion serão inter

ço n mem a do c utador para o armazenamento dos elementos

ste c so, p emos r que estrutura armazenam

nâmic , uma z que a não a a o seu ta nho e sim

Page 141: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

130

modelo desenvolvido neste trabalho apresenta a vantagem de utilizar uma

estrutura de ma a a in m esta será

inicialmente n da arm

matriz, alterando o seu tamanho durante os cálculos computacionais. A partir do

momento em que um preenchimento for criado, a dimensão da estrutura será

aumentada, enquanto, quando um el nã m rnar nulo, na

forma clássic e ar rcid pr ze a orientada à

computação, d

de sobrecarga desnecessária de memória computacional e principalmente de

interrupção d l co cion um tiva Ao contrário

dos modelos m s, a pç álc tacionais no

modelo prop ó co o c do m ciente para o

armazenamento dos dados necessários. Neste caso, tal computador realmente não

possui recursos físicos para a realização dos cálculos, sendo necessária a

ampliação fís a óri nív

A inclusão de um preenchimento no modelo de armazenamento proposto,

além de evitar a cópia de elementos para o final da estrutura, também apresenta a

vantagem de manter as listas ordenadas, por linha e por colunas, organizadas e

compactas, sem a necessidade de executar qualquer procedimento extra de

ordenação e compactação, como por exemplo, a Coleta de Lixo (Zlatev, 1991).

Desta forma, o armazenamento dos preenchimentos gerados é executado utilizando

procedimentos computacionais bastante simples.

Uma outra característica que pode ser observada é que o preenchimento será

criado em um espaço livre da memória, alterando dinamicamente a dimensão da

estrutura de armazenamento de acordo com a quantidade de dados que precisam

ser armazenados, diferente de estruturas que utilizam vetores que são previamente

dimensionadas com folgas para o armazenamento dos dados que serão criados.

Todas estas características resultam em um ganho significativo no tempo

computacional, uma vez que, evitam-se perdas com procedimentos de compactação

e ordenação da estrutura.

O

ar zen mento re lmente d âmica, u a vez que

dime siona para azenar somente os elementos não nulos da

emento o nulo da atriz ser to

a de xplor a espa ade, ou óximo de ro, na form

a dimensão a estrutura será reduzida. Desta forma, evita-se o risco

os cá culos mputa ais por a estima mal feita.

que utiliza vetore interru ão dos c ulos compu

osto s irá o rrer se omputa r não tiver emória sufi

ica d mem a dispo el.

Page 142: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

131

dos bastante satisfatórios, tanto na

resolução de em d s ti zenamento

proposto qua utiliza d d di putacionais,

desenvolvido st balh ra çã lem ização Não

Lineares Esparsos, apesar de não ter sido desenvolvido um algoritmo específico

para tais pro a oti ão. ita o d ento destes

algoritmos, e tur aba pod ra pen esentado.

Os testes numéricos, aplicados às matrizes que exploram o condicionamento

dos elementos (Matrizes da Classe D) e o preenchimento da matriz durante a EG

(Matrizes da Classe E), apresentaram resulta

sist as e equaçõe lineares u lizando o modelo de arma

mnto na ção este e os proce entos com

s ne e tra o, pa a resolu o de Prob as de Otim

blem s de mizaç Acred mos que esenvolvim

m fu os tr lhos, e melho r o desem ho aqui apr

Page 143: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

132

REFERÊNCIAS BIBLIOGRÁFICAS

Bazaraa, M.S., Sherali, H.D., Shetty, C.M. (1993) Nonlinear Programming: Theory

and algorithms. 2. ed. New York: John Wiley & Sons, 638p.

Carpentier J. (1962), Contribuition á `L`étude du Dispaching Économique, Bulletin de

la Societe Françoice dos Electriciens, SER-8, Vol. 3, p. 432-447.

Curtis, A. R., Reid J. K. (1971) The solution of large sparse unsymetric systems of

linear equation. J. Inst. Math. Applics., 8:344-353.

Dongarra, J. J., Bunch, J. R., Moler, C. B., Stewart, G. W. (1979) LINPACK: user’s

guide. Philadelphia: Society for Industrial and Applied Mathematics, 320p.

Duff, I. S, Reid, J. K. (1974) A comparation of sparsity ordering for obtaining a pivotal

sequence in Gaussian elimination. J. Inst. Math. Applics., 14: 281-291.

Duff, I. S. (1985) Data structures, algoritms and softwares for sparse matrices. In

Evans, D. J. (ed.) Sparsity and its applications. London: Cambridge University

Press, p. 1-29.

Duff, I. S., Reid, J. K. (1983) The multifrontal solution of indefinite sparse symmentric

linear systems. Trans. on Mathematical Software. 9 : 302-325p.

Duff, I. S., Erisman, A. M., Reid, J. K. (1986) Direct methods for sparse matrices.

London: Oxford University Press, p.

Page 144: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

133

Duff, I.S. (1977) MA28: a set of FORTRAN subroutines for sparse unsymetric linear

equations. Tech. Report of Computer Science and Systems Divison. HMSO,

London, Tech Report AERE R8730.

Duff, I.S. (1985) Data Structures, algorithms and software for sparse matrices. In:

Evans, D. J. (eds.) Sparsity and its applications. London: Cambridge University

Press, p. 1-29.

Eldersveld, S.K. (1992) Large Scale Sequential Quadratic Programming Algorithms.

Technical Report of System Optmization Laboratory SOL, Stanford, Califórnia,

SOL 92 (4):82p.

Gill, P.E., Murray, W, Saunders, M.A., Wright, M.H. (1986) Some Theoretical

Properties of an Augmented Lagrangian Merit Funcion, California. System

Optimation Laboratory SOL, Stanford, Califórnia, SOL86 (6): 21p.

Gustavson, F. G., (1972) Some basic techniques for solving sparse systems of linear

equations. In: Rose, J., Willoughby, R. A. (eds.) Sparse Matrices and their

applications. New York: Plenum Press, p. 41-52.

Gustavson, F. G., (1978) Two fast algorithms for sparse matrices: multiplication and

permuted transposition. ACM Trans. Math. Software, 4: 250 – 269.

Jennings, M. (1977) Matrix computations for engineers and scientists. New York:

John Wiley, 346p.

Markowitz, H. M. (1957) The elimination form of the inverse and its applications to

linear programming. Management Sci. , 3: 255-267.

Melo, N.A.F. (1998) Implementação de um algoritmo para o problema de fluxo de

potência ótimo utilizando o método seqüencial quadrático. Tese (Mestrado em

Ciências de Engenharia) – Campos dos Goytacazes – RJ, Universidade

Estadual de Norte Fluminense – UENF, 66 p.

Page 145: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

134

Osterby, O., Zlatev, Z. (1983) Direct methods for sparse matrices. Lecture Notes in

Computer Science Nº 157. Berlin: Springer.

Powell, M. J. D. (1983) Variable metric methods for constrained optimization. In:

Bachem, A., Grotschel, M., Korte, B. (eds.) Mathematical Programming: The

State of the Art. New York: Springer-Verlag, p. 288-311.

Reid, J. K. (1977) Solution of linear systems of equations: direct methods general.

In Barker, V. A. (ed) Sparse Matrix Techniques. Lecture Notes In Mathematics

Nº 572. Berlim: Springer, p. 102 – 109.

Reid, J. K. (1984) TRESOLVE, a package for solving large sets of linear finite

element equations. In Engquist, B., Smedsaas, T. (eds.) PDE Softhware:

modules interfaces and systems. Amsterdam: North-Holland, p.1-17.

Reid, J. K. (1986) Sparse matrices. Report Nº CSS 201. Computer Science and

Systems Division, Harwell Laboratory. England.

Rice, J. R., Boisvert, R. F. (1985) Solving elliptic problems using ELLPACK. New

York: Springer-Verlag, 497p.

Rockafellar, R. T. (1973) The multiplier method of Hestenes and Powell applied to

convex programming. J. Optimization Theory and Applications JOTA. 12:555-

562.

Stewart, G. W. (1973) Introduction to matrix computations. New York: Academic

Press, 441p.

Veloso, P. A. S., Santos, C. S., Furtado, A. L., Azeredo, P. A. (1984) Estrutura de

Dados. 2. ed. Rio de Janeiro: Campus, 228p.

Wesseling, P. (1982) Theorical and practical aspects of a multigrid method. SIAM J.

Sci. Statist. Comput. 3: 387-407.

Page 146: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

135

Zlatev, Z., Wasniewski, J., Schaumburg, K. (1981) Y12M – solution of large and

sparse systems of linear algebraic systems. Lecture Notes in Computer

Science Nº 121. Berlim: Springer.

Zlatev, Z. (1991) Computational methods for general sparse matrices. Dordrecht-

Boston-London: KLUWER Academic Publishers, 328p.

Zlatev, Z., Wasniewski, J., Schaumburg, K. (1981) Y12M – solution of large and

sparse systems of linear algebric systems. Berlin-Heidelberg-New York:

Springer-Verlag, 128p.

Wood, Steve (1987) Turbo Pascal: guia do usuário. São Paulo: McGraw-Hill, 249p.

Page 147: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

136

ANEXOS

Page 148: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

137

Tabela 1 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe D, utilizando o Modelo Padrão (com matrizes), sem técnicas de

Pivotamento.

N C Fill-in Fill-In (%) DURAÇÃO Erro

Relativo(%) 50 12 305 12.20% 00:00:00 2.36E-10 100 25 712 7.12% 00:00:00 7.23E-06 150 37 1202 5.34% 00:00:01 1.20E-07 200 50 1412 3.53% 00:00:00 3.02E-04 250 62 2102 3.36% 00:00:00 1.12E-05 300 75 2112 2.35% 00:00:01 2.40E-03 350 87 3002 2.45% 00:00:00 5.38E-05 400 100 2812 1.76% 00:00:01 1.59E-02 450 112 3902 1.93% 00:00:01 1.43E-05 500 125 3512 1.40% 00:00:02 3.08E-02 550 137 4802 1.59% 00:00:03 2.03E-05 600 150 4212 1.17% 00:00:04 1.72E-01 650 162 5702 1.35% 00:00:05 8.95E-04 700 175 4912 1.00% 00:00:05 1.10E-01 750 187 6602 1.17% 00:00:08 1.15E-05 800 200 5612 0.88% 00:00:08 7.93E-02 850 212 7502 1.04% 00:00:10 6.71E-06 900 225 6312 0.78% 00:00:12 3.28E-01 950 237 8402 0.93% 00:00:15 2.95E-04 1000 250 7012 0.70% 00:00:16 5.86E-01 1050 262 9302 0.84% 00:00:19 6.94E-05 1100 275 7712 0.64% 00:00:22 9.88E-01 1150 287 10202 0.77% 00:00:25 6.95E-05 1200 300 8412 0.58% 00:00:28 4.75E+00 1250 312 11102 0.71% 00:00:32 8.51E-06 1300 325 9112 0.54% 00:00:36 8.02E-01 1350 337 12002 0.66% 00:00:40 5.87E-05 1400 350 9812 0.50% 00:00:45 6.16E+00 1450 362 12902 0.61% 00:00:49 1.21E-05 1500 375 10512 0.47% 00:00:59 2.11E+01 1550 387 13802 0.57% 00:01:04 4.33E-05 1600 400 11212 0.44% 00:01:14 1.29E+01 1650 412 14702 0.54% 00:01:21 1.43E-04 1700 425 11912 0.41% 00:01:27 9.57E+00 1750 437 15602 0.51% 00:01:37 2.14E-05 1800 450 12612 0.39% 00:01:41 2.39E+01 1850 462 16502 0.48% 00:01:55 3.15E-04 1900 475 13312 0.37% 00:02:05 1.30E+02 1950 487 17402 0.46% 00:02:13 1.78E-03 2000 500 14012 0.35% 00:02:22 1.50E+02

Page 149: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

138

N C Fill-in Fill-In (%) DURAÇÃO Erro

Relativo(%) 2050 512 18302 0.44% 00:02:38 1.01E-04 2100 525 14712 0.33% 00:02:45 4.83E+01 2150 537 19202 0.42% 00:03:03 7.38E-04 2200 550 15412 0.32% 00:03:10 9.11E+01 2250 562 20102 0.40% 00:03:29 1.75E-04 2300 575 16112 0.30% 00:03:39 4.70E+02 2350 587 21002 0.38% 00:04:05 2.77E-04 2400 600 16812 0.29% 00:04:12 7.48E+01 2450 612 21902 0.36% 00:04:22 4.86E-04 2500 625 17512 0.28% 00:04:44 1.59E+02 2550 637 22802 0.35% 00:05:01 1.75E-04 2600 650 18212 0.27% 00:05:18 1.30E+03 2650 662 23702 0.34% 00:05:36 2.94E-03 2700 675 18912 0.26% 00:05:54 3.68E+02 2750 687 24602 0.33% 00:06:17 1.67E-04 2800 700 19612 0.25% 00:06:35 4.38E+02 2850 712 25502 0.31% 00:06:57 3.26E-04 2900 725 20312 0.24% 00:07:18 1.73E+03 2950 737 26402 0.30% 00:07:42 3.82E-04 3000 750 21012 0.23% 00:08:03 2.48E+02

Page 150: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

139

Tabela 2 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe D, utilizando o Modelo Padrão (com matrizes), com técnicas de

Pivotamento do Grupo I (Pivotamento a Priori).

N C Fill-in Fill-In (%) DURAÇÃO Erro

Relativo(%) 50 12 402 16.08% 00:00:00 1.29E-14 100 25 966 9.66% 00:00:00 3.55E-12 150 37 1509 6.71% 00:00:00 1.26E-13 200 50 2196 5.49% 00:00:00 8.41E-13 250 62 2895 4.63% 00:00:00 6.14E-13 300 75 3289 3.65% 00:00:01 8.50E-12 350 87 4215 3.44% 00:00:01 3.05E-13 400 100 4411 2.76% 00:00:02 7.58E-13 450 112 4857 2.40% 00:00:03 5.52E-13 500 125 5907 2.36% 00:00:03 2.22E-12 550 137 5381 1.78% 00:00:06 1.17E-13 600 150 7188 2.00% 00:00:06 1.10E-12 650 162 6557 1.55% 00:00:08 5.52E-14 700 175 7780 1.59% 00:00:11 3.00E-12 750 187 7070 1.26% 00:00:13 7.46E-13 800 200 8218 1.28% 00:00:15 1.94E-12 850 212 7542 1.04% 00:00:18 1.12E-13 900 225 8907 1.10% 00:00:22 5.35E-12 950 237 8196 0.91% 00:00:29 2.30E-13 1000 250 9933 0.99% 00:00:33 8.52E-13 1050 262 8906 0.81% 00:00:37 1.30E-12 1100 275 11266 0.93% 00:00:38 2.92E-12 1150 287 9448 0.71% 00:00:45 4.35E-13 1200 300 11524 0.80% 00:00:50 9.83E-13 1250 312 10703 0.68% 00:01:01 6.83E-13 1300 325 12167 0.72% 00:01:04 3.40E-12 1350 337 11403 0.63% 00:01:11 1.68E-14 1400 350 13089 0.67% 00:01:19 1.19E-14 1450 362 11886 0.57% 00:01:29 1.40E-14 1500 375 14222 0.63% 00:01:37 2.18E-13 1550 387 12438 0.52% 00:01:48 1.74E-12 1600 400 14898 0.58% 00:01:58 2.80E-14 1650 412 13388 0.49% 00:02:14 5.34E-13 1700 425 15398 0.53% 00:02:22 5.44E-12 1750 437 14094 0.46% 00:02:35 2.67E-14 1800 450 16346 0.50% 00:02:48 8.51E-14 1850 462 14802 0.43% 00:03:03 3.49E-13 1900 475 16986 0.47% 00:03:17 2.40E-13 1950 487 15579 0.41% 00:03:34 1.51E-12 2000 500 17817 0.45% 00:03:50 1.51E-13

Page 151: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

140

N C Fill-in Fill-In (%) DURAÇÃO Erro

Relativo(%) 2050 512 16516 0.39% 00:04:08 8.75E-13 2100 525 18208 0.41% 00:04:26 4.16E-13 2150 537 17191 0.37% 00:04:51 3.22E-15 2200 550 19525 0.40% 00:05:13 1.77E-12 2250 562 17738 0.35% 00:05:27 3.24E-13 2300 575 19966 0.38% 00:05:54 2.51E-12 2350 587 18599 0.34% 00:06:47 5.12E-15 2400 600 20946 0.36% 00:06:58 1.62E-13 2450 612 19321 0.32% 00:06:49 1.86E-13 2500 625 21946 0.35% 00:07:54 3.16E-12 2550 637 19788 0.30% 00:08:41 1.21E-13 2600 650 22602 0.33% 00:08:54 1.02E-12 2650 662 20759 0.30% 00:08:26 3.87E-13 2700 675 23321 0.32% 00:08:54 3.61E-12 2750 687 21461 0.28% 00:10:07 2.73E-13 2800 700 24281 0.31% 00:10:37 7.60E-15 2850 712 21981 0.27% 00:11:17 1.41E-12 2900 725 24692 0.29% 00:11:41 5.97E-12 2950 737 22635 0.26% 00:12:20 1.35E-12 3000 750 25283 0.28% 00:13:38 1.17E-14

Page 152: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

141

Tabela 3 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe D, utilizando o Modelo Padrão (com matrizes), com técnicas de

Pivotamento do Grupo II (Pivotamento Markowitz).

N C Fill-in Fill-In (%) DURAÇÃO Erro

Relativo(%) 50 12 370 14.80% 00:00:00 7.93E-10 100 25 1029 10.29% 00:00:00 1.78E-06 150 37 1837 8.16% 00:00:00 7.57E+04 200 50 2491 6.23% 00:00:00 3.30E-02 250 62 3057 4.89% 00:00:01 3.69E-08 300 75 3607 4.01% 00:00:01 1.29E-07 350 87 4317 3.52% 00:00:02 6.57E-07 400 100 4287 2.68% 00:00:03 1.24E-07 450 112 4653 2.30% 00:00:04 9.76E-12 500 125 5045 2.02% 00:00:06 5.84E-06 550 137 5732 1.89% 00:00:07 1.57E+02 600 150 6187 1.72% 00:00:10 1.82E-04 650 162 6876 1.63% 00:00:13 2.25E-05 700 175 8753 1.79% 00:00:15 5.28E+00 750 187 10398 1.85% 00:00:18 2.28E-13 800 200 13921 2.18% 00:00:22 2.61E-05 850 212 16694 2.31% 00:00:26 3.70E-12 900 225 22110 2.73% 00:00:31 1.48E-06 950 237 25444 2.82% 00:00:36 4.68E-04 1000 250 33839 3.38% 00:00:42 1.65E-04 1050 262 36716 3.33% 00:00:48 1.22E-12 1100 275 50757 4.19% 00:00:55 2.26E+12 1150 287 50482 3.82% 00:01:03 1.16E-10 1200 300 66295 4.60% 00:01:11 2.36E+00 1250 312 67195 4.30% 00:01:19 3.57E-12 1300 325 87760 5.19% 00:01:30 7.47E+03 1350 337 86293 4.73% 00:01:40 1.14E-12 1400 350 111405 5.68% 00:01:55 2.08E+01 1450 362 106792 5.08% 00:02:03 1.70E-10 1500 375 138691 6.16% 00:02:20 5.93E+00 1550 387 129566 5.39% 00:02:33 2.18E-13 1600 400 170141 6.65% 00:02:44 2.01E+00 1650 412 155681 5.72% 00:03:03 6.89E-13 1700 425 201508 6.97% 00:03:22 3.61E+11 1750 437 184216 6.02% 00:03:55 2.99E-11 1800 450 241837 7.46% 00:03:57 1.04E-04 1850 462 215271 6.29% 00:04:14 2.84E-02 1900 475 276869 7.67% 00:04:42 1.63E-09 1950 487 249103 6.55% 00:05:00 6.74E-07 2000 500 318244 7.96% 00:05:23 1.66E-13

Page 153: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

142

N C Fill-in Fill-In (%) DURAÇÃO Erro

Relativo(%) 2050 512 282918 6.73% 00:05:42 1.07E-04 2100 525 378174 8.58% 00:06:11 1.52E+04 2150 537 336297 7.28% 00:06:34 1.35E+08 2200 550 409877 8.47% 00:07:07 1.40E-06 2250 562 362985 7.17% 00:07:47 1.33E-07 2300 575 459488 8.69% 00:08:19 1.09E-07 2350 587 403142 7.30% 00:08:34 7.12E-05 2400 600 508169 8.82% 00:09:01 6.71E-06 2450 612 452497 7.54% 00:09:44 1.88E-09 2500 625 579957 9.28% 00:10:10 2.17E+02 2550 637 597124 9.18% 00:10:46 2.61E+04 2600 650 624159 9.23% 00:11:25 3.34E-06 2650 662 556515 7.92% 00:11:55 2.92E-13 2700 675 687677 9.43% 00:12:37 3.29E-04 2750 687 613654 8.11% 00:13:12 4.08E-09 2800 700 772944 9.86% 00:14:03 2.41E+00 2850 712 674216 8.30% 00:14:44 1.92E-08 2900 725 812422 9.66% 00:15:29 1.63E-04 2950 737 720716 8.28% 00:16:05 1.31E-11 3000 750 1075046 11.94% 00:17:07 1.11E+03

Page 154: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

143

Tabela 4 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe E, utilizando o Modelo Padrão (com matrizes), sem técnicas de

Pivotamento.

N C Fill-in Fill-In (%) DURAÇÃO Erro

Relativo(%) 50 12 760 30.40% 00:00:00 3.53E-14 100 25 3450 34.50% 00:00:00 7.37E-14 150 37 7802 34.68% 00:00:01 9.84E-14 200 50 13850 34.63% 00:00:00 9.75E-14 250 62 20877 33.40% 00:00:00 1.35E-13 300 75 28120 31.24% 00:00:01 2.31E-13 350 87 34942 28.52% 00:00:01 3.21E-13 400 100 40510 25.32% 00:00:01 3.40E-13 450 112 45794 22.61% 00:00:02 3.40E-13 500 125 50740 20.30% 00:00:03 3.92E-13 550 137 56044 18.53% 00:00:03 4.01E-13 600 150 60990 16.94% 00:00:05 3.23E-13 650 162 66294 15.69% 00:00:05 3.20E-13 700 175 71240 14.54% 00:00:07 3.85E-13 750 187 76544 13.61% 00:00:08 3.91E-13 800 200 81490 12.73% 00:00:11 3.11E-13 850 212 86794 12.01% 00:00:11 3.09E-13 900 225 91740 11.33% 00:00:14 3.80E-13 950 237 97044 10.75% 00:00:16 3.86E-13 1000 250 101990 10.20% 00:00:19 3.03E-13 1050 262 107294 9.73% 00:00:20 3.03E-13 1100 275 112240 9.28% 00:00:23 3.77E-13 1150 287 117544 8.89% 00:00:27 3.82E-13 1200 300 122490 8.51% 00:00:30 2.99E-13 1250 312 127794 8.18% 00:00:34 2.98E-13 1300 325 132740 7.85% 00:00:38 3.76E-13 1350 337 138044 7.57% 00:00:43 3.80E-13 1400 350 142990 7.30% 00:00:47 2.95E-13 1450 362 148294 7.05% 00:00:52 2.95E-13 1500 375 153240 6.81% 00:00:57 3.74E-13 1550 387 158544 6.60% 00:01:03 3.78E-13 1600 400 163490 6.39% 00:01:10 2.93E-13 1650 412 168794 6.20% 00:01:23 2.93E-13 1700 425 173740 6.01% 00:01:30 3.73E-13 1750 437 179044 5.85% 00:01:38 3.76E-13 1800 450 183990 5.68% 00:01:49 2.91E-13 1850 462 189294 5.53% 00:02:02 2.91E-13 1900 475 194240 5.38% 00:02:09 3.72E-13 1950 487 199544 5.25% 00:02:23 3.75E-13 2000 500 204490 5.11% 00:02:32 2.89E-13

Page 155: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

144

N C Fill-in Fill-In (%) DURAÇÃO Erro

Relativo(%) 2050 512 209794 4.99% 00:02:46 2.89E-13 2100 525 214740 4.87% 00:03:01 3.72E-13 2150 537 220044 4.76% 00:03:11 3.74E-13 2200 550 224990 4.65% 00:03:30 2.88E-13 2250 562 230294 4.55% 00:03:43 2.88E-13 2300 575 235240 4.45% 00:03:59 3.71E-13 2350 587 240544 4.36% 00:04:16 3.73E-13 2400 600 245490 4.26% 00:04:31 2.87E-13 2450 612 250794 4.18% 00:04:53 2.87E-13 2500 625 255740 4.09% 00:05:07 3.70E-13 2550 637 261044 4.01% 00:05:27 3.73E-13 2600 650 265990 3.93% 00:05:47 2.86E-13 2650 662 271294 3.86% 00:06:10 2.86E-13 2700 675 276240 3.79% 00:06:28 3.70E-13 2750 687 281544 3.72% 00:06:49 3.72E-13 2800 700 286490 3.65% 00:07:14 2.85E-13 2850 712 291794 3.59% 00:07:33 2.85E-13 2900 725 296740 3.53% 00:08:02 3.70E-13 2950 737 302044 3.47% 00:08:23 3.72E-13 3000 750 306990 3.41% 00:08:49 2.84E-13

Page 156: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

145

Tabela 5 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe E, utilizando o Modelo Padrão (com matrizes), com técnicas de

Pivotamento do Grupo I (Pivotamento a Priori).

N C Fill-in Fill-In (%) DURAÇÃO Erro

Relativo(%) 50 12 372 14.88% 00:00:00 1.11E-14 100 25 952 9.52% 00:00:00 9.66E-15 150 37 1538 6.84% 00:00:00 5.51E-13 200 50 2095 5.24% 00:00:01 1.37E-12 250 62 2785 4.46% 00:00:00 9.41E-15 300 75 3769 4.19% 00:00:01 5.38E-12 350 87 3879 3.17% 00:00:01 6.19E-15 400 100 4960 3.10% 00:00:02 2.96E-13 450 112 5663 2.80% 00:00:02 1.23E-13 500 125 5616 2.25% 00:00:03 1.11E-13 550 137 6995 2.31% 00:00:04 4.12E-14 600 150 7400 2.06% 00:00:05 2.83E-13 650 162 8212 1.94% 00:00:07 6.93E-14 700 175 7740 1.58% 00:00:09 9.25E-15 750 187 8565 1.52% 00:00:14 4.26E-13 800 200 9005 1.41% 00:00:13 2.74E-14 850 212 9837 1.36% 00:00:16 9.99E-11 900 225 10446 1.29% 00:00:21 8.96E-14 950 237 10325 1.14% 00:00:21 4.56E-13 1000 250 10790 1.08% 00:00:28 1.40E-12 1050 262 11670 1.06% 00:00:33 1.88E-15 1100 275 12706 1.05% 00:00:32 1.12E-13 1150 287 12724 0.96% 00:00:41 8.92E-15 1200 300 15193 1.06% 00:00:45 8.81E-13 1250 312 14117 0.90% 00:00:55 4.19E-12 1300 325 14416 0.85% 00:00:57 1.25E-12 1350 337 15208 0.83% 00:01:07 1.03E-15 1400 350 15923 0.81% 00:01:10 9.78E-15 1450 362 16127 0.77% 00:01:20 1.38E-16 1500 375 16843 0.75% 00:01:32 2.16E-13 1550 387 20654 0.86% 00:01:36 2.71E-15 1600 400 18191 0.71% 00:01:49 5.67E-15 1650 412 21927 0.81% 00:01:59 3.49E-12 1700 425 19510 0.68% 00:02:09 2.21E-15 1750 437 19782 0.65% 00:02:23 7.80E-16 1800 450 19633 0.61% 00:02:32 2.24E-14 1850 462 20788 0.61% 00:02:47 7.09E-13 1900 475 21275 0.59% 00:02:57 2.15E-13 1950 487 21827 0.57% 00:03:16 1.41E-13 2000 500 22618 0.57% 00:03:29 2.20E-15

Page 157: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

146

N C Fill-in Fill-In (%) DURAÇÃO Erro

Relativo(%) 2050 512 22540 0.54% 00:03:45 3.76E-14 2100 525 21643 0.49% 00:04:03 3.50E-13 2150 537 23752 0.51% 00:04:18 1.73E-13 2200 550 24997 0.52% 00:04:38 3.10E-15 2250 562 25310 0.50% 00:04:56 2.37E-13 2300 575 25666 0.49% 00:05:19 2.08E-13 2350 587 26252 0.48% 00:05:37 1.59E-14 2400 600 26589 0.46% 00:06:00 1.41E-15 2450 612 27833 0.46% 00:06:17 1.04E-14 2500 625 28307 0.45% 00:06:44 4.88E-13 2550 637 28296 0.44% 00:07:10 9.34E-13 2600 650 27699 0.41% 00:07:31 2.26E-15 2650 662 29935 0.43% 00:08:02 2.80E-13 2700 675 30421 0.42% 00:08:26 3.73E-13 2750 687 30383 0.40% 00:08:59 4.57E-13 2800 700 31470 0.40% 00:09:18 8.82E-14 2850 712 30969 0.38% 00:10:00 1.26E-14 2900 725 31769 0.38% 00:10:30 2.46E-13 2950 737 36702 0.42% 00:10:56 5.34E-13 3000 750 33627 0.37% 00:11:23 3.64E-13

Page 158: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

147

Tabela 6 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe E, utilizando o Modelo Padrão (com matrizes), com técnicas de

Pivotamento do Grupo II (Pivotamento Markowitz).

N C Fill-in Fill-In (%) DURAÇÃO Erro

Relativo(%) 50 12 376 15.04% 00:00:00 4.67E-12 100 25 1012 10.12% 00:00:00 1.40E-07 150 37 1663 7.39% 00:00:00 1.24E-11 200 50 1673 4.18% 00:00:00 8.64E-03 250 62 2824 4.52% 00:00:01 5.50E-09 300 75 3465 3.85% 00:00:01 1.28E-08 350 87 4419 3.61% 00:00:02 5.97E-14 400 100 4697 2.94% 00:00:03 1.11E-11 450 112 5351 2.64% 00:00:04 9.44E-04 500 125 6125 2.45% 00:00:06 2.75E-06 550 137 6872 2.27% 00:00:08 7.98E-10 600 150 5224 1.45% 00:00:10 1.57E-13 650 162 8136 1.93% 00:00:12 4.56E+00 700 175 10118 2.06% 00:00:16 2.57E-08 750 187 10040 1.78% 00:00:20 8.48E-12 800 200 10745 1.68% 00:00:26 1.86E+01 850 212 10957 1.52% 00:00:31 8.85E+08 900 225 11455 1.41% 00:00:38 2.44E+01 950 237 13392 1.48% 00:00:42 6.28E+05 1000 250 8742 0.87% 00:00:45 9.29E-14 1050 262 12129 1.10% 00:00:53 3.71E-12 1100 275 13645 1.13% 00:01:06 6.38E-11 1150 287 14468 1.09% 00:01:19 1.79E-11 1200 300 14701 1.02% 00:01:27 2.59E-12 1250 312 14177 0.91% 00:01:27 1.33E-12 1300 325 16225 0.96% 00:01:38 2.79E-13 1350 337 15412 0.85% 00:01:49 9.93E-12 1400 350 11561 0.59% 00:02:01 5.71E-13 1450 362 16750 0.80% 00:02:14 2.05E-07 1500 375 18625 0.83% 00:02:28 5.87E+05 1550 387 19536 0.81% 00:02:43 2.90E-11 1600 400 19779 0.77% 00:03:00 2.28E-12 1650 412 18516 0.68% 00:03:32 1.37E-11 1700 425 20622 0.71% 00:03:42 9.52E+04 1750 437 21782 0.71% 00:04:05 2.38E-02 1800 450 15705 0.48% 00:04:22 4.35E-15 1850 462 23167 0.68% 00:04:45 3.26E+00 1900 475 24132 0.67% 00:05:11 1.96E+05 1950 487 24947 0.66% 00:05:43 1.17E+00 2000 500 25928 0.65% 00:06:02 4.68E-12

Page 159: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

148

N C Fill-in Fill-In (%) DURAÇÃO Erro

Relativo(%) 2050 512 25261 0.60% 00:06:34 1.28E+03 2100 525 23835 0.54% 00:07:10 2.85E-12 2150 537 25541 0.55% 00:07:38 2.56E-10 2200 550 19146 0.40% 00:08:09 1.59E-13 2250 562 27918 0.55% 00:09:22 1.50E+05 2300 575 29137 0.55% 00:09:27 1.31E-11 2350 587 29676 0.54% 00:10:03 2.68E+01 2400 600 31168 0.54% 00:10:38 2.24E-04 2450 612 30127 0.50% 00:11:52 4.92E-03 2500 625 28223 0.45% 00:12:17 8.98E-13 2550 637 33072 0.51% 00:13:04 4.42E-03 2600 650 21357 0.32% 00:14:14 7.55E-13 2650 662 31122 0.44% 00:13:45 2.43E-03 2700 675 33849 0.46% 00:13:43 1.23E-12 2750 687 34796 0.46% 00:14:37 4.46E-10 2800 700 34972 0.45% 00:15:28 3.50E-12 2850 712 31950 0.39% 00:14:14 4.84E-11 2900 725 37398 0.44% 00:16:12 4.49E-12 2950 737 32925 0.38% 00:17:28 1.01E-12 3000 750 26117 0.29% 00:18:40 1.54E-14

Page 160: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

149

Tabela 7 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe D, utilizando o Modelo apresentado em Zlatev (sem procedimento

de Coleta de Lixo), sem técnicas de Pivotamento.

N C Fill-in

Fill-In (%) DURAÇÃO Erro

Relativo(%) 50 12 305 12.20% 00:00:00 2.36E-10 100 25 712 7.12% 00:00:00 7.23E-06 150 37 1202 5.34% 00:00:00 1.20E-07 200 50 1412 3.53% 00:00:00 3.02E-04 250 62 2102 3.36% 00:00:00 1.12E-05 300 75 2112 2.35% 00:00:00 2.40E-03 350 87 3002 2.45% 00:00:00 5.38E-05 400 100 2812 1.76% 00:00:00 1.59E-02 450 112 3902 1.93% 00:00:01 1.43E-05 500 125 3512 1.40% 00:00:00 3.08E-02 550 137 4802 1.59% 00:00:00 2.03E-05 600 150 4212 1.17% 00:00:00 1.72E-01 650 162 5702 1.35% 00:00:00 8.95E-04 700 175 4912 1.00% 00:00:00 1.10E-01 750 187 6602 1.17% 00:00:01 1.15E-05 800 200 5612 0.88% 00:00:00 7.93E-02 850 212 7502 1.04% 00:00:00 6.71E-06 900 225 6312 0.78% 00:00:01 3.28E-01 950 237 8402 0.93% 00:00:00 2.95E-04 1000 250 7012 0.70% 00:00:00 5.86E-01 1050 262 9302 0.84% 00:00:01 6.94E-05 1100 275 7712 0.64% 00:00:00 9.88E-01 1150 287 10202 0.77% 00:00:01 6.95E-05 1200 300 8412 0.58% 00:00:01 4.75E+00 1250 312 11102 0.71% 00:00:00 8.51E-06 1300 325 9112 0.54% 00:00:00 8.02E-01 1350 337 12002 0.66% 00:00:00 5.87E-05 1400 350 9812 0.50% 00:00:01 6.16E+00 1450 362 12902 0.61% 00:00:01 1.21E-05 1500 375 10512 0.47% 00:00:01 2.11E+01 1550 387 13802 0.57% 00:00:01 4.33E-05 1600 400 11212 0.44% 00:00:01 1.29E+01 1650 412 14702 0.54% 00:00:01 1.43E-04 1700 425 11912 0.41% 00:00:01 9.57E+00 1750 437 15602 0.51% 00:00:01 2.14E-05 1800 450 12612 0.39% 00:00:01 2.39E+01 1850 462 16502 0.48% 00:00:02 3.15E-04 1900 475 13312 0.37% 00:00:01 1.30E+02 1950 487 17402 0.46% 00:00:01 1.78E-03 2000 500 14012 0.35% 00:00:02 1.50E+02

Page 161: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

150

N C Fill-in

Fill-In (%) DURAÇÃO Erro

Relativo(%) 2050 512 18302 0.44% 00:00:02 1.01E-04 2100 525 14712 0.33% 00:00:01 4.83E+01 2150 537 19202 0.42% 00:00:02 7.38E-04 2200 550 15412 0.32% 00:00:02 9.11E+01 2250 562 20102 0.40% 00:00:02 1.75E-04 2300 575 16112 0.30% 00:00:02 4.70E+02 2350 587 21002 0.38% 00:00:02 2.77E-04 2400 600 16812 0.29% 00:00:02 7.48E+01 2450 612 21902 0.36% 00:00:02 4.86E-04 2500 625 17512 0.28% 00:00:03 1.59E+02 2550 637 22802 0.35% 00:00:03 1.75E-04 2600 650 18212 0.27% 00:00:03 1.30E+03 2650 662 23702 0.34% 00:00:03 2.94E-03 2700 675 18912 0.26% 00:00:02 3.68E+02 2750 687 24602 0.33% 00:00:03 1.67E-04 2800 700 19612 0.25% 00:00:03 4.38E+02 2850 712 25502 0.31% 00:00:04 3.26E-04 2900 725 20312 0.24% 00:00:04 1.73E+03 2950 737 26402 0.30% 00:00:04 3.82E-04 3000 750 21012 0.23% 00:00:04 2.48E+02

Page 162: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

151

Tabela 8 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe D, utilizando o Modelo apresentado em Zlatev (sem procedimento

de Coleta de Lixo), com técnicas de Pivotamento do Grupo I (Pivotamento a Priori).

N C Fill-in

Fill-In (%) DURAÇÃO Erro

Relativo(%) 50 12 402 16.08% 00:00:00 1.29E-14 100 25 966 9.66% 00:00:00 3.55E-12 150 37 1509 6.71% 00:00:00 1.26E-13 200 50 2196 5.49% 00:00:00 8.41E-13 250 62 2895 4.63% 00:00:01 6.14E-13 300 75 3289 3.65% 00:00:00 8.50E-12 350 87 4215 3.44% 00:00:00 3.05E-13 400 100 4411 2.76% 00:00:01 7.58E-13 450 112 4857 2.40% 00:00:01 5.52E-13 500 125 5907 2.36% 00:00:02 2.22E-12 550 137 5381 1.78% 00:00:01 1.17E-13 600 150 7188 2.00% 00:00:03 1.10E-12 650 162 6557 1.55% 00:00:03 5.52E-14 700 175 7780 1.59% 00:00:04 3.00E-12 750 187 7070 1.26% 00:00:05 7.46E-13 800 200 8218 1.28% 00:00:05 1.94E-12 850 212 7542 1.04% 00:00:07 1.12E-13 900 225 8907 1.10% 00:00:08 5.35E-12 950 237 8196 0.91% 00:00:10 2.30E-13 1000 250 9933 0.99% 00:00:11 8.52E-13 1050 262 8906 0.81% 00:00:13 1.30E-12 1100 275 11266 0.93% 00:00:15 2.92E-12 1150 287 9448 0.71% 00:00:17 4.35E-13 1200 300 11524 0.80% 00:00:18 9.83E-13 1250 312 10703 0.68% 00:00:19 6.83E-13 1300 325 12167 0.72% 00:00:22 3.40E-12 1350 337 11403 0.63% 00:00:24 1.68E-14 1400 350 13089 0.67% 00:00:27 1.19E-14 1450 362 11886 0.57% 00:00:30 1.40E-14 1500 375 14222 0.63% 00:00:33 2.18E-13 1550 387 12438 0.52% 00:00:37 1.74E-12 1600 400 14898 0.58% 00:00:41 2.80E-14 1650 412 13388 0.49% 00:00:48 5.34E-13 1700 425 15398 0.53% 00:00:48 5.44E-12 1750 437 14094 0.46% 00:00:57 2.67E-14 1800 450 16346 0.50% 00:01:01 8.51E-14 1850 462 14802 0.43% 00:01:06 3.49E-13 1900 475 16986 0.47% 00:01:14 2.40E-13 1950 487 15579 0.41% 00:01:16 1.51E-12 2000 500 17817 0.45% 00:01:26 1.51E-13

Page 163: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

152

N C Fill-in

Fill-In (%) DURAÇÃO Erro

Relativo(%) 2050 512 16516 0.39% 00:01:29 8.75E-13 2100 525 18208 0.41% 00:01:38 4.16E-13 2150 537 17191 0.37% 00:01:45 3.22E-15 2200 550 19525 0.40% 00:01:51 1.77E-12 2250 562 17738 0.35% 00:02:00 3.24E-13 2300 575 19966 0.38% 00:02:07 2.51E-12 2350 587 18599 0.34% 00:02:25 5.12E-15 2400 600 20946 0.36% 00:02:26 1.62E-13 2450 612 19321 0.32% 00:02:35 1.86E-13 2500 625 21946 0.35% 00:02:43 3.16E-12 2550 637 19788 0.30% 00:02:54 1.21E-13 2600 650 22602 0.33% 00:03:06 1.02E-12 2650 662 20759 0.30% 00:03:18 3.87E-13 2700 675 23321 0.32% 00:03:27 3.61E-12 2750 687 21461 0.28% 00:03:39 2.73E-13 2800 700 24281 0.31% 00:03:52 7.60E-15 2850 712 21981 0.27% 00:04:06 1.41E-12 2900 725 24692 0.29% 00:04:16 5.97E-12 2950 737 22635 0.26% 00:04:31 1.35E-12 3000 750 25283 0.28% 00:04:45 1.17E-14

Page 164: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

153

Tabela 9 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe D, utilizando o Modelo apresentado em Zlatev (sem procedimento

de Coleta de Lixo), com técnicas de Pivotamento do Grupo II (Pivotamento

Markowitz).

N C Fill-in Fill-In (%) DURAÇÃO Erro

Relativo(%) 50 12 370 14.80% 00:00:00 7.93E-10 100 25 1029 10.29% 00:00:00 1.78E-06 150 37 1837 8.16% 00:00:00 7.57E+04 200 50 2491 6.23% 00:00:00 3.30E-02 250 62 3057 4.89% 00:00:00 3.69E-08 300 75 3607 4.01% 00:00:00 1.29E-07 350 87 4317 3.52% 00:00:01 6.57E-07 400 100 4287 2.68% 00:00:01 1.24E-07 450 112 4653 2.30% 00:00:02 9.76E-12 500 125 5045 2.02% 00:00:03 5.84E-06 550 137 5732 1.89% 00:00:03 1.57E+02 600 150 6187 1.72% 00:00:04 1.82E-04 650 162 6876 1.63% 00:00:06 2.25E-05 700 175 8753 1.79% 00:00:07 5.28E+00 750 187 10398 1.85% 00:00:08 2.28E-13 800 200 13921 2.18% 00:00:10 2.61E-05 850 212 16694 2.31% 00:00:16 3.70E-12 900 225 22110 2.73% 00:00:14 1.48E-06 950 237 25444 2.82% 00:00:16 4.68E-04 1000 250 33839 3.38% 00:00:20 1.65E-04 1050 262 36716 3.33% 00:00:26 1.22E-12 1100 275 50757 4.19% 00:00:26 2.26E+12 1150 287 50482 3.82% 00:00:34 1.16E-10 1200 300 66295 4.60% 00:00:34 2.36E+00 1250 312 67195 4.30% 00:00:45 3.57E-12 1300 325 87760 5.19% 00:00:44 7.47E+03 1350 337 86293 4.73% 00:01:04 1.14E-12 1400 350 111405 5.68% 00:01:16 2.08E+01 1450 362 106792 5.08% 00:01:19 1.70E-10 1500 375 138691 6.16% 00:01:39 5.93E+00 1550 387 129566 5.39% 00:01:54 2.18E-13 1600 400 170141 6.65% 00:01:53 2.01E+00 1650 412 155681 5.72% 00:02:07 6.89E-13 1700 425 201508 6.97% 00:02:11 3.61E+11 1750 437 184216 6.02% 00:02:06 2.99E-11 1800 450 241837 7.46% 00:02:03 1.04E-04 1850 462 215271 6.29% 00:02:15 2.84E-02 1900 475 276869 7.67% 00:02:25 1.63E-09 1950 487 249103 6.55% 00:02:35 6.74E-07 2000 500 318244 7.96% 00:02:50 1.66E-13

Page 165: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

154

N C Fill-in Fill-In (%) DURAÇÃO Erro

Relativo(%) 2050 512 282918 6.73% 00:03:00 1.07E-04 2100 525 378174 8.58% 00:03:18 1.52E+04 2150 537 336297 7.28% 00:03:28 1.35E+08 2200 550 409877 8.47% 00:03:47 1.40E-06 2250 562 362985 7.17% 00:03:58 1.33E-07 2300 575 459488 8.69% 00:04:19 1.09E-07 2350 587 403142 7.30% 00:04:30 7.12E-05 2400 600 508169 8.82% 00:04:59 6.71E-06 2450 612 452497 7.54% 00:05:08 1.88E-09 2500 625 579957 9.28% 00:05:40 2.17E+02 2550 637 597124 9.18% 00:06:01 2.61E+04 2600 650 624159 9.23% 00:06:21 3.34E-06 2650 662 556515 7.92% 00:06:35 2.92E-13 2700 675 687677 9.43% 00:07:06 3.29E-04 2750 687 613654 8.11% 00:07:22 4.08E-09 2800 700 772944 9.86% 00:07:59 2.41E+00 2850 712 674216 8.30% 00:08:13 1.92E-08 2900 725 812422 9.66% 00:08:53 1.63E-04 2950 737 720716 8.28% 00:09:05 1.31E-11 3000 750 1075046 11.94% 00:10:11 1.11E+03

Page 166: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

155

Tabela 10 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe E, utilizando o Modelo apresentado em Zlatev (sem procedimento

de Coleta de Lixo), sem técnicas de Pivotamento.

N C Fill-in

Fill-In (%) DURAÇÃO Erro

Relativo(%) 50 12 760 30.40% 00:00:00 3.53E-14 100 25 3450 34.50% 00:00:00 7.37E-14 150 37 7802 34.68% 00:00:00 9.84E-14 200 50 13850 34.63% 00:00:00 9.75E-14 250 62 20877 33.40% 00:00:00 1.35E-13 300 75 28120 31.24% 00:00:00 2.31E-13 350 87 34942 28.52% 00:00:01 3.21E-13 400 100 40510 25.32% 00:00:01 3.40E-13 450 112 45794 22.61% 00:00:00 3.40E-13 500 125 50740 20.30% 00:00:01 3.92E-13 550 137 56044 18.53% 00:00:01 4.01E-13 600 150 60990 16.94% 00:00:01 3.23E-13 650 162 66294 15.69% 00:00:02 3.20E-13 700 175 71240 14.54% 00:00:01 3.85E-13 750 187 76544 13.61% 00:00:02 3.91E-13 800 200 81490 12.73% 00:00:02 3.11E-13 850 212 86794 12.01% 00:00:02 3.09E-13 900 225 91740 11.33% 00:00:03 3.80E-13 950 237 97044 10.75% 00:00:03 3.86E-13 1000 250 101990 10.20% 00:00:03 3.03E-13 1050 262 107294 9.73% 00:00:06 3.03E-13 1100 275 112240 9.28% 00:00:05 3.77E-13 1150 287 117544 8.89% 00:00:04 3.82E-13 1200 300 122490 8.51% 00:00:05 2.99E-13 1250 312 127794 8.18% 00:00:05 2.98E-13 1300 325 132740 7.85% 00:00:05 3.76E-13 1350 337 138044 7.57% 00:00:06 3.80E-13 1400 350 142990 7.30% 00:00:06 2.95E-13 1450 362 148294 7.05% 00:00:07 2.95E-13 1500 375 153240 6.81% 00:00:08 3.74E-13 1550 387 158544 6.60% 00:00:08 3.78E-13 1600 400 163490 6.39% 00:00:15 2.93E-13 1650 412 168794 6.20% 00:00:09 2.93E-13 1700 425 173740 6.01% 00:00:10 3.73E-13 1750 437 179044 5.85% 00:00:10 3.76E-13 1800 450 183990 5.68% 00:00:11 2.91E-13 1850 462 189294 5.53% 00:00:12 2.91E-13 1900 475 194240 5.38% 00:00:12 3.72E-13 1950 487 199544 5.25% 00:00:13 3.75E-13 2000 500 204490 5.11% 00:00:13 2.89E-13

Page 167: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

156

N C Fill-in

Fill-In (%) DURAÇÃO Erro

Relativo(%) 2050 512 209794 4.99% 00:00:14 2.89E-13 2100 525 214740 4.87% 00:00:15 3.72E-13 2150 537 220044 4.76% 00:00:16 3.74E-13 2200 550 224990 4.65% 00:00:19 2.88E-13 2250 562 230294 4.55% 00:00:17 2.88E-13 2300 575 235240 4.45% 00:00:18 3.71E-13 2350 587 240544 4.36% 00:00:18 3.73E-13 2400 600 245490 4.26% 00:00:23 2.87E-13 2450 612 250794 4.18% 00:00:20 2.87E-13 2500 625 255740 4.09% 00:00:21 3.70E-13 2550 637 261044 4.01% 00:00:22 3.73E-13 2600 650 265990 3.93% 00:00:24 2.86E-13 2650 662 271294 3.86% 00:00:25 2.86E-13 2700 675 276240 3.79% 00:00:24 3.70E-13 2750 687 281544 3.72% 00:00:26 3.72E-13 2800 700 286490 3.65% 00:00:28 2.85E-13 2850 712 291794 3.59% 00:00:27 2.85E-13 2900 725 296740 3.53% 00:00:29 3.70E-13 2950 737 302044 3.47% 00:00:32 3.72E-13 3000 750 306990 3.41% 00:00:33 2.84E-13

Page 168: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

157

Tabela 11 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe E, utilizando o Modelo apresentado em Zlatev (sem procedimento

de Coleta de Lixo), com técnicas de Pivotamento do Grupo I (Pivotamento a Priori).

N C Fill-in

Fill-In (%) DURAÇÃO Erro

Relativo(%) 50 12 372 14.88% 00:00:00 1.11E-14 100 25 952 9.52% 00:00:00 9.66E-15 150 37 1538 6.84% 00:00:00 5.51E-13 200 50 2095 5.24% 00:00:00 1.37E-12 250 62 2785 4.46% 00:00:00 9.41E-15 300 75 3769 4.19% 00:00:01 5.38E-12 350 87 3879 3.17% 00:00:00 6.19E-15 400 100 4960 3.10% 00:00:00 2.96E-13 450 112 5663 2.80% 00:00:01 1.23E-13 500 125 5616 2.25% 00:00:01 1.11E-13 550 137 6995 2.31% 00:00:01 4.12E-14 600 150 7400 2.06% 00:00:01 2.83E-13 650 162 8212 1.94% 00:00:01 6.93E-14 700 175 7740 1.58% 00:00:02 9.25E-15 750 187 8565 1.52% 00:00:03 4.26E-13 800 200 9005 1.41% 00:00:02 2.74E-14 850 212 9837 1.36% 00:00:04 9.99E-11 900 225 10446 1.29% 00:00:04 8.96E-14 950 237 10325 1.14% 00:00:04 4.56E-13 1000 250 10790 1.08% 00:00:05 1.40E-12 1050 262 11670 1.06% 00:00:06 1.88E-15 1100 275 12706 1.05% 00:00:06 1.12E-13 1150 287 12724 0.96% 00:00:07 8.92E-15 1200 300 15193 1.06% 00:00:09 8.81E-13 1250 312 14117 0.90% 00:00:10 4.19E-12 1300 325 14416 0.85% 00:00:12 1.25E-12 1350 337 15208 0.83% 00:00:12 1.03E-15 1400 350 15923 0.81% 00:00:14 9.78E-15 1450 362 16127 0.77% 00:00:15 1.38E-16 1500 375 16843 0.75% 00:00:17 2.16E-13 1550 387 20654 0.86% 00:00:19 2.71E-15 1600 400 18191 0.71% 00:00:20 5.67E-15 1650 412 21927 0.81% 00:00:22 3.49E-12 1700 425 19510 0.68% 00:00:24 2.21E-15 1750 437 19782 0.65% 00:00:26 7.80E-16 1800 450 19633 0.61% 00:00:29 2.24E-14 1850 462 20788 0.61% 00:00:31 7.09E-13 1900 475 21275 0.59% 00:00:33 2.15E-13 1950 487 21827 0.57% 00:00:36 1.41E-13 2000 500 22618 0.57% 00:00:39 2.20E-15

Page 169: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

158

N C Fill-in

Fill-In (%) DURAÇÃO Erro

Relativo(%) 2050 512 22540 0.54% 00:00:42 3.76E-14 2100 525 21643 0.49% 00:00:45 3.50E-13 2150 537 23752 0.51% 00:00:48 1.73E-13 2200 550 24997 0.52% 00:00:51 3.10E-15 2250 562 25310 0.50% 00:00:54 2.37E-13 2300 575 25666 0.49% 00:00:59 2.08E-13 2350 587 26252 0.48% 00:01:02 1.59E-14 2400 600 26589 0.46% 00:01:07 1.41E-15 2450 612 27833 0.46% 00:01:11 1.04E-14 2500 625 28307 0.45% 00:01:15 4.88E-13 2550 637 28296 0.44% 00:01:20 9.34E-13 2600 650 27699 0.41% 00:01:24 2.26E-15 2650 662 29935 0.43% 00:01:30 2.80E-13 2700 675 30421 0.42% 00:01:34 3.73E-13 2750 687 30383 0.40% 00:01:41 4.57E-13 2800 700 31470 0.40% 00:01:43 8.82E-14 2850 712 30969 0.38% 00:01:51 1.26E-14 2900 725 31769 0.38% 00:01:57 2.46E-13 2950 737 36702 0.42% 00:02:02 5.34E-13 3000 750 33627 0.37% 00:02:07 3.64E-13

Page 170: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

159

Tabela 12 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe E, utilizando o Modelo apresentado em Zlatev (sem procedimento

de Coleta de Lixo), com técnicas de Pivotamento do Grupo II (Pivotamento

Markowitz).

N C Fill-in

Fill-In (%) DURAÇÃO Erro

Relativo(%) 50 12 376 15.04% 00:00:00 4.67E-12 100 25 1012 10.12% 00:00:00 1.40E-07 150 37 1663 7.39% 00:00:00 1.24E-11 200 50 1673 4.18% 00:00:00 8.64E-03 250 62 2824 4.52% 00:00:00 5.50E-09 300 75 3465 3.85% 00:00:01 1.28E-08 350 87 4419 3.61% 00:00:01 5.97E-14 400 100 4697 2.94% 00:00:01 1.11E-11 450 112 5351 2.64% 00:00:02 9.44E-04 500 125 6125 2.45% 00:00:03 2.75E-06 550 137 6872 2.27% 00:00:03 7.98E-10 600 150 5224 1.45% 00:00:05 1.57E-13 650 162 8136 1.93% 00:00:05 4.56E+00 700 175 10118 2.06% 00:00:07 2.57E-08 750 187 10040 1.78% 00:00:09 8.48E-12 800 200 10745 1.68% 00:00:10 1.86E+01 850 212 10957 1.52% 00:00:12 8.85E+08 900 225 11455 1.41% 00:00:15 2.44E+01 950 237 13392 1.48% 00:00:17 6.28E+05 1000 250 8742 0.87% 00:00:19 9.29E-14 1050 262 12129 1.10% 00:00:23 3.71E-12 1100 275 13645 1.13% 00:00:26 6.38E-11 1150 287 14468 1.09% 00:00:29 1.79E-11 1200 300 14701 1.02% 00:00:33 2.59E-12 1250 312 14177 0.91% 00:00:37 1.33E-12 1300 325 16225 0.96% 00:00:42 2.79E-13 1350 337 15412 0.85% 00:00:47 9.93E-12 1400 350 11561 0.59% 00:00:51 5.71E-13 1450 362 16750 0.80% 00:00:58 2.05E-07 1500 375 18625 0.83% 00:01:04 5.87E+05 1550 387 19536 0.81% 00:01:10 2.90E-11 1600 400 19779 0.77% 00:01:17 2.28E-12 1650 412 18516 0.68% 00:01:25 1.37E-11 1700 425 20622 0.71% 00:01:33 9.52E+04 1750 437 21782 0.71% 00:01:41 2.38E-02 1800 450 15705 0.48% 00:01:49 4.35E-15 1850 462 23167 0.68% 00:01:59 3.26E+00 1900 475 24132 0.67% 00:02:08 1.96E+05 1950 487 24947 0.66% 00:02:19 1.17E+00 2000 500 25928 0.65% 00:02:29 4.68E-12

Page 171: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

160

N C Fill-in

Fill-In (%) DURAÇÃO Erro

Relativo(%) 2050 512 25261 0.60% 00:02:41 1.28E+03 2100 525 23835 0.54% 00:02:53 2.85E-12 2150 537 25541 0.55% 00:03:04 2.56E-10 2200 550 19146 0.40% 00:03:16 1.59E-13 2250 562 27918 0.55% 00:03:31 1.50E+05 2300 575 29137 0.55% 00:03:44 1.31E-11 2350 587 29676 0.54% 00:03:59 2.68E+01 2400 600 31168 0.54% 00:04:15 2.24E-04 2450 612 30127 0.50% 00:04:31 4.92E-03 2500 625 28223 0.45% 00:04:49 8.98E-13 2550 637 33072 0.51% 00:05:05 4.42E-03 2600 650 21357 0.32% 00:05:22 7.55E-13 2650 662 31122 0.44% 00:05:44 2.43E-03 2700 675 33849 0.46% 00:06:04 1.23E-12 2750 687 34796 0.46% 00:06:25 4.46E-10 2800 700 34972 0.45% 00:06:44 3.50E-12 2850 712 31950 0.39% 00:07:07 4.84E-11 2900 725 37398 0.44% 00:07:28 4.49E-12 2950 737 32925 0.38% 00:07:54 1.01E-12 3000 750 26117 0.29% 00:08:12 1.54E-14

Page 172: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

161

Tabela 13 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe D, utilizando o Modelo Proposto, sem técnicas de Pivotamento.

N C Fill-in Fill-in (%) DURAÇÃO Erro

Relativo(%) 50 12 305 12.20% 00:00:00 6.12E-08 100 25 712 7.12% 00:00:00 3.20E-03 150 37 1202 5.34% 00:00:00 2.92E-05 200 50 1412 3.53% 00:00:00 3.86E-02 250 62 2102 3.36% 00:00:00 4.10E-04 300 75 2112 2.35% 00:00:00 1.34E-01 350 87 3002 2.45% 00:00:00 1.01E-02 400 100 2812 1.76% 00:00:00 1.50E+00 450 112 3902 1.93% 00:00:00 1.52E-03 500 125 3512 1.40% 00:00:01 2.13E+00 550 137 4802 1.59% 00:00:00 1.47E-03 600 150 4212 1.17% 00:00:00 3.19E+01 650 162 5702 1.35% 00:00:00 2.48E-02 700 175 4912 1.00% 00:00:01 4.83E+01 750 187 6602 1.17% 00:00:00 3.20E-04 800 200 5612 0.88% 00:00:01 2.74E+01 850 212 7502 1.04% 00:00:00 5.68E-04 900 225 6312 0.78% 00:00:01 6.38E+01 950 237 8402 0.93% 00:00:01 1.16E-03 1000 250 7012 0.70% 00:00:00 4.03E+03 1050 262 9302 0.84% 00:00:01 1.34E-03 1100 275 7712 0.64% 00:00:01 6.38E+01 1150 287 10202 0.77% 00:00:02 2.16E-03 1200 300 8412 0.58% 00:00:01 7.32E+01 1250 312 11102 0.71% 00:00:01 4.99E-03 1300 325 9112 0.54% 00:00:01 8.16E+01 1350 337 12002 0.66% 00:00:02 2.78E-02 1400 350 9812 0.50% 00:00:01 5.13E+02 1450 362 12902 0.61% 00:00:02 9.17E-02 1500 375 10512 0.47% 00:00:02 9.18E+01 1550 387 13802 0.57% 00:00:03 2.85E-02 1600 400 11212 0.44% 00:00:03 2.02E+03 1650 412 14702 0.54% 00:00:03 5.56E-03 1700 425 11912 0.41% 00:00:03 1.22E+02 1750 437 15602 0.51% 00:00:03 3.83E-03 1800 450 12612 0.39% 00:00:03 5.21E+02 1850 462 16502 0.48% 00:00:05 6.84E-02 1900 475 13312 0.37% 00:00:04 1.66E+03 1950 487 17402 0.46% 00:00:06 2.73E-01 2000 500 14012 0.35% 00:00:06 7.30E+03

Page 173: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

162

N C Fill-in Fill-in (%) DURAÇÃO Erro

Relativo(%) 2050 512 18302 0.44% 00:00:06 2.26E-01 2100 525 14712 0.33% 00:00:07 3.89E+03 2150 537 19202 0.42% 00:00:07 9.21E-02 2200 550 15412 0.32% 00:00:07 2.58E+03 2250 562 20102 0.40% 00:00:09 2.05E-01 2300 575 16112 0.30% 00:00:08 2.11E+03 2350 587 21002 0.38% 00:00:10 1.06E-02 2400 600 16812 0.29% 00:00:10 8.01E+03 2450 612 21902 0.36% 00:00:11 1.59E-01 2500 625 17512 0.28% 00:00:11 4.88E+03 2550 637 22802 0.35% 00:00:11 2.99E-01 2600 650 18212 0.27% 00:00:12 1.75E+04 2650 662 23702 0.34% 00:00:13 5.27E-02 2700 675 18912 0.26% 00:00:13 1.34E+04 2750 687 24602 0.33% 00:00:14 7.58E-01 2800 700 19612 0.25% 00:00:15 1.96E+04 2850 712 25502 0.31% 00:00:16 2.15E-01 2900 725 20312 0.24% 00:00:15 1.19E+05 2950 737 26402 0.30% 00:00:16 7.66E-02 3000 750 21012 0.23% 00:00:17 9.47E+03

Page 174: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

163

Tabela 14 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe D, utilizando o Modelo Proposto, com técnicas de Pivotamento do

Grupo I (Pivotamento a Priori).

N C Fill-in Fill-in (%) DURAÇÃO Erro

Relativo(%) 50 12 363 14.52% 00:00:00 3.67E-11 100 25 1266 12.66% 00:00:00 2.80E-09 150 37 1545 6.87% 00:00:00 1.35E-09 200 50 2791 6.98% 00:00:00 3.66E-10 250 62 3203 5.12% 00:00:00 1.55E-10 300 75 4586 5.10% 00:00:00 8.41E-11 350 87 3859 3.15% 00:00:01 7.91E-11 400 100 5165 3.23% 00:00:00 1.01E-10 450 112 4524 2.23% 00:00:01 2.66E-11 500 125 5202 2.08% 00:00:00 3.45E-11 550 137 6343 2.10% 00:00:01 5.31E-11 600 150 6057 1.68% 00:00:01 1.31E-10 650 162 7292 1.73% 00:00:01 4.11E-11 700 175 8419 1.72% 00:00:01 1.06E-10 750 187 10716 1.91% 00:00:02 1.54E-10 800 200 15113 2.36% 00:00:02 8.02E-12 850 212 17270 2.39% 00:00:03 1.23E-10 900 225 23994 2.96% 00:00:03 3.45E-11 950 237 26351 2.92% 00:00:04 2.17E-11 1000 250 37000 3.70% 00:00:05 1.45E-10 1050 262 38206 3.47% 00:00:06 1.14E-11 1100 275 51342 4.24% 00:00:07 1.63E-10 1150 287 53424 4.04% 00:00:09 8.32E-11 1200 300 69211 4.81% 00:00:11 2.46E-10 1250 312 71102 4.55% 00:00:12 9.81E-11 1300 325 90446 5.35% 00:00:15 2.39E-11 1350 337 97820 5.37% 00:00:17 2.12E-10 1400 350 116195 5.93% 00:00:20 2.64E-11 1450 362 109145 5.19% 00:00:22 2.44E-11 1500 375 144136 6.41% 00:00:27 4.80E-11 1550 387 148152 6.17% 00:00:29 2.05E-10 1600 400 172769 6.75% 00:00:33 4.84E-11 1650 412 178021 6.54% 00:00:37 3.67E-10 1700 425 204457 7.07% 00:00:41 3.80E-11 1750 437 210679 6.88% 00:00:46 7.70E-11 1800 450 244316 7.54% 00:00:51 5.99E-11 1850 462 245570 7.18% 00:00:55 8.57E-11 1900 475 279926 7.75% 00:01:03 9.33E-11 1950 487 282056 7.42% 00:01:07 4.41E-11 2000 500 321829 8.05% 00:01:14 1.23E-10

Page 175: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

164

N C Fill-in Fill-in (%) DURAÇÃO Erro

Relativo(%) 2050 512 320999 7.64% 00:01:24 3.29E-10 2100 525 371503 8.42% 00:01:42 9.94E-11 2150 537 361837 7.83% 00:01:40 4.14E-11 2200 550 415707 8.59% 00:01:47 1.54E-10 2250 562 405490 8.01% 00:01:49 4.65E-11 2300 575 467718 8.84% 00:02:03 7.10E-11 2350 587 448577 8.12% 00:02:10 4.10E-11 2400 600 525746 9.13% 00:02:27 1.14E-10 2450 612 453297 7.55% 00:02:26 5.02E-11 2500 625 583246 9.33% 00:02:47 1.94E-10 2550 637 503039 7.74% 00:02:50 7.27E-12 2600 650 637167 9.43% 00:03:10 2.46E-10 2650 662 591869 8.43% 00:03:15 4.39E-11 2700 675 703519 9.65% 00:03:42 2.72E-10 2750 687 645309 8.53% 00:03:49 5.21E-11 2800 700 764042 9.75% 00:04:21 2.68E-10 2850 712 686880 8.46% 00:04:10 4.29E-11 2900 725 844970 10.05% 00:04:45 1.98E-10 2950 737 751265 8.63% 00:04:43 3.81E-11 3000 750 906888 10.08% 00:05:17 3.26E-10

Page 176: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

165

Tabela 15 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe D, utilizando o Modelo Proposto, com técnicas de Pivotamento do

Grupo II (Pivotamento Markowitz).

N C Fill-in Fill-in (%) DURAÇÃO Erro

Relativo(%) 50 12 355 14.20% 00:00:00 4.95E-11 100 25 1080 10.80% 00:00:00 1.80E-10 150 37 1553 6.90% 00:00:00 3.67E-10 200 50 2474 6.19% 00:00:00 4.14E-11 250 62 3256 5.21% 00:00:00 8.44E-11 300 75 4276 4.75% 00:00:00 1.76E-10 350 87 3577 2.92% 00:00:01 3.51E-10 400 100 4381 2.74% 00:00:00 8.61E-11 450 112 4488 2.22% 00:00:01 5.33E-11 500 125 5034 2.01% 00:00:01 7.05E-12 550 137 5846 1.93% 00:00:01 7.79E-11 600 150 5886 1.64% 00:00:01 3.32E-12 650 162 6440 1.52% 00:00:02 1.30E-10 700 175 6962 1.42% 00:00:03 5.28E-11 750 187 7210 1.28% 00:00:03 1.23E-10 800 200 8340 1.30% 00:00:03 4.48E-11 850 212 7446 1.03% 00:00:04 6.83E-11 900 225 8782 1.08% 00:00:05 2.79E-10 950 237 8505 0.94% 00:00:05 2.53E-11 1000 250 9153 0.92% 00:00:06 2.07E-11 1050 262 9108 0.83% 00:00:06 8.37E-11 1100 275 10567 0.87% 00:00:08 2.73E-10 1150 287 10279 0.78% 00:00:08 1.31E-11 1200 300 11618 0.81% 00:00:10 1.12E-11 1250 312 11322 0.72% 00:00:10 1.64E-10 1300 325 11932 0.71% 00:00:12 3.61E-10 1350 337 11983 0.66% 00:00:14 2.33E-11 1400 350 15374 0.78% 00:00:15 3.24E-11 1450 362 15931 0.76% 00:00:16 1.49E-10 1500 375 16740 0.74% 00:00:18 1.95E-11 1550 387 15552 0.65% 00:00:20 2.69E-11 1600 400 19215 0.75% 00:00:21 8.45E-12 1650 412 17924 0.66% 00:00:24 6.09E-11 1700 425 16775 0.58% 00:00:24 2.58E-10 1750 437 19694 0.64% 00:00:27 8.76E-11 1800 450 24290 0.75% 00:00:29 2.43E-10 1850 462 21969 0.64% 00:00:30 3.34E-11 1900 475 20987 0.58% 00:00:32 9.72E-11 1950 487 22920 0.60% 00:00:34 1.59E-10 2000 500 23601 0.59% 00:00:35 2.50E-13

Page 177: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

166

N C Fill-in Fill-in (%) DURAÇÃO Erro

Relativo(%) 2050 512 18522 0.44% 00:00:37 2.05E-10 2100 525 19479 0.44% 00:00:40 2.22E-11 2150 537 24131 0.52% 00:00:43 2.44E-11 2200 550 31903 0.66% 00:00:47 3.63E-13 2250 562 32318 0.64% 00:00:51 1.53E-11 2300 575 32750 0.62% 00:00:52 2.37E-11 2350 587 35742 0.65% 00:00:56 1.38E-11 2400 600 34405 0.60% 00:00:57 3.20E-11 2450 612 28108 0.47% 00:01:01 9.51E-12 2500 625 24955 0.40% 00:01:02 1.78E-11 2550 637 30021 0.46% 00:01:09 1.28E-10 2600 650 31398 0.46% 00:01:15 1.82E-12 2650 662 32884 0.47% 00:01:14 9.52E-12 2700 675 36531 0.50% 00:01:26 9.70E-12 2750 687 33438 0.44% 00:01:26 1.41E-10 2800 700 30689 0.39% 00:01:26 1.43E-10 2850 712 33965 0.42% 00:01:34 1.60E-10 2900 725 34510 0.41% 00:01:36 6.52E-11 2950 737 26560 0.31% 00:01:35 2.01E-11 3000 750 36820 0.41% 00:01:45 1.41E-11

Page 178: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

167

Tabela 16 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe E, utilizando o Modelo Proposto, sem técnicas de Pivotamento.

N C Fill-in

Fill-in (%) DURAÇÃO Erro

Relativo(%) 50 12 760 30.40% 00:00:00 1.27E-12 100 25 3450 34.50% 00:00:00 3.09E-13 150 37 7802 34.68% 00:00:00 2.81E-12 200 50 13850 34.63% 00:00:01 7.62E-12 250 62 20820 33.31% 00:00:00 7.30E-12 300 75 27846 30.94% 00:00:01 8.20E-12 350 87 34304 28.00% 00:00:01 8.70E-12 400 100 39408 24.63% 00:00:01 7.78E-12 450 112 44576 22.01% 00:00:01 7.35E-12 500 125 49408 19.76% 00:00:02 1.02E-11 550 137 54576 18.04% 00:00:01 9.88E-12 600 150 59408 16.50% 00:00:02 6.97E-12 650 162 64576 15.28% 00:00:02 6.74E-12 700 175 69408 14.16% 00:00:02 1.07E-11 750 187 74576 13.26% 00:00:03 1.04E-11 800 200 79408 12.41% 00:00:02 6.56E-12 850 212 84576 11.71% 00:00:03 6.41E-12 900 225 89408 11.04% 00:00:03 1.10E-11 950 237 94576 10.48% 00:00:03 1.07E-11 1000 250 99408 9.94% 00:00:03 6.32E-12 1050 262 104576 9.49% 00:00:04 6.21E-12 1100 275 109408 9.04% 00:00:04 1.11E-11 1150 287 114576 8.66% 00:00:03 1.10E-11 1200 300 119408 8.29% 00:00:04 6.15E-12 1250 312 124576 7.97% 00:00:04 6.07E-12 1300 325 129408 7.66% 00:00:05 1.13E-11 1350 337 134576 7.38% 00:00:05 1.11E-11 1400 350 139408 7.11% 00:00:05 6.04E-12 1450 362 144576 6.88% 00:00:06 5.97E-12 1500 375 149408 6.64% 00:00:05 1.13E-11 1550 387 154576 6.43% 00:00:06 1.12E-11 1600 400 159408 6.23% 00:00:07 5.95E-12 1650 412 164576 6.05% 00:00:06 5.89E-12 1700 425 169408 5.86% 00:00:08 1.14E-11 1750 437 174576 5.70% 00:00:07 1.13E-11 1800 450 179408 5.54% 00:00:09 5.88E-12 1850 462 184576 5.39% 00:00:07 5.83E-12 1900 475 189408 5.25% 00:00:09 1.15E-11 1950 487 194576 5.12% 00:00:10 1.14E-11 2000 500 199408 4.99% 00:00:10 5.83E-12

Page 179: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

168

N C Fill-in

Fill-in (%) DURAÇÃO Erro

Relativo(%) 2050 512 204576 4.87% 00:00:10 5.78E-12 2100 525 209408 4.75% 00:00:11 1.15E-11 2150 537 214576 4.64% 00:00:12 1.14E-11 2200 550 219408 4.53% 00:00:12 5.79E-12 2250 562 224576 4.44% 00:00:13 5.75E-12 2300 575 229408 4.34% 00:00:13 1.16E-11 2350 587 234576 4.25% 00:00:14 1.15E-11 2400 600 239408 4.16% 00:00:15 5.75E-12 2450 612 244576 4.07% 00:00:14 5.71E-12 2500 625 249408 3.99% 00:00:16 1.16E-11 2550 637 254576 3.92% 00:00:17 1.15E-11 2600 650 259408 3.84% 00:00:17 5.72E-12 2650 662 264576 3.77% 00:00:18 5.68E-12 2700 675 269408 3.70% 00:00:16 1.16E-11 2750 687 274576 3.63% 00:00:20 1.15E-11 2800 700 279408 3.56% 00:00:20 5.69E-12 2850 712 284576 3.50% 00:00:18 5.66E-12 2900 725 289408 3.44% 00:00:22 1.16E-11 2950 737 294576 3.38% 00:00:22 1.16E-11 3000 750 299408 3.33% 00:00:24 5.67E-12

Page 180: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

169

Tabela 17 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe E, utilizando o Modelo Proposto, com técnicas de Pivotamento do

Grupo I (Pivotamento a Priori).

N C Fill-in

Fill-in (%) DURAÇÃO Erro

Relativo(%) 50 12 322 12.88% 00:00:00 3.64E-14 100 25 705 7.05% 00:00:00 5.46E-14 150 37 1162 5.16% 00:00:00 1.52E-12 200 50 1493 3.73% 00:00:00 4.55E-15 250 62 1961 3.14% 00:00:00 3.97E-13 300 75 2383 2.65% 00:00:00 3.03E-15 350 87 2837 2.32% 00:00:00 3.27E-12 400 100 3109 1.94% 00:00:01 6.37E-14 450 112 3288 1.62% 00:00:00 4.04E-14 500 125 3981 1.59% 00:00:01 1.82E-15 550 137 4432 1.47% 00:00:00 1.65E-15 600 150 4625 1.28% 00:00:01 3.03E-15 650 162 4688 1.11% 00:00:02 1.54E-14 700 175 5210 1.06% 00:00:01 1.10E-13 750 187 6354 1.13% 00:00:02 0.00E+00 800 200 5684 0.89% 00:00:02 2.16E-14 850 212 6916 0.96% 00:00:02 2.44E-12 900 225 6267 0.77% 00:00:03 1.01E-15 950 237 7022 0.78% 00:00:03 7.18E-14 1000 250 7405 0.74% 00:00:04 2.00E-14 1050 262 7775 0.71% 00:00:04 9.75E-12 1100 275 8421 0.70% 00:00:04 8.27E-16 1150 287 8942 0.68% 00:00:05 0.00E+00 1200 300 8554 0.59% 00:00:06 7.41E-12 1250 312 9569 0.61% 00:00:07 4.07E-11 1300 325 9632 0.57% 00:00:08 2.24E-12 1350 337 9117 0.50% 00:00:08 1.35E-15 1400 350 10165 0.52% 00:00:10 1.30E-15 1450 362 11278 0.54% 00:00:10 8.17E-13 1500 375 10957 0.49% 00:00:12 1.18E-13 1550 387 10718 0.45% 00:00:13 5.87E-16 1600 400 10933 0.43% 00:00:14 3.41E-15 1650 412 11794 0.43% 00:00:16 2.86E-13 1700 425 13269 0.46% 00:00:18 2.42E-12 1750 437 14077 0.46% 00:00:22 1.20E-14 1800 450 13255 0.41% 00:00:20 3.74E-14 1850 462 12499 0.37% 00:00:22 6.44E-14 1900 475 13158 0.36% 00:00:27 1.72E-13 1950 487 13559 0.36% 00:00:25 1.96E-11 2000 500 15705 0.39% 00:00:31 1.50E-11

Page 181: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

170

N C Fill-in

Fill-in (%) DURAÇÃO Erro

Relativo(%) 2050 512 13991 0.33% 00:00:29 2.22E-15 2100 525 13902 0.32% 00:00:35 4.33E-16 2150 537 15042 0.33% 00:00:37 0.00E+00 2200 550 15298 0.32% 00:00:37 2.54E-12 2250 562 15007 0.30% 00:00:42 2.02E-15 2300 575 15948 0.30% 00:00:42 7.12E-15 2350 587 17229 0.31% 00:00:54 4.06E-14 2400 600 15989 0.28% 00:00:48 2.39E-14 2450 612 16331 0.27% 00:00:59 1.86E-15 2500 625 19919 0.32% 00:00:58 5.24E-14 2550 637 17408 0.27% 00:01:05 0.00E+00 2600 650 18951 0.28% 00:00:55 7.00E-16 2650 662 18634 0.27% 00:00:57 2.92E-14 2700 675 17860 0.24% 00:01:04 3.37E-16 2750 687 18833 0.25% 00:01:07 1.46E-14 2800 700 21781 0.28% 00:01:09 3.79E-13 2850 712 19635 0.24% 00:01:17 6.38E-16 2900 725 19815 0.24% 00:01:24 3.14E-16 2950 737 19548 0.22% 00:01:27 0.00E+00 3000 750 21029 0.23% 00:01:35 3.33E-15

Page 182: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

171

Tabela 18 - Resultados obtidos na resolução de sistemas de equações lineares com

matrizes da classe E, utilizando o Modelo Proposto, com técnicas de Pivotamento do

Grupo II (Pivotamento Markowitz).

N C Fill-in

Fill-in (%) DURAÇÃO Erro

Relativo(%) 50 12 315 12.60% 00:00:00 8.89E-12 100 25 699 6.99% 00:00:00 2.19E-12 150 37 1098 4.88% 00:00:00 9.70E-14 200 50 1514 3.79% 00:00:00 9.59E-12 250 62 2019 3.23% 00:00:00 2.34E-11 300 75 2336 2.60% 00:00:01 0.00E+00 350 87 2832 2.31% 00:00:00 1.41E-11 400 100 3224 2.02% 00:00:00 5.37E-13 450 112 3603 1.78% 00:00:01 1.78E-13 500 125 3796 1.52% 00:00:00 2.18E-14 550 137 4549 1.50% 00:00:01 2.65E-12 600 150 4726 1.31% 00:00:01 6.06E-15 650 162 5099 1.21% 00:00:01 6.83E-11 700 175 5863 1.20% 00:00:01 4.77E-12 750 187 6147 1.09% 00:00:02 2.57E-12 800 200 6263 0.98% 00:00:02 1.46E-11 850 212 6824 0.94% 00:00:03 1.48E-11 900 225 7449 0.92% 00:00:03 1.01E-15 950 237 7796 0.86% 00:00:03 4.12E-14 1000 250 7631 0.76% 00:00:04 1.73E-14 1050 262 7860 0.71% 00:00:05 1.30E-11 1100 275 8678 0.72% 00:00:05 3.39E-14 1150 287 9036 0.68% 00:00:07 0.00E+00 1200 300 8850 0.61% 00:00:07 1.21E-11 1250 312 9353 0.60% 00:00:08 2.79E-11 1300 325 10781 0.64% 00:00:09 1.40E-15 1350 337 9561 0.52% 00:00:10 1.35E-15 1400 350 11382 0.58% 00:00:12 8.38E-14 1450 362 10432 0.50% 00:00:12 8.18E-13 1500 375 11239 0.50% 00:00:14 3.12E-11 1550 387 12729 0.53% 00:00:16 4.87E-14 1600 400 11541 0.45% 00:00:16 6.99E-14 1650 412 12029 0.44% 00:00:19 1.43E-11 1700 425 13628 0.47% 00:00:20 1.43E-13 1750 437 12589 0.41% 00:00:20 8.42E-14 1800 450 13210 0.41% 00:00:22 1.21E-14 1850 462 14104 0.41% 00:00:24 1.47E-14 1900 475 15266 0.42% 00:00:26 7.64E-11 1950 487 15288 0.40% 00:00:27 4.03E-12 2000 500 16322 0.41% 00:00:30 6.82E-12

Page 183: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

172

N C Fill-in

Fill-in (%) DURAÇÃO Erro

Relativo(%) 2050 512 14609 0.35% 00:00:32 4.40E-13 2100 525 14757 0.33% 00:00:34 6.06E-15 2150 537 17139 0.37% 00:00:40 2.67E-14 2200 550 15283 0.32% 00:00:39 3.07E-12 2250 562 16479 0.33% 00:00:46 4.42E-13 2300 575 18600 0.35% 00:00:48 2.74E-13 2350 587 18663 0.34% 00:00:51 5.46E-12 2400 600 16839 0.29% 00:00:53 7.58E-16 2450 612 18051 0.30% 00:00:58 8.46E-14 2500 625 17347 0.28% 00:00:59 7.28E-16 2550 637 20626 0.32% 00:01:04 3.57E-16 2600 650 18680 0.28% 00:01:10 3.50E-16 2650 662 21265 0.30% 00:01:24 1.78E-14 2700 675 18552 0.25% 00:01:19 4.38E-15 2750 687 21773 0.29% 00:01:24 3.31E-15 2800 700 20059 0.26% 00:01:29 7.53E-12 2850 712 23390 0.29% 00:01:29 1.02E-14 2900 725 20537 0.24% 00:01:34 1.74E-11 2950 737 20015 0.23% 00:01:36 0.00E+00 3000 750 24664 0.27% 00:01:42 1.82E-14

Page 184: DESENVOLVIMENTO DE UM MODELO DE …uenf.br/Uenf/Downloads/POS-ENGPRODUCAO_2397_1190378971.pdf · DINÂMICO DE DADOS PARA RESOLUÇÃO DE SISTEMAS LINEARES ESPARSOS E SEU USO EM PROBLEMAS

173

Tabela 19 – Tempos Computacionais da Resolução de Problemas de Otimização

Não Lineares simulando problemas de Fluxo de Potência Ótima utilizando o Método

Seqüencial Quadrático com o Modelo de Armazenamento Proposto

Método Seqüêncial Quadrático utilizando Modelo Proposto de Armazenamento

Nº de

Barras

Nº de

Variáveis

Nº de

Restrições

Função

Objetivo Linear

Função

Objetivo Não

Linear

50 100 200 00:00:01 00:00:00 100 200 400 00:00:01 00:00:02 150 300 600 00:00:03 00:00:04 200 400 800 00:00:07 00:00:09 250 500 1000 00:00:13 00:00:17 300 600 1200 00:00:21 00:00:27 350 700 1400 00:00:32 00:00:42

Tabela 20 – Tempos Computacionais da Resolução de Problemas de Otimização

Não Lineares simulando problemas de Fluxo de Potência Ótima utilizando o Método

Seqüencial Quadrático com o Modelo de Armazenamento Padrão

Método Seqüêncial Quadrático utilizando Modelo de Armazenamento Padrão

Nº de

Barras

Nº de

Variáveis

Nº de

Restrições

Função

Objetivo Linear

Função

Objetivo Não

Linear

50 100 200 00:00:02 00:00:01 100 200 400 00:00:08 00:00:11 150 300 600 00:00:25 00:00:38 200 400 800 00:00:59 00:01:29 250 500 1000 00:01:52 00:02:54 300 600 1200 00:03:12 00:05:37 350 700 1400 00:05:11 00:09:49