LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

Slides:



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

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,
Eine dynamische Menge, die diese Operationen unterstützt,
DNA-Array oder DNA-Chip
DNA-Array oder DNA-Chip
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Christian Schindelhauer
Schnelle Matrizenoperationen von Christian Büttner
Thema: Algorithmusdesignverfahren Vu Hoang Lam IMN04 HTWK-Leipzig Obersemminar Softwareentwicklung.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
WS 03/041 Algorithmentheorie 01 - Einleitung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Lineare Suche Divide-and-Conquer-Suche Kombinationssuche
Kapitel 6: Klassifizierung von Sortiertechniken
G.Heyer Algorithmen und Datenstrukturen II 1 Algorithmen und Datenstrukturen II Wintersemester 2000 / 2001 Prof. Dr. Gerhard Heyer Institut für Informatik.
Kapitel 6. Suchverfahren
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Algorithmentheorie 6 – Greedy-Verfahren
Prof.Dr.S. Albers Prof. Dr. Th. Ottmann
WS 03/04 Algorithmentheorie 03 - Randomisierung Prof. Dr. S. Albers 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
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (04 – Entwurfsverfahren) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
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.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Algorithmen und Datenstrukturen
WS 06/07 Algorithmentheorie 01 - Einleitung Prof. Dr. Th. Ottmann Tobias Lauer.
Union-Find-Strukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (09 - Weitere Sortierverfahren) Prof. Th. Ottmann.
Geometrisches Divide and Conquer
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Rekursion Richard Göbel.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Merge-Sort und Binäres Suchen /10D. Haehn Populäres algorithmisches Lösungsverfahren Populäres algorithmisches Lösungsverfahren Divide: Problem.
Diskrete Mathematik II
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Information und Kommunikation
Polynome und schnelle Fourier-Transformation
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Externspeicher- Algorithmen:Teil 2
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Mergesort.
Binärbäume.
Wiederholung TexPoint fonts used in EMF.
Wiederholung Gruppen Untergruppen Gruppenisomorphismen
 Präsentation transkript:

LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik 2 Teile & Herrsche Teile & Herrsche (Divide & Conquer) Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen

LS 2 / Informatik 3 Teile & Herrsche Weiteres Beispiel Problem: Finde Element in sortiertem Feld Eingabe: Sortiertes Feld A, gesuchtes Element b A[1,…,n] Ausgabe: Index i mit A[i] = b BinäreSuche(A,b,p,r) 1. if p=r then return p 2. else 3. q (p+r)/2 4. if b A[q] then return BinäreSuche(A,b,p,q) 5. else return BinäreSuche(A,b,q+1,r)

LS 2 / Informatik 4 Teile & Herrsche Satz 9 Algorithmus BinäreSuche(A,b,p,r) findet den Index einer Zahl b in einem sortierten Feld A[p..r], sofern b in A[p..r] vorhanden ist. Beweis Wir zeigen die Korrektheit per Induktion über n=r-p. Ist n<0, so ist nichts zu zeigen. Wir nehmen an, dass b in A[p..r] ist, da es sonst nichts zu zeigen gibt.

LS 2 / Informatik 5 Teile & Herrsche Satz 9 Algorithmus BinäreSuche(A,b,p,r) findet den Index einer Zahl b in einem sortierten Feld A[p..r], sofern b in A[p..r] vorhanden ist. Beweis Wir zeigen die Korrektheit per Induktion über n=r-p. Ist n<0, so ist nichts zu zeigen. Wir nehmen an, dass b in A[p..r] ist, da es sonst nichts zu zeigen gibt. (I.A.) Für n=0, d.h. p=r, gibt der Algorithmus p zurück. Dies ist der korrekte (weil einzige) Index.

LS 2 / Informatik 6 Teile & Herrsche Satz 9 Algorithmus BinäreSuche(A,b,p,r) findet den Index einer Zahl b in einem sortierten Feld A[p..r], sofern b in A[p..r] vorhanden ist. Beweis Wir zeigen die Korrektheit per Induktion über n=r-p. Ist n<0, so ist nichts zu zeigen. Wir nehmen an, dass b in A[p..r] ist, da es sonst nichts zu zeigen gibt. (I.A.) Für n=0, d.h. p=r, gibt der Algorithmus p zurück. Dies ist der korrekte (weil einzige) Index. (I.V.) Für alle r,p mit m=r-p und 0mn findet BinäreSuche(A,b,p,r) den Index einer Zahl b in einem sortierten Feld A[p..r].

LS 2 / Informatik 7 Teile & Herrsche Satz 9 Algorithmus BinäreSuche(A,b,p,r) findet den Index einer Zahl b in einem sortierten Feld A[p..r], sofern b in A[p..r] vorhanden ist. Beweis (I.V.) Für alle r,p mit m=r-p und 0mn findet BinäreSuche(A,b,p,r) den Index einer Zahl b in einem sortierten Feld A[p..r].

LS 2 / Informatik 8 Teile & Herrsche Satz 9 Algorithmus BinäreSuche(A,b,p,r) findet den Index einer Zahl b in einem sortierten Feld A[p..r], sofern b in A[p..r] vorhanden ist. Beweis (I.V.) Für alle r,p mit m=r-p und 0mn findet BinäreSuche(A,b,p,r) den Index einer Zahl b in einem sortierten Feld A[p..r]. (I.S.) Wir betrachten den Aufruf von BinäreSuche für beliebige p, r mit n+1 = r-p. Da n+1>0 folgt p<r und der Algorithmus führt den else-Fall aus. Dort wird q auf (p+r)/2 gesetzt.

