ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Ο Μετασχηματισμός Fast Fourier Ιάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών
ΟΜετασχηματισμόςFast Fourier 2 3 4 5 6 7 8 9 2 3 4 5 2 3 4 5 6 7 8 9 2 3 4 5 FFT
Γενικές Γραμμές και Διάβασμα Πρόβλημα Πολ/σμού Πολυνύμν ΠρταρχικέςΡίζεςτηςΜονάδος Μετασχηματισμός Fourier Διακριτού Χρόνου Αλγόριθμος FFT Πολ/σμός Ακεραίν FFT Πολ/σμός Ακεραίν σε Java FFT 2
FFT 3 Πολυώνυμα Πολυώνυμα: Γενικά, 4 3 2 4 3 8 2 5 ) ( x x x x x p + + + + 2 2 ) ( or ) ( + + + + i i i x a x a x a a x p x a x p L
Polyomial Evaluatio Κανόνας Horer Δοσμένν συντελεστών: (a,a,a 2,,a - ), ορίζουμε πολυώνυμο p( x) i i a i x Δοσμένου x, αποτιμούμε το p(x) σε χρόνο O() με χρήση της εξίσσης p( x) a + x( a + x( a + 2 L + x( a + 2 xa ) L )) Eval(A,x): [όπου A(a,a,a 2,,a - )] If, the retur a Else, Let A (a,a 2,,a - ) retur a +x*eval(a,x) [υπόθεση: αυτό γίνεται σε σταθερό χρόνο] FFT 4
Polyomial Multiplicatio Problem Δοσμένν συντελεστών: (a,a,a 2,,a - ) και(b,b,b 2,,b - ) και ορίζοντας δύο πολυώνυμα, p() και q(), και τον αριθμό x, υπολογίζουμε το γινόμενο p(x)q(x). ΟκανόναςHorer δεν βοηθάει, καθώς: όπου p( x) q( x) c i i j i a j b i j i c i x Μία ακριβής αποτίμηση θα έπαιρνε χρόνο O( 2 ). Ο μαγικός FFT θα το κάνει σε χρόνο O( log ). FFT 5
Παρεμβολή Πολυνύμν & Πολ/σμός Πολυνύμν Δοσμένου συνόλου σημείν στο επίπεδο με διακριτές συντεταγμένες, υπάρχει ακριβώς ένα πολυώνυμο (-)- βαθμού που να περνάει από όλα αυτά τα σημεία. Εναλλακτική προσέγγιση για τον υπολογισμό του p(x)q(x): Υπολόγισε το p() σε 2 τιμές, x,x,,x 2-. Υπολόγισε το q() στις ίδιες 2 x τιμές. Βρες το πολυώνυμο (2-)-βαθμού που περνάει απο τα σημεία {(x,p(x )q(x )), (x,p(x )q(x )),, (x 2-,p(x 2- )q(x 2- ))}. Δυστυχώς, μια ακριβής αποτίμηση θα πάρει πάλι χρόνο O( 2 ), όσο θα χρειαζόμασταν εφαρμόζοντας τον κανόνα Horer χρόνου O() για την αποτίμιση σε 2 διαφορετικά σημεία. Ο μαγικός FFT θα το κάνει σε χρόνο O( log ), διαλέγοντας 2 σημεία που εκτιμώνται εύκολα FFT 6
Primitive Roots of Uity Το έιναι η -οστή πρταρχική ρίζα της μονάδος, για >, αν Οι αριθμοί,, 2,, - είναιόλοιδιακριτοί Παράδειγμα : Z * : x x^2 x^3 x^4 x^5 x^6 x^7 x^8 x^9 x^ 2 4 8 5 9 7 3 6 3 9 5 4 3 9 5 4 4 5 9 3 4 5 9 3 5 3 4 9 5 3 4 9 6 3 7 9 5 8 4 2 7 5 2 3 4 6 9 8 8 9 6 4 3 2 5 7 9 4 3 5 9 4 3 5 2, 6, 7, 8 είναι οι -th ρίζες της μονάδος στο Z * 2 2 4, 6 2 3, 7 2 5, 8 2 9 είναι 5-th ρίζες της μονάδος στο Z * 2-6, 3-4, 4-3, 5-9, 6-2, 7-8, 8-7, 9-5 Παράδειγμα 2: Ο μιγαδικός e 2πi/ είναι η πρταρχική -οστή ρίζα της μονάδος, όπου i FFT 7
FFT 8 Ιδιότητες τν πρταρχικών ριζών της μονάδος Ιδιότητα Αντιστροφής: Αν είναι μια πρταρχική ρίζα της μονάδος, τότε - - Απόδειξη: - Ιδιότητα εξουδετέρσης : Για μη μηδενικά -<k<, Απόδειξη : Ιδιότητα αναγγής: Αν w είναι μια (2)-βαθμού πρταρχική ρίζα της μονάδος, τότε 2 είναι -βαθμού πρταρχική ρίζα της μονάδος. Απόδειξη:Αν,, 2,, 2- διακριτές, το ίδιο είναι και, 2,( 2 ) 2,,( 2 ) - Ιδιότητα Ανάκλασης: Αν περιττό, τότε /2 -. Απόδειξη : Από την ιδιότητα εξουδετέρσης, για k/2: Επομένς : k+/2 - k. j kj () ) ( ) ( k k k k k k k j kj ) 2)( / ( 2 / 2 / 2 / 2 / 2) / ( j j + + + + + + + L
Μετασχηματισμός Fourier Διακριτού Χρόνου Δοσμένν συντελεστών (a,a,a 2,,a - ) για ένα πολυώνυμο p(x) (-)-βαθμού Ο Διακριτός Μετασχ. Fourier είναι η αποτίμηση του p στις τιμές,, 2,, - Παράγουμε το (y,y,y 2,,y - ), όπου y j p( j ) Δηλαδή, y i j a i ij Σε μορφή πινάκν: yfa, όπου F[i,j] ij. Ο Αντίστροφος Διακριτός Μετασχ. Fourier επανακτά τους συντελεστές ενός πολυνύμου (-)-βαθμού, δοσμένν τν τιμών του, στα σημεία,, 2,, - Σε μορφή πινάκν : af - y, όπου F - [i,j] -ij /. FFT 9
FFT Ορθότητα του αντίστροφου DFT Ο DFT και ο αντίστροφος DFT είναι πραγματικά αντίστροφες πράξεις Απόδειξη: Έστ AF - F. Θέλουμε να δείξουμε ότι AI, όπου Αν ij, τότε Αν i διάφορο του j, τότε ], [ k kj ki j i A ιδιότητα εξουδετέρσης) ( ], [ ) ( k k i j j i A ], [ i A i k k ki ki
Συνέλιξη Ο DFT και ο αντίστροφος DFT μπορούν να χρησιμοποιηθούν για τον πολ/σμό πολυνύμν [a,a,a 2,...,a - ] [b,b,b 2,...,b - ] Pad with 's Pad with 's [a,a,a 2,...,a -,,,...,] [b,b,b 2,...,b -,,,...,] DFT DFT Έτσι μπορούμε να πάρουμε τους συντελεστές του πολυνυμικού γινομένου γρήγορα, αν μπορούμε να υπολογίσουμε τον DFT (και τον αντίστροφό του) γρήγορα [y,y,y 2,...,y 2- ] [z,z,z 2,...,z 2- ] Compoet Multiply [y z,y z,...,y 2- z 2- ] iverse DFT [c,c,c 2,...,c 2- ] (Covolutio) FFT
Ο Μετασχηματισμός Fast Fourier Ο FFT είναι ένας αποτελεσματικός αλγόριθμος για τον υπολογισμό του DFT Ο FFT βασίζεται στο παράδειγμα διαίρει-και-βασίλευε: Αν περιττός, μπορούμε να διαιρέσουμε ένα πολυώνυμο : σε δύο πολυώνυμα και μπορούμε να γράψουμε FFT 2
Ο αλγόριθμος FFT Χρόνος εκτέλεσης O( log ). [όμοια για αντίστροφο FFT] FFT 3
Πολ/σιάζοντας Μεγάλους Ακεραίους Δοσμένν ακεραίν I και J τν N-bits itegers, υπολογίζουμε το IJ. Υπόθεση: πολ/σμός λέξεν τν O(log N) bits σε σταθερό χρόνο. Προετοιμασία: Βρες πρώτο αριθμό pc+ που να μπορεί να αναπαρασταθεί σε μία λέξη, και θέσε m(log p)/3, ώστε να αναπαραστήσουμε τα I και J ς διανύσμαρτα μήκους από λέξεις τν m-bits. Βρίσκοντας μια πρταρχική ρίζα της μονάδος. Βρές έναν geerator x στο Z * p. Τότε x c είναι μια πρταρχική ρίζα της μονάδος βαθμού στο Z * p (arithmetic is mod p) Εφάρμοσε τη συνέλιξη και τον αλγόριθμο FFT για τον υπολογισμό της συνέλιξης C της διανυσματικής αναπαράστασης του I με αυτή του J. Μετά υπολόγισε: K i c i 2 mi Το K διάνυσμα αναπαρηστά το IJ, καιέχειχρόνουπολογισμούo( log) FFT 4
Παράδειγμα σε Java: Πολ/σμός Μεγάλν Ακεραίν Προετοιμασία: Όρισε την κλάση BigIt class, και περιέλαβε βασικές παραμέτρους, περιέλαβε τον πρώτο, P, και την πρταρχικλη ρίζα της μονάδος, OMEGA. ; FFT 5
Μέθοδος Πολ/σμού Ακεραίν σε Java Χρήση συνέλιξης για τον πολ/σμό δυο μεγάλν ακεραίν, this και val: FFT 6
FFT στο Z * p σε Java FFT 7
Μέθοδοι που υποστηρίζουν FFT στο Z * p σε Java FFT 8
Μη αναδρομικός FFT Υπάρχει επίσης μη αναδρομική έκδοση του FFT Εκτελεί τον FFT στον χώρο Προ- υπολογίζει όλες τις ρίζες της μονάδος. Εκτελει μια αθροιστική συλλογή από shuffles στο A και στο B προηγούμενα τοτ FFT, που ισοδυναμεί με την ανάθεση της τιμής με δείκτη i στο δείκτη bitreverse(i). Ο κώδικας είναι πιο πολύπλοκος, αλλά ο χρόνος εκτέλεσης είναι γρηγορότερος κατά μια σταθερά, λόγ βελτιμένου overhead FFT 9
Πειραματικά Αποτελέσματα Η κλίμακα Log-log δείχνει παραδοσιακές εκτελέσεις πολ/σμού σε χρόνο O( 2 ), ενώ οι FFT εκδόσεις είναι σχεδόν γραμμικές. FFT 2
Τέλος Ενότητας
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Κρήτης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρπαϊκή Ένση (Ευρπαϊκό Κοιννικό Ταμείο) και από εθνικούς πόρους.
Σημειώματα
Σημείμα αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commos Αναφορά, Μη Εμπορική Χρήση, Όχι Παράγγο Έργο 4. [] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτν π.χ. φτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείμα Χρήσης Έργν Τρίτν». [] http://creativecommos.org/liceses/by-c-d/4./ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ς προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.
Σημείμα Αναφοράς Copyright Πανεπιστήμιο Κρήτης, Ιάννης Τόλλης 25. «Αλγόριθμοι και πολυπλοκότητα. Ο Μετασχηματισμός Fast Fourier». Έκδοση:.. Ηράκλειο 25. Διαθέσιμο από τη δικτυακή διεύθυνση: https://opecourses.uoc.gr/courses/course/view.php?id368
Διατήρηση Σημειμάτν Οποιαδήποτε αναπαραγγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείμα Αναφοράς το Σημείμα Αδειοδότησης τη δήλση Διατήρησης Σημειμάτν το Σημείμα Χρήσης Έργν Τρίτν (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.