AGENDA Introduo Objetivo Tipos de armazenamento ndice Linha Coluna Comparao entre as abordagens Estudo de caso Concluso
INTRODUO Uma matriz dita esparsa quando a maioria de seus elementos so iguais a zero. Por exemplo:
Muito espao em memria seria economizado se apenas os elementos no nulos fossem armazenados. INTRODUO
42 posies na matriz; 7 posies com valor diferente de zero; Supondo 4 bytes para cada posio, temos: 42 * 4 = 168 bytes 7 * 4 = 28 bytes Uma economia de 83%
INTRODUO A elaborao de uma representao para matrizes esparsas deve levar em considerao: Facilidade de acesso tanto para linhas como para colunas (preservar a natureza bidimensional da matriz). Eficincia nas operaes (soma, multiplicao, etc.)
Elementos matriz: 36 Elementos no nulos: 15 Para armazenamento: 45 ARMAZENAMENTO POR LINHA STOREGE-BY-ROWS AR 11 13 21 22 24 32 33 43 44 46 61 62 66 IA JA Armazenando linha por linha AR 11 13 21 22 24 32 33 43 44 46 61 62 66 IA 1 3 6 8 11 11 14 JA STOREGE-BY-ROWS Primeiro ndice de cada linha AR 11 13 21 22 24 32 33 43 44 46 61 62 66 IA 1 3 6 8 11 11 14 JA 1 3 1 2 4 2 3 3 4 6 1 2 6 STOREGE-BY-ROWS ndice do elemento na coluna Espao necessrio: 2 x Elementos no nulos + N Linhas + 1
Elementos matriz: 36 Elementos no nulos: 13 Para armazenamento: 33 STOREGE-BY-ROWS AR 11 13 21 22 24 32 33 43 44 46 61 62 66 IA 1 3 6 8 11 11 14 JA 1 3 1 2 4 2 3 3 4 6 1 2 6 (4,3) ARMAZENAMENTO POR COLUNA STOREGE-BY-COLUMNS AR 11 21 61 22 32 62 13 33 43 24 44 46 66 IA JA Armazenando coluna por coluna STOREGE-BY-COLUMNS AR 11 21 61 22 32 62 13 33 43 24 44 46 66 IA 1 2 6 2 3 6 1 3 4 2 4 4 6 JA Preenchendo ndice da linha de cada elemento STOREGE-BY-COLUMNS AR 11 21 61 22 32 62 13 33 43 24 44 46 66 IA 1 2 6 2 3 6 1 3 4 2 4 4 6 JA 1 4 7 10 12 12 14 Primeiro ndice de cada coluna STOREGE-BY-COLUMNS AR 11 21 61 22 32 62 13 33 43 24 44 46 66 IA 1 2 6 2 3 6 1 3 4 2 4 4 6 JA 1 4 7 10 12 12 14 (4,3) Espao necessrio: 2 x Elementos no nulos + N Colunas + 1
Elementos matriz: 36 Elementos no nulos: 13 Para armazenamento: 33 COMPARANDO Linhas Colunas Qtd Reduo 6 6 36,00 50,00 18,00 43,00 19,44 - 100 200 20.000,00 50,00 10.000,00 20.101,00 0,50 - 20000 1000 20.000.000,00 50,00 10.000.000,00 20.020.001,00 0,10 - 20000 13000 260.000.000,00 50,00 130.000.000,00 260.020.001,00 0,01 - Qtd Reduo 43,00 19,44 - 20.201,00 1,01 - 20.001.001,00 0,01 - 260.013.001,00 0,01 - Qtd Reduo 54,00 50,00 - 30.000,00 50,00 - 30.000.000,00 50,00 - 390.000.000,00 50,00 - Linha Indice Coluna Tipo Armazenamento Dimenso Matriz Quantidade Posies Percentual posies nulas Quantidadede posies no nulas Com 50 % de posies nulas COMPARANDO Linhas Colunas Qtd Reduo 6 6 36,00 65,00 12,60 32,20 10,56 100 200 20.000,00 65,00 7.000,00 14.101,00 29,50 20000 1000 20.000.000,00 65,00 7.000.000,00 14.020.001,00 29,90 20000 13000 260.000.000,00 65,00 91.000.000,00 182.020.001,00 29,99 Qtd Reduo 32,20 10,56 14.201,00 29,00 14.001.001,00 29,99 182.013.001,00 29,99 Qtd Reduo 37,80 5,00 - 21.000,00 5,00 - 21.000.000,00 5,00 - 273.000.000,00 5,00 - Linha Indice Coluna Tipo Armazenamento Dimenso Matriz Quantidade Posies Percentual posies nulas Quantidadede posies no nulas Com 65 % de posies nulas COMPARANDO Linhas Colunas Qtd Reduo 6 6 36,00 70,00 10,80 28,60 20,56 100 200 20.000,00 70,00 6.000,00 12.101,00 39,50 20000 1000 20.000.000,00 70,00 6.000.000,00 12.020.001,00 39,90 20000 13000 260.000.000,00 70,00 78.000.000,00 156.020.001,00 39,99 Qtd Reduo 28,60 20,56 12.201,00 39,00 12.001.001,00 39,99 156.013.001,00 39,99 Qtd Reduo 32,40 10,00 18.000,00 10,00 18.000.000,00 10,00 234.000.000,00 10,00 Linha Indice Coluna Dimenso Matriz Quantidade Posies Percentual posies nulas Quantidadede posies no nulas Com 70 % de posies nulas ESTUDO DE CASO Um sistema de informao que possa auxiliar um profissional mdico na classificao da doena do paciente;
Como feito essa classificao ? Atravs do CID (Classificao Internacional de Doenas); A grande maioria dos diagnsticos mdicos pode ser encontrado e associado a um cdigo; O cdigo vale para qualquer pas; O mdico vendo o cdigo j sabe qual a doena; EXEMPLO ATESTADO O REGISTRO ELETRNICO O profissional faz o diagnstico do paciente em seu pronturio; MODELO VETORIAL Matriz esparsa O CALCULO Cosseno(d1,q) = 0,71 Cosseno(d2,q) = 0 Cosseno(d3,q) = 0,63 O PROBLEMA... Mais de 30.000 diagnsticos; Mais de 20.000 palavras; Sendo mais de 13.000 CID;
Uma matriz : 20.000 X 13.000 = 260.000.000 double (8 bytes) Necessrio 1.983,64 MB Com reduo de 40 % - 1.190,18 MB 70 % dos elementos nulos DEMONSTRAO 16.823.105 x 8 bytes = 128,35 MB 128,35 MB 69,9 % = 38,63 MB Tipo Armazenamento Dimenso Matriz Quantidade Posies Percentual posies nulas Quantidadede posies no nulas Linha Linhas Colunas Qtd Reduo 19909 845 16.823.105,00 85,00 2.523.465,75 5.066.841,50 69,88 Coluna Qtd Reduo 5.047.777,50 69,99 DEMONSTRAO DEMONSTRAO CONCLUSO Nem sempre vantagem utilizar matrizes esparsas; Quando utilizado adequadamente o ganho pode ser muito vantajoso; Devemos observar na nova forma de armazenamento, que: Diminumos o espao necessrio para armazenar; Aumentamos o custo computacional; OBRIGADO !!!
Paulo Csar Barbosa Fernandes paulo.cesar@vitoria.es.gov.br