LS 2 / Informatik 9 Teile & Herrsche Satz 9 Algorithmus BinäreSuche(A,b,p,r) findet den Index einer Zahl b in einem sortierten Feld A[p..r], sofern b in A[p..r] vorhanden ist. Beweis (I.V.) Für alle r,p mit m=r-p und 0mn findet BinäreSuche(A,b,p,r) den Index einer Zahl b in einem sortierten Feld A[p..r]. (I.S.) Wir betrachten den Aufruf von BinäreSuche für beliebige p, r mit n+1 = r-p. Da n+1>0 folgt p<r und der Algorithmus führt den else-Fall aus. Dort wird q auf (p+r)/2 gesetzt. Es gilt qp und q<r. Ist b A[q], so wird BinäreSuche rekursiv für A[p..q] aufgerufen.

LS 2 / Informatik 10 Teile & Herrsche Satz 9 Algorithmus BinäreSuche(A,b,p,r) findet den Index einer Zahl b in einem sortierten Feld A[p..r], sofern b in A[p..r] vorhanden ist. Beweis (I.V.) Für alle r,p mit m=r-p und 0mn findet BinäreSuche(A,b,p,r) den Index einer Zahl b in einem sortierten Feld A[p..r]. (I.S.) Wir betrachten den Aufruf von BinäreSuche für beliebige p, r mit n+1 = r-p. Da n+1>0 folgt p<r und der Algorithmus führt den else-Fall aus. Dort wird q auf (p+r)/2 gesetzt. Es gilt qp und q<r. Ist b A[q], so wird BinäreSuche rekursiv für A[p..q] aufgerufen. Da A[p..r] sortiert ist, liegt b in A[p..q]. Damit folgt aus (I.V.), dass der Index von b gefunden wird.

LS 2 / Informatik 11 Teile & Herrsche Satz 9 Algorithmus BinäreSuche(A,b,p,r) findet den Index einer Zahl b in einem sortierten Feld A[p..r], sofern b in A[p..r] vorhanden ist. Beweis (I.V.) Für alle r,p mit m=r-p und 0mn findet BinäreSuche(A,b,p,r) den Index einer Zahl b in einem sortierten Feld A[p..r]. (I.S.) Wir betrachten den Aufruf von BinäreSuche für beliebige p, r mit n+1 = r-p. Da n+1>0 folgt p A[q], so wird BinäreSuche rekursiv für A[q+1..r] aufgerufen. Da A[p..r] sortiert ist, liegt b in A[q+1..r].

LS 2 / Informatik 12 Teile & Herrsche Satz 9 Algorithmus BinäreSuche(A,b,p,r) findet den Index einer Zahl b in einem sortierten Feld A[p..r], sofern b in A[p..r] vorhanden ist. Beweis (I.V.) Für alle r,p mit m=r-p und 0mn findet BinäreSuche(A,b,p,r) den Index einer Zahl b in einem sortierten Feld A[p..r]. (I.S.) Wir betrachten den Aufruf von BinäreSuche für beliebige p, r mit n+1 = r-p. Da n+1>0 folgt p A[q], so wird BinäreSuche rekursiv für A[q+1..r] aufgerufen. Da A[p..r] sortiert ist, liegt b in A[q+1..r]. Damit folgt aus (I.V.), dass der Index von b gefunden wird.

LS 2 / Informatik 13 Teile & Herrsche Satz 9 Algorithmus BinäreSuche(A,b,p,r) findet den Index einer Zahl b in einem sortierten Feld A[p..r], sofern b in A[p..r] vorhanden ist. Beweis (I.V.) Für alle r,p mit m=r-p und 0mn findet BinäreSuche(A,b,p,r) den Index einer Zahl b in einem sortierten Feld A[p..r]. (I.S.) Wir betrachten den Aufruf von BinäreSuche für beliebige p, r mit n+1 = r-p. Da n+1>0 folgt p A[q], so wird BinäreSuche rekursiv für A[q+1..r] aufgerufen. Da A[p..r] sortiert ist, liegt b in A[q+1..r]. Damit folgt aus (I.V.), dass der Index von b gefunden wird.

LS 2 / Informatik 14 Teile & Herrsche Auflösen von T(n) T(n/2) + c (Intuition; wir ignorieren Runden) n n c n/2 n/4 1 1 c c c Höhe log n c log n

LS 2 / Informatik 15 Teile & Herrsche Binäre Suche vs. lineare Suche Beobachtung n wächst sehr viel stärker als log n Binäre Suche effizient für riesige Datenmengen In der Praxis ist log n fast wie eine Konstante Laufzeit101001,00010,000100,000 n101001,00010,000100,000 log n

LS 2 / Informatik 16 Teile & Herrsche Integer Multiplikation Problem: Multipliziere zwei n-Bit Integer Eingabe: Zwei n-Bit Integer X,Y Ausgabe: 2n-Bit Integer Z mit Z=XY Annahmen: Wir können n-Bit Integer in (n) (worst case) Zeit addieren Wir können n-Bit Integer in (n+k) (worst case) Zeit mit 2 multiplizieren k

LS 2 / Informatik 17 Teile & Herrsche Schulmethode: (13 11)

LS 2 / Informatik 18 Teile & Herrsche Schulmethode: (13 11)

LS 2 / Informatik 19 Teile & Herrsche Schulmethode: (13 11)

LS 2 / Informatik 20 Teile & Herrsche Schulmethode: (13 11)

LS 2 / Informatik 21 Teile & Herrsche Schulmethode: (13 11)

LS 2 / Informatik 22 Teile & Herrsche Schulmethode: (13 11)

LS 2 / Informatik 23 Teile & Herrsche Schulmethode: (13 11)

LS 2 / Informatik 24 Teile & Herrsche Laufzeit Schulmethode n Multiplikationen mit 2 für ein kn n-1 Additionen im worst-case: 11…111 11…111 Jede Addition (n) Zeit Insgesamt (n²) Laufzeit n-Bit k

LS 2 / Informatik 25 Teile & Herrsche Laufzeit Schulmethode n Multiplikationen mit 2 für ein kn n-1 Additionen im worst-case: 11…111 11…111 Jede Addition (n) Zeit Insgesamt (n²) Laufzeit n-Bit Bessere Laufzeit mit Teile & Herrsche? k

LS 2 / Informatik 26 Teile & Herrsche Integer Multiplikation AB CD

