A apresentação descreve o problema da multiplicação entre matrizes, descrevendo as principais características e métodos de resolução. São abortados os métodos tradicional, de Strassen, Winograd e Coppersmith-Winograd
O uso de tecnologias de big data na concepção e execução de estratégias de en...
Multiplicação de Matrizes
1. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Multiplica¸c˜ao de Matrizes
Do O(n3
) ao O(n2
)
Diego Antonio Lusa
Universidade de Passo Fundo
3 de julho de 2014
1 / 29
2. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Roteiro
1 Matrizes
Opera¸c˜oes envolvendo matrizes
2 Matrizes e a Computa¸c˜ao
3 M´etodos para multiplica¸c˜ao de matrizes
Tradicional
Strassen
Winograd
Coppersmith-Winograd
Considera¸c˜oes acerca dos m´etodos
4 Considera¸c˜oes finais
2 / 29
3. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Opera¸c˜oes envolvendo matrizes
Matrizes
Arranjo retangular composto por m linhas e n colunas;
Cada elemento ´e identificado em termos da linha e coluna a
qual pertence;
Quando o n´umero de colunas m for igual ao n´umeros de
linhas n, a matriz ´e dita quadrada de ordem n;
Matriz gen´erica
M3×4 =
m11 m12 m13 m14
m21 m22 m23 m24
m31 m32 m33 m34
3 / 29
5. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Opera¸c˜oes envolvendo matrizes
Matriz Identidade
A matriz identidade possui todos os elementos da diagonal
principal iguais a 1;
Os demais elementos s˜ao todos iguais a 0 (zero);
Caracteriza-se por ser o elemento neutro em opera¸c˜oes de
multiplica¸c˜ao;
Matriz Identidade
I3 =
1 0 0
0 1 0
0 0 1
5 / 29
6. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Opera¸c˜oes envolvendo matrizes
Representa¸c˜ao Computacional
Representadas atrav´es de tipos de dados estruturados;
Os arranjos s˜ao as estruturas comumente utilizadas para
armazenar matrizes;
Algoritmo gen´erico
1. define A[2][2];
2. A[1][2] = 3;
6 / 29
7. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Opera¸c˜oes envolvendo matrizes
Opera¸c˜oes
Pode-se aplicar opera¸c˜oes como soma, subtra¸c˜ao e
multiplica¸c˜ao em matrizes;
A soma requer o mesmo n´umero de linhas e colunas em
ambas as matrizes;
A complexidade assint´otica de uma opera¸c˜ao de soma ´e igual
a O(n2);
Considerando-se duas matrizes quaisquer A e B, a opera¸c˜ao
de adi¸c˜ao C = A + B ´e definida por:
Defini¸c˜ao matem´atica da soma
cij = aij + bij
7 / 29
9. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Opera¸c˜oes envolvendo matrizes
Opera¸c˜oes - Multiplica¸c˜ao
A multiplica¸c˜ao requer que o n´umero de colunas da primeira
matriz seja igual ao n´umero de linhas da segunda;
A complexidade assint´otica de uma opera¸c˜ao de multiplica¸c˜ao
´e igual a O(n3);
A multiplica¸c˜ao de matrizes ´e associativa, mas n˜ao ´e
comutativa. A × B × C ´e identico a A × (B × C). Contudo,
A × B ´e diferente de B × A;
Defini¸c˜ao matem´atica da multiplica¸c˜ao
pij =
a
k=1
mik × nkj
9 / 29
11. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Matrizes e a Computa¸c˜ao
A multiplica¸c˜ao de matrizes ´e uma das opera¸c˜oes mais b´asicas
para a computa¸c˜ao num´erica e simb´olica;
Aplica-se a diversos problemas de ´algebra linear, fatora¸c˜ao
polinomial, transforma¸c˜oes geom´etricas, entre outros;
O c´alculo do produto entre matrizes ´e uma opera¸c˜ao que
apresenta complexidade assint´otica O(n3);
Por muito tempo pensou-se que n˜ao seria poss´ıvel reduzir este
complexidade;
11 / 29
12. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Tradicional
Strassen
Winograd
Coppersmith-Winograd
Considera¸c˜oes acerca dos m´etodos
M´etodos para multiplica¸c˜ao de matrizes
Por meio de pesquisas, demostrou-se que seria poss´ıvel obter
coeficientes de complexidade menores que O(n3);
Neste contexto, destacam-se os m´etodos de:
Strassen
Winograd
Coppersmith-Winograd
12 / 29
13. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Tradicional
Strassen
Winograd
Coppersmith-Winograd
Considera¸c˜oes acerca dos m´etodos
M´etodo Tradicional
Possui complexidade assint´otica O(n3);
At´e 1960, era considerado o algoritmo ´otimo;
Caracter´ısticas
Executa (n3) multiplica¸c˜oes;
Executa n2(n − 1) somas;
13 / 29
14. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Tradicional
Strassen
Winograd
Coppersmith-Winograd
Considera¸c˜oes acerca dos m´etodos
Pseudo-algoritmo
1. define A[2][2];
2. define B[2][3];
3. define C[2][3];
4. para cada i de 1 a 2 fa¸ca:
5. para cada j de 1 a 3 fa¸ca:
6. para cada k de 1 a 2 fa¸ca:
7. C[i][j] = C[i][j] + A[i][k]*B[k][j];
8. fim para;
9. fim para;
10. fim para;
14 / 29
15. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Tradicional
Strassen
Winograd
Coppersmith-Winograd
Considera¸c˜oes acerca dos m´etodos
M´etodo de Strassen
Desenvolvido pelo matem´atico alem˜ao Volker Strassen em
1969;
Obteve complexidade assint´otica O(nlog 7) ;
Serviu de referˆencia para trabalhos posteriores;
Enquanto o m´etodo tradicional requer 8 multiplica¸c˜oes e 4
somas para multiplicar duas matrizes de ordem 2, o m´etodo
de Strassem executa 7 multiplica¸c˜oes e 18 somas/subtra¸c˜oes;
Requer que a ordem das matrizes seja quadrada;
Caracter´ısticas
Executa 7 n
2
3
multiplica¸c˜oes;
Executa (11n − 4) × n2
4 somas;
15 / 29
21. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Tradicional
Strassen
Winograd
Coppersmith-Winograd
Considera¸c˜oes acerca dos m´etodos
M´etodos de Winograd
Criado por Shmuel Winograd, em 1987;
Possui a mesma complexidade assint´otica que o m´etodo de
Strassen;
Requer um n´umero menor de somas e subtra¸c˜oes se
comparado ao m´etodo de Strassen.
Em contrapartida, necessita de um n´umero maior de passos;
Caracter´ısticas
Executa 7 n
2
3
multiplica¸c˜oes;
Executa 19n3
8 − n2 somas/subtra¸c˜oes;
21 / 29
22. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Tradicional
Strassen
Winograd
Coppersmith-Winograd
Considera¸c˜oes acerca dos m´etodos
Etapas do processo
S1 = A21 + A22
S2 = S1 − A11
S3 = A11 − A21
S4 = A12 − S2
T1 = B12 − B11
T2 = B22 − T1
T3 = B22 − B12
T4 = B21 − T2
22 / 29
23. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Tradicional
Strassen
Winograd
Coppersmith-Winograd
Considera¸c˜oes acerca dos m´etodos
Etapas do processo
P1 = A11 × B11
P2 = A12 × B21
P3 = S1 × T1
P4 = S2 × T2
P5 = S3 × T3
P6 = S4 × B22
P7 = A22 × T4
23 / 29
24. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Tradicional
Strassen
Winograd
Coppersmith-Winograd
Considera¸c˜oes acerca dos m´etodos
Etapas do processo
U1 = P1 + P2
U2 = P1 + P4
U3 = U2 + P5
U4 = U3 + P7
U5 = U3 + P3
U6 = U2 + P3
U7 = U6 + P6
C11 = U1
C12 = U7
C21 = U4
C22 = U5
24 / 29
25. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Tradicional
Strassen
Winograd
Coppersmith-Winograd
Considera¸c˜oes acerca dos m´etodos
M´etodo Coppersmith-Winograd
M´etodo criado por Don Coppersmith e Shmuel Winograd em
1987;
Foi o primeiro algoritmo da hist´oria a obter coeficiente de
complexidade inferior a 2.5;
A complexidade do m´etodo ´e O(n2.376);
Permaneceu por duas d´ecadas como o m´etodo mais eficiente
conhecido;
Maior contribui¸c˜ao te´orica do que pr´atica;
25 / 29
26. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Tradicional
Strassen
Winograd
Coppersmith-Winograd
Considera¸c˜oes acerca dos m´etodos
Considera¸c˜oes acerca dos m´etodos
O algoritmo de Strassen teve grande importˆancia na evolu¸c˜ao
dos m´etodos;
Contudo, o m´etodo de Strassen apresenta certa instabilidade
num´erica e cont´em um fator oculto de complexidade
consider´avel;
As submatrizes necess´arias ao processo consomem espa¸co;
O m´etodo de Don Coppersmith e Shmuel Winograd teve
maior contribui¸c˜ao te´orica do que pr´atica;
Em 2012, no trabalho “Multiplying matrices faster than
Coppersmith-Winograd”, Virginia Vassileska Williams provou
ter alcan¸cado coeficiente de complexidade igual a O(n2.3729);
O M´etodo Tradicional continua a ter ampla aplicabilidade;
26 / 29
27. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Tradicional
Strassen
Winograd
Coppersmith-Winograd
Considera¸c˜oes acerca dos m´etodos
Evolu¸c˜ao dos coeficientes de complexidade para o problema do
c´alculo do produto entre matrizes
Ano Autor(es) Complexidade
1969 Strassen log2 8 ≈ 2.807
1979 Bini, Capovani, Romani e Lotti’s 3 log12 10 ≈ 2.779
1981 Sch¨onhage log6 5 ≈ 2.694
1986 Strassen (laser method) 2.48
1989 Coppersmith e Winograd 2.376
2012 Virginia Vassilevska Williams 2.3729
27 / 29
28. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Tradicional
Strassen
Winograd
Coppersmith-Winograd
Considera¸c˜oes acerca dos m´etodos
Compara¸c˜ao entre os m´etodos em rela¸c˜ao ao n´umero de opera¸c˜oes
de somas e multiplica¸c˜oes necess´arias
Tam. (n) Tradicional Strassen Winograd
Multip. Somas Multip. Somas Multip. Somas
2 8 4 7 18 7 15
4 64 48 56 160 56 136
8 512 448 448 1.344 448 1.152
16 4.096 3.840 3.584 11.008 3.584 9.472
32 32.768 31.744 28.672 89.088 28.672 76.800
64 262.144 258.048 229.376 716.800 229.376 618.496
128 2.097.152 2.080.768 1.835.008 5.750.784 1.835.008 4.964.352
256 16.777.216 16.711.680 14.680.064 46.071.808 14.680.064 39.780.352
28 / 29
29. Matrizes
Matrizes e a Computa¸c˜ao
M´etodos para multiplica¸c˜ao de matrizes
Considera¸c˜oes finais
Considera¸c˜oes finais
O c´alculo do produto entre matrizes ´e umas das opera¸c˜oes
mais b´asicas tanto para a matem´atica quanto para a
computa¸c˜ao;
O trabalho de Volker Strassen foi muito importante nas
pesquisas por m´etodos mais eficientes;
O m´etodo mais adequado para o c´alculo do produto entre
matrizes depende do contexto;
A aplica¸c˜ao do m´etodo de Strassen em matrizes muito
pequenas talvez n˜ao seja mais adequada;
A principal quest˜ao neste contexto ´e dimensionar
numericamente a percep¸c˜ao emp´ırica do que ´e “pequeno” e
“grande”;
Mesmo considerando os avan¸cos, o m´etodo tradicional
continua tendo ampla aplicabilidade;
29 / 29