A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Paulo César Barbosa Fernandes – 2011/1

Apresentações semelhantes


Apresentação em tema: "Paulo César Barbosa Fernandes – 2011/1"— Transcrição da apresentação:

1 Paulo César Barbosa Fernandes – 2011/1
Matrizes esparsas Armazenamento de Matrizes Esparsas Paulo César Barbosa Fernandes – 2011/1

2 Agenda Introdução Objetivo Tipos de armazenamento Índice Linha Coluna
Comparação entre as abordagens Estudo de caso Conclusão

3 INTRODUÇÃO Uma matriz é dita esparsa quando a maioria de seus elementos são iguais a zero. Por exemplo: Muito espaço em memória seria economizado se apenas os elementos não nulos fossem armazenados.

4 INTRODUÇÃO 42 posições na matriz;
7 posições com valor diferente de zero; Supondo 4 bytes para cada posição, temos: 42 * 4 = 168 bytes 7 * 4 = 28 bytes Uma economia de 83%

5 INTRODUÇÃO A elaboração de uma representação para matrizes esparsas deve levar em consideração: Facilidade de acesso tanto para linhas como para colunas (preservar a natureza bidimensional da matriz). Eficiência nas operações (soma, multiplicação, etc.)

6 Objetivo Diminuir a quantidade de memória necessária para armazenar as informações; Armazenando valores zero: 10 2 3 5 6 1 8 7 Não armazenando valores zero: 10 2 3 5 6 1 8 7

7 Armazenamento por índice

8 Storege-by-indices A 11 13 21 22 24 32 33 36 43 44 45 61 62 65 66 I 1
A 11 13 21 22 24 32 33 36 43 44 45 61 62 65 66 I 1 2 3 4 6 J 5

9 Storege-by-indices Espaço necessário: 3 x Elementos não nulos
Elementos matriz: 36 Elementos não nulos: 15 Para armazenamento: 45 A 11 13 21 22 24 32 33 36 43 44 45 61 62 65 66 I 1 2 3 4 6 J 5

10 Armazenamento por Linha

11 Storege-by-rows AR 11 13 21 22 24 32 33 43 44 46 61 62 66 IA JA

12 Storege-by-rows Primeiro índice de cada linha AR 11 13 21 22 24 32 33
Primeiro índice de cada linha AR 11 13 21 22 24 32 33 43 44 46 61 62 66 IA 1 3 6 8 14 JA

13 Storege-by-rows Índice do elemento na coluna AR 11 13 21 22 24 32 33
Índice do elemento na coluna AR 11 13 21 22 24 32 33 43 44 46 61 62 66 IA 1 3 6 8 14 JA 2 4

14 Storege-by-rows (4,3) Espaço necessário:
2 x Elementos não nulos + Nº Linhas + 1 Elementos matriz: 36 Elementos não nulos: 13 Para armazenamento: 33 AR 11 13 21 22 24 32 33 43 44 46 61 62 66 IA 1 3 6 8 14 JA 2 4

15 Armazenamento por coluna

16 Storege-by-columns Armazenando coluna por coluna AR 11 21 61 22 32 62
Armazenando coluna por coluna AR 11 21 61 22 32 62 13 33 43 24 44 46 66 IA JA

17 Storege-by-columns Preenchendo índice da linha de cada elemento AR 11
Preenchendo índice da linha de cada elemento AR 11 21 61 22 32 62 13 33 43 24 44 46 66 IA 1 2 6 3 4 JA

18 Storege-by-columns Primeiro índice de cada coluna AR 11 21 61 22 32 62
Primeiro índice de cada coluna AR 11 21 61 22 32 62 13 33 43 24 44 46 66 IA 1 2 6 3 4 JA 7 10 12 14

19 Storege-by-columns (4,3) Espaço necessário:
2 x Elementos não nulos + Nº Colunas + 1 Elementos matriz: 36 Elementos não nulos: 13 Para armazenamento: 33 (4,3) AR 11 21 61 22 32 62 13 33 43 24 44 46 66 IA 1 2 6 3 4 JA 7 10 12 14

20 Comparando Com 50 % de posições nulas

21 Comparando Com 65 % de posições nulas

22 Comparando Com 70 % de posições nulas

23 Estudo de caso Um sistema de informação que possa auxiliar um profissional médico na classificação da doença do paciente; Como é feito essa classificação ? Através do CID (Classificação Internacional de Doenças); A grande maioria dos diagnósticos médicos pode ser encontrado e associado a um código; O código vale para qualquer país; O médico vendo o código já sabe qual é a doença;

24 O REGISTRO ELETRÔNICO O profissional faz o diagnóstico do paciente em seu prontuário;

25 Modelo vetorial Matriz esparsa

26 O calculo Cosseno(d1,q) = 0,71 Cosseno(d2,q) = 0 Cosseno(d3,q) = 0,63

27 O problema... Necessário 1.983,64 MB Com redução de 40 % - 1.190,18 MB
Mais de diagnósticos; Mais de palavras; Sendo mais de CID; Uma matriz : X = double (8 bytes) Necessário 1.983,64 MB Com redução de 40 % ,18 MB 70 % dos elementos nulos

28 Percentual posições nulas Quantidadede posições não nulas
DEMONSTRAÇÃO Tipo Armazenamento Dimensão Matriz Quantidade Posições Percentual posições nulas Quantidadede posições não nulas Linha Linhas Colunas Qtd Redução 19909 845 ,00 85,00 ,75 ,50 69,88 Coluna ,50 69,99 x 8 bytes = 128,35 MB 128,35 MB – 69,9 % = 38,63 MB

29 DEMONSTRAÇÃO

30 DEMONSTRAÇÃO

31 CONCLUSÃO Nem sempre é vantagem utilizar matrizes esparsas;
Quando utilizado adequadamente o ganho pode ser muito vantajoso; Devemos observar na nova forma de armazenamento, que: Diminuímos o espaço necessário para armazenar; Aumentamos o custo computacional;

32 Obrigado !!! Paulo César Barbosa Fernandes – DÚVIDAS


Carregar ppt "Paulo César Barbosa Fernandes – 2011/1"

Apresentações semelhantes


Anúncios Google