LS 2 / Informatik 27 Teile & Herrsche Integer Multiplikation AB CD B D

LS 2 / Informatik 28 Teile & Herrsche Integer Multiplikation AB CD B D B C +

LS 2 / Informatik 29 Teile & Herrsche Integer Multiplikation AB CD B D B C A D + +

LS 2 / Informatik 30 Teile & Herrsche Integer Multiplikation AB CD B D B C A D A C + + +

LS 2 / Informatik 31 Teile & Herrsche Integer Multiplikation AB CD B D B C A D A C Ergebnis =

LS 2 / Informatik 32 Teile & Herrsche Integer Multiplikation ABCD B D B C A D A C Ergebnis = 4 Multiplikationen von n/2-Bit Integers

LS 2 / Informatik 33 Teile & Herrsche Integer Multiplikation ABCD B D B C A D A C Ergebnis = 4 Multiplikationen von n/2-Bit Integers 3 Additionen von 2n-Bit Integers

LS 2 / Informatik 34 Teile & Herrsche Integer Multiplikation ABCD B D B C A D A C Ergebnis = 4 Multiplikationen von n/2-Bit Integers 3 Additionen von 2n-Bit Integers 3 Multiplikationen mit 2 für kn k

LS 2 / Informatik 35 Teile & Herrsche Laufzeit einfaches Teile & Herrsche T(n) 4 T(n/2) + cn, n>1 c, n=1 c geeignete Konstante

LS 2 / Informatik 36 Teile & Herrsche Laufzeit einfaches Teile & Herrsche cn T(n) 4 T(n/2) + cn, n>1 c, n=1 c geeignete Konstante n n

LS 2 / Informatik 37 Teile & Herrsche Laufzeit einfaches Teile & Herrsche cn 4cn/2 T(n) 4 T(n/2) + cn, n>1 c, n=1 c geeignete Konstante n n n/2

LS 2 / Informatik 38 Teile & Herrsche Laufzeit einfaches Teile & Herrsche cn 4cn/2 ……. ……. 4 c T(n) 4 T(n/2) + cn, n>1 c, n=1 c geeignete Konstante n n n/ h Höhe h

LS 2 / Informatik 39 Teile & Herrsche Laufzeit einfaches Teile & Herrsche cn 4cn/2 ……. ……. 4 c T(n) 4 T(n/2) + cn, n>1 c, n=1 c geeignete Konstante n n n/ h Höhe h Höhe des Baums: h = log n (n²)

LS 2 / Informatik 40 Teile & Herrsche Laufzeit einfaches Teile & Herrsche cn 4cn/2 ……. ……. 4 c T(n) 4 T(n/2) + cn, n>1 c, n=1 c geeignete Konstante n n n/ h Höhe h Höhe des Baums: h = log n (n²) Nichts gewonnen!

LS 2 / Informatik 41 Teile & Herrsche Satz 11 Die Multiplikation zweier n-Bit Zahlen mit dem einfachen Teile & Herrsche Verfahren hat Laufzeit O(n²). Beweis Wir nehmen an, dass n eine Zweierpotenz ist. Induktion über n. Wir zeigen T(n) cn².

LS 2 / Informatik 42 Teile & Herrsche Satz 11 Die Multiplikation zweier n-Bit Zahlen mit dem einfachen Teile & Herrsche Verfahren hat Laufzeit O(n²). Beweis Wir nehmen an, dass n eine Zweierpotenz ist. Induktion über n. Wir zeigen T(n) cn². (I.A.) Die Laufzeit zur Multiplikation von zwei 1-Bit Zahlen ist höchstens c.

LS 2 / Informatik 43 Teile & Herrsche Satz 11 Die Multiplikation zweier n-Bit Zahlen mit dem einfachen Teile & Herrsche Verfahren hat Laufzeit O(n²). Beweis Wir nehmen an, dass n eine Zweierpotenz ist. Induktion über n. Wir zeigen T(n) cn². (I.A.) Die Laufzeit zur Multiplikation von zwei 1-Bit Zahlen ist höchstens c. (I.V.) Für jedes m<n ist die Laufzeit zur Multiplikation von zwei m-Bit Zahlen cm².

LS 2 / Informatik 44 Teile & Herrsche Satz 11 Die Multiplikation zweier n-Bit Zahlen mit dem einfachen Teile & Herrsche Verfahren hat Laufzeit O(n²). Beweis Wir nehmen an, dass n eine Zweierpotenz ist. Induktion über n. Wir zeigen T(n) cn². (I.A.) Die Laufzeit zur Multiplikation von zwei 1-Bit Zahlen ist höchstens c. (I.V.) Für jedes m<n ist die Laufzeit zur Multiplikation von zwei m-Bit Zahlen cm². (I.S.) Betrachte eine Multiplikation von zwei n-Bit Zahlen. Es gilt T(n) 4 T(n/2) + cn. Nach (I.V.) gilt dann T(n) 4 c (n/2)² + cn = cn²+cn.

LS 2 / Informatik 45 Satz 11 Die Multiplikation zweier n-Bit Zahlen mit dem einfachen Teile & Herrsche Verfahren hat Laufzeit O(n²). Beweis Wir nehmen an, dass n eine Zweierpotenz ist. Induktion über n. Wir zeigen T(n) cn². (I.A.) Die Laufzeit zur Multiplikation von zwei 1-Bit Zahlen ist höchstens c. (I.V.) Für jedes m<n ist die Laufzeit zur Multiplikation von zwei m-Bit Zahlen c m². (I.S.) Betrachte eine Multiplikation von zwei n-Bit Zahlen. Es gilt T(n) 4 T(n/2) + cn. Nach (I.V.) gilt dann T(n) 4 c (n/2)² + cn = cn²+cn. Teile & Herrsche Funktioniert nicht !!!!!

