Der Nachweis , dass die Matrixmultiplikation nicht ist


39

Es wird allgemein angenommen, dass es für alle ϵ>0 möglich ist, zwei n×n Matrizen in -ZeitO(n2+ϵ) zu multiplizieren . Eine Diskussion ist hier .

Ich habe einige Leute, die mit der Forschung besser vertraut sind, gefragt, ob sie glauben, dass es ein von n unabhängiges k>0 gibt, so dass es einen O ( n 2 log k n ) -Algorithmus für die Matrixmultiplikation gibt, und sie schienen dies mit überwältigender Intuition zu haben Die Antwort lautet "Nein", konnte aber nicht erklären, warum. Das heißt, sie glauben, dass wir es in O ( n 2.001 ) Zeit tun können , aber nicht in O ( n 2 log 100 n ) Zeit.nO(n2logkn)O(n2.001)O(n2log100n)

Welche Gründe sprechen dafür, anzunehmen, dass es bei einem festen k > 0 keinen O(n2logkn) -Algorithmus gibt ?k>0

Antworten:


29

Es gibt einen Algorithmus zum Multiplizieren einer N×N0.172 Matrix mit einer N0.172×N Matrix in N2polylog(N)-Arithmetikoperationen . Die Hauptidentität, die dafür verwendet wird, stammt aus Coppersmiths Artikel "Schnelle Multiplikation rechteckiger Matrizen", aber die Erklärung, warum es zu N2polylog(N) anstelle von N2+ϵ befindet sich im Anhang von Williams ' Artikel "Neue Algorithmen" und Untergrenzen für Schaltungen mit linearen Schwellenwertgattern ".

Dies funktioniert nur, weil die Identität von Coppersmith eine zusätzliche Struktur aufweist, die Sie nutzen können, und die neueren MM-Algorithmen scheinen diese Struktur nicht zu haben. Trotzdem bin ich mir nicht sicher, warum man nicht hoffen kann, diesen Ansatz auf die N×N×N Matrixmultiplikation auszudehnen .


11

AϵO(n2+ϵ)O(n2poly(logn))

O(n2poly(logn))


3
Ich bin mir nicht sicher, ob eine Familie plausibel zu O (n ^ 2poly (log n)) führt, da man, wenn man die Familie gut genug beschreiben könnte, immer effizientere Familienmitglieder für größere n auswählen könnte. Der einzige Grund dafür, dass dies nicht plausibel ist, ist, dass die beteiligten Konstanten wahrscheinlich sehr groß wären, aber es ist nicht offensichtlich, dass dies notwendigerweise der Fall ist.
JoshuaZ

1
O(n2+x)ε>0O(n2+ε)

1
@JoshuaZ Ich nehme an, eine andere, noch seltsamere Möglichkeit wäre, wenn die Auswahl / Konstruktion eines Familienmitglieds mehr als O (n ^ 2 poly (log n)) Zeit in Anspruch nehmen würde - z. B. wird möglicherweise O (1 / e) Code benötigt Implementieren Sie den Algorithmus O (n ^ (2 + e)) oder so etwas. Wäre das nicht wild?
Daniel Wagner

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.