Christian Scheideler WS 2008

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Algorithmentheorie 08 – Dynamische Programmierung (4) Editierdistanz Approximative Zeichenkettensuche Sequence Alignment Prof. Dr. Th. Ottmann WS
Christian Scheideler SS 2009
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Kapitel 3 Arithmetische Schaltkreise
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Schnelle Matrizenoperationen von Christian Büttner
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
Algorithmentheorie 02 – Polynomprodukt und Fast Fourier Transformation
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Folie 1 Kapitel IV. Matrizen Inhalt: Matrizen als eigenständige mathematische Objekte Zusammenhang zwischen Matrizen und linearen Abbildungen Produkt von.
Polynome und schnelle Fourier-Transformation
Parallel Matrix Multiplication
Externspeicher- Algorithmen:Teil 2
§22 Invertierbare Matrizen und Äquivalenz von Matrizen
Folie 1 §21 Das Produkt von Matrizen (21.1) Definition: Für eine (m,n)-Matrix A und eine (n,s)-Matrix B ist das (Matrizen-) Produkt AB definiert als (21.2)
Lineare Algebra 11. Matrizen Eine m  n-Matrix ist ein Raster aus m  n Koeffizienten, die in m Zeilen und n Spalten angeordnet sind. = (a ij )
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren.
§8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein weiteres.
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
Wiederholung Größte gemeinsame Teiler Satz von Bezout:
Wiederholung TexPoint fonts used in EMF.
Christian Scheideler WS 2008
Wiederholung Gerichtete Graphen Digraph D=(V,E)
Wiederholung TexPoint fonts used in EMF.
Kleiner Schreibfehler
Korrektur Aufgabe 8.1 Anstatt x2-2x+3 muss es heissen x2-4x+3.
Wiederholung Gruppen Untergruppen Gruppenisomorphismen
Wiederholung Chinesischer Restsatz RSA TexPoint fonts used in EMF.
Kapitel IV. Matrizen Inhalt:
Algorithmen und Datenstrukturen
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen
Algorithmen und Datenstrukturen
Pflichtteil 2016 Aufgabe 6: Gegeben ist die Gerade
Algorithmen und Datenstrukturen
§19 Matrizen als lineare Abbildungen
Abiturprüfung Mathematik 2015 Baden-Württemberg Allgemeinbildende Gymnasien Wahlteil Analytische Geometrie / Stochastik Aufgabe B 2.1 und B Lösungen.
Algorithmen und Datenstrukturen
 Präsentation transkript:

Christian Scheideler WS 2008 Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 14.11.2018 Kapitel 10

Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation) Effiziente Matrix-Vektor-Multiplikation Effiziente Matrixmultiplikation (4-Russen Algo und Strassens Algo) Transitive Hülle 14.11.2018 Kapitel 10