LS 2 / Informatik 46 Satz 11 Die Multiplikation zweier n-Bit Zahlen mit dem einfachen Teile & Herrsche Verfahren hat Laufzeit O(n²). Beweis (neuer Versuch) Wir nehmen an, dass n eine Zweierpotenz ist. Induktion über n. O.b.d.A. sei cT(2). Wir zeigen T(n) cn² - cn. Teile & Herrsche Trick: Die Funktion etwas verkleinern!!

LS 2 / Informatik 47 Teile & Herrsche Satz 11 Die Multiplikation zweier n-Bit Zahlen mit dem einfachen Teile & Herrsche Verfahren hat Laufzeit O(n²). Beweis (neuer Versuch) Wir nehmen an, dass n eine Zweierpotenz ist. Induktion über n. O.b.d.A. sei cT(2). Wir zeigen T(n) cn² - cn. (I.A.) Die Laufzeit zur Multiplikation von zwei 2-Bit Zahlen ist höchstens c.

LS 2 / Informatik 48 Teile & Herrsche Satz 11 Die Multiplikation zweier n-Bit Zahlen mit dem einfachen Teile & Herrsche Verfahren hat Laufzeit O(n²). Beweis (neuer Versuch) Wir nehmen an, dass n eine Zweierpotenz ist. Induktion über n. O.b.d.A. sei cT(2). Wir zeigen T(n) cn² - cn. (I.A.) Die Laufzeit zur Multiplikation von zwei 2-Bit Zahlen ist höchstens c. (I.V.) Für jedes m<n ist die Laufzeit zur Multiplikation von zwei m-Bit Zahlen c m² -cm.

LS 2 / Informatik 49 Teile & Herrsche Satz 11 Die Multiplikation zweier n-Bit Zahlen mit dem einfachen Teile & Herrsche Verfahren hat Laufzeit O(n²). Beweis (neuer Versuch) Wir nehmen an, dass n eine Zweierpotenz ist. Induktion über n. O.b.d.A. sei cT(2). Wir zeigen T(n) cn² - cn. (I.A.) Die Laufzeit zur Multiplikation von zwei 2-Bit Zahlen ist höchstens c. (I.V.) Für jedes m<n ist die Laufzeit zur Multiplikation von zwei m-Bit Zahlen c m² -cm. (I.S.) Betrachte eine Multiplikation von zwei n-Bit Zahlen. Es gilt T(n) 4 T(n/2) + cn.

LS 2 / Informatik 50 Teile & Herrsche Satz 11 Die Multiplikation zweier n-Bit Zahlen mit dem einfachen Teile & Herrsche Verfahren hat Laufzeit O(n²). Beweis (neuer Versuch) Wir nehmen an, dass n eine Zweierpotenz ist. Induktion über n. O.b.d.A. sei cT(2). Wir zeigen T(n) cn² - cn. (I.A.) Die Laufzeit zur Multiplikation von zwei 2-Bit Zahlen ist höchstens c. (I.V.) Für jedes m<n ist die Laufzeit zur Multiplikation von zwei m-Bit Zahlen c m² -cm. (I.S.) Betrachte eine Multiplikation von zwei n-Bit Zahlen. Es gilt T(n) 4 T(n/2) + cn. Nach (I.V.) gilt dann T(n) 4 c (n/2)² - 4 c(n/2) + cn = cn² - cn.

LS 2 / Informatik 51 Teile & Herrsche Satz 11 Die Multiplikation zweier n-Bit Zahlen mit dem einfachen Teile & Herrsche Verfahren hat Laufzeit O(n²). Beweis (neuer Versuch) Wir nehmen an, dass n eine Zweierpotenz ist. Induktion über n. O.b.d.A. sei cT(2). Wir zeigen T(n) cn² - cn. (I.A.) Die Laufzeit zur Multiplikation von zwei 2-Bit Zahlen ist höchstens c. (I.V.) Für jedes m<n ist die Laufzeit zur Multiplikation von zwei m-Bit Zahlen c m² -cm. (I.S.) Betrachte eine Multiplikation von zwei n-Bit Zahlen. Es gilt T(n) 4 T(n/2) + cn. Nach (I.V.) gilt dann T(n) 4 c (n/2)² - 4 c(n/2) + cn = cn² - cn.

LS 2 / Informatik 52 Teile & Herrsche Verbesserte Integer Multiplikation AB CD B D B C A D A C Ergebnis =

LS 2 / Informatik 53 Teile & Herrsche Verbesserte Integer Multiplikation AB CD B D B C A D A C Ergebnis = Berechne BC + AD Mit einer Multiplikation

LS 2 / Informatik 54 Teile & Herrsche Verbesserte Integer Multiplikation ABCD B D B C A D A C Ergebnis = Berechne BC + AD Mit einer Multiplikation Trick: (A+B) (C+D) – AC – BD = BC + AD Trick: (A+B) (C+D) – AC – BD = BC + AD

LS 2 / Informatik 55 Teile & Herrsche Aufwand Verbesserte Integer Multiplikation 3 Multiplikationen der Länge n/2 [AC, BD, (A+B) (C+D)] Konstant viele Additionen und Multiplikationen mit Zweierpotenzen Laufzeit T(n) = 3 T(n/2) + cn, n>1 c, n=1 c geeignete Konstante

LS 2 / Informatik 56 Teile & Herrsche Laufzeit verbesserte Integer Multiplikation cn 3cn/2 ……. ……. 3 c T(n) 3 T(n/2) + cn, n>1 c, n=1 c geeignete Konstante n n n/ h Höhe h Höhe des Baums: h = log n O(3 ) log n

LS 2 / Informatik 57 Teile & Herrsche Laufzeit verbesserte Integer Multiplikation cn 3cn/2 ……. ……. 3 c T(n) 3 T(n/2) + cn, n>1 c, n=1 c geeignete Konstante n n n/ h Höhe h Höhe des Baums: h = log n O(3 ) log n 3 = 2 = n log nlog 3 log n log 3

