Polynome und schnelle Fourier-Transformation

Slides:



Advertisements
Ähnliche Präsentationen
Fast Fourier Transformation
Advertisements

Matrixmultiplikation
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,
Polynomial Root Isolation
Filterung der räumlichen Frequenzen
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Schnelle Matrizenoperationen von Christian Büttner
Einführung in die Informatik: Programmierung und Software-Entwicklung
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)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
11. Matrizen. 11. Matrizen Eine mn-Matrix ist ein Raster aus mn Koeffizienten, die in m Zeilen und n Spalten angeordnet sind. = (aij)1  i  m, 1.
Verifizieren versus Berechnen
Christian Schindelhauer
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.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (04 – Entwurfsverfahren) Prof. 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.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
Union-Find-Strukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Geometrisches Divide and Conquer
Kapitel 5 Stetigkeit.
Kapitel 6 Differenzierbarkeit. Kapitel 6: Differenzierbarkeit © Beutelspacher Juni 2005 Seite 2 Inhalt 6.1 Die Definition 6.2 Die Eigenschaften 6.3 Extremwerte.
Christian Schindelhauer
Christian Schindelhauer
Wir suchen ‘ mit m = m    ‘ c  ‘ mod 26
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
§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.
Folie 1 § 29 Determinanten: Eigenschaften und Berechnung (29.1) Definition: Eine Determinantenfunktion auf K nxn ist eine Abbildung (im Falle char(K) ungleich.
§ 29 Determinanten: Eigenschaften und Berechnung
Effiziente Algorithmen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Effiziente Algorithmen
Multiplikation großer Zahlen mit Standard-FFT
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 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Einführung in die Matrizenrechnung
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.
ENDLICHE KÖRPER RSA – VERFAHREN.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Arne Vater Wintersemester 2006/ Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Scaffold 29S: Komplexe Zahlen
Stetige Kleinste-Quadrate-Approximation
Analyse der Laufzeit von Algorithmen
Wiederholung Größte gemeinsame Teiler Satz von Bezout:
Christian Scheideler WS 2008
Korrektur Aufgabe 8.1 Anstatt x2-2x+3 muss es heissen x2-4x+3.
Wiederholung Umwandlung in Koordinatenform
Wiederholung Chinesischer Restsatz RSA TexPoint fonts used in EMF.
 Präsentation transkript:

Polynome und schnelle Fourier-Transformation Mohsen Taheri FU Berlin – SoSe2012

Polynome Ein Polynom ist eine Funktion Koeffizienten: Ein Polynom hat Grad k wenn der höchste Koeffizient mit einem Wert ungleich 0 Länge = jede ganze Zahl großer als Grad eines Polynoms Polynome und FFT

Addition von Polynomen Seien und Polynome der Länge n Addition von A(x) und B(x) ist hat auch Länge n und Beispiel Laufzeit: Polynome und FFT

Multiplikation von Polynomen Seien und Polynome der Länge n Multiplikation von A(x) und B(x) ist Wobei Länge(C) = Länge(A) + Länge(B) Beispiel Laufzeit: Polynome und FFT

Darstellung von Polynomen Koeffizienten-Darstellung Point-Value-Darstellung Polynome und FFT

Koeffizienten-Darstellung Das Polynom als ein Vektor der Koeffizienten Addition: Laufzeit Multiplikation (wie vorhin): wobei Polynome und FFT

Point-Value-Darstellung Polynom Länge n in Point-Value- Darstellung: eine Menge von Punkten alle sind disjunkt für alle : Auswertung durch Horne-Schema (in ) Polynome und FFT

Addition in Point-Value-Darstellung B : Addition: Laufzeit: Polynome und FFT

Multiplikation in Point-Value-Darstellung Problem: Länge(A.B)=Länge(A)+Länge(B) Lösung: Extended Point-Value 2n Punkte statt n Punkte A: B: Multiplikation: C: Laufzeit : Polynome und FFT

Evaluation Evaluation: Transform von Koeffizienten-Vektor zur Point-Value-Darstellung Evaluating: Die Auswertung eines Polynoms unter einen bestimmten Wert von x Mit Hilfe von Horne-Schema in Evaluation insgesamt in Polynome und FFT

Interpolation Interpolation: Transform von Point-Value-Darstellung zur Koeffizienten-Darstellung Lagranges Formel Polynome und FFT

Theorem 1: Eindeutigkeit von Interpolation der Polynomen Für alle Menge von n Punkten mit disjunkt gibt es ein eindeutiges Polynom A(x) der Länge n, so dass für alle Polynome und FFT

DFT effiziente Methode für Evaluation und Interpolation Diskrete Fourier Transform Das Polynom in n komplexe n-te Einheitswurzeln auswerten Eingabe: Koeffizienten-Vektor Ausgabe: Vektor Auswertung der Polynom in n Komplexe n-te Einheitswurzeln Polynome und FFT

Komplexe Einheitswurzeln komplexe Einheitswurzel: eine komplexe Zahl wobei Es gibt genau n komplexe n-te Einheitswurzeln: für k=0,1, … , n-1: Die Zahl : primitive n-te Einheitswurzel alle anderen Zahlen sind die Potenzen dieser Zahl n komplexe n-te Einheitswurzeln sind dann: Polynome und FFT

Komplexe Einheitswurzeln - Eigenschaften Additive Gruppe Die n Zahlen haben die gleiche Struktur wie die additive Gruppe Beweis: Polynome und FFT

Komplexe Einheitswurzeln - Eigenschaften Cancellation Lemma Für jede ganze Zahl gilt: Beweis: . Korollar: Für alle ganze Zahlen n>0 gilt: Polynome und FFT

Komplexe Einheitswurzeln - Eigenschaften Halving Lemma: wenn n>0 gerade Zahl die Quadrate der n komplexen n -te Einheitswurzeln sind die n/2 komplexe (n/2)-te Einheitswurzeln: Polynome und FFT

Komplexe Einheitswurzeln - Eigenschaften Halving Lemma: Beweis: Da n gerade ist, nehmen wir an n=2m Zu zeigen: Nach Cancellation Lemma: da , ist dann , also □ Polynome und FFT

Komplexe Einheitswurzeln - Eigenschaften Summation Lemma: Für jede ganze Zahl n≥1 und für k≠0 und nicht dividierbar durch n, gilt: Polynome und FFT

FFT Evaluation eines Polynoms in unter Verwendung der Eigenschaften der Einheitswurzeln Diese Methode heißt Fast Fourier Transform(FFT). Annahme n ist ein 2er Potenz ( ) Divide-and-Conquer Polynome und FFT

FFT das Polynom A(x) in gerade und ungerade indizierte Koeffizienten teilen zwei neue Polynome der Länge n/2 Das Polynom wird so berechnet: Polynome und FFT

FFT das Problem von Auswerten des Polynoms in n Punkten ( ) reduziert zu: 1. zwei Polynome der Länge n/2 in Punkten ( ) auswerten 2. das Resultat mit Hilfe der Abgleichung zusammen addieren Polynome und FFT

FFT Nach Halving Lemma: die Anzahl der Elemente der Liste nicht n, sondern n/2. Die zwei Subprobleme haben genau die gleiche Struktur wie das ursprüngliche Problem und sind halb so groß. Polynome und FFT

Rekursiv FFT RECURSIVE-FFT(a) n = a.length() if n==1 return a for k=0 to n/2-1 return y Eingabe: Ausgabe: Zeilen 2-3 Rekursionsbasis: DFT von einem Vektor mit einem Element ist das Element selbst., weil Zeilen 6-7 definieren die Koeffizienten-Vektoren für Zeilen 4,5 und 13 sorgen dafür, dass stets den Wert hat Die Zeilen 8-9 führen die rekursive Berechnung für k=0,1,…,n/2-1: und oder, weil durch Cancellation Lemma , ist: Polynome und FFT

Rekursiv FFT Zeilen11-12 kombinieren das Ergebnis der rekursiven Berechnung Zeile 11 für Zeile 12 für zusammengefügt wird Vektor y berechnet Polynome und FFT

Rekursiv FFT - Laufzeit jeder rekursiver Aufruf kostet n = Länge des Eingabevektors Laufzeit: Polynome und FFT

Interpolation in Einheitswurzeln umgekehrtes Verfahren Polynom vom Point-Value zurück zu Koeffizienten Berechnung von DTF als eine Matrizenmultiplikation Vandermonde-Matrix wir brauchen die Inverse-Matrix Polynome und FFT

Inverse von Vandermonde-Matrix Theorem: Für j,k=0,1,…,n-1 sind die (j,k)Einträge von die Zahlen Beweis: z.z.: , wobei die n×n Identitätsmatrix betrachte die (j,j')Einträge von Falls j=j‘ : Falls j≠j‘ : -(n-1) ≤ j-j' ≤ n-1  j-j' ist nicht durch n dividierbar Summation Lemma : Polynome und FFT

Interpolation in Einheitswurzeln I : (j,k)Einträge der sind: II : Vergleiche mit Polynom in Einheitswurzeln leichte Modifikation in Algorithmus berechnet die Interpolation tausche a und y ersetze durch dividiere jedes Element durch n Also die Interpolation auch in berechenbar Polynome und FFT

Zusammenfassung Standard-Multiplikation Koeffizienten- Darstellung Laufzeit Koeffizienten- Darstellung Interpolation Laufzeit Evaluation Laufzeit Wir haben gezeigt, dass mit Hilfe vom Recursive-FFT man die Evaluation und Interpolation eines Polynoms in durchführen kann. Damit man zwei Polynome in Koeffizienten-Form in multipliziert, wird man sie zunächst in Point-Value-Form umwandeln. Diese Transformation ist in machbar. Die Multiplikation in Point-Value-Form kostet nun Zeit. Nachher wird man das Ergebnis der Multiplikation in zurück in Koeffizienten-Form umwandeln. Somit kann man diese Multiplikation insgesamt in durchführen. punktweise Multiplikation Laufzeit Point-Value- Darstellung Polynome und FFT