Vue d'ensemble du choix des matrices dans l'algorithme de Strassen


17

Dans l'algorithme de Strassen, pour calculer le produit de deux matrices et , les matrices et sont divisées en matrices de blocs et l'algorithme procède calcul récursif de produits matrice-matrice à blocs par opposition à un produit matriciel matriciel à blocs, c'est-à-dire si nous voulons , où 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]
alors nous avons qui nécessite 8
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
8multiplications. Au lieu de cela, dans Strassen, nous calculons et obtenez utilise \ mathbf {M} _ {k} comme
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
Cependant, le choix des matrices Mk me semble arbitraire. Existe-t-il une vue d'ensemble de la raison pour laquelle nous choisissons ces produits spécifiques des sous-matrices de A et B ? De plus, je m'attendrais à ce que les Mk impliquent les Ai,j et les Bi,j de manière symétrique, ce qui ne signifie pas semblent être le cas ici. Par exemple, nous avonsM2:=(A2,1+A2,2)B1,1 . Je m'attendrais à ce que son homologue dise A1,1(B1,2+B2,2) également être calculé. Cependant, ce n'est pas le cas, car il peut être obtenu à partir d'autres Mk .

J'apprécierais que quelqu'un puisse éclairer cela.

Réponses:


15

De Groote (On Varieties of Optimal Algorithms for the Computation of Bilinear Mappings. II. Optimal Algorithms for 2x2-Matrix Multiplication. Theor. Comput. Sci. 7: 127-148, 1978) prouve qu'il n'y a qu'un seul algorithme pour multiplier matrices avec 7 multiplications jusqu'à l'équivalence. Cela pourrait être une caractéristique unique de la multiplication à matrices. (Remarque: vous trouverez différentes variantes de l'algorithme de Strassen dans la littérature. Elles sont toutes équivalentes à la bonne notion d'équivalence.)2×22×2

Si vous commencez maintenant à prouver une borne inférieure pour la multiplication à matrices - voir le livre de Bürgisser, Clausen et Shokrollahi comment faire cela - alors l'algorithme de Strassen ou une variante apparaît tout à fait naturellement. Vous découvrirez de nombreuses identités qui déterminent à quoi ressemblent les produits. Ensuite, vous pouvez terminer en devinant. (La preuve de De Groote montre que même deviner n'est pas nécessaire.)2×2

Schönhage m'a dit une fois que Strassen lui avait dit une fois qu'il avait trouvé son algorithme de cette manière, en essayant de prouver une borne inférieure.


11

Il y a une sorte d'explication dans le livre Algebraic Complexity Theory de Bürgisser, Clausen et Shokrollahi (p. 11-12). L'idée est de partir de deux bases et de l'espace de matrices réelles qui satisfont la propriété suivante: . De plus, . Pour multiplier deux matrices et , représentez chacune d'elles dans la base correspondante et évaluez le produit. Étant donné que seulement sept matrices différentes non nulles apparaissent dans le résultat ( ), seuls sept produits sont nécessaires. LeA0,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 les matrices ne sont que ces bases.

Je ne sais pas si Strassen a trouvé cette façon de voir les choses. Compte tenu des autres identités sous-jacentes aux algorithmes de multiplication matricielle rapide, il n'est pas clair s'il y a quelque chose de profond, sous une formule qui fonctionne. Nous avons déjà vécu cela auparavant - Lagrange a utilisé l'identité des quatre carrés (qui était connue auparavant) pour prouver le théorème des quatre carrés. Au début, ce devait être juste une curieuse identité algébrique, mais maintenant nous savons qu'elle énonce la propriété multiplicative de la norme du quaternion. Compte tenu de l'état actuel des connaissances, il est difficile de dire si l'interprétation ci-dessus est aussi productive.


3
De telles bases sont appelées une paire M, voir le chapitre sur les algèbres de rang minimal dans le livre de Bürgisser, Clausen et Shokrollahi. Je pense qu'il est assez difficile de trouver l'idée que les paires M existent sans connaître le théorème d'Alder-Strassen (voir à nouveau le livre ci-dessus). En particulier, -matrices sont la seule algèbre matricielle pour laquelle il existe une paire M. 2×2
Markus Bläser
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.