LS 2 / Informatik 58 Teile & Herrsche Satz 12 Die Laufzeit der verbesserten Integer Multiplikation ist O(3 ) = O(n ). Beweis Induktion über n. Sei T(4) c. Wir zeigen T(n) c 3 - 2cn. log n log 3 log n

LS 2 / Informatik 59 Teile & Herrsche Satz 12 Die Laufzeit der verbesserten Integer Multiplikation ist O(3 ) = O(n ). Beweis Induktion über n. Sei T(4) c. Wir zeigen T(n) c 3 - 2cn. (I.A.) Es gilt T(4) c = c 3 – 2 c 4. log n log 3 log n log 4

LS 2 / Informatik 60 Teile & Herrsche Satz 12 Die Laufzeit der verbesserten Integer Multiplikation ist O(3 ) = O(n ). Beweis Induktion über n. Sei T(4) c. Wir zeigen T(n) c 3 - 2cn. (I.A.) Es gilt T(4) c = c 3 – 2 c 4. (I.V.) Für jedes m<n ist die Laufzeit für die Multiplikation zweier m-Bit Zahlen höchstens c 3 - 2cm. log n log 3 log n log 4 log m

LS 2 / Informatik 61 Teile & Herrsche Satz 12 Die Laufzeit der verbesserten Integer Multiplikation ist O(3 ) = O(n ). Beweis Induktion über n. Sei T(4) c. Wir zeigen T(n) c 3 - 2cn. (I.A.) Es gilt T(4) c = c 3 – 2 c 4. (I.V.) Für jedes m<n ist die Laufzeit für die Multiplikation zweier m-Bit Zahlen höchstens c 3 - 2cm. (I.S.) Betrachte die Multiplikation von zwei n-Bit Zahlen. Es gilt T(n) = 3 T(n/2) + cn c (n/2) + cn = c 3 - 2cn. log n log 3 log n log 4 log n log m

LS 2 / Informatik 62 Teile & Herrsche Satz 12 Die Laufzeit der verbesserten Integer Multiplikation ist O(3 ) = O(n ). Beweis Induktion über n. Sei T(4) c. Wir zeigen T(n) c 3 - 2cn. (I.A.) Es gilt T(4) c = c 3 – 2 c 4. (I.V.) Für jedes m<n ist die Laufzeit für die Multiplikation zweier m-Bit Zahlen höchstens c 3 - 2cm. (I.S.) Betrachte die Multiplikation von zwei n-Bit Zahlen. Es gilt T(n) = 3 T(n/2) + cn c (n/2) + cn = c 3 - 2cn. log n log 3 log n log 4 log n log m

LS 2 / Informatik 63 Teile & Herrsche Satz 13 Zwei n-Bit Integer Zahlen können mit Hilfe des Teile & Herrsche Verfahrens in O(n ) worst case Laufzeit multipliziert werden. Beweis Die Laufzeit folgt aus Satz 12 wegen 1.59 log 3. Korrektheit zeigen wir per Induktion über n. 1.59

LS 2 / Informatik 64 Teile & Herrsche Satz 13 Zwei n-Bit Integer Zahlen können mit Hilfe des Teile & Herrsche Verfahrens in O(n ) worst case Laufzeit multipliziert werden. Beweis Die Laufzeit folgt aus Satz 12 wegen 1.59 log 3. Korrektheit zeigen wir per Induktion über n. (I.A.) Die Multiplikation zweier 1-Bit Zahlen wird vom Rechner korrekt ausgeführt. 1.59

LS 2 / Informatik 65 Teile & Herrsche Satz 13 Zwei n-Bit Integer Zahlen können mit Hilfe des Teile & Herrsche Verfahrens in O(n ) worst case Laufzeit multipliziert werden. Beweis Die Laufzeit folgt aus Satz 12 wegen 1.59 log 3. Korrektheit zeigen wir per Induktion über n. (I.A.) Die Multiplikation zweier 1-Bit Zahlen wird vom Rechner korrekt ausgeführt. (I.V.) Die Multiplikation von zweier m-Bit Zahlen für m<n ist korrekt. 1.59

LS 2 / Informatik 66 Teile & Herrsche Satz 13 Zwei n-Bit Integer Zahlen können mit Hilfe des Teile & Herrsche Verfahrens in O(n ) worst case Laufzeit multipliziert werden. Beweis Die Laufzeit folgt aus Satz 12 wegen 1.59 log 3. Korrektheit zeigen wir per Induktion über n. (I.A.) Die Multiplikation zweier 1-Bit Zahlen wird vom Rechner korrekt ausgeführt. (I.V.) Die Multiplikation von zweier m-Bit Zahlen für m<n ist korrekt. (I.S.) Nach (I.V.) werden die Produkte AC, BD, (A+B)(C+D) korrekt berechnet. 1.59

LS 2 / Informatik 67 Teile & Herrsche Satz 13 Zwei n-Bit Integer Zahlen können mit Hilfe des Teile & Herrsche Verfahrens in O(n ) worst case Laufzeit multipliziert werden. Beweis Die Laufzeit folgt aus Satz 12 wegen 1.59 log 3. Korrektheit zeigen wir per Induktion über n. (I.A.) Die Multiplikation zweier 1-Bit Zahlen wird vom Rechner korrekt ausgeführt. (I.V.) Die Multiplikation von zweier m-Bit Zahlen für m<n ist korrekt. (I.S.) Nach (I.V.) werden die Produkte AC, BD, (A+B)(C+D) korrekt berechnet. Damit folgt die Korrektheit des Algorithmus wegen (A+B) (C+D) – AC – BD = BC + AD und aufgrund unserer Vorüberlegungen. 1.59

