1 / 33

Matrizes esparsas

Matrizes esparsas. Armazenamento de Matrizes Esparsas. Paulo César Barbosa Fernandes – 2011/1. paulo.cesar@vitoria.es.gov.br. Agenda. Introdução Objetivo Tipos de armazenamento Índice Linha Coluna Comparação entre as abordagens Estudo de caso Conclusão. Introdução.

lieu
Download Presentation

Matrizes esparsas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Matrizes esparsas Armazenamento de Matrizes Esparsas Paulo César Barbosa Fernandes – 2011/1 paulo.cesar@vitoria.es.gov.br

  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: 48 posições ocupadas • Não armazenando valores zero: 24 posições ocupadas

  7. Armazenamento por índice

  8. Storege-by-indices

  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

  10. Armazenamento por Linha

  11. Storege-by-rows • Armazenando linha por linha

  12. Storege-by-rows • Primeiro índice de cada linha

  13. Storege-by-rows • Índice do elemento na coluna

  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

  15. Armazenamento por coluna

  16. Storege-by-columns • Armazenando coluna por coluna

  17. Storege-by-columns • Preenchendo índice da linha de cada elemento

  18. Storege-by-columns • Primeiro índice de cada coluna

  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

  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. Exemplo atestado

  25. O registro eletrônico • O profissional faz o diagnóstico do paciente em seu prontuário;

  26. Modelo vetorial Matriz esparsa

  27. O calculo • Cosseno(d1,q) = 0,71 • Cosseno(d2,q) = 0 • Cosseno(d3,q) = 0,63

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

  29. demonstração • 16.823.105 x 8 bytes = 128,35 MB • 128,35 MB – 69,9 % = 38,63 MB

  30. demonstração

  31. demonstração

  32. 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;

  33. Obrigado !!! • Paulo César Barbosa Fernandes – paulo.cesar@vitoria.es.gov.br DÚVIDAS

More Related