Algebraische und arithmetische Algorithmen

Ähnliche Dokumente
Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Schulmethode zur Multiplikation von n-stelligen Binärzahlen a und b: (evtl. fallen Zeilen weg, wenn das zugehörige Bit des Multiplikators 0 ist).

16. All Pairs Shortest Path (ASPS)

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

9.2 Invertierbare Matrizen

1 Definition. 2 Besondere Typen. 2.1 Vektoren und transponieren A = 2.2 Quadratische Matrix. 2.3 Diagonalmatrix. 2.

Matrizen, Determinanten, lineare Gleichungssysteme

Kapitel 2: Matrizen. 2.1 Matrizen 2.2 Determinanten 2.3 Inverse 2.4 Lineare Gleichungssysteme 2.5 Eigenwerte 2.6 Diagonalisierung

4 Vorlesung: Matrix und Determinante

1 Rechnen mit 2 2 Matrizen

Vorbereitungskurs Mathematik zum Sommersemester 2011 Tag 7

2. Repräsentationen von Graphen in Computern

Teile und Herrsche Teil 2

Abschnitt: Algorithmendesign und Laufzeitanalyse

Algebra und Diskrete Mathematik, PS3. Sommersemester Prüfungsfragen

1 Lineare Algebra. 1.1 Matrizen und Vektoren. Slide 3. Matrizen. Eine Matrix ist ein rechteckiges Zahlenschema

Einführung in die Vektor- und Matrizenrechnung. Matrizen

Mathematik II Frühjahrssemester 2013

4 Lineare Algebra (Teil 2): Quadratische Matrizen

5.1 Determinanten der Ordnung 2 und 3. a 11 a 12 a 21 a 22. det(a) =a 11 a 22 a 12 a 21. a 11 a 21

Serie 10: Inverse Matrix und Determinante

Komplexität von Algorithmen

Lineare Algebra - alles was man wissen muß

4.4. Rang und Inversion einer Matrix

Mathematik für Informatiker II Übungsblatt 7

Spezialfall: Die Gleichung ax = b mit einer Unbekannten x kann mit Hilfe des Kehrwerts 1 a = a 1 gelöst werden:

Matrizen und Determinanten

Beispiele zur schnellen Fouriertransformation

MC-Serie 11: Eigenwerte

Vorlesung bzw. 23. Januar Determinanten 1. Cramersche Regel

Fragenkatalog Kapitel 1 Fehleranalyse

Lie Gruppen, SS 2010 Montag $Id: intro.tex,v /04/13 16:06:37 hk Exp hk $ Es wird etwas dauern bis wir in der Lage sind zu sagen was

Eigenwerte und Eigenvektoren

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

Lösung (die Geraden laufen parallel) oder unendlich viele Lösungen.

Vektoren und Matrizen

Vorkurs: Mathematik für Informatiker

Mathematik 1. Inhaltsverzeichnis. Prof. Dr. K. Melzer.

Elemente der Analysis II

Leitfaden Lineare Algebra: Determinanten

Lineare Algebra. Teil III. Inhaltsangabe

Matrizen. Aufgabe 1. Sei f R 2 R 3 definiert durch. x y x Berechnen Sie die Matrix Darstellung von f. Lösung von Aufgabe 1.

Lösung zur Klausur zu Krypographie Sommersemester 2005

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2 Die Darstellung linearer Abbildungen durch Matrizen

Wortproblem für kontextfreie Grammatiken

Korrelationsmatrix. Statistische Bindungen zwischen den N Zufallsgrößen werden durch die Korrelationsmatrix vollständig beschrieben:

Kapitel 17. Determinanten

Mathematik für Wirtschaftswissenschaftler, WS 10/11 Musterlösungen zu Aufgabenblatt 11

Theoretische Informatik 1

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Erinnerung/Zusammenfassung zu Abbildungsmatrizen

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

KLAUSUR ZUR LINEAREN ALGEBRA I 22. Februar 2008