LS 2 / Informatik 68 Teile & Herrsche Satz 13 Zwei n-Bit Integer Zahlen können mit Hilfe des Teile & Herrsche Verfahrens in O(n ) worst case Laufzeit multipliziert werden. Beweis Die Laufzeit folgt aus Satz 12 wegen 1.59 log 3. Korrektheit zeigen wir per Induktion über n. (I.A.) Die Multiplikation zweier 1-Bit Zahlen wird vom Rechner korrekt ausgeführt. (I.V.) Die Multiplikation von zweier m-Bit Zahlen für m<n ist korrekt. (I.S.) Nach (I.V.) werden die Produkte AC, BD, (A+B)(C+D) korrekt berechnet. Damit folgt die Korrektheit des Algorithmus wegen (A+B) (C+D) – AC – BD = BC + AD und aufgrund unserer Vorüberlegungen. 1.59

LS 2 / Informatik 69 Teile & Herrsche Matrixmultiplikation Zeile x Spalte = =

LS 2 / Informatik 70 Teile & Herrsche Matrixmultiplikation Zeile x Spalte = =

LS 2 / Informatik 71 Teile & Herrsche Matrixmultiplikation =

LS 2 / Informatik 72 Teile & Herrsche Matrixmultiplikation =

LS 2 / Informatik 73 Teile & Herrsche Matrixmultiplikation =

LS 2 / Informatik 74 Teile & Herrsche Matrixmultiplikation =

LS 2 / Informatik 75 Teile & Herrsche Matrixmultiplikation =

LS 2 / Informatik 76 Teile & Herrsche Matrixmultiplikation Problem: Berechne das Produkt zweier n n-Matrizen Eingabe: Matrizen X, Y Ausgabe: Matrix Z = X Y

LS 2 / Informatik 77 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) 1. new array Z[1..n][1..n] 2. for i 1 to n do 3. for j 1 to n do 4. Z[i][j] 0 5. for k 1 to n do 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z

LS 2 / Informatik 78 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) 1. new array Z[1..n][1..n] 2. for i 1 to n do 3. for j 1 to n do 4. Z[i][j] 0 5. for k 1 to n do 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z

LS 2 / Informatik 79 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) 1. new array Z[1..n][1..n] 2. for i 1 to n do 3. for j 1 to n do 4. Z[i][j] 0 5. for k 1 to n do 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z

LS 2 / Informatik 80 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) 1. new array Z[1..n][1..n] 2. for i 1 to n do 3. for j 1 to n do 4. Z[i][j] 0 5. for k 1 to n do 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z

LS 2 / Informatik 81 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) 1. new array Z[1..n][1..n] 2. for i 1 to n do 3. for j 1 to n do 4. Z[i][j] 0 5. for k 1 to n do 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z

LS 2 / Informatik 82 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) 1. new array Z[1..n][1..n] 2. for i 1 to n do 3. for j 1 to n do 4. Z[i][j] 0 5. for k 1 to n do 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z

LS 2 / Informatik 83 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) 1. new array Z[1..n][1..n] 2. for i 1 to n do 3. for j 1 to n do 4. Z[i][j] 0 5. for k 1 to n do 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z

LS 2 / Informatik 84 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) Laufzeit 1. new array Z[1..n][1..n] 2. for i 1 to n do 3. for j 1 to n do 4. Z[i][j] 0 5. for k 1 to n do 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z

LS 2 / Informatik 85 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) Laufzeit 1. new array Z[1..n][1..n] (n²) 2. for i 1 to n do 3. for j 1 to n do 4. Z[i][j] 0 5. for k 1 to n do 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z Ausnahme (Rechenmodell): Dynamische Initialisierung eines Feldes benötigt Zeit proportional zur Größe des Feldes Ausnahme (Rechenmodell): Dynamische Initialisierung eines Feldes benötigt Zeit proportional zur Größe des Feldes

LS 2 / Informatik 86 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) Laufzeit 1. new array Z[1..n][1..n] (n²) 2. for i 1 to n do (n) 3. for j 1 to n do 4. Z[i][j] 0 5. for k 1 to n do 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z

LS 2 / Informatik 87 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) Laufzeit 1. new array Z[1..n][1..n] (n²) 2. for i 1 to n do (n) 3. for j 1 to n do (n²) 4. Z[i][j] 0 5. for k 1 to n do 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z

LS 2 / Informatik 88 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) Laufzeit 1. new array Z[1..n][1..n] (n²) 2. for i 1 to n do (n) 3. for j 1 to n do (n²) 4. Z[i][j] 0 (n²) 5. for k 1 to n do 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z

LS 2 / Informatik 89 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) Laufzeit 1. new array Z[1..n][1..n] (n²) 2. for i 1 to n do (n) 3. for j 1 to n do (n²) 4. Z[i][j] 0 (n²) 5. for k 1 to n do (n³) 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z

LS 2 / Informatik 90 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) Laufzeit 1. new array Z[1..n][1..n] (n²) 2. for i 1 to n do (n) 3. for j 1 to n do (n²) 4. Z[i][j] 0 (n²) 5. for k 1 to n do (n³) 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] (n³) 7. return Z

LS 2 / Informatik 91 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) Laufzeit 1. new array Z[1..n][1..n] (n²) 2. for i 1 to n do (n) 3. for j 1 to n do (n²) 4. Z[i][j] 0 (n²) 5. for k 1 to n do (n³) 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] (n³) 7. return Z (1)

LS 2 / Informatik 92 Teile & Herrsche MatrixMultiplikation (Array X,Y,n) Laufzeit 1. new array Z[1..n][1..n] (n²) 2. for i 1 to n do (n) 3. for j 1 to n do (n²) 4. Z[i][j] 0 (n²) 5. for k 1 to n do (n³) 6. Z[i][j] Z[i][j] + X[i][k] Y[k][j] (n³) 7. return Z (1) (n³)

LS 2 / Informatik 93 Teile & Herrsche Matrixmultiplikation Aufwand 8 Multiplikationen von n/2 n/2 Matrizen 4 Additionen von n/2 n/2 Matrizen

LS 2 / Informatik 94 Teile & Herrsche Matrixmultiplikation Aufwand 8 Multiplikationen von n/2 n/2 Matrizen 4 Additionen von n/2 n/2 Matrizen Laufzeit T(n) = 8 T(n/2) + cn², für n>1 c, für n=1

