Definition des Matrix-Multiplikations-Exponenten


15

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 .ωnωtnt

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 .nωnω+o(1)ϵ>0nω+ϵO(nω)

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?ωnωnω+o(1)O(nω)


2
Wenn Sie die Matrixmultiplikation nur als Black-Box verwenden möchten, können Sie am einfachsten sagen: "Sei so, dass wir n × n- Matrizen mit O ( n ω ) -Arithmetikoperationen multiplizieren können ". Natürlich ist ω dann nicht der Exponent der Matrixmultiplikation, sondern kann beliebig nahe sein. Wenn Sie den Exponenten Ihres Endlaufs in Dezimalschreibweise angeben möchten, müssen Sie derzeit ohnehin runden, da alle mir bekannten nichttrivialen Schätzungen für ω entweder irrationale Zahlen oder unendliche Folgen sind. ωn×nÖ(nω)ωω
Markus Bläser

2
wird typischerweise als das Infimum über alle reellen Zahlen definiert k für n gehen , so dass es eine ist O ( n k ) Zeitalgorithmus, Multipliziert zwei n × n Matrizen (wobei die Zeit istdie Anzahl der Additionen, Multiplikationen und Divisionen in der zugrunde liegendes Feld). Dies bedeutet auch, dass wir technisch immer n ω + o ( 1 ) schreiben sollten,aber das wird chaotisch. Wenn Sie also O ( n ω ) sehen , sollten Sie O ( M ( n ) denkenωknO(nk)n×nnω+o(1)O(nω) wobei M ( n ) die Laufzeit eines Matrixmultiplikationsalgorithmus ist. O(M(n))M(n)
Virgi

Antworten:


20

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 .ωÖ(nω)ϵ>0Ö(nω+ϵ)Ö(n2pÖlylÖG(n))ω=2

Die formale Definition finden Sie im Buch Algebraische Komplexitätstheorie von Peter Bürgisser, Michael Clausen, Amin Shokrollahi.


7

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+ϵ)ϵ>0nk+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+ϵf221/ϵ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)lognno(1)


Ich stelle mir vor, dass der Coppersmith-Winograd-Algorithmus in diese Kategorie fällt.
David Harris

2
@ David Harris: Weiß nicht. Vielleicht kann jemand, der den Algorithmus versteht, etwas Licht ins Dunkel bringen. Ich wollte nur sagen, dass oft nicht so schlecht ist, wie es aussieht. O(nk+ϵ)
Robin Kothari

5

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ω)


3

ωnωnω

ωω

2.3737


3
Ich verstehe nicht, wie menschliches Wissen Teil einer mathematischen Definition sein kann
David Harris

2
Jüngste Erfahrungen zeigen, dass es viel einfacher ist, über alle Algorithmen zu quantifizieren, als über alle Algorithmen, die der Menschheit derzeit bekannt sind ;-)
Markus Bläser,
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.