cse 548: analysis of algorithms lecture 4 ( divide-and
TRANSCRIPT
![Page 1: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/1.jpg)
CSE 548: Analysis of Algorithms
Lecture 4
( Divide-and-Conquer Algorithms:
Polynomial Multiplication )
Rezaul A. Chowdhury
Department of Computer Science
SUNY Stony Brook
Fall 2017
![Page 2: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/2.jpg)
Coefficient Representation of Polynomials
⋯
is a polynomial of degree bound represented as a vector , , ⋯ , of coefficients.
The degree of is provided it is the largest integer such that is nonzero. Clearly, 0 1.
Evaluating at a given point:
Takes Θ time using Horner’s rule:
⋯ ⋯ ⋯
![Page 3: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/3.jpg)
Then , where, for .
Coefficient Representation of Polynomials
Adding Two Polynomials:
Adding two polynomials of degree bound takes Θ time.
where, and .
0 1
![Page 4: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/4.jpg)
Then , where, for .
Coefficient Representation of Polynomials
Multiplying Two Polynomials:
The product of two polynomials of degree bound is another
polynomial of degree bound 2 1.
where, and .
0 2 2The coefficient vector , ,⋯ , , denoted by ⊗,
is also called the convolution of vectors , , ⋯ , and , , ⋯ , .
Clearly, straightforward evaluation of takes Θ time.
![Page 5: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/5.jpg)
Convolution
![Page 6: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/6.jpg)
Convolution
![Page 7: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/7.jpg)
Convolution
![Page 8: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/8.jpg)
Convolution
![Page 9: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/9.jpg)
Convolution
! ! !
![Page 10: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/10.jpg)
Convolution
" "
![Page 11: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/11.jpg)
Convolution
#
![Page 12: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/12.jpg)
Then
Coefficient Representation of Polynomials
Multiplying Two Polynomials:
We can use Karatsuba’s algorithm (assume to be a power of 2):
$%
&
&
But
3 recursive multiplications of polynomials of degree bound .
Similar recurrence as in Karatsuba’s integer multiplication
algorithm leading to a complexity of Ο ()*% Ο ."+ .
![Page 13: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/13.jpg)
Point-Value Representation of Polynomials
If then
Adding Two Polynomials:
Suppose we have point-value representations of two polynomials
of degree bound using the same set of points.
: , -. , , -. , … , , -.: , -0 , , -0 , … , , -0
: , -. -0 , , -. -0 , … , , -. -0Thus polynomial addition takes Θ time.
A point-value representation of a polynomial is a set of point-
value pairs , - , , - , … , , - such that all are
distinct and - for 0 1.
A polynomial has many point-value representations.
![Page 14: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/14.jpg)
Point-Value Representation of Polynomials
If then
Multiplying Two Polynomials:
Suppose we have extended (why?) point-value representations of
two polynomials of degree bound using the same set of 2 points.
: , -. , , -. , … , , - .: , -0 , , -0 , … , , - 0
: , -.-0 , , -.-0 , … , , - . - 0Thus polynomial multiplication also takes only Θ time!
( compare this with the Θ time needed in the coefficient form )
![Page 15: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/15.jpg)
Faster Polynomial Multiplication?( in Coefficient Form )
⋯ ⋯ ⋯
, , ⋮ , ⋮
ordinary
multiplication
Time Θ
pointwise
multiplication
Time Θ
eva
lua
tio
n
Tim
e?
inte
rpo
lati
on
Tim
e?
![Page 16: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/16.jpg)
Using Horner’s rule this approach takes Θ time.
Coefficient Representation ⇒⇒⇒⇒ Point-Value Representation:
We select any set of distinct points , , … , , and
evaluate for 0 1.
This again takes Θ time.
Point-Value Representation ⇒⇒⇒⇒ Coefficient Representation:
We can interpolate using Lagrange’s formula:
∏ 3∏ 3 -
In both cases we need to do much better!
Faster Polynomial Multiplication?( in Coefficient Form )
![Page 17: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/17.jpg)
Coefficient Form ⇒⇒⇒⇒ Point-Value Form
···
1 ⋯ 1 ⋯ · · · ⋯ ·· · · ⋯ ·· · · ⋯ ·1 ⋯
···
⋯ A polynomial of degree bound :
A set of distinct points: , , … , Compute point-value form: , , , , … , , Using matrix notation:
We want to choose the set of points in a way that simplifies the
multiplication.
In the rest of the lecture on this topic we will assume:5 is a power of 2.
![Page 18: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/18.jpg)
Coefficient Form ⇒⇒⇒⇒ Point-Value Form
· ⁄ ⁄ & ⁄ &· ⁄ & ⁄
1 ⋯ 1 ⋯ · · · ⋯ ·1 ⁄ ⁄ ⋯ ⁄ 1 ⋯ 1 ⋯ · · · ⋯ ·1 ⁄ ⁄ ⋯ ⁄
·····
Let’s choose ⁄ & for 0 2⁄ 1. Then
⁄ & 7 , 89 :;:, , 89 <==.Observe that for 0 2⁄ 1:
Thus we have just split the original > matrix into two almost
similar > matrices!
![Page 19: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/19.jpg)
Coefficient Form ⇒⇒⇒⇒ Point-Value Form
How and how much do we save?
where, and .
?? ? ? ? ⁄
? ?& ?& ⁄ ?
? ? ⁄ ? ?& ? ⁄
? @A@ BCC ,@A@ ?? ⁄
? BCC ?&? ⁄ ?
Observe that for 0 2⁄ 1: @A@ BCC ⁄ & @A@ BCC So in order to evaluate for all 0 1, we need: 2⁄ evaluations of @A@ and 2⁄ evaluations of BCC multiplications 2⁄ additions and 2⁄ subtractions
Thus we save about half the computation!
![Page 20: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/20.jpg)
Coefficient Form ⇒⇒⇒⇒ Point-Value Form
If we can recursively evaluate @A@ and BCC using the same
approach, we get the following recurrence relation for the running
time of the algorithm:
D 7Θ 1 , 89 1,2D 2 Θ , <EF:GH8I:. Θ log
Our trick was to evaluate at ( positive ) and ( negative ).
But inputs to @A@ and BCC are always of the form ( positive )!
How can we apply the same trick?
![Page 21: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/21.jpg)
Coefficient Form ⇒⇒⇒⇒ Point-Value Form
@A@ @A@ ···@A@ ⁄
1 ! ⋯ 1 ! ⋯ · · · ⋯ ·· · · ⋯ ·· · · ⋯ ·1 ⁄ ⁄ ! ⋯ ⁄
!··
Let us consider the evaluation of @A@ for 0 2⁄ 1:
In order to apply the same trick on @A@ we must set: !&⁄ for 0 4⁄ 1
![Page 22: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/22.jpg)
Coefficient Form ⇒⇒⇒⇒ Point-Value Form
In @A@ we set: !&⁄ for 0 4⁄ 1. Then
This means setting !&⁄ 8, where 8 1 ( imaginary )!
This also allows us to apply the same trick on BCC.
@A@ @A@ ·@A@ !⁄ @A@ !⁄ &@A@ !⁄ &·@A@ !⁄ & !⁄
1 ⋯ 1 ⋯ · · · ⋯ ·1 !⁄ !⁄ ⋯ !⁄ 1 ⋯ 1 ⋯ · · · ⋯ ·1 !⁄ ⁄ ⋯ !⁄
!····
![Page 23: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/23.jpg)
Coefficient Form ⇒⇒⇒⇒ Point-Value Form
We can apply the trick once if we set: &⁄ for 0 2⁄ 1We can apply the trick ( recursively ) 2 times if we also set:
%&⁄ for 0 2 ⁄ 1
We can apply the trick ( recursively ) 3 times if we also set:
N&⁄ % %for 0 2 ⁄ 1
We can apply the trick ( recursively ) times if we also set:
O&⁄ OPQ OPQfor 0 2⁄ 1
![Page 24: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/24.jpg)
Coefficient Form ⇒⇒⇒⇒ Point-Value Form
Consider the ERS primitive root of unity:
TR :%UVW cos ZR 8 · sin ZR 8 1 &⁄ ⇒ Q&⁄ T Q · Then
%&⁄ ⇒ %&⁄ T % ·
N&⁄ % %⇒ N&⁄ T N ·
O&⁄ OPQ OPQ⇒ O&⁄ T O ·
![Page 25: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/25.jpg)
Coefficient Form ⇒⇒⇒⇒ Point-Value Form
If 2 we would like to apply the trick times recursively.
What values should we choose for , , … , ?Example: For 2 we need to choose , , … , ^ .
Choose: 1 3: T N · 2: T % · T % · 1: ! T Q · " T Q · # T Q · ^ T Q ·
T T T T! T" T# T`
T
11
8
8
T T`
TT
T
T!
T"T#
T`
complex abc roots of unity
![Page 26: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/26.jpg)
Coefficient Form ⇒⇒⇒⇒ Point-Value Form
For a polynomial of degree bound 2, we need to apply the
trick recursively at most log times.
We choose 1 T and set T for 1 1.
Then we compute the following product:
--- ··-
1 T T ·· T
1 1 1 ⋯ 11 T T ⋯ T 1 T T ⋯ T · · · ⋯ ·· · · ⋯ ·1 T T ⋯ T
··The vector - -, -, ⋯ , - is called the discrete Fourier
transform ( DFT ) of , , ⋯ , .
This method of computing DFT is called the fast Fourier transform
( FFT ) method.
![Page 27: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/27.jpg)
Coefficient Form ⇒⇒⇒⇒ Point-Value Form
Example: For 2 8: !! "" ## ^^We need to evaluate ef at Tg for 0 8 h 8.
Now @A@ · BCCe f, where @A@ - - !- #-
and BCC - - "- ^-
![Page 28: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/28.jpg)
Coefficient Form ⇒⇒⇒⇒ Point-Value Form
Observe that:T T` T!T T T!T! T T! T# T! T!
T @A@ T T · BCC T @A@ T! T · BCCeT!f, T @A@ T T · BCC T @A@ T! T · BCCeT!f, T @A@ T! T · BCC T! @A@ T! T · BCCeT! f, T @A@ T# T · BCC T# @A@ T! T · BCCeT! f, T! @A@ T` T! · BCC T` @A@ T! T · BCCeT!f, T" @A@ T T" · BCC T @A@ T! T · BCCeT!f, T# @A@ T T# · BCC T @A@ T! T · BCCeT! f, T` @A@ T! T` · BCC T! @A@ T! T · BCCeT! f,
Also:T! TT" TT# T T` T
![Page 29: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/29.jpg)
Coefficient Form ⇒⇒⇒⇒ Point-Value Form
Rec-FFT ( ( a0, a1, …, an - 1 ) ) n = 2k for integer k ≥ 0
1. if n = 1 then
3. ωn ← e2πi/n
5. yeven ← Rec-FFT ( ( a0, a2, …, an - 2 ) )
2. return ( a0 )
7. for j ← 0 to n/2 − 1 do
8. yj ← yjeven + ω yj
odd
11. return y
4. ω ← 1
6. yodd ← Rec-FFT ( ( a1, a3, …, an - 1 ) )
9. yn/2+j ← yjeven − ω yj
odd
10. ω ← ω ωn
D 7Θ 1 , 89 1,2D 2 Θ , <EF:GH8I:. Θ log
Running time:
![Page 30: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/30.jpg)
Faster Polynomial Multiplication?( in Coefficient Form )
⋯ ⋯ ⋯
T , T T , T ⋮ T , T
T T ⋮ T
ordinary
multiplication
Time Θ
pointwise
multiplication
Time Θ
forw
ard
FF
T
Tim
e Θ
log
inte
rpo
lati
on
Tim
e?
![Page 31: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/31.jpg)
Point-Value Form ⇒⇒⇒⇒ Coefficient Form
Given: 1 1 1 ⋯ 11 T T ⋯ T 1 T T ⋯ T · · · ⋯ ·· · · ⋯ ·1 T T ⋯ T
i j$i.C@[email protected]
··.o
--- ··-po
⇒q T · o -oWe want to solve: o q T · -oIt turns out that: q T 1q 1TThat means q T looks almost similar to q T !
![Page 32: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/32.jpg)
We want to show that ,
where r is the > identity matrix.
Point-Value Form ⇒⇒⇒⇒ Coefficient Form
Show that: q T 1q 1TLet s T 1q 1T s T q T rObserve that for 0 , 1, the , RS entries are: s T 1Tq T T and
Then entry t, u of s T q T ,s T q T vw s T v
q T w 1T wv
![Page 33: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/33.jpg)
Point-Value Form ⇒⇒⇒⇒ Coefficient Form
s T q T vw 1T wv
CASE t u:s T q T vw 1T
11
1 > 1CASE t x u:
s T q T vw 1 Twv 1 > Twv 1Twv 1
1 > T wv 1Twv 1 1 > 1 wv 1Twv 1 0Hence s T q T r
![Page 34: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/34.jpg)
Point-Value Form ⇒⇒⇒⇒ Coefficient Form
We need to compute the following matrix-vector product:
··.o
1 >
1 1 1 ⋯ 11 1T
1T ⋯ 1T
1 1T 1T
⋯ 1T
· · · ⋯ ·· · · ⋯ ·1 1T
1T ⋯ 1T
i j$ PQ
--- ··-po
This inverse problem is almost similar to the forward problem,
and can be solved in Θ log time using the same algorithm as
the forward FFT with only minor modifications!
![Page 35: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/35.jpg)
Faster Polynomial Multiplication?( in Coefficient Form )
⋯ ⋯ ⋯
T , T T , T ⋮ T , T
T T ⋮ T
ordinary
multiplication
Time Θ
pointwise
multiplication
Time Θ
forw
ard
FF
T
Tim
e Θ
log
inve
rse
FF
T
Tim
e Θ
log
Two polynomials of degree bound given in the coefficient form
can be multiplied in Θ log time!
![Page 36: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/36.jpg)
Some Applications of Fourier Transform and FFT
• Signal processing
• Image processing
• Noise reduction
• Data compression
• Solving partial differential equation
• Multiplication of large integers
• Polynomial multiplication
• Molecular docking
![Page 37: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/37.jpg)
Some Applications of Fourier Transform and FFT
Jean Baptiste Joseph Fourier
Any periodic signal can be represented as a sum of a series of
sinusoidal ( sine & cosine ) waves. [ 1807 ]
![Page 38: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/38.jpg)
Spatial ( Time ) Domain ⇔⇔⇔⇔ Frequency Domain
Spatial ( Time ) Domain
Frequency Domain
Source: The Scientist and Engineer’s Guide to Digital Signal Processing by Steven W. Smith
![Page 39: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/39.jpg)
Spatial ( Time ) Domain ⇔⇔⇔⇔ Frequency Domain
Source: http://en.wikipedia.org/wiki/Fourier_series#mediaviewer/File:Fourier_series_and_transform.gif (uploaded by Bob K.)
Function s(x) (in red) is a sum of six sine functions of different amplitudes and
harmonically related frequencies. The Fourier transform, S(f) (in blue), which
depicts amplitude vs frequency, reveals the 6 frequencies and their amplitudes.
![Page 40: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/40.jpg)
Spatial ( Time ) Domain ⇔⇔⇔⇔ Frequency Domain
Source: http://en.wikipedia.org/wiki/Fourier_series#mediaviewer/File:Fourier_series_and_transform.gif (uploaded by Bob K.)
Function s(x) (in red) is a sum of six sine functions of different amplitudes and
harmonically related frequencies. The Fourier transform, S(f) (in blue), which
depicts amplitude vs frequency, reveals the 6 frequencies and their amplitudes.
![Page 41: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/41.jpg)
Spatial ( Time ) Domain ⇔⇔⇔⇔ Frequency Domain
Source: http://en.wikipedia.org/wiki/Fourier_series#mediaviewer/File:Fourier_series_and_transform.gif (uploaded by Bob K.)
Function s(x) (in red) is a sum of six sine functions of different amplitudes and
harmonically related frequencies. The Fourier transform, S(f) (in blue), which
depicts amplitude vs frequency, reveals the 6 frequencies and their amplitudes.
![Page 42: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/42.jpg)
Spatial ( Time ) Domain ⇔⇔⇔⇔ Frequency Domain
Source: http://en.wikipedia.org/wiki/Fourier_series#mediaviewer/File:Fourier_series_and_transform.gif (uploaded by Bob K.)
Function s(x) (in red) is a sum of six sine functions of different amplitudes and
harmonically related frequencies. The Fourier transform, S(f) (in blue), which
depicts amplitude vs frequency, reveals the 6 frequencies and their amplitudes.
![Page 43: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/43.jpg)
Spatial ( Time ) Domain ⇔⇔⇔⇔ Frequency Domain
Source: http://en.wikipedia.org/wiki/Fourier_series#mediaviewer/File:Fourier_series_and_transform.gif (uploaded by Bob K.)
Function s(x) (in red) is a sum of six sine functions of different amplitudes and
harmonically related frequencies. The Fourier transform, S(f) (in blue), which
depicts amplitude vs frequency, reveals the 6 frequencies and their amplitudes.
![Page 44: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/44.jpg)
Spatial ( Time ) Domain ⇔⇔⇔⇔ Frequency Domain
( Fourier Transforms )
y 9 z I E · : ZgR|| =E
I E z y 9 · : ZgR|| =9
Let I E be a signal specified in the time domain.
The strength of I E at frequency 9 is given by:
Now I E can be retrieved by summing up the signal strengths
at all possible frequencies:
Evaluating this integral for all values of 9 gives the frequency
domain function.
![Page 45: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/45.jpg)
~ I E · : ZgR =E 1 !Z!Z , if9 F, Z S Z S Z S& Z S& , otherwise.
Let’s try to get a little intuition behind why the transforms work.
We will look at a very simple example.
Suppose: I E cos 2F ⋅ E
Why do the Transforms Work?
⇒ lim→|1Dz I E · : ZgR
=E 71, if9 F,0, otherwise.
So, the transform can detect if 9 F!
![Page 46: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/46.jpg)
Noise Reduction
Source: http://www.mediacy.com/index.aspx?page=AH_FFTExample
FFTinverse FFT
remove noise
![Page 47: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/47.jpg)
Data Compression
− Discrete Cosine Transforms ( DCT ) are used for lossy data
compression ( e.g., MP3, JPEG, MPEG )
− DCT is a Fourier-related transform similar to DFT ( Discrete
Fourier Transform ) but uses only real data ( uses cosine waves
only instead of both cosine and sine waves )
− Forward DCT transforms data from spatial to frequency domain
− Each frequency component is represented using a fewer
number of bits ( i.e., truncated / quantized)
− Low amplitude high frequency components are also removed
− Inverse DCT then transforms the data back to spatial domain
− The resulting image compresses better
![Page 48: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/48.jpg)
1Dz I E · cos 29E =E
1 sin 49D49D , if9 F,sin 2 F 9 D2 F 9 D sin 2 F 9 D2 F 9 D , otherwise.
Transformation to frequency domain using cosine transforms
work in the same way as the Fourier transform.
Suppose: I E cos 2F ⋅ E
Data Compression
⇒ lim→|1Dz I E · cos 29E
=E 71, if9 F,0, otherwise.
So, this transform can also detect if 9 F.
![Page 49: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/49.jpg)
Protein-Protein Docking
Knowledge of complexes is used in
− Drug design
− Studying molecular assemblies
Protein-Protein Docking: Given two proteins, find the best relative
transformation and conformations to obtain a stable complex.
Docking is a hard problem
− Search space is huge ( 6D for rigid proteins )
− Protein flexibility adds to the difficulty
− Structure function analysis
− Protein interactions
![Page 50: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/50.jpg)
Here is a Gaussian representation of atom , and H its weight.
Shape Complementarity[ Wang’91, Katchalski-Katzir et al.’92, Chen et al.’03 ]
To maximize skin-skin overlaps and minimize core-core overlaps
− assign positive real weights to skin atoms
− assign positive imaginary weights to core atoms
For P ∈ A′, B with MP atoms, affinity function: 9 ∑ H ⋅ mLet A′ denote molecule A with the pseudo skin atoms.
![Page 51: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/51.jpg)
For rotation G and translation E of molecule ( i.e., R,k ),
the interaction score, , E, G ~ 9 9W, n =
For P ∈ A′, B with MP atoms, affinity function:
Let A′ denote molecule A with the pseudo skin atoms.
9 ∑ H ⋅ m
Shape Complementarity[ Wang’91, Katchalski-Katzir et al.’92, Chen et al.’03 ]
![Page 52: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/52.jpg)
For rotation G and translation E of molecule ( i.e., R,k ),
the interaction score, , E, G ~ 9 9W, n =: , E, G skin-skin overlap score – core-core overlap scorer , E, G skin-core overlap score
Shape Complementarity[ Wang’91, Katchalski-Katzir et al.’92, Chen et al.’03 ]
![Page 53: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/53.jpg)
Docking: Rotational & Translational Search
![Page 54: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/54.jpg)
Docking: Rotational & Translational Search
![Page 55: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/55.jpg)
Docking: Rotational & Translational Search
![Page 56: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/56.jpg)
Docking: Rotational & Translational Search
![Page 57: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/57.jpg)
Docking: Rotational & Translational Search
![Page 58: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/58.jpg)
Docking: Rotational & Translational Search
![Page 59: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/59.jpg)
Docking: Rotational & Translational Search
![Page 60: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/60.jpg)
Docking: Rotational & Translational Search
![Page 61: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/61.jpg)
Docking: Rotational & Translational Search
![Page 62: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/62.jpg)
Docking: Rotational & Translational Search
![Page 63: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/63.jpg)
Docking: Rotational & Translational Search
![Page 64: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/64.jpg)
Docking: Rotational & Translational Search
![Page 65: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/65.jpg)
Docking: Rotational & Translational Search
![Page 66: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/66.jpg)
Docking: Rotational & Translational Search
![Page 67: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/67.jpg)
Docking: Rotational & Translational Search
![Page 68: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/68.jpg)
Docking: Rotational & Translational Search
![Page 69: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/69.jpg)
Docking: Rotational & Translational Search
![Page 70: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/70.jpg)
Docking: Rotational & Translational Search
![Page 71: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/71.jpg)
Docking: Rotational & Translational Search
![Page 72: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/72.jpg)
Docking: Rotational & Translational Search
![Page 73: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/73.jpg)
Docking: Rotational & Translational Search
![Page 74: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/74.jpg)
Docking: Rotational & Translational Search
![Page 75: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/75.jpg)
Docking: Rotational & Translational Search
![Page 76: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/76.jpg)
Docking: Rotational & Translational Search
![Page 77: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/77.jpg)
Docking: Rotational & Translational Search
![Page 78: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/78.jpg)
Docking: Rotational & Translational Search
![Page 79: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/79.jpg)
Docking: Rotational & Translational Search
![Page 80: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/80.jpg)
Docking: Rotational & Translational Search
![Page 81: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/81.jpg)
Docking: Rotational & Translational Search
![Page 82: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/82.jpg)
Docking: Rotational & Translational Search
![Page 83: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/83.jpg)
Docking: Rotational & Translational Search
![Page 84: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/84.jpg)
Forward
Translational Search using FFT
rotate
discretize
discretize
FFT
multiply frequency maps
MA’ atoms
MB atoms
(((( )))) Ω∀ ∈∀ ∈∀ ∈∀ ∈z , zhForward
FFT
Inverse
FFT
com
ple
x
con
jug
ate
∀ ∈ Ω , , F z 9 9 =n∈Ω
![Page 85: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/85.jpg)
![Page 86: CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and](https://reader030.vdocuments.mx/reader030/viewer/2022032706/623add4efcdb6a7b9e310c2d/html5/thumbnails/86.jpg)