LS 2 / Informatik 95 Teile & Herrsche Laufzeit einfache Matrixmultiplikation cn² 8c(n/2)² ……. ……. 8 c T(n) = 8 T(n/2) + cn², n>1 c, n=1 c geeignete Konstante n n n/ h Höhe h=log n n/2

LS 2 / Informatik 96 Teile & Herrsche Laufzeit einfache Matrixmultiplikation cn² 8c(n/2)² ……. ……. 8 c T(n) = 8 T(n/2) + cn², n>1 c, n=1 c geeignete Konstante n n n/ h Höhe h=log n n/2 (n³)

LS 2 / Informatik 97 Teile & Herrsche Satz 14 Die einfache Matrizenmultiplikation hat Laufzeit (n³). Beweis

LS 2 / Informatik 98 Teile & Herrsche Satz 14 Die einfache Matrizenmultiplikation hat Laufzeit (n³). Beweis Wir nehmen an, dass n eine Zweierpotenz ist und T(2)c gilt. Wir zeigen zunächst per Induktion über n, dass T(n) cn³ - cn².

LS 2 / Informatik 99 Teile & Herrsche Satz 14 Die einfache Matrizenmultiplikation hat Laufzeit (n³). Beweis Wir nehmen an, dass n eine Zweierpotenz ist und T(2)c gilt. Wir zeigen zunächst per Induktion über n, dass T(n) cn³ - cn². (I.A.) Für n=2 ist T(2) c c 2³ - c 2²

LS 2 / Informatik 100 Teile & Herrsche Satz 14 Die einfache Matrizenmultiplikation hat Laufzeit (n³). Beweis Wir nehmen an, dass n eine Zweierpotenz ist und T(2)c gilt. Wir zeigen zunächst per Induktion über n, dass T(n) cn³ - cn². (I.A.) Für n=2 ist T(2) c c 2³ - c 2² (I.V.) Für m<n ist T(m) cm³ - cm².

LS 2 / Informatik 101 Teile & Herrsche Satz 14 Die einfache Matrizenmultiplikation hat Laufzeit (n³). Beweis Wir nehmen an, dass n eine Zweierpotenz ist und T(2)c gilt. Wir zeigen zunächst per Induktion über n, dass T(n) cn³ - cn². (I.A.) Für n=2 ist T(2) c c 2³ - c 2² (I.V.) Für m<n ist T(m) cm³ - cm². (I.S.) Es gilt T(n) = 8 T(n/2) + cn². Nach (I.V.) folgt T(n) 8 c(n/2)³ - 8 c(n/2)² + cn² cn³ - cn².

LS 2 / Informatik 102 Teile & Herrsche Satz 14 Die einfache Matrizenmultiplikation hat Laufzeit (n³). Beweis Wir nehmen an, dass n eine Zweierpotenz ist und T(2)c gilt. Wir zeigen zunächst per Induktion über n, dass T(n) cn³ - cn². (I.A.) Für n=2 ist T(2) c c 2³ - c 2² (I.V.) Für m<n ist T(m) cm³ - cm². (I.S.) Es gilt T(n) = 8 T(n/2) + cn². Nach (I.V.) folgt T(n) 8 c(n/2)³ - 8 c(n/2)² + cn² cn³ - cn².

LS 2 / Informatik 103 Teile & Herrsche Matrixmultiplikation Trick (wie bei Integer Multiplikation) P = A (F-H) P = (A+D) (E+H) P = (A+B) H P = (B-D) (G+H) P = (C+D) E P =(A-C) (E+F) P = D (G-E)

LS 2 / Informatik 104 Teile & Herrsche Matrixmultiplikation Trick (wie bei Integer Multiplikation) P = A (F-H) P = (A+D) (E+H) P = (A+B) H P = (B-D) (G+H) P = (C+D) E P =(A-C) (E+F) P = D (G-E) AE+BG = P + P + P - P AF+BH = P + P CE+DG = P + P CF+DH = P + P - P - P AE+BG = P + P + P - P AF+BH = P + P CE+DG = P + P CF+DH = P + P - P - P

LS 2 / Informatik 105 Teile & Herrsche Matrixmultiplikation Trick (wie bei Integer Multiplikation) P = A (F-H) P = (A+D) (E+H) P = (A+B) H P = (B-D) (G+H) P = (C+D) E P =(A-C) (E+F) P = D (G-E) AE+BG = P + P + P - P AF+BH = P + P CE+DG = P + P CF+DH = P + P - P - P AE+BG = P + P + P - P AF+BH = P + P CE+DG = P + P CF+DH = P + P - P - P Nur 7 Multiplikationen !!!!!

LS 2 / Informatik 106 Teile & Herrsche Matrixmultiplikation Trick (wie bei Integer Multiplikation) P = A (F-H) P = (A+D) (E+H) P = (A+B) H P = (B-D) (G+H) P = (C+D) E P =(A-C) (E+F) P = D (G-E) AE+BG = P + P + P - P AF+BH = P + P CE+DG = P + P CF+DH = P + P - P - P AE+BG = P + P + P - P AF+BH = P + P CE+DG = P + P CF+DH = P + P - P - P Nur 7 Multiplikationen !!!!!

LS 2 / Informatik 107 Teile & Herrsche Laufzeit einfache Matrixmultiplikation cn² 7c(n/2)² ……. ……. 7 c T(n) = 7 T(n/2) + cn², n>1 c, n=1 c geeignete Konstante n n n/ h Höhe h=log n n/2 (7 ) log n

LS 2 / Informatik 108 Teile & Herrsche Laufzeit einfache Matrixmultiplikation cn² 7c(n/2)² ……. ……. 7 c T(n) = 7 T(n/2) + cn², n>1 c, n=1 c geeignete Konstante n n n/ h Höhe h=log n n/2 (n ) log 7

LS 2 / Informatik 109 Teile & Herrsche Satz 14 Die einfache Matrizenmultiplikation hat Laufzeit (7 ). Beweis log n

