Strassen-Algorithmus

Algorithmus der Linearen Algebra
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 12. April 2007 um 10:30 Uhr durch 134.245.254.52 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Der Strassen-Algorithmus (nach Volker Strassen) ist ein Algorithmus aus der Linearen Algebra und wird zur Matrizenmultiplikation verwendet. Der Strassen-Algorithmus realisiert die Matrix-Multiplikation asymptotisch effizienter als das Standardverfahren und ist in der Praxis für große Matrizen schneller.

Der Algorithmus

Vereinfachend gehen wir von zwei quadratischen Matrizen A,B über einem Ring R aus. Des weiteren haben A und B die Größe 2n und C sei das Produkt von A und B.

 

Nun kann man A,B,C auch als Blockmatrizen betrachten:

 

Nun gilt:

 
 
 
 

Berechnet man die   mit diesen Formeln so benötigt man 8 (teure) Matrizenmultiplikationen. Um die Anzahl der Multiplikationen zu reduzieren berechnet man folgende Hilfsmatrizen:

 
 
 
 
 
 
 

Zur Berechnung der   benötigt man nur 7 Multiplikationen und nun kann man die   nur durch Additionen (und Subtraktionen) berechnen:

 
 
 
 

Diese Idee verwendet man nun auch für die Multiplikationen zur Berechung der   und iteriert das ganze solange bis man nur noch Skalare multipliziert.

Bei der praktischen Implementierung iteriert man für gewöhnlich nur solange bis die Matrix -Dimension so klein ist, dass der Standard-Algorithmus zur Matrizen Multipliaktion effizienter ist und verwendet dann diesen.

Siehe auch

Coppersmith–Winograd Algorithmus