Umgangssprachlich, die Definition des Matrix-Multiplikation Exponent ist der kleinste Wert , für die es ein bekannten n ω - Matrix-Multiplikationsalgorithmus. Dies ist als formale mathematische Definition nicht akzeptabel. Ich schätze, die technische Definition ist so etwas wie das Infimum über alle t , sodass in n t ein Matrixmultiplikationsalgorithmus existiert .
In diesem Fall können wir nicht sagen , es ist ein Algorithmus für die Matrix-Multiplikation in oder sogar n ω + o ( 1 ) , nur für alle , dass ε > 0 gibt es einen Algorithmus existiert in n ω + ε . Häufig geben jedoch Arbeiten und Ergebnisse, die eine Matrixmultiplikation verwenden, ihre Kosten einfach als O ( n & ohgr; ) an .
Gibt es eine alternative Definition von , die diese Verwendung ermöglicht? Gibt es Ergebnisse , die Garantie , dass ein Algorithmus der Zeit n ω oder n ω + o ( 1 ) vorhanden sein muss? Oder ist die Nutzung O ( n ω ) einfach schlampig?
quelle
Antworten:
Die Matrixmultiplikation Exponent wobei garantiert nicht , dass es einen Algorithmus ist, der ausgeführt wird in der Zeit O ( n ω ) , sondern nur , daß für jede ε > 0 , gibt es ein Algorithmus, der ausgeführt wird in O ( n ω + ε ) . In der Tat , wenn Sie einen Algorithmus, der läuft in der Zeit finden O ( n 2 p o l y l o g ( n ) ) , dann zeigt dies , dass ω = 2 .ω O ( nω) ϵ > 0 O ( nω + ϵ) O ( n2p o l y l o g (n)) ω=2
Die formale Definition finden Sie im Buch Algebraische Komplexitätstheorie von Peter Bürgisser, Michael Clausen, Amin Shokrollahi.
quelle
Ein kleiner Kommentar, der zu lang ist, um ein Kommentar zu sein:
Manchmal , wenn Sie ein Problem , für die haben , gibt es einen Algorithmus mit Laufzeit für jedes ε > 0 gibt es einen Algorithmus mit Laufzeit n k + o ( 1 ) .O(nk+ϵ) ϵ>0 nk+o(1)
Zum Beispiel erhalten Sie manchmal Algorithmen, die wie für eine schnell wachsende Funktion f (wie 2 2 1 / ϵ ). Wenn Sie f ( 1 / ϵ ) auf (say) log n setzen , ist ϵ o (1). In dem Beispiel mit f ( 1 / ϵ ) als 2 2 1 / ϵ können Sie 1 / ϵ auswählenf(1/ϵ)nk+ϵ f 221/ϵ f(1/ϵ) logn ϵ f(1/ϵ) 221/ϵ 1/ϵ sein , das ergibt ε = 1 / ( log log log n ) , die O (1) ist. Die endgültige Laufzeit dieses Algorithmus ist also n k + o ( 1 ) , da log n auch n o ( 1 ) ist .logloglogn ϵ=1/(logloglogn) nk+o(1) logn no(1)
quelle
Das Ergebnis von Coppersmith und Winograd ist bekannt, dass -Zeit nicht mit einem einzigen Algorithmus realisiert werden kann. Aber ich habe gelesen, dass sie sich auf Algorithmen beschränken, die auf Strassen-ähnlichen bilinearen Identitäten basieren, deshalb weiß ich es nicht genau, da die Zeitung hinter einer Paywall steht.O(nω)
quelle
quelle