3.1.3 Newtonsche Interpolationsformel / Dividierte Differenzen

Lineare Gleichungssysteme

Lineare Abhängigkeit

Optimierung. Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen. Vorgehen: Dynamische Programmierung

Definitionen. Merkblatt lineare Algebra. affiner Teilraum Menge, die durch Addition eines Vektors v 0 zu allen Vektoren eines Vektorraumes V entsteht

Technische Universität München. Lösung Montag WS 2013/14. (Einheitskreis, ohne Rechnung ersichtlich) (Einheitskreis, ohne Rechnung ersichtlich)

Homogenität Assoziativgesetz A (B 1 + B 2 ) = A B 1 + A B 2 Distributivgesetz 1 (A 1 + A 2 ) B = A 1 B + A 2 B Distributivgesetz 2

Vektorräume und Rang einer Matrix

6. Rechnen mit Matrizen.

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester

11. Übung zur Vorlesung. Zahlentheorie. im Wintersemester 2015/16

Surjektive, injektive und bijektive Funktionen.

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

Proseminar: Primzahlen 1. Vortrag Der erweiterte euklidische Algorithmus

Lineare Gleichungssysteme

Mathematik Matrizenrechnung

Algorithmen und Datenstrukturen 2

Spezialgebiet Mathematik(Christian Behon ) 1. Matrizen. Kapitel 1 Definitionen und Herleitung von Matrizen. Kapitel 2 Matrizenoperation

Lineare Algebra KAPITEL III. 12 Matrizen und der Gauß-Algorithmus. I) Matrizen

Lineare Gleichungssysteme

Aufgabensammlung aus Mathematik 2 UMIT, SS 2010, Version vom 7. Mai 2010

Axiomatische Beschreibung der ganzen Zahlen

Übung zur Vorlesung Algorithmische Geometrie

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Randomisierte Algorithmen

Algorithmen II Vorlesung am

Beispiellösungen zur Klausur Lineare Algebra bei Prof. Habegger

Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein.

Das Kryptosystem von McEliece. auf der Basis von linearen Codes

Aufgaben zu Kapitel 14

GF(2 2 ) Beispiel eines Erweiterungskörpers (1)

Optimierungsprobleme. B. Langfeld, M. Ritter, B. Wilhelm Diskrete Optimierung: Fallstudien aus der Praxis

3.3 Eigenwerte und Eigenräume, Diagonalisierung

Mathematik für Informatiker II. Beispiellösungen zur Probeklausur. Aufgabe 1. Aufgabe 2 (5+5 Punkte) Christoph Eisinger Sommersemester 2011

Effiziente Algorithmen I

Corinne Schenka Vorkurs Mathematik WiSe 2012/13

Gliederung. Links-Rechts-Zerlegung Elimination faktorisiert A = L R. Determinante Inverse. Kleinste Quadrate. Lösung durch. Links-Rechts- Zerlegung

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

KLAUSUR ZUR LINEAREN ALGEBRA I MUSTERLÖSUNG

Per Jensen VORLESUNGSSKRIPT MATHEMATIK B FÜR CHEMIKER

Lineare Algebra (Mathe I) für Wirtschaftsinformatiker; Zusammenfassung

Das Briefträgerproblem

Lineare Algebra 1. Roger Burkhardt

Algorithmentheorie Randomisierung. Robert Elsässer

Transkript:

