La preuve que la multiplication de la matrice ne sont pas en temps

39

Il est communément admis que pour tout , il est possible de multiplier deux matrices en un temps . Une discussion est ici .ϵ>0n×nO(n2+ϵ)

J'ai demandé à des personnes plus familières avec les recherches si elles pensaient qu'il y avait un indépendant de tel qu'il existe un algorithme pour la multiplication de matrice et qu'elles semblaient avoir une écrasante majorité. l'intuition que la réponse est "non" mais ne pouvait pas expliquer pourquoi. C'est-à-dire qu'ils croient que nous pouvons le faire en un temps , mais pas en un temps .k>0nO(n2logkn)O(n2.001)O(n2log100n)

Quelles sont les raisons pour croire qu'il n'y a pas d' algorithme à fixé ?O(n2logkn)k>0

Brian
la source

Réponses:

29

Il existe un algorithme pour multiplier une matrice N×N0.172 avec une matrice N0.172×N dans les opérations arithmétiques N2polylog(N) . L’identité principale utilisée provient de l’article de Coppersmith "Multiplication rapide de matrices rectangulaires", mais l’explication de la raison pour laquelle il conduit à N2polylog(N) au lieu de N2+ϵ trouve dans l’appendice de l’ article de Williams , "Nouveaux algorithmes et bornes inférieures pour les circuits avec portes à seuil linéaire ".

Cela ne fonctionne que parce que l'identité de Coppersmith possède une structure supplémentaire dont vous pouvez tirer parti, et que les algorithmes MM les plus récents ne semblent pas avoir cette structure. Cela dit, je ne sais pas pourquoi on ne peut espérer étendre cette approche à la multiplication matricielle N×N×N

Josh Alman
la source
11

Eh bien, une chose est que je pense que toutes les constructions que nous connaissons - et même les familles de constructions potentielles que les gens ont proposées (par exemple, les approches de Cohn-Umans, les généralisations de Coppersmith-Winograd) - produiraient "simplement" une famille d'algorithmes Aϵ courant dans le temps O(n2+ϵ) . Donc , pour avoir un seul algorithme qui RAN dans O(n2poly(logn)) , il faudrait non seulement être fou asymptotiquement mieux que les approches actuelles, mais il faut regarder vraiment différent.

Gros bémol: je pense. Je n'ai jamais vraiment réfléchi à ce qu'il faudrait modifier / ajouter aux approches existantes pour pouvoir produire de manière plausible un algorithme unique s'exécutant dans le temps O(n2poly(logn)) .

Joshua Grochow
la source
3
Je ne suis pas sûr que le fait d'avoir une famille ne mène pas plausiblement à O (n ^ 2poly (log n)) car si on pouvait décrire la famille assez bien, on pourrait choisir des membres de la famille de plus en plus efficaces pour un plus grand n. La seule raison pour laquelle cela n'est pas plausible O (n ^ 2poly (log N)) est que les constantes en jeu seraient probablement très grandes, mais il n'est pas évident que ce soit nécessairement le cas.
JoshuaZ
1
@JoshuaZ: En principe, ce n'est pas le cas. en pratique, chaque membre de la famille issu de ces approches produit un algorithme avec la durée , et l’idée de la plupart des approches est simplement que vous avez une famille telle que, pour tout ε > 0 , il existe un membre de la famille qui aboutit à un algorithme avec le temps d’exécution O ( n 2 + ε ) . O(n2+x)ε>0O(n2+ε)
Joshua Grochow
1
@JoshuaZ Je suppose qu'une autre manière encore plus étrange pourrait échouer si, d'une manière ou d'une autre, choisir / construire un membre de la famille prenait plus de temps que O (n ^ 2 poly (log n)) - par exemple, un code O (1 / e) est nécessaire pour implémenter l'algorithme O (n ^ (2 + e)) ou quelque chose. Ne serait-ce pas sauvage ??
Daniel Wagner
10

Josh Alman a montré quelques bons résultats dans la fourchette basse de MM, qui a remporté le prix du meilleur article étudiant du CCC 2019! http://drops.dagstuhl.de/opus/volltexte/2019/10834/pdf/LIPIcs-CCC-2019-12.pdf

Rupei Xu
la source
6
Bien que ce soit vraiment un résultat vraiment cool et intéressant, je ne le prends pas vraiment pour preuve que MM ne peut pas être fait dans le temps . Il est évident que la dégénérescence de type CW à haute puissance ne peut probablement pas le faire pour vous. Mais il y a beaucoup d'autres constructions possibles, par exemple en partant d'un tenseur de base très différent, ou de l'approche de la théorie des groupes de Cohn-Umans (qui peut, en principe, produire une famille infinie d'algorithmes qui ne sont pas simplement des dégénérations de puissances à grand tenseur de un de départ). O(n2poly(logn))
Joshua Grochow
4
@ JoshuaGrochow Merci d'avoir signalé ce problème.
Rupei Xu