Preuve que la multiplication matricielle peut être faite en temps quadratique?


59

Il est largement supposé que , l'exposant optimal pour la multiplication matricielle, est en fait égal à 2. Ma question est simple:ω

Quelles raisons avons-nous pour croire que ?ω=2

Je connais des algorithmes rapides comme Coppersmith-Winograd, mais je ne sais pas pourquoi ils pourraient être considérés comme une preuve de .ω=2

Naïvement, cela me semble être un exemple classique dans lequel une communauté espère simplement qu'un résultat est vrai uniquement pour des raisons esthétiques. J'aimerais savoir si c'est essentiellement le cas ici.


12
Je soupçonne que la réponse est en grande partie esthétique et qu’il n’ya pas de bonne raison pour qu’elle soit supérieure à 2. Il y avait un article dans FOCS '05 qui donnait quelques constructions théoriques de groupe pour la matrice mult qui correspondaient aux exposants connus actuels et donnait également 2 conjectures théoriques de groupe impliquant . PDFω=2
Mark Reitblatt

5
Il y a quelques années, j’ai eu une conversation avec Strassen au cours de laquelle il a affirmé croire à . Je ne sais pas quelles étaient ses raisons, cependant. ω>2
Ryan Williams

2
@ Ryan, espérons que Strassen lit cstheory.stackexchange. :)
Steve Flammia

3
Il y a une limite inférieure (sous certaines restrictions) due à Ran Raz, donc une meilleure hypothèse serait que ne soit pas atteint (mais l'infimum est bien ). ω = 2 2Ω(nlogn)ω=22
Yuval Filmus

5
@Yuval, @Steve: 1) est généralement défini comme une limite. 2) Nous savons déjà que quel que soit le type d’ , il n’est pas atteint (c’est un inf et pas un min). Voir cet article de Coppersmith-Winograd: dx.doi.org/10.1137/0211038 . Abstrait: "l’exposant pour la multiplication matricielle est un point limite, c’est-à-dire qu’il ne peut être réalisé par un seul algorithme". (Compte tenu des détails de leurs résultats, je pense que cette déclaration ne peut pas être considérée naïvement à la lettre, mais il s'agit surtout d'un détail technique.)coωω
Joshua Grochow

Réponses:


20

J'aimerais ajouter au commentaire de Mark Reitblatt et à la réponse d'Amir Shpilka. Premièrement, une des hypothèses émises par Cohn, Kleinberg, Szegedy et Umans n’est pas une théorie de groupe, mais est purement combinatoire (Conj. 3.4 dans leur article de FOCS '05 ). Cette conjecture dit que "la capacité USP forte est ". Coppersmith et Winograd, en présentant leur meilleur algorithme actuel pour la multiplication matricielle, ont montré que la capacité USP correspond à ce même nombre (bien qu'ils ne l'aient pas exprimé de cette façon). Bien qu'il existe une différence entre les USP forts et les USP, ceci est une preuve que leur conjecture est au moins plausible. 3322/3322/3

(Pour leur autre conjecture 4.7, qui est la théorie des groupes, je ne connais aucune preuve de plausibilité similaire, au-delà de la simple intuition.)

Deuxièmement, je suis d'accord avec Amir Shpilka pour dire que la chaîne d'algorithmes antérieurs a une sensation quelque peu ad-hoc. Cependant, l’un des avantages de l’approche de la théorie des groupes est que presque tous les algorithmes précédents (pas tout à fait) peuvent être formulés dans cette approche. Bien que les diverses constructions théoriques de groupe dans [CKSU] puissent sembler un peu ad hoc de l'extérieur, dans le contexte du cadre de la théorie de groupe, elles apparaissent nettement plus naturelles et moins ad hoc (du moins pour moi) que beaucoup de les algorithmes précédents.


Quand je pense à Capacity, je pense à des ensembles indépendants et à des cliques. Quel est le dictionnaire entre USPs et la construction explicite du graphe sous-jacent et existe-t-il une structure pour ces graphes?
T ....

28

Je ne connais pas les autres, mais je peux vous dire pourquoi j'ai tendance à croire que . Lorsque vous parcourez l’histoire et le développement d’algorithmes de multiplication rapide de matrices, je pense qu’il est difficile de ne pas avoir l’impression que tout ce dont nous avons besoin n’est qu’un algorithme de base légèrement supérieur à celui suivi par , même en utilisant des techniques connues. . Fondamentalement, tous les algorithmes actuels (y compris ceux théoriques de groupe) commencent par une construction "simple" qui est ensuite amplifiée. Ces constructions sont intelligentes, mais elles procurent au lecteur une sorte de sentiment «ad hoc». Je ne vois aucune raison de croire que nous ne pouvons pas proposer de meilleures constructions simples.ω = 2ω=2ω=2


20

Il y a une analogie que j'utilise pour justifier la conjecture que à moi-même. Je me rends bien compte qu’il s’agit d’une belle approche heuristique, mais elle m’a néanmoins bien servi, par exemple, pour comprendre une partie de l’intuition qui se cache derrière les calculs de Cohn et al. papier.ω=2

La convolution et la multiplication matricielle sont analogues. Si et sont des matrices -by- et , alors . Si et sont des vecteurs de longueur et , alors . Dans les deux cas, le résultat final est un vecteur composé de sommes de produits, mais la structure relationnelle dans les données d'entrée est différente. Pour la convolution, nous pouvons utiliser la FFT pour calculer la réponse en temps au lieu du trivial . De façon analogue, on pourrait s’attendre à uneABnnC=ABC(i,j)=k=1nA(i,k)B(k,j)ABnC=ABC(i)=k=1nA(k)B(ik)O(n2) ~ O (n2)O~(n)O(n2)O~(n2) algorithme temporel pour la multiplication matricielle. La question qui se pose est la suivante: quel est l'analogue de la transformée de Fourier qui peut aider à la multiplication matricielle?


-1

Plus probablement que c’est . Avoir semble fantaisiste dans la mesure où la comptabilité à facteurs constante ne semble pas pouvoir évoluer.ω = 2O(n2log(n2))ω=2


1
Vous comprenez mal la définition de : c’est l’infimum de tout tel que la multiplication matricielle puisse être résolue en temps . S'il existe un algorithme de multiplication de matrices , cet infimum sera toujours . BTW il y a un lié dans le modèle des circuits arithmétiques avec des coefficients bornés. c O ( n c ) O ( n 2 log 10 n ) 2 Ω ( n 2 log n )ωcO(nc)O(n2log10n)2Ω(n2logn)
Sasho Nikolov

@SashoNikolov Merci de l'avoir signalé. Quelqu'un a-t-il déjà essayé de former un réseau neuronal pour le matmul booléen A * B = C? [Entrées A, B entrées, C entrées] -> Bool (multiplication correcte ou incorrecte). Curieux de savoir quels circuits le gradient décent / décrocheurs propose; si les circuits formés ont des attracteurs proches des décompositions principales. Sur 3x3, 4x4, 5x5, 6x6, il semble qu'une heure de GPU donnerait des résultats intéressants.
Chad Brewbaker
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.