The Fast Fourier Transform and Applications to Multiplication Analysis of Algorithms Prepared by John Reif, Ph.D.
Download ReportTranscript The Fast Fourier Transform and Applications to Multiplication Analysis of Algorithms Prepared by John Reif, Ph.D.
The Fast Fourier Transform and Applications to Multiplication Analysis of Algorithms Prepared by John Reif, Ph.D. Topics and Readings: - The Fast Fourier Transform • Reading Selection: • CLR, Chapter 30 Advanced Material : - Using FFT to solve other Multipoint Evaluation Problems - Applications to Multiplication Nth Roots of Unity • Assume Commutative Ring (R,+,·, 0,1) • is principal nth root of unity if – i 1 for i = 1, …, n-1 – n = 1, and n-1 jp 0 for 1 p n j=0 • Example: e 2 i/n for complex numbers Example of nth Root of Unity for Complex Numbers e 2 i/8 is the 8th root of unity Fourier Matrix 1 1 1 n 1 1 M n ( ) = 1 2 2( n 1) n 1 ( n 1)( n 1) 1 so M( )ij = ij for 0 i, j<n a0 given a = a n-1 Discrete Fourier Transform Input a column n-vector a = (a0, …, an-1)T Output an n-vector which is the product of the Fourier matrix times the input vector DFTn (a) = M( ) x a f0 = where f n-1 n-1 fi = ik a k k=0 Inverse Fourier Transform DFTn-1 (a) = M( )-1 x a 1 -ij Theorem M( ) = n proof We must show M( ) M( )-1 = I -1 ij 1 n n-1 ik -kj k=0 1 = n n-1 k(i-j) k=0 0 if i-j 0 = 1 if i-j = 0 n-1 using identity kp 0, for 1 p < n k=0 Fourier Transform is Polynomial Evaluation at the Roots of Unity Input a column n-vector a = (a0, …, an-1)T Output an n-vector (f0, …, fn-1)T which are the values polynomial f(x)at the n roots of unity f0 DFTn (a) = where f n-1 i f i = f( ) and n-1 f(x) = a j x j j=0 Fast Fourier Transform • Viewed as Evaluation Problem: naïve algorithm takes n2 ops • Divide and Conquer gives FFT with O(n log n) ops for n a power of 2 • Key Idea: • If is nth root of unity then 2 is n/2th root of unity • So can reduce the problem to two subproblems of size n/2 Algorithm FFTn • Input a = (a0, …, an-1)T, n a power of 2 [1] If n=1 then ouput T ' ' [2] f 0 ,..., f n FFTn ((a0 , a2 ,..., an 2 )T ) 1 2 2 T " " T f 0 ,..., f n 1 FFTn ((a1 , a3 ,..., an 1 ) ) 2 2 n [3] For i=0, ..., 1 do fi fi' i fi" 2 f n fi' i fi" i+ [4] Output (f 0 , f1 , ..., f n-1 ) 2 FFT Circuit (also known as Butterfly Network) • Total Recursion depth = log n • Communication Distance 2d at depth d f i = a 0 + a1 i + a 2 2i +...+a n-1 (n-1)i f i = f i' + i f i" where i(n-2) 2 2 f i' = a 0 + a 2 ( 2 )i + a 4 ( 2 ) 2i +...+ a n-2 ( ) i(n-2) 2 2 f i" = a1 + a 3 ( 2 )i +...+ a n-1 ( ) ' a0 f 0 a M ( 2 ) 2 DFT ((a , a ,..., a )T ) n n 0 2 n2 2 2 f n' 2 1 an 2 " a1 f 0 a M ( 2 ) 3 DFT (( a , a ,..., a )T ) n n 1 3 n 1 2 2 f n" 2 1 an 1 Note: f ' n i 2 ' i =f , f " n i 2 n f , i=0, ..., 1 2 " i n 1 2 2 But n =1, so ( ) = n ( 2 )i 2i n for i=0, ..., 1 2 n ' i " Thus, f i = f i + f i for i=0, ..., 1 2 and f i+ ' = f n i + n 2 f i" 2 =f - f ' i i+ i n 2 2 " i n for i=0, ..., 1 2 n 2 since ( ) n 1, so = -1 Operation Counts for FFT Algorithm • Assume n = 2k • # additions Add(n) = 2· Add(n/2) + n = n log n • # multiplications Mult(n) = 2· Mult(n/2) + n/2 = ½ n log n • Total Time O(n log n) • Note in complex FFT, # real ops is 5 n log n Multipoint Polynomial Evaluation • Input polynomial f ( x) n 1 i a x i i 0 • Problem evaluate f(x) at x0, x1, …, xn-1 • Easy Cases: FFT Case xi = i = principal root of unity Multipoint Polynomial Evaluation (cont’d) Summary of FFT: method f ( x) f '( y ) x f "( y ) where y x 2 f '( x), f "( x) both degree halved needed to only evaluate at half as many points Other Polynomial Evaluation Problems Solved by FFT Each costs O(n log n) time • Evaluate at points Xi = bai + d for i=0,…, n-1(Chirp Transfom) – Reduced to FFT • Single point evaluation of all derivatives of a polynomial – Solve by reduction to above Chirp Transform of case 2) • Evaluate at points Xi = b(ai)2+ cai + d for i=0,…, n-1 – Solve by divide and conquer similar to FFT Single Point Evaluation of all Derivatives of Polynomial • Input n 1 f ( x) ai xi and point x0 i 0 • output k d f ( x) k f ( x) x x0 for k 0,..., n 1 dx Single Point Evaluation of all Derivatives of Polynomial (cont’d) • Taylor Series Representation of n 1 f ( x) ci ( x x0 )i i 0 Then f ( k ) ( x0 ) k !ck reduces to case of evaluation at points xi abi for i 0,..., n 1 • Solve this Chirp Transform problem by reduction FFT Advanced Material: Further Applications of FFT 1) Convolution: Products and Powers of Polynomials • Used for for Integer Multiplication Algorithms • Also used for Filtering on infinite input streams 2) Division and Inverse of Polynomials 3) Multipoint Evaluation and Interpolation Advanced Material: Products and Powers of Polynomials • Input vectors a = (a0, a1, …, an-1)T b = (b0, b1, …, bn-1)T • Definition of Convolution c = a b n-1 Where ci = a jbi-j for i=0, …, 2n-1 j=0 define ak = bk = 0 if k< 0 or kn Products and Powers of Polynomials (cont’d) • Convolution Theorem a b = FFT -1 2n FFT2n (a) FFT2n (b) • Application to Polynomial Products: n-1 p(x) = a i x i i=0 n-1 q(x) = b j x j j=0 2n-2 n-1 i=0 j=0 p(x) q(x) = ci x i where c i = a jb i-j Products of m Polynomials n-1 for k=1, ..., m let Pk (x) = a k,i x i i=0 m(n-1) m m P (x) = c x , where c = a i k k=1 i i=0 i k,jk k=1 jk =1 • Generalized Convolution Theorem a1 a 2 ... a m = FFTn-1m FFTn m (a1 ) FFTn m (a 2 ) ... FFTn m (a m ) Wrapped Convolutions • a = (a0, a1, …, an-1)T , b = (b0, b1, …, bn-1)T • Positive wrapped convolution is c = (c0, c1, …, cn-1)T i n-1 j=0 j=i+1 ci = a jbi-j + a jbn+i-j • Negative wrapped convolution is d = (d0, d1, …, dn-1)T i n-1 j=0 j=i+1 di = a jbi-j - a jbn+i-j Application of Wrapped Convolution to Modular Polynomial Products n-1 p(x) = a i x i i=0 n-1 q(x) = b j x j j=0 p(x) q(x) mod(x +1) n n-1 = d i x since x = -1 mod(x +1) i i=0 n n Computing Positive Wrapped Convolution • Let = principal nth root of unity • Assume n has multiplicative inverse, Theorem -1 n c = FFT FFTn (a) FFTn (b) is the positive wrapped convolution of n-vectors a and b. Computing Negative Wrapped Convolution • Also ˆd = FFT-1 FFT (a) ˆ ˆ FFT (b) n n n is the negatively wrapped convolution of n-vectors a and b where bˆ = b , b , ..., aˆ = a 0 , a1 , ..., a n-1 n-1 0 1 n-1 b n-1 T T and 2 = = principal nth root of unity Integer Multiplication by Polynomial Product (solved via FFT) • Input n bit integers a,b define polynomials degree k = n/L k-1 a(x) = a i x , i 0 ai 2 L i=0 k-1 b(x) = bi x i , 0 bi 2L i=0 L L so a = a(2 ), b = b(2 ) Integer Multiplication by Polynomial Product (cont’d) • Idea 1) Compute c(x) = a(x)· b(x) by convolution 2) Evaluate c(2L) = a· b Integer Multiplication Algorithms using Reduction to Polynomial Product • Pollard Mult Algorithm 2 O(n(logn) )(loglogn) use L = logn • Karp Mult Algorithm O(n(logn)2 ) use L = n • Schönage-Strassen Mult Algorithm O(n(logn)(loglogn)) use L = n and wrapped convolution Pollard Multiplication Algorithm • n = kL, L = 1 + log k 1) Choose primes P1, P2, P3 where P1 P2 P3 4 k 3 and Pi = αi 2 + 1, αi = O(1) L 2) Compute C(x) by convolution over finite field Zpi for i =1,2,3 (requires k mults on 2L bit integers) Pollard Multiplication Algorithm (cont’d) 3) Evaluate C(2L) • Time Bounds recursive mults FFT T(n) = 3kT(2L) + O(k logk) O(L) 2 = 3kT (2(1 + logk)) + O(k(log k) ) O(n(log n) 2 (log log n) ) for any > 0 Korp Multiplication Algorithm n = 2s = kL 2s if s even 2 k = (s-1) 2 2 else 1) Compute C(x) modulo k by convolution 2) Compute C(x) modulo (22L+1) by convolution 3) Compute C(x) coefficients from C(x) mod k, C(x) mod (22L+1) by Chinese remaindering Korp Multiplication Algorithm (cont’d) 4) Compute C(2L) • Time recursive mults FFT T(n) = 2kT(2L) + O(k logk)O(L) = 2 nT (2 n ) + O(n log n) O(n(log n)2 ) Schönage-Strassen Multiplication Algorithm (2’) Compute C(x) mod (xk+1) modulo (22L+1) by wrapped convolution requires only k recursive mults on 2L bit numbers • Time recursive mults FFT T(n) = kT(2L) + O(k logk)O(L) = nT (2 n ) + O(n log n) O(n log n)(log log n) Still Open Problem: How Fast Can You Multiply Integers? • Can you mult n bit integers in O(n log n) time? The Fast Fourier Transform and Applications to Multiplication Analysis of Algorithms Prepared by John Reif, Ph.D.