Beweise, dass die Matrixmultiplikation in quadratischer Zeit durchgeführt werden kann?


59

Es wird allgemein vermutet, dass , der optimale Exponent für die Matrixmultiplikation, tatsächlich gleich 2 ist. Meine Frage ist einfach:ω

Welche Gründe haben wir für die Annahme, dass ?ω=2

Ich kenne schnelle Algorithmen wie Coppersmith-Winograd, aber ich weiß nicht, warum diese als Beweis für könnten .ω=2

Naiv scheint es mir ein klassisches Beispiel zu sein, bei dem eine Community nur hofft, dass ein Ergebnis aus rein ästhetischen Gründen wahr ist. Ich würde gerne wissen, ob das hier im Wesentlichen der Fall ist.


12
ω=2

5
ω>2

2
@ Ryan, hoffen wir, dass Strassen cstheory.stackexchange liest. :)
Steve Flammia

3
Ω(nlogn)ω=22

5
ωω

Antworten:


20

Ich möchte den Kommentar von Mark Reitblatt und die Antwort von Amir Shpilka ergänzen. Erstens ist eine der von Cohn, Kleinberg, Szegedy und Umans vorgebrachten Vermutungen nicht gruppentheoretisch, sondern rein kombinatorisch (Konj. 3.4 in ihrem FOCS'05-Aufsatz ). Diese Vermutung besagt, dass die "starke USP-Kapazität beträgt322/3322/3

(Für ihre andere gruppentheoretische Vermutung 4.7 kenne ich keinen ähnlichen Beweis für Plausibilität, der über die Intuition hinausgeht.)

Zweitens stimme ich Amir Shpilka zu, dass die Kette vergangener Algorithmen etwas ad-hoc wirkt. Das Schöne am gruppentheoretischen Ansatz ist jedoch, dass fast alle (nicht alle) der vorherigen Algorithmen in diesem Ansatz formuliert werden können. Obwohl die verschiedenen gruppentheoretischen Konstruktionen in [CKSU] äußerlich ein wenig ad-hoc erscheinen mögen, erscheinen sie im Kontext des gruppentheoretischen Rahmens wesentlich natürlicher und weniger ad-hoc (zumindest für mich) als viele andere die vorherigen Algorithmen.


Wenn ich an Kapazität denke, denke ich an unabhängige Sets und Cliquen. Was ist das Wörterbuch zwischen USPs und der expliziten Konstruktion des zugrunde liegenden Diagramms und gibt es eine Struktur für diese Diagramme?
T ....


20

ω=2

ABnnC=ABC(i,j)=k=1nA(i,k)B(k,j)ABnC=ABC(i)=k=1nA(k)B(ik)O~(n)O(n2)O~(n2)Zeitalgorithmus für die Matrixmultiplikation. Die Frage ist: Was ist das Analogon der Fouriertransformation, das bei der Matrixmultiplikation helfen kann?


-1

O(n2log(n2))ω=2


1
ωcO(nc)O(n2log10n)2Ω(n2logn)

@SashoNikolov Danke für den Hinweis. Hat jemand versucht, ein neuronales Netz für das Boolesche Matmul A * B = C zu trainieren? [A-Einträge, B-Einträge, C-Einträge] -> Bool (richtig oder falsch multiplizieren). Neugierig, welche Schaltkreise die Steigung anständig / Aussetzer einfallen lassen; Wenn trainierte Rennstrecken Attraktoren in der Nähe von Primärzerlegungen haben. Bei 3x3, 4x4, 5x5, 6x6 scheint eine Stunde GPU einige interessante Ergebnisse zu liefern.
Chad Brewbaker
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.