Kapitel 1 Algebraische und arithmetische Algorithmen 1.1 Das algebraische Berechnungsmodell Struktur: Körper (oder Ring) mit den Operationen +,,, (/) Eingabe: endliche Folge von Zahlen Ausgabe: endliche Folge von Zahlen Laufzeit : Anzahl der Operationen als Funktion der Eingabelänge. Verwendet werden Abfragen auf 0, Schleifen, Rekursionen etc. 1. Matrizenmultiplikation Eingabe: Zwei (n n)-matrizen über einem Ring a 11 a 1n A =..... a n1 a nn und B = b 11 b 1n..... b n1 b nn Ausgabe: (n n)-matrix c 11 c 1n C =.... n. mit c ij = a ik b kj, 1 i, j n c n1 c k=1 nn Der naive Algorithmus nach dieser Formel benutzt drei verschachtelte Schleifen über i, j und k. Das ergibt eine Laufzeit von Θ(n 3 ): n n n (n 1) Multiplikationen Additionen n 3 n Operationen Für n = sind es also 8 Multiplikationen und 4 Addidtionen. Geht es noch schneller? 1..1 Algorithmus von Strassen (1969) Der deutsche Mathematiker Volker Strassen die fand folgende Formel, um ( )-Matrizen zu multiplizieren: A B = C = c 11 c 1 c 1 c mit 1

c 11 = m 1 + m m 4 + m 6 c 1 = m 4 + m 5 c 1 = m 6 + m 7 c = m m 3 + m 5 m 7 m 1 = (a 1 a ) (b 1 + b ) m = (a 11 + a ) (b 11 + b ) m 3 = (a 11 a 1 ) (b 11 + b 1 ) m 4 = (a 11 + a 1 ) b m 5 = a 11 (b 1 b ) m 6 = a (b 1 b 11 ) m 7 = (a 1 + a ) b 11 wobei a ij b ij wie zuvor die Elemente der Matrizen A und B bezeichnen. Diese Methode nutzt 7 Multiplikationen und 18 Additionen und lässt sich zu einem rekursiven Algorithmus zur Multiplikation quadratischer Matrizen beliebiger Größe erweitern. Dazu führt man die Matrizenmultiplikation zunächst auf den Fall für ( )-Matrizen zurück. Gegeben seien zwei Matrizen über einem Ring R: A, B R n n mit n = k, k N + mit Hier sind A ij, B ij R n n A = A 11 A 1 A 1 A und B = für 1 i, j. Nun gilt A B = B 11 B 1 B 1 B A 11B 11 + A 1 B 1 A 11 B 1 + A 1 B A 1 B 11 + A B 1 A 1 B 1 + A B Damit ist die Multiplikation von (n n)-matrizen auf 7 Multiplikationen und 18 Additionen von ( n n )-Matrizen zurückgeführt. Als Rekursionsanker wählen wir (1 1)-Matrizen (was Elementen aus R entspricht). Das Verfahren lässt sich auch für quadratische Matrizen beliebiger Größe anwenden, indem man die Matrix bis zur nächsten Zweierpotenz mit Nullen auffüllt. Die Dimension der Matrix kann sich dadurch höchstens verdoppeln. Die Laufzeit des Algorithmus ist: M(1) = 1 ( n ) M(n) = 7M ( n ) + 18 ( n ) + 9 n = 7M = 7 (7M( n 4 ) + 9 ( n ) ) 9 + n =... ( n ) = 7 k M k + 9 ( ( n ) ( n + 7 +... + 7 k 1 n ) ) k 1 = n log 7 + 9 ( 7 ) log [ n (1 ) ] n 4 1 log n 7 4 1 kürzt sich mit n 4 = 7n log 7 6n Θ(n log 7 )

