Una imagen más grande detrás de la elección de matrices en el algoritmo de Strassen

17

En el algoritmo de Strassen, para calcular el producto de dos matrices y , las matrices y se dividen en matrices de bloques y el algoritmo procede calcular recursivamente productos de matriz de matriz de bloques en lugar de productos de matriz de matriz de bloques ingenuos , es decir, si queremos , donde B A B 2 × 2 7 8 C = A B A = [ A 1 , 1 A 1 , 2 A 2 , 1 A 2 , 2 ]  ,  B = [ B 1 , 1 B 1 , 2 B 2 , 1 B 2 , 2 ]  ,  C = [ C 1 ,ABAB2×278C=AB

A=[A1,1A1,2A2,1A2,2] , B=[B1,1B1,2B2,1B2,2] , C=[C1,1C1,2C2,1C2,2]
entonces tenemos que requiere
C1,1=A1,1B1,1+A1,2B2,1C1,2=A1,1B1,2+A1,2B2,2C2,1=A2,1B1,1+A2,2B2,1C2,2=A2,1B1,2+A2,2B2,2
8multiplicaciones En cambio, en Strassen, calculamos y obtén usa como
M1:=(A1,1+A2,2)(B1,1+B2,2)M2:=(A2,1+A2,2)B1,1M3:=A1,1(B1,2B2,2)M4:=A2,2(B2,1B1,1)M5:=(A1,1+A1,2)B2,2M6:=(A2,1A1,1)(B1,1+B1,2)M7:=(A1,2A2,2)(B2,1+B2,2)
Ci,jMk
C1,1=M1+M4M5+M7C1,2=M3+M5C2,1=M2+M4C2,2=M1M2+M3+M6
Sin embargo, la elección de las matrices me parece arbitraria. ¿Hay una idea más amplia de por qué elegimos estos productos específicos de submatrices de \ mathbf {A} y \ mathbf {B} ? Además, esperaría que \ mathbf {M} _k 's involucre \ mathbf {A} _ {i, j} ' s y \ mathbf {B} _ {i, j} 's de manera simétrica, lo que no Parece ser el caso aquí. Por ejemplo, tenemosMkABMkAi,jBi,jM2:=(A2,1+A2,2)B1,1 . Esperaría que su contraparte digamos A1,1(B1,2+B2,2) también se calcule. Sin embargo, no lo es, ya que puede obtenerse de otros Mk 's.

Agradecería si alguien pudiera arrojar algo de luz sobre esto.

Comunidad
fuente

Respuestas:

15

De Groote (sobre variedades de algoritmos óptimos para el cálculo de mapeos bilineales. II. Algoritmos óptimos para la multiplicación de matrices 2x2. Theor. Comput. Sci. 7: 127-148, 1978) demuestra que solo hay un algoritmo para multiplicar matrices con 7 multiplicaciones hasta equivalencia. Esta podría ser una característica única de la multiplicación de matrices . (Nota: encontrará diferentes variantes del algoritmo de Strassen en la literatura. Todas son equivalentes con la noción correcta de equivalencia).2×22×2

Si ahora comienza a demostrar un límite inferior para la multiplicación de matrices - vea el libro de Bürgisser, Clausen y Shokrollahi cómo hacerlo - entonces el algoritmo de Strassen o alguna variante se muestra de forma bastante natural. Descubrirá muchas identidades que determinan el aspecto de los productos. Entonces puedes terminar adivinando. (La prueba de De Groote muestra que incluso adivinar no es necesario).2×2

Schönhage me dijo una vez que Strassen le dijo una vez que encontró su algoritmo de esta manera, al tratar de probar un límite inferior.

Markus Bläser
fuente
11

Hay algún tipo de explicación en el libro Algebraic Complexity Theory de Bürgisser, Clausen y Shokrollahi (p. 11-12). La idea es comenzar con dos bases y del espacio de matrices reales que satisfacen la siguiente propiedad: . Además, . Para multiplicar dos matrices y , represente cada una de ellas en la base correspondiente y evalúe el producto. Como solo aparecen siete matrices diferentes que no son cero en el resultado ( ), solo se necesitan siete productos. ElA0,A1,A2,A3B0,B1,B2,B32×2AiBj{0,A0,A1,A2,A3,B0,B1,B2,B3} A B A 0 = B 0 , A 1 , A 2 , A 3 , B 1 , B 2 , B 3 MA0=B0ABA0=B0,A1,A2,A3,B1,B2,B3M las matrices son solo estas bases.

No sé si a Strassen se le ocurrió esta forma de verlo. Teniendo en cuenta otras identidades subyacentes a los algoritmos de multiplicación de matrices rápidas, no está claro si está ocurriendo algo profundo, más allá de alguna fórmula que funcione. Ya hemos pasado por eso antes: Lagrange usó la identidad de cuatro cuadrados (que se había conocido antes) para probar el teorema de los cuatro cuadrados. Al principio debe haber sido solo una curiosa identidad algebraica, pero ahora sabemos que establece la propiedad de multiplicatividad de la norma del cuaternión. Dado el estado actual del conocimiento, es difícil saber si la interpretación anterior es tan productiva.

Yuval Filmus
fuente
3
2×2