MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 [email protected]...

32
MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 [email protected] ARMAZENAMENTO DE MATRIZES ESPARSAS

Transcript of MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 [email protected]...

Page 1: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

MATRIZES ESPARSAS

PAULO CÉSAR BARBOSA FERNANDES – 2011/1

[email protected]

ARMAZENAMENTO DE MATRIZES ESPARSAS

Page 2: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

AGENDA

• Introdução

• Objetivo

• Tipos de armazenamento

• Índice• Linha• Coluna

• Comparação entre as abordagens

• Estudo de caso

• Conclusão

Page 3: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

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.

Page 4: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

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%

Page 5: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

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.)

Page 6: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

OBJETIVO

• Diminuir a quantidade de memória necessária para armazenar as informações;

10 0 2 3 5 0 2 0 6 0 5 0 0 2 5 6

0 2 6 0 1 0 3 0 0 2 0 0 0 5 0 8

1 0 2 0 0 3 0 0 5 0 5 0 6 0 7 0

10 2 3 5 2 6 5 2 5 6 2 6 1 3 2 5

8 1 2 3 5 5 6 7

Armazenando valores zero:

Não armazenando valores zero:

Page 7: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

ARMAZENAMENTO POR ÍNDICE

Page 8: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

STOREGE-BY-INDICES

A 11 13 21 22 24 32 33 36 43 44 45 61 62 65 66

I 1 1 2 2 2 3 3 3 4 4 4 6 6 6 6

J 1 3 1 2 4 2 3 5 3 4 5 1 2 5 6

Page 9: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

A 11 13 21 22 24 32 33 36 43 44 45 61 62 65 66

I 1 1 2 2 2 3 3 3 4 4 4 6 6 6 6

J 1 3 1 2 4 2 3 5 3 4 5 1 2 5 6

STOREGE-BY-INDICES

Espaço necessário:3 x Elementos não nulos

Elementos matriz: 36Elementos não nulos: 15Para armazenamento: 45

Page 10: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

ARMAZENAMENTO POR LINHA

Page 11: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

STOREGE-BY-ROWS

AR 11 13 21 22 24 32 33 43 44 46 61 62 66

IA

JA

Page 12: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

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

Page 13: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

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

Page 14: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

Espaço necessário:2 x Elementos não nulos + Nº Linhas + 1

Elementos matriz: 36Elementos não nulos: 13Para 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)

Page 15: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

ARMAZENAMENTO POR COLUNA

Page 16: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

STOREGE-BY-COLUMNS

AR 11 21 61 22 32 62 13 33 43 24 44 46 66

IA

JA

Armazenando coluna por coluna

Page 17: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

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

Page 18: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

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

Page 19: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

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) Espaço necessário:2 x Elementos não nulos + Nº Colunas + 1

Elementos matriz: 36Elementos não nulos: 13Para armazenamento: 33

Page 20: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

COMPARANDO

Linhas Colunas Qtd Redução

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 Redução

43,00 19,44-

20.201,00 1,01-

20.001.001,00 0,01-

260.013.001,00 0,01-

Qtd Redução

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

Dimensão Matriz Quantidade

Posições

Percentual

posições nulas

Quantidadede

posições não nulas

Com 50 % de posições nulasCom 50 % de posições nulas

Page 21: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

COMPARANDO

Linhas Colunas Qtd Redução

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 Redução

32,20 10,56

14.201,00 29,00

14.001.001,00 29,99

182.013.001,00 29,99

Qtd Redução

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

Dimensão Matriz Quantidade

Posições

Percentual

posições nulas

Quantidadede

posições não nulas

Com 65 % de posições nulasCom 65 % de posições nulas

Page 22: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

COMPARANDO

Linhas Colunas Qtd Redução

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 Redução

28,60 20,56

12.201,00 39,00

12.001.001,00 39,99

156.013.001,00 39,99

Qtd Redução

32,40 10,00

18.000,00 10,00

18.000.000,00 10,00

234.000.000,00 10,00

Linha

Indice

Coluna

Dimensão Matriz Quantidade

Posições

Percentual

posições nulas

Quantidadede

posições não nulas

Com 70 % de posições nulasCom 70 % de posições nulas

Page 23: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

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;

Page 24: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

O REGISTRO ELETRÔNICO

• O profissional faz o diagnóstico do paciente em seu prontuário;

Page 25: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

MODELO VETORIAL

Matriz esparsa

Page 26: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

O CALCULO

• Cosseno(d1,q) = 0,71

• Cosseno(d2,q) = 0

• Cosseno(d3,q) = 0,63

Page 27: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

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

Page 28: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

DEMONSTRAÇÃO

• 16.823.105 x 8 bytes = 128,35 MB

• 128,35 MB – 69,9 % = 38,63 MB

Tipo ArmazenamentoDimensão

MatrizQuantidade

Posições

Percentual posições

nulas

Quantidadede posições não

nulas

Linha

LinhasColuna

s Qtd Redução

19909 845 16.823.105,00

85,00

2.523.465,75

5.066.841,50 69,88

ColunaQtd Redução

5.047.777,50 69,99

Page 29: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

DEMONSTRAÇÃO

Page 30: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

DEMONSTRAÇÃO

Page 31: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

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;

Page 32: MATRIZES ESPARSAS PAULO CÉSAR BARBOSA FERNANDES – 2011/1 paulo.cesar@vitoria.es.gov.br ARMAZENAMENTO DE MATRIZES ESPARSAS.

OBRIGADO !!!

DÚVIDASDÚVIDAS

Paulo César Barbosa Fernandes – [email protected]