Durch den kleineren Exponenten von log 7 =, 807.. < 3 ist der Strassen-Algorithmus asymptotisch schneller als der naive Algorithmus ist. Aber geht es (asymptotisch) noch schneller? 1.. Ausblick Falls für ein k N das Produkt zweier (k k)-matrizen mit p Multiplikationen berechenbar ist, so ist allgemein das Produkt zweier (n n)-matrizen in O(n log k p ) Operationen berechenbar. Strassen fand das Paar k =, p = 7. Seitdem gab es weitere Arbeiten auf diesem Gebiet, die die Laufzeit noch weiter reduzieren konnten auf Θ(n x ): Victor Pan 1978 k = 70, p = 143640 x =, 795.. Bini, Capovani, Lotti, Romani 1979 x =, 779.. Schönhage 1979 x =, 55.. Pan, Winogard 1980 x =, 54.. Coppersmith, Winogard 1980 x =, 376.. 1.3 Inversion und Determinante von Matrizen Wir betrachten (n n)-matrizen über einem Körper K. Gegeben ist die Matrix A über K und gesucht ist A 1, falls A regulär ist. Die Laufzeit bezeichnet wieder die Anzahl der Körperoperationen +,,, /. Mit dem klassischen Gauss-Eliminationsverfahren lässt sich die Inverse berechnen, indem man die Matrix A mit Zeilenoperationen in die Einheitsmatrix überführt und die selben Operationen auch auf eine Einheitsmatrix anwedet: ( ) ( ) A I n I n A 1 Die Elimination eines Elementes der Matrix benötigt eine Zeilenoperation, welche in O(n) arbeitet. Insgesamt ergibt sich also eine Laufzeit von Θ(n 3 ). Rückführung der Inversion auf Matrizenmultiplikation: Sei wieder A K n n mit n = k, k N +. Unter der Voraussetzung, dass A 11 regulär ist, gilt folgende Zerlegung: X Y A = I n 0 n A 11 0 n I n A 1 11 A 1 A 1 A 1 11 I n 0 n D 0 n I n }{{}}{{}}{{} Dabei bezeichnen A ij, 1 i, j die ( n n )-Blockmatrizen aus A, I n die Einheitsmatrix der Größe n und 0 n die Nullmatrix der Größe n. Die Matrix D berechnet sich aus I n D = A A 1 A 1 11 A 1 Die Matrizen X und Z sind regulär, weil ihre Determinante 1 ist (Dreiecksform). Wenn sowohl A 11 als auch D regulär sind, dann ist Y ebenfalls regulär und es gilt: A 1 11 A 1 11 0 n A 1 = 0 n I n 0 n D 1 A 1 A 1 11 I n }{{}}{{}}{{} Z 1 A 1 Das liefert einen rekursiven Algorithmus zum Invertieren einer (n n)-matrix. Y 1 Z I n X 1 0 n 3

Die Determinante von A lässt sich ebenfalls auf diese Art zurückführen: det A = det X det Y det Z = 1 det Y 1 = det A 11 det D Bisher wird immer vorausgesetzt, dass A 11 regulär ist. Falls dies nicht gewährleistet ist, lässt sich zumindest in den Körpern R und Q folgender Trick nutzen (A T = A transponiert): A 1 = (A T A) 1 A T Die Matrix A T A ist positiv definit und symmetrisch. to be continued... 1.4 Multiplikation Boolscher Matrizen (Fortsetzung 18.04.) Da die Einträge ĉ ij n sind, können wir statt über Z auch über Z n+1 rechnen. Z n+1 ist ein Ring, d.h. die schnelle Matrizen Multiplikation ist anwendbar. (ĉ ij sind die Ergebnisse der Multiplikation) jetzt noch: Anzahl der Bitoperationen für eine Multiplikation/Addition/Subtraktion auf Z n+1 (Die Zahlen werden binär dargestellt mit log(n + 1) Bits.) Addition und Subtraktion von zwei k-bit-zahlen braucht O(k) Bitoperationen (nach der Schulmethode und der Implementierung im Schaltkreis). Für die Multiplikation werden O(k ) Bitoperationen benötigt. Beispiel für die Addition: 1 0 1 1 + 1 0 0 1 1 0 1 0 0 Beispiel für die Multiplikation: 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 1 Satz 1. Falls die Matrizenmultiplikation über einem Ring in M(m) arithmetischen Operationen möglich ist und Multiplikation/Addition/Subtraktion von k-bitzahlen in m(k) Bitoperationen, so kann man mit O(M(n) m( log(n + 1) )) Bitoperationen boolsche n n-matrizen multiplizieren. zum Beispiel: M(n) = O(n,376... ) m(k) = O(k ) O(n,376... log (n)) = O(n,377 ) (boolsche Matrizenmultiplikation) 4

1.4.1 Transitiver Abschluss Boolscher Matrizen gegeben: Boolsche n n-matrix A ˆ= gerichteter Graph G A mit n Knoten (o.b.d.a. V = {1,..., n}) ˆ= binäre Relation R A auf einer n-elementigen Menge Wir wollen den reflexiven und den transitiven Abschluss dieser Relation (Matrix A ) berechnen. A := I A A A 3 = (komponentenweises Oder) (A ) ij = 1 in G A existiert ein Weg von i nach j, denn: (A ) ij = 1 in G A existiert ein Weg der Länge k von i nach j i=0 A i Beweis durch Induktion: (es existiert ein Weg von i nach r mit der Länge k 1) (A k 1 ) ir = 1 a rj = 1 und (A k ) ij = n (A k 1 ) ir a ij ) i=0 Zusammenhang: transitiver Abschluss Multiplikation: Satz. a) Falls die Multiplikation boolscher Matrizen mit M(n) boolschen Operationen möglich ist, dann ist der transitiver Abschluss in O(M(n)) möglich. (Vorraussetzung: 4 M( n / ) M(n), M(n) c für ein c > 0) b) transitiver Abschluss in A(n) möglich, denn Multiplikation in A(3n) Beweis. (Annahme n ist eine Zweierpotenz) a) wenn A = B D C E dann ist A = (B CE D) }{{} :=F E DF F CE E E DF CE Die transitive Hülle von n n-matrix kann auf transitive Hüllen von n / n / -Matrizen (E und F ) und 6 Multiplikation und Additionen zurückgeführt werden. 5

A(n) = A( n / ) + 6M( n / ) + O(n ) für n A(1) = 0 also gilt: A(n) = A( n / ) + O(M(n)) A(n) = O(M(n)) (wie bei Inversion auflösen) Beispiel für die Graphendarstellung von G A : 1... n / n / + 1... n Pfade innerhalb der linken Seite werden durch die Einträge in B repräsentiert. Pfade innerhalb der rechten Seite werden durch die Einträge in E repräsentiert. Pfade von der linken zur rechten Seite werden durch die Einträge in C repräsentiert. Pfade von der rechten zur linken Seite werden durch die Einträge in D repräsentiert. Bisherige Methode: Für jeden Knoten in G A wird eine Breitensuche durchgeführt. O(n(n + m)) (Alternativ kann bei dünn besetzten Matrizen Multiplikation effizient durchgeführt werden.) b) Übung Was kann man noch auf Matrizenmultiplikation reduzieren? Analyse kontextfreier Sprachen geht in O(M(n)). (Dazu wird ein angepasster CYK-Algorithmus verwendet.) M := Komplexität der boolschen Matrizenmultiplikation 1.5 Polynommultiplikation, diskrete Fourier-Transformation gegeben: Körper K, Polynome über K in x: K[x] Ausdrücke der Form P (x) = a 0 + a 1 x + a x + + a n x n mit n 0, a 0,..., a n ɛ K werden durch einen Vektor der Koeffizienten (a 0,..., a n ) ɛ K n+1 repräsentiert. 6

