- Strassen-Algorithmus
-
Der Strassen-Algorithmus (benannt nach dem deutschen Mathematiker Volker Strassen) ist ein Algorithmus aus der Linearen Algebra und wird zur Matrizenmultiplikation verwendet. Der Strassen-Algorithmus realisiert die Matrizenmultiplikation asymptotisch effizienter als das Standardverfahren und ist in der Praxis für große Matrizen schneller.
Inhaltsverzeichnis
Der Algorithmus
Vereinfachend gehen wir von zwei quadratischen Matrizen A,B über einem Ring R aus. Des Weiteren haben A und B Spalten- und Zeilendimension n=2k und C sei das Produkt von A und B.
Nun kann man A,B,C auch als Blockmatrizen betrachten:
Nun gilt:
Berechnet man die Cij mit diesen Formeln, so benötigt man 8 (teure) Matrizenmultiplikationen. Um die Anzahl der Multiplikationen zu reduzieren, berechnet man folgende Hilfsmatrizen:
Zur Berechnung der Mi benötigt man nur 7 Multiplikationen und nun kann man die Cij nur durch Additionen (und Subtraktionen) berechnen:
- C1,1 = M1 + M4 − M5 + M7
- C1,2 = M3 + M5
- C2,1 = M2 + M4
- C2,2 = M1 − M2 + M3 + M6
Diese Idee verwendet man nun auch für die Multiplikationen zur Berechnung der Mi und iteriert das ganze so lange, bis man nur noch Skalare multipliziert.
Bei der praktischen Implementierung iteriert man für gewöhnlich nur so lange, bis die Matrixdimension so klein ist, dass der Standard-Algorithmus zur Matrizenmultiplikation effizienter ist, und verwendet dann diesen (Cut-Off).
Aufwand
Die Standard-Matrixmultiplikation benötigt
Multiplikationen der Elemente des Ringes R. Wir ignorieren die benötigten Additionen, weil sie, abhängig von R, in Computerimplementationen viel schneller sein können als die Multiplikationen. Mit dem Strassen-Algorithmus können wir die Anzahl der Multiplikationen auf
reduzieren. Die Reduktion der Anzahl der Multiplikationen bezahlt man allerdings mit einer Verringerung der numerischen Stabilität.
Siehe auch
Coppersmith–Winograd Algorithmus bzw. englischer Artikel: Coppersmith–Winograd algorithm
Literatur
- Volker Strassen: Gaussian Elimination is not Optimal, Numer. Math. 13, S. 354-356, 1969
Weblinks
- Eric W. Weisstein: Strassen's Formulas. In: MathWorld. (englisch)
Wikimedia Foundation.