Quadro maior por trás da escolha de matrizes no algoritmo de Strassen


17

No algoritmo Strassen, para calcular o produto de duas matrizes e B , as matrizes A e B estão divididos em 2 × 2 matrizes de blocos e o algoritmo procede de forma recursiva computação 7 bloco produtos matriz-matriz, por oposição a um naive 8 matriz-bloco produtos matriciais, ou seja, se queremos C = A B , onde A = [ A 1 , 1 A 1 , 2 A 2 , 1 A 2 , 2UMABUMAB2×278C=UMAB então temos C 1 , 1 = A 1 , 1 B 1 , 1 + A 1

UMA=[UMA1 1,1 1UMA1 1,2UMA2,1 1UMA2,2] , B=[B1 1,1 1B1 1,2B2,1 1B2,2] , C=[C1 1,1 1C1 1,2C2,1 1C2,2]
que requer8multiplicações. Em vez disso, em Strassen, calculamos M 1 :=( A 1 , 1 + A 2 , 2 )( B 1 , 1 + B 2 , 2 )
C1 1,1 1=UMA1 1,1 1B1 1,1 1+UMA1 1,2B2,1 1C1 1,2=UMA1 1,1 1B1 1,2+UMA1 1,2B2,2C2,1 1=UMA2,1 1B1 1,1 1+UMA2,2B2,1 1C2,2=UMA2,1 1B1 1,2+UMA2,2B2,2
8 e obtenha C i , j usando M k 's como C 1 , 1 = M 1 + M 4 - M 5 + M 7
M1 1: =(UMA1 1,1 1+UMA2,2)(B1 1,1 1+B2,2)M2: =(UMA2,1 1+UMA2,2)B1 1,1 1M3: =UMA1 1,1 1(B1 1,2-B2,2)M4: =UMA2,2(B2,1 1-B1 1,1 1)M5: =(UMA1 1,1 1+UMA1 1,2)B2,2M6: =(UMA2,1 1-UMA1 1,1 1)(B1 1,1 1+B1 1,2)M7: =(UMA1 1,2-UMA2,2)(B2,1 1+B2,2)
CEu,jMk No entanto, a escolha das matrizes M k 's me parece arbitrária. Existe uma imagem maior do motivo pelo qual escolhemos esses produtos específicos das sub-matrizes de A e B ? Além disso, eu esperaria M k 's para envolver A i , j ' s e B i , j é de uma forma simétrica, o que não parece ser o caso aqui. Por exemplo, temos M 2 :=
C1 1,1 1=M1 1+M4-M5+M7C1 1,2=M3+M5C2,1 1=M2+M4C2,2=M1 1-M2+M3+M6
MkUMABMkUMAEu,jBEu,j . Eu esperaria que sua contraparte diga A 1 , 1 ( B 1 , 2 + B 2 , 2 ) também seja computada. No entanto, isso não é uma vez que pode ser obtido a partir de outros M k 's.M2: =(UMA2,1 1+UMA2,2)B1 1,1 1UMA1 1,1 1(B1 1,2+B2,2)Mk

Eu apreciaria se alguém pudesse lançar alguma luz sobre isso.

Respostas:


15

2×22×2

2×2

Schönhage me disse uma vez que Strassen uma vez disse a ele que encontrou seu algoritmo dessa maneira, tentando provar um limite inferior.


11

UMA0 0,UMA1 1,UMA2,UMA3B0 0,B1 1,B2,B32×2UMAEuBj{0 0,UMA0 0,UMA1 1,UMA2,UMA3,B0 0,B1 1,B2,B3}UMA0 0=B0 0UMABUMA0 0=B0 0,UMA1 1,UMA2,UMA3,B1 1,B2,B3M

Não sei se Strassen teve essa maneira de encarar. Considerando outras identidades subjacentes aos algoritmos de multiplicação rápida de matriz, não está claro se há algo profundo acontecendo, sob alguma fórmula elaborada. Já falamos sobre isso antes - Lagrange usou a identidade de quatro quadrados (que era conhecida antes) para provar o teorema dos quatro quadrados. A princípio, deve ter sido apenas uma identidade algébrica curiosa, mas agora sabemos que afirma a propriedade de multiplicatividade da norma de quaternião. Dado o estado atual do conhecimento, é difícil dizer se a interpretação acima é tão produtiva.


3
2×2
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.