5 Entwurfsmethoden für Algorithmen
5 Entwurfsmethoden für Algorithmen
5 Entwurfsmethoden für Algorithmen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
8( 1 2 )3 = 8 8 = 1,<br />
also ist r = 3. Mit dem naiven Divide & Conquer ist also gegenüber der “Schulmethode” keine<br />
asymptotische Zeitersparnis zu verzeichnen.<br />
Matrizenmultiplikation nach Strassen. Wir betrachten nun die von Strassen vorgeschlagene<br />
Methode. Diese benutzt ebenfalls die Zerlegung der beiden Matrizen A und B in die Untermatrizen<br />
Ai, j und Bi, j. Die Berechnung der Untermatrizen Ci, j der Produktmatrix C beruht auf<br />
dem folgenden Schema. 37<br />
und<br />
M1 := (A1,1 − A2,2) ·(B2,1 + B2,2)<br />
M2 := (A1,2 + A2,2) ·(B1,1 + B1,2)<br />
M3 := (A2,1 − A1,1) ·(B1,1 + B1,2)<br />
M4 := (A1,1 + A1,2) · B2,2<br />
M5 := A1,1 ·(B1,2 − B2,2)<br />
M6 := A2,2 ·(B2,1 − B1,1)<br />
M7 := (A2,1 + A1,2) · B1,1<br />
C1,1 := M1 + M2 − M4 + M6<br />
C1,2 := M4 + M5<br />
C2,1 := M6 + M7<br />
C2,2 := M2 + M3 + M5 − M7<br />
Wir verzichten auf den Korrektheitsnachweis und konzentrieren uns stattdessen auf die Kostenanalyse.<br />
Die Methode von Strassen benötigt 7 Multiplikationen und 18 Additionen/Subtraktionen<br />
von ( n 2 × n 2 )-Matrizen. Dies führt zur Rekurrenz<br />
T (n) = 7 · T <br />
n<br />
2 + Θ(n2 ).<br />
Wiederum wenden wir den dritten Teil von Satz 5.1.2 an, da 7( 1 2 )2 = 7 4<br />
erhalten wir 7( 1 2 )log7 = 7 7 = 1 und somit:<br />
Wir fassen die Ergebnisse zusammen:<br />
<br />
T(n) = Θ n log7<br />
≈ Θ n 2.8<br />
> 1. Mit r = log7<br />
Satz 5.1.3 (Komplexität der Strassen-Methode). Mit der Methode von Strassen können zwei<br />
n × n-Matrizen in Zeit Θ n log7 multipliziert werden.<br />
Experimentelle Ergebnisse haben gezeigt, daß die Strassen-Methode erst <strong>für</strong> großes n (ca.<br />
n ≥ 500) besser als die Schulmethode ist. In der Praxis empfiehlt sich daher eine gemischte<br />
Strategie, die <strong>für</strong> n ≥ 500 eine Zerlegung à la Strassen vornimmt. Sobald die Zeilenanzahl<br />
auf einen Wert < 500 reduziert ist, wird die Schulmethode angewandt, um die Teilprodukte zu<br />
ermitteln.<br />
37 Die Autorin übernimmt keine Garantie, daß jeder Index in den angegebenen Formeln stimmt.<br />
165