Freivalds hat 1979 gezeigt, dass die Überprüfung von Matrixprodukten über jedes Feld in randomisierter -Zeit durchgeführt werden kann . Genauer gesagt besteht bei drei Matrizen A, B und C mit Einträgen aus einem Feld F das Problem, zu überprüfen, ob AB = C einen randomisierten -Zeitalgorithmus aufweist.
Dies ist interessant, da der schnellste bekannte Algorithmus zum Multiplizieren von Matrizen langsamer als dieser ist. Überprüfen Sie daher, ob AB = C schneller ist als das Berechnen von C.
Ich möchte wissen, was die allgemeinste algebraische Struktur ist, über die die Matrixproduktverifikation noch einen -Zeitalgorithmus (randomisiert) hat. Da der ursprüngliche Algorithmus über alle Felder funktioniert, funktioniert er vermutlich auch über alle integralen Domänen.
Die beste Antwort auf diese Frage fand ich in den subkubischen Äquivalenzen zwischen Pfad-, Matrix- und Dreiecksproblemen . Dort heißt es: "Die Überprüfung des Matrixprodukts über Ringe kann in randomisierter Zeit erfolgen [BK95]." ([BK95]: M. Blum und S. Kannan. Entwerfen von Programmen, die ihre Arbeit überprüfen. J. ACM, 42 (1): 269–291, 1995.)
Erstens, sind Ringe die allgemeinste Struktur, bei der dieses Problem einen randomisierten Algorithmus hat? Zweitens konnte ich nicht sehen, wie die Ergebnisse von [BK95] einen O ( n 2 ) -Zeitalgorithmus über alle Ringe zeigen. Kann mir jemand erklären, wie das geht?
quelle
Antworten:
Hier ist ein kurzes Argument, warum es über Ringe funktioniert. Bei gegebenen Matrizen , B , C verifizieren wir A B = C, indem wir einen Zufallsbitvektor v auswählen und dann prüfen, ob A B v = C v ist . Dies geht deutlich , wenn A B = C .A B C AB=C v ABv=Cv AB=C
Angenommen, und A B v = C v . Lassen Sie D = A B - C . D ist eine Nicht-Null-Matrix, für die D v = 0 ist . Wie groß ist die Wahrscheinlichkeit, dass dies eintritt? Sei D [ i ' , j ' ] ein Eintrag ungleich Null. Durch die Annahme, Σ j D [ i ' , j ] v [ j ] = 0AB≠C ABv=Cv D=AB−C D Dv=0 D[i′,j′] ∑jD[i′,j]v[j]=0 . Mit der Wahrscheinlichkeit , v [ j ' ] = 1 , so haben wir1/2 v[j′]=1
.D[i′,j′]+∑j≠j′D[i′,j]v[j]=0
Jeder Ring unter seiner Additionsoperation ist eine additive Gruppe, daher gibt es eine eindeutige Inverse von , dh - D [ i ' , j ' ] . Nun wird die Wahrscheinlichkeit des schlechten Ereignis - D [ i ' , j ' ] = Σ j ≠ j ' D [ i ' , j ] v [ j ] ist höchstens 1 / 2D[i′,j′] −D[i′,j′] −D[i′,j′]=∑j≠j′D[i′,j]v[j] 1/2 . (Eine Möglichkeit, dies zu sehen, ist das "Prinzip der verzögerten Entscheidungen": Damit die Summe gleich , muss mindestens ein anderes D [ i ' , j ] ungleich Null sein v [ j ] entspricht diesen anderen Einträgen ungleich Null. Auch wenn wir alle diese v [ j ] mit Ausnahme eines davon optimal einstellen , ist die Wahrscheinlichkeit für den letzten Eintrag immer noch gleich 0 oder 1−D[i′,j′] D[i′,j] v[j] v[j] 0 1 , Aber immer noch nur einen dieser Werte könnte die endgültige Summe gleich machen .) Also mit einer Wahrscheinlichkeit von mindestens 1 / 4 , wir erfolgreich , dass finden D v ≠ 0 , wenn D nicht Null ist. (Anmerkung v [ j ] und v [ j ' ] werden unabhängig voneinander für j ≠ j ' gewählt .)−D[i′,j′] 1/4 Dv≠0 D v[j] v[j′] j≠j′
Wie Sie sehen, hängt das obige Argument von der Subtraktion ab. So funktioniert es (zum Beispiel) nicht bei beliebigen kommutativen Semirings. Vielleicht könnten Sie die multiplikativen Eigenschaften der algebraischen Struktur lockern und trotzdem das Ergebnis erhalten?
quelle