Notation Ganze Zahl: Ziffernfolge zur Basis B “Zur Basis B”: Ziffern aus [B] = {0,…,B-1} Zahl a=(an-1…a0)B zur Basis B hat den Wert i=0n-1 ai Bi Wichtige Beispiele: B=2: Binärzahlen ( (101)2 = 1¢ 22 + 1¢ 20 = 5 ) B=10: Dezimalzahlen B=16: Hexadezimalzahlen ( (A)16 = 10 ) Ziffern: {0,…,9} [ {A,B,C,D,E,F} 14.11.2018 Kapitel 10

Notation Elementare Operationen: Seien a,b,c,x,y 2 [B]. (x y)B:=a+b+c Beispiele für B=10: (12)10 = 5+6+1 (42)10= 6 ¢ 7 Basis B beliebig aber fest: lassen wir weg 14.11.2018 Kapitel 10

Addition Gegeben: zwei Zahlen a=(an-1…a0) und b=(bn-1…b0) Gesucht: s=(sn…s0) mit s=a+b Schulmethode: an-1 … a1 a0 bn-1 … b1 b0 cn cn-1 … c1 c0 2 {0,1} sn sn-1 … s1 s0 Übertrag 14.11.2018 Kapitel 10

Addition Es gilt: c0 = 0 (ci+1 si):=ai+bi+ci für alle i>=0 sn = cn Algorithmus: c:=0 for i:=0 to n-1 do (c si):=ai+bi+c sn:=c Elementaroperation 14.11.2018 Kapitel 10

Addition Theorem 10.1: Die Addition zweier Zahlen der Länge n benötigt höchstens n Elementaradditionen Beobachtung: Jede Addition n-stelliger Zahlen a und b benötigt mindestens n Elementaradditionen, d.h. unser Algo ist optimal. 14.11.2018 Kapitel 10

Multiplikation Gegeben: zwei Zahlen a=(an-1…a0) und b=(bn-1…b0) Gesucht: s=(s2(n-1)…s0) mit s = a ¢ b Schulmethode: berechne a ¢ bj für alle j>0 addiere Ergebnisse versetzt zusammen _ 14.11.2018 Kapitel 10

Multiplikation (an-1…a0) ¢ bj cn-1 cn-2 … c0 0 + dn-1 … d1 d0 en en-1 … e1 e0 pn pn-1 … p1 p0 Algorithmus: e:=0; c-1:=0 for i:=0 to n-1 do (ci di):=ai ¢ bj; (e pi):=ci-1+di+e pn:=cn-1+e (ci di)=ai ¢ bj Übertrag 14.11.2018 Kapitel 10

Multiplikation Lemma 10.2: Wir können eine Zahl der Länge n mit einer Ziffer in 2n primitiven Operationen multiplizieren. Sei pj := a ¢ bj mit pj= (pj,n…pj,0). Dann müssen wir noch p:= j=0n-1 pj Bj berechnen. 14.11.2018 Kapitel 10

Multiplikation Bildlich: p0,n … p0,2 p0,1 p0,0 + p1,n p1,n-1 … p1,1 p1,0 … ………………………… + pn-1,n …. pn-1,1 pn-1,0 p2n-1 ……………………………... p2 p1 p0 14.11.2018 Kapitel 10

Multiplikation Algorithmus: p:=0 For j:=0 to n-1 do p:=p + (a¢ bj) Bj Anzahl Elementaroperationen maximal 2n wegen Theorem 10.1, insgesamt 2n2 2n wegen Lemma 10.2, insgesamt 2n2 Also insgesamt max. 4n2 Elementaroperationen Theorem 10.1 Lemma 10.2 14.11.2018 Kapitel 10

Multiplikation Mit einer besseren Abschätzung für die Additionen kann gezeigt werden: Theorem 10.3: Die Schulmethode multipliziert zwei Zahlen der Länge n mit höchstens 3n2+n primitiven Operationen. Können wir besser werden? 14.11.2018 Kapitel 10

Rekursive Multiplikation Rekursive Version der Schulmethode: Gegeben: zwei n-stellige Zahlen a, b zur Basis B, n gerade Sei a=a1¢Bk+a0 und b=b1¢Bk+b0 mit k=n/2 Dann gilt: a ¢ b = (a1¢Bk+a0) ¢ (b1¢Bk+b0) = a1¢b1 B2k + (a1¢b0 + a0¢b1)Bk + a0¢b0 4 rekursive Aufrufe zur Multiplikation n/2-stelliger Zahlen 14.11.2018 Kapitel 10

Rekursive Multiplikation Annahme: |a|=|b|=n=2c für ein c 2 IN Algorithmus Produkt(a,b): if |a|=|b|=1 then return a¢b else k:=|a|/2 return Produkt(a1,b1)¢B2k + (Produkt(a1,b0) + Produkt(a0,b1))Bk + Produkt(a0,b0) 14.11.2018 Kapitel 10

Rekursive Multiplikation Anzahl Elementaroperationen ( ¢ , +): 1 n=1 4T(n/2)+3(2n) n>1 Daraus ergibt sich T(n) < 7n2 + 6n Beweis: durch Induktion { T(n) = 14.11.2018 Kapitel 10

Karatsuba Multiplikation Karatsubas Idee: a ¢ b = (a1¢Bk+a0) ¢ (b1¢Bk+b0) = a1b1B2k + (a1b0 + a0b1)Bk + a0b0 = a1b1B2k + ((a1+a0)(b1+b0)–(a1b1+a0b0)) ¢ Bk + a0b0 Nur noch drei rekursive Aufrufe für a1b1, a0b0, (a1+a0)(b1+b0) 14.11.2018 Kapitel 10

Karatsuba Multiplikation Algorithmus Karatsuba(a,b): if |a|=|b|=1 then return a¢b else k:=|a|/2 p1:=Karatsuba(a1,b1) p2:=Karatsuba(a1+a0,b1+b0) p3:=Karatsuba(a0,b0) return p1¢B2k + (p2-(p1+p3))Bk + p3 14.11.2018 Kapitel 10

Karatuba Multiplikation Anzahl Elementaroperationen: 1 n=1 3T(n/2+1)+6(2n) n>1 Daraus ergibt sich T(n) ~ nlog 3 = n1,58… Problem: Karatsuba erst für n>1.000.000 besser als Schulmethode Bester bekannter Algo für Multiplikation: Laufzeit O(n log n loglog n) { T(n) = 14.11.2018 Kapitel 10

Matrix-Vektor-Multiplikation Seien m,n 2 IN. Eine m£n-Matrix A hat die Form Für ein x=(xi)16i6n ist y = A¢x definiert als yi = j=1n ai,j xi für alle 16i6m a1,1 a1,2 a1,3 … a1,n a2,1 a2,2 a2,3 … a2,n am,1 am,2 am,3 … am,n … A = 14.11.2018 Kapitel 10

Matrix-Vektor-Multiplikation Schulmethode: Berechne yi = j=1n ai,j xi für alle 16i6m Laufzeit: O(n¢ m) (falls + und ¢ Einheits-kosten haben) Bessere Laufzeit möglich für festes A und beliebiges x 2 IRn, falls alle ai,j 2 [B] für ein festes und nicht zu großes B sind. 14.11.2018 Kapitel 10

Matrix-Vektor-Multiplikation Wir betrachten zunächst eine m£n-Matrix A mit ai,j 2 {0,1} für alle i,j und m = log2 n. Definiere Un als die m£n-Matrix, deren i-te Spalte die Binärdarstellung der Zahl i-1 repräsentiert (von oben nach unten) Beispiel für n=8: U8 = 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 14.11.2018 Kapitel 10

Matrix-Vektor-Multiplikation Sei U(i) die i-te Spalte von Un und A(j) die j-te Spalte von A. Definiere P=(pi,j) als die n£n-Matrix mit pi,j = (U(i), A(j)), wobei  die Kronecker Funktion ist mit (U(i), A(j)) = 1 , U(i) = A(j) und 0 sonst. Es gilt: (Un ¢ P)i,j = k=1n ui,k ¢ pk,j = k=1n Ui(k) (U(k), A(j)) = Ai(j) = ai,j D.h. A ¢ x = (Un ¢ P) ¢ x = Un ¢ (P¢ x) 14.11.2018 Kapitel 10

Matrix-Vektor-Multiplikation Bei Darstellung von P als Folge von n Spaltenpositionen, in denen P eine 1 hat (P hat nur eine 1 pro Spalte!), kann y:=P¢ x in O(n) Zeit berechnet werden. Wir müssen noch Un ¢ y berechnen. Dazu verwenden wir eine rekursive Def. von Un Un = OTn/2 1Tn/2 Un/2 U1 = ( 0 1 ) 14.11.2018 Kapitel 10

Matrix-Vektor-Multiplikation Un ¢ y ergibt dann Berechnung von y1+y2, OTn/2 ¢ y1 und 1Tn/2 ¢ y2 benötigt höchstens 2n arithm. Operationen. Sei T(n) die Anzahl der arithm. Operationen für n. Dann gilt T(2) = 2 und T(n) 6 T(n/2) + 2n Auflösung der Rekurrenz ergibt T(n) 6 4n. OTn/2 1Tn/2 y1 OTn/2 y1 + 1Tn/2 y2 = y2 Un/2 Un/2 Un/2 (y1+ y2 ) 14.11.2018 Kapitel 10

Matrix-Vektor-Multiplikation Schulmethode: Zeit O(n¢ m) = O(n log n) Liberty-Zucker-Methode: nur Zeit O(n) Beliebige m£n-Matrix A: Unterteile A in m’£n-Matrizen A1, A2,… mit m’=log2 n Wende Verfahren oben auf Ai ¢ x an für jedes i, setze die Ergebnisse zum Ergebnisvektor zusammen Laufzeit: O(n¢ m / log n) (statt O(n¢ m) ) 14.11.2018 Kapitel 10

Matrix-Vektor-Multiplikation Erweiterung auf Matrizen A mit ai,j 2 [B]: Unterteile A in m’£n-Matrizen A1,A2,… mit m’=logB n Verwende für Ai ¢ x die Matrix Laufzeit: O(n¢ m/logB n) … OTn/B 1Tn/B B-1Tn/B Un = … Un/B Un/B Un/B 14.11.2018 Kapitel 10

Matrixmultiplikation Restlicher Inhalt (über pdf-Folien): Der 4-Russen-Algorithmus Matrixmultiplikation a la Strassen Transitive Hülle 14.11.2018 Kapitel 10