Understanding the Fast Fourier Transform (FFT) for Finite State Environments in Learning
This recap discusses the key concepts of the Fast Fourier Transform (FFT), focusing on its application in computing convolutions efficiently in O(n log n) time. Given two vectors A and B, the FFT enables the computation of their polynomial multiplication through convolution of their coefficient vectors. The method employs evaluation at roots of unity and the principle of divide and conquer. Applications extend to signal analysis and pattern matching, leveraging random sampling techniques. This foundational knowledge is crucial for understanding finite state environments in learning contexts.
Understanding the Fast Fourier Transform (FFT) for Finite State Environments in Learning
E N D
Presentation Transcript
FFT Recap (or, what am I expected to know?)- Learning Finite State Environments 15-451 Avrim Blum 11/25/03
FFT Recap The basic result: Given vectors • A = (a0, a1, a2, ..., an-1), and • B = (b0, b1, ..., bn-1), the FFT allows us in O(n log n) time to compute the convolution • C = (c0, c1, ..., c2n-2) where cj = a0bj + a1bj-1 + ... + ajb0. I.e., this is polynomial multiplication, where A,B,C are vectors of coefficients.
How does it work? Compute F-1(F(A)¢F(B)), where “F” is FFT. • F(A) is evaluation of A at 1,w,w2,...,wm-1 • w is principal mth root of unity. m = 2n-1. E.g., w = e2pi/m. Or use modular arithmetic. • Able to do this quickly with divide-and-conquer. • F(A)¢F(B) gives C(x) at these points. • We then saw that F-1 = (1/m)F’, where F’ is same as F but using w-1.
Applications (not on test) • signal analysis, lots more • Pattern matching with don’t cares: • Given text string X = x1,x2,...,xn. xi 2 {0..25} • Given pattern Y = y1,y2,...,yk. yi2 {0..25} [ {*}. • Want to find instances of Y inside X. • Idea [Adam Kalai based on Karp-Rabin]: • Pick random R: r1,r2,...,rk, ri2 1..N. E.g, N=n2 • Set ri = 0 if yk-i+1 = *. • Let T = r1yk + ... + rky1. (can do mod p > N) • Now do convolution of R and X. See if any entries match T. Each entry at most 1/N chance of false positive.