Prof. Dr. Angela Kunoth Stephan Gerster, Stefan Krupp Algorithmische Mathematik WS 2015/2016 Präsenzaufgaben Besprechung in den Übungen in der Woche vom 02. bis 06. November Die Landau–Symbole sind wie folgt definiert: f (x) = o g(x) , falls f (x) = O(g(x)), falls f (x) →0 g(x) f (x) lim sup <∞ x→x0 g(x) lim x→x0 Aufgabe 1: Seien n ∈ N und A, B ∈ Rn×n Matrizen und C := AB mit Einträgen ci j = n X aik bk j , ∀ i, j ∈ {1, . . . , n}. k=1 a) Bestimmen Sie, wie viele elementare Additionen und wie viele Multiplikationen reeller Zahlen zur Berechnung des Produkts C := AB mit der o.g. Summenformel notwendig sind. Eine elementare Rechenoperation koste die Zeit 1. Drücken Sie die benötigte Zeit für die Matrixmultiplikation mit Hilfe der Landausymbole aus. b) Sei nun n eine Zweierpotenz, also n = 2m mit m ∈ N. Strassen schlug folgendes Verfahren1 vor: Zerlege A und B in jeweils vier 2n × n2 -Matrizen ! ! A11 A12 B11 B12 A= , B= . A21 A22 B21 B22 Berechne die sieben Hilfsprodukte: P1 = (A11 + A22 )(B11 + B22 ) P5 = (A11 + A12 )B22 P2 = (A21 + A22 )B11 P6 = (A21 − A11 )(B11 + B12 ) P3 = A11 (B12 − B22 ) P7 = (A12 − A22 )(B21 + B22 ) P4 = A22 (B21 − B11 ) Dann gilt: A11 A21 A12 A22 ! B11 B21 B12 B22 ! = P1 + P4 − P5 + P7 P2 + P4 P3 + P5 P1 + P3 − P2 + P6 ! Damit reduziert sich die Zahl der Multiplikationen kleinerer Matrizen von acht auf sieben gegenüber dem naiven Verfahren, während die Zahl der Additionen gestiegen ist2 . Dieses Verfahren wird nun rekursiv zur Berechnung der sieben kleineren Produkte angewandt. Zeigen Sie, dass die benötige Zeit T (n) für die Multiplikation zweier n × n-Matrizen der Rekurrenzrelation n 9 + n2 , T (1) = 1 T (n) = 7T 2 2 genügt. c) Beweisen Sie mit Hilfe einer vollständigen Induktion und Teilaufgabe b) die Gleichung T (n) = 7m + m−1 X k=0 Folgern Sie daraus die Komplexität O(nlog2 7 ) ≈ 7k 9 n 2 . 2 2k O(n2.807 ) der Matrixmultiplikation nach Strassen. 2ε Tipp: Wählen Sie ε > 0 mit log2 −ε ≥ 2 und zeigen Sie: T (n) ≥ nlog2 7 ε 2 −1 d) Zeigen Sie, dass O(n2 ) eine untere Schranke für die Komplexität der Matrixmultiplikation ist. 1 V. 2 Es Strassen, Gaussian elimination is not optimal, Numerische Mathematik, 13:354–356 (1969). gibt eine Variante von Winograd, die nur 15 statt 18 Additionen benötigt. Bemerkung: Ein sehr bekannter Algorithmus zur Matrixmultiplikation stammt von D. Coppersmith und S. Winograd3 aus dem Jahr 1990 und besitzt die Komplexität O(n2.376 ). Eine minimal verbessere Variante von F. Le Gall4 besitzt die derzeit beste bekannte Komplexität von O(n2.3728639 ). Aufgabe 2: Sei x > 0. Gegeben seien nun jeweils für x → 0 die Funktionen f = O(x2 ), g = O(x3 ) und g̃ = O(x3 ). Beweisen oder widerlegen Sie die folgenden Aussagen für x → 0. a) f = o(x) d) f + g = O(x3 ) b) f = o(x2 ) e) g(x) − g̃(x) = 0 c) f g = O(x5 ) f) g̃g−1 = O(1) 3 D. Coppersmith, S. Winograd, Matrix Multiplication via Arithmetic Progressions, Journal of Symbolic Computation, 9:251–280 (1990). 4 F. Le Gall, Powers of tensors and fast matrix multiplication, Proceedings of the 39th International Symposium on Symbolic and Algebraic Computation (ISSAC 2014)