Die Addition von Polynomen wird komponentenweise durchgeführt. Für die Multiplikation von Polynomen gilt: (a 0 + a 1 x + + a n x n ) (b 0 + b 1 x + + b n x n ) = c 0 + c 1 x + + c n x n c i = mit c i = i j=0 n j=i n a j b i j a j b i j für i n für i > n i = 0,..., n (c 0,..., c n ) heißt Faltung (Konvolution) von (a 0,..., a n ) (b 0,..., b n ). Wie viele Operationen (über K) sind nötig, um Faltung (d.h. Polynommultiplikation) zu berechnen? Direkt aus der Definition folgt: i + 1 für i n (n i) + 1 für i = n + 1,..., n n i + 1 + i=0 n i=n+1 (i n) + 1 = O(n ) 1.5.1 FFT ausführlich geg: Vektor a = (a 0,..., a n ) K n+1 Körper K, der eine primitive (n + 1)-te Einheitswurzel ω besitzt. obda: (n + 1) ist eine Zweierpotenz. Algorithm 1 FFT(a,n,ω) 1: if n = 0 then : return (a) 3: else 4: ag := (a 0, a,...a n 1 ) 5: au := (a 1, a 3,...a n ) 6: u := F F T (ag, n 1, ω ) 7: v := F F T (au, n 1, ω ) 8: w := 1 9: for i = 0 n 1 do 10: y i := u i + w v i 11: y n+1 +i := u i w v i 1: w := ω w 13: end for 14: return (y 0,...y n ) 15: end if Erklärung der Zeilen 8-15: für i = 0,..., n 1 : w durchläuft 1, ω, ω,..., ω n 1 y i soll sein: p 1 (ω i ) + }{{}}{{} ω i u i w für i = n 1 + 1,..., n : Wie sieht hier ω i aus? p (ω i ) }{{} v i 7

i = n + 1, n + 3, n + 5,... ω i = ω (n+1), ω (n+1)+, ω (n+1)+4,... ω i = ω i (n+1) Es werden hier die Werte von p 1 an diesen Stellen genommen. w i für i = n 1 + 1,..., n ist gleich: w n+1 +j }{{} = 1 = ω j für j = 0,..., n+1 Genaue Rekursionsgleichung: T (n + 1) = T ( n + 1 T (n + 1) = 3 (n + 1) log(n + 1) ) + 3 n + 1 }{{} Körperoperationen in Zeilen 8-14 Für die Faltung (Konvolution, Polynommultiplikation) haben wir folgenden Satz 3. (Faltungssatz) Seien a, b K n+1 Vektoren, K Körper mit primitiver (n+1)-ter Einheitswurzel, dann gilt a b = DF T 1 (DF T (a) DF T (b)) wobei a b K n+1 die Koeffizienten des Polynomproduktes darstellt, a, b die Dimension n haben (werden mit 0 aufgefüllt) und für die komponentenweise Multiplikation steht. Korollar 1. Die Multiplikation von Polynomen von Grad n mit Koeffizienten aus K (Eigenschaften wie in Satz 3) ist möglich mit O(nlogn) Operationen über dem Körper K. Denn die Operationen in der Formel in Satz 3 benötigen folgende Laufzeiten: DF T (a) DF T (b) in O(nlogn) mit FFT möglich geht in O(n) Zeit DF T 1 auch in O(nlogn) möglich, da die zugehörige inverse Matrix 1 1 1 1 ω 1 1 ω n n+1..... ist.. 1 ω n ω n FFT unter Benutzung von ω 1 möglich. Ergebnis muss 1 mit n + 1 multipliziert werden. }{{} O(n)Zeit 1.5. Bedeutung der Fourier-Transformation Darstellung einer Funktion mit Hilfe der Einheitswurzel 1, e i π N,..., e i (N 1) π N. Dabei gilt e i k π N π π = cos(k ) + sin(k N N ) = ωk 8

FFT gibt die Darstellung einer Funktion mit Hilfe von sin und cos verschiedener Frequenzen an. Die Koeffizienten sagen dabei aus wie stark die Frequenzen vertreten sind. Das Ergebnis der Fouriertransformation heißt auch Spektrum. Anwendungsgebiete: Wirtschaftwissenschaften: Untersuchung von Preisschwankungen Bild- und Signalverarbeitung: ( Hier ) werden durch Anwendung der Fourier-Transformation mit der Sinc-Funktion sinc(x) = sin(x) x Filter für die Rauschunterdrückung erstellt. Es wird dabei in Hoch- und Tiefpassfiter unterschieden. 9