LS 2 / Informatik 110 Teile & Herrsche Satz 14 Die einfache Matrizenmultiplikation hat Laufzeit (7 ). Beweis Wir nehmen an, dass n eine Zweierpotenz ist und T(4)c gilt. Wir zeigen zunächst per Induktion über n, dass T(n) c 7 - 2cn². log n

LS 2 / Informatik 111 Teile & Herrsche Satz 14 Die einfache Matrizenmultiplikation hat Laufzeit (7 ). Beweis Wir nehmen an, dass n eine Zweierpotenz ist und T(4)c gilt. Wir zeigen zunächst per Induktion über n, dass T(n) c 7 - 2cn². (I.A.) Für n=2 ist T(4) c c 49 - c 32. log n

LS 2 / Informatik 112 Teile & Herrsche Satz 14 Die einfache Matrizenmultiplikation hat Laufzeit (7 ). Beweis Wir nehmen an, dass n eine Zweierpotenz ist und T(4)c gilt. Wir zeigen zunächst per Induktion über n, dass T(n) c 7 - 2cn². (I.A.) Für n=2 ist T(4) c c 49 - c 32. (I.V.) Für m<n ist T(m) c 7 - cm². log n log m

LS 2 / Informatik 113 Teile & Herrsche Satz 14 Die einfache Matrizenmultiplikation hat Laufzeit (7 ). Beweis Wir nehmen an, dass n eine Zweierpotenz ist und T(4)c gilt. Wir zeigen zunächst per Induktion über n, dass T(n) c 7 - 2cn². (I.A.) Für n=2 ist T(4) c c 49 - c 32. (I.V.) Für m<n ist T(m) c 7 - cm². (I.S.) Es gilt T(n) = 7 T(n/2) + cn². Nach (I.V.) folgt T(n) c (n/2)² + cn² 7 - 2cn². log n log m log (n/2) log n

LS 2 / Informatik 114 Teile & Herrsche Satz 14 Die einfache Matrizenmultiplikation hat Laufzeit (7 ). Beweis Wir nehmen an, dass n eine Zweierpotenz ist und T(4)c gilt. Wir zeigen zunächst per Induktion über n, dass T(n) c 7 - 2cn². (I.A.) Für n=2 ist T(4) c c 49 - c 32. (I.V.) Für m<n ist T(m) c 7 - cm². (I.S.) Es gilt T(n) = 7 T(n/2) + cn². Nach (I.V.) folgt T(n) c (n/2)² + cn² 7 - 2cn². log n log m log (n/2) log n

LS 2 / Informatik 115 Teile & Herrsche Satz 15 Zwei n-Bit Integer Zahlen können mit Hilfe des Teile & Herrsche Verfahrens in O(n ) worst case Laufzeit multipliziert werden. Beweis 2.81

LS 2 / Informatik 116 Teile & Herrsche Satz 15 Zwei n-Bit Integer Zahlen können mit Hilfe des Teile & Herrsche Verfahrens in O(n ) worst case Laufzeit multipliziert werden. Beweis Die Laufzeit folgt aus Satz 14 wegen 2.81 log 7. Korrektheit zeigen wir per Induktion über n. 2.81

LS 2 / Informatik 117 Teile & Herrsche Satz 15 Zwei n-Bit Integer Zahlen können mit Hilfe des Teile & Herrsche Verfahrens in O(n ) worst case Laufzeit multipliziert werden. Beweis Die Laufzeit folgt aus Satz 14 wegen 2.81 log 7. Korrektheit zeigen wir per Induktion über n. (I.A.) Die Multiplikation zweier 1 1 Matrizen ist korrekt. 2.81

LS 2 / Informatik 118 Teile & Herrsche Satz 15 Zwei n-Bit Integer Zahlen können mit Hilfe des Teile & Herrsche Verfahrens in O(n ) worst case Laufzeit multipliziert werden. Beweis Die Laufzeit folgt aus Satz 14 wegen 2.81 log 7. Korrektheit zeigen wir per Induktion über n. (I.A.) Die Multiplikation zweier 1 1 Matrizen ist korrekt. (I.V.) Die Multiplikation zweier m m Matrizen für m<n ist korrekt. 2.81

LS 2 / Informatik 119 Teile & Herrsche Satz 15 Zwei n-Bit Integer Zahlen können mit Hilfe des Teile & Herrsche Verfahrens in O(n ) worst case Laufzeit multipliziert werden. Beweis Die Laufzeit folgt aus Satz 14 wegen 2.81 log 7. Korrektheit zeigen wir per Induktion über n. (I.A.) Die Multiplikation zweier 1 1 Matrizen ist korrekt. (I.V.) Die Multiplikation zweier m m Matrizen für m<n ist korrekt. (I.S.) Nach (I.V.) werden die Zwischenergebnisse P bis P korrekt berechnet. Damit folgt die Korrektheit des Algorithmus durch Nachrechnen der Teilformeln

LS 2 / Informatik 120 Teile & Herrsche Satz 15 Zwei n-Bit Integer Zahlen können mit Hilfe des Teile & Herrsche Verfahrens in O(n ) worst case Laufzeit multipliziert werden. Beweis Die Laufzeit folgt aus Satz 14 wegen 2.81 log 7. Korrektheit zeigen wir per Induktion über n. (I.A.) Die Multiplikation zweier 1 1 Matrizen ist korrekt. (I.V.) Die Multiplikation zweier m m Matrizen für m<n ist korrekt. (I.S.) Nach (I.V.) werden die Zwischenergebnisse P bis P korrekt berechnet. Damit folgt die Korrektheit des Algorithmus durch Nachrechnen der Teilformeln

LS 2 / Informatik 121 Teile & Herrsche Zusammenfassung Multiplikation und Matrizenmultiplikation sind weitere Beispiel für Teile & Herrsche Algorithmen Faustregel: Je weniger rekursive Aufrufe desto schneller Trick bei Laufzeitbeweisen: Abziehen von Termen niedriger Ordnung