második nekifutás czirbusz sándor elte ik...

34
TARTALOMJEGYZ K Polinomok konvoloevija A DFT Øs a maradØkos osztÆs FFT MÆsodik nekifutÆs Czirbusz SÆndor ELTE IK, Komputeralgebra TanszØk 2015. oktber 2. Czirbusz SÆndorELTE IK, Komputeralgebra TanszØk FFT

Upload: others

Post on 02-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkül

FFTMásodik nekifutás

Czirbusz SándorELTE IK, Komputeralgebra Tanszék

2015. október 2.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 2: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkül

POLINOMOK KONVOLÚVIÓJA

Definíció

Legyen f (x) =∑n−1

j=0 fjxj és g(x) =∑n−1

j=0 gjxj két R[x]-beli polinom.A két polinom konvolúviója a

h = f ∗n g =

n−1∑k=1

hkxk ∈ R[x]

polinom, ahol

hk =∑

i+j≡ mod n

figj =

n−1∑j=0)

fjgk−j

minden 0 5 k < n esetén.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 3: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkül

MEGJEGYZÉSEK

Ha értheto ∗n helyett ∗-ot írunk;

Ha Rn-beli vektoroknak tekintjük a polinomokat, akkor azf , g vektorok ciklikus konvolúciójáról beszélünk;A konvolúció nem más, mint a polinomok R[x]/< xn − 1 >gyurubeli szorzata, azaz f ∗n g = fg mod (xn − 1).

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 4: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkül

MEGJEGYZÉSEK

Ha értheto ∗n helyett ∗-ot írunk;Ha Rn-beli vektoroknak tekintjük a polinomokat, akkor azf , g vektorok ciklikus konvolúciójáról beszélünk;

A konvolúció nem más, mint a polinomok R[x]/< xn − 1 >gyurubeli szorzata, azaz f ∗n g = fg mod (xn − 1).

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 5: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkül

MEGJEGYZÉSEK

Ha értheto ∗n helyett ∗-ot írunk;Ha Rn-beli vektoroknak tekintjük a polinomokat, akkor azf , g vektorok ciklikus konvolúciójáról beszélünk;A konvolúció nem más, mint a polinomok R[x]/< xn − 1 >gyurubeli szorzata, azaz f ∗n g = fg mod (xn − 1).

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 6: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkül

A KONVOLÚCIÓ ÉS A DFT

Legyen f , g ∈ R[x] két, legfeljebb n− 1-edfokú polinom.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 7: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkül

A KONVOLÚCIÓ ÉS A DFT

Legyen f , g ∈ R[x] két, legfeljebb n− 1-edfokú polinom.

ÁllításDFTω(f ∗ g) = DFTω(f ) ·DFTω(g), ahol · a koordinátánkéntiszorzás.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 8: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkül

A KONVOLÚCIÓ ÉS A DFT

Legyen f , g ∈ R[x] két, legfeljebb n− 1-edfokú polinom.

ÁllításDFTω(f ∗ g) = DFTω(f ) ·DFTω(g), ahol · a koordinátánkéntiszorzás.

BizonyításMivel f ∗ g = fg + q(xn − 1) valamilyen q ∈ R[x]-re, ezért

(f ∗ g)(ωj) = f (ωj)g(ωj) + q(ωj)((ωj)n − 1) = f (ωj)g(ωj) .

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 9: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkül

EGY DIAGRAM

Az R[x]→ Rn-be képezo, f -hez a ω hatványain felvetthelyettesítési értékei vektorát rendelo leképezéshomomorfizmus,

(R[x]/<xn−1>)2 Rn × Rn

R[x]/<xn−1> Rn

DFTω ×DFTω

konvolúció belso szorzat

DFTω

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 10: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülMotiváció Az algoritmus A gyors konvolúció

BEVEZETO PÉLDA

Q[x] fölötti polinomok szorzása mod (xn − u).f := x3 + 1: g := 2 ∗ x3 + 3 ∗ x2 + x + 1m := x4 − u:expand(f*g)

2x6 + 3x5 + x4 + 3x3 + 3x2 + x + 1quo(f ∗ g,m, x,′ r′)

2x2 + 3x + 1collect(expand(r), u)

(2 ∗ x2 + 3 ∗ x + 1) ∗ u + 3 ∗ x3 + 3 ∗ x2 + x + 1Látszik, hogy ilyen speciális alakú modulus esetén a maradékúgy épül fel, hogy a magasabb fokú tagok együtthatói azeredeti polinom magasabb fokú együtthatói, az alacsonyabbfokszámúak pedig szintén ugyanezek az eredeti polinomból.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 11: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülMotiváció Az algoritmus A gyors konvolúció

A PÉLDA ÁLTALÁNOSÍTÁSA

Legyen f ∈ R[x] egy legfeljebb n− 1-ed fokú polinom, ahol n = 2 páros egész,1, ω, . . . , ωn−1 pedig az ω n-edik primitív egységgyöknek megfeleloFourier-pontok.

Osszuk el f -et maradékosan xn/2 − 1-el és x

n/2 + 1-el.

f = q0 · (xn/2 − 1) + r0 = q1 · (x

n/2 + 1) + r1 , (1)

ahol az q0, q1, r0, r1R[x] polinomok n2 -nél kisebb fokszámúak. Ugyanakkor

f = F1xn/2 + F0 alakban írható, ahol az F0, F1 ∈ R[x] polinomok fokszáma

szintén kisebb n2 -nél.Ebbol F1(x

n/2 − 1) = f − F0 − F1, ezért(x

n/2 − 1) | f − F0 − F1, a maradékos osztás egyértelmusége miatt r0 = F0 + F1.Hasonlóan belátható, hogy r1 = F0 − F1.Tehát a maradék együtthatói az eredeti polinom együtthatóiból állnak, mint afenti példában is.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 12: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülMotiváció Az algoritmus A gyors konvolúció

A PÉLDA ÁLTALÁNOSÍTÁSA

Legyen f ∈ R[x] egy legfeljebb n− 1-ed fokú polinom, ahol n = 2 páros egész,1, ω, . . . , ωn−1 pedig az ω n-edik primitív egységgyöknek megfeleloFourier-pontok. Osszuk el f -et maradékosan x

n/2 − 1-el és xn/2 + 1-el.

f = q0 · (xn/2 − 1) + r0 = q1 · (x

n/2 + 1) + r1 , (1)

ahol az q0, q1, r0, r1R[x] polinomok n2 -nél kisebb fokszámúak.

Ugyanakkorf = F1x

n/2 + F0 alakban írható, ahol az F0, F1 ∈ R[x] polinomok fokszámaszintén kisebb n

2 -nél.Ebbol F1(xn/2 − 1) = f − F0 − F1, ezért

(xn/2 − 1) | f − F0 − F1, a maradékos osztás egyértelmusége miatt r0 = F0 + F1.

Hasonlóan belátható, hogy r1 = F0 − F1.Tehát a maradék együtthatói az eredeti polinom együtthatóiból állnak, mint afenti példában is.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 13: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülMotiváció Az algoritmus A gyors konvolúció

A PÉLDA ÁLTALÁNOSÍTÁSA

Legyen f ∈ R[x] egy legfeljebb n− 1-ed fokú polinom, ahol n = 2 páros egész,1, ω, . . . , ωn−1 pedig az ω n-edik primitív egységgyöknek megfeleloFourier-pontok. Osszuk el f -et maradékosan x

n/2 − 1-el és xn/2 + 1-el.

f = q0 · (xn/2 − 1) + r0 = q1 · (x

n/2 + 1) + r1 , (1)

ahol az q0, q1, r0, r1R[x] polinomok n2 -nél kisebb fokszámúak. Ugyanakkor

f = F1xn/2 + F0 alakban írható, ahol az F0, F1 ∈ R[x] polinomok fokszáma

szintén kisebb n2 -nél.

Ebbol F1(xn/2 − 1) = f − F0 − F1, ezért

(xn/2 − 1) | f − F0 − F1, a maradékos osztás egyértelmusége miatt r0 = F0 + F1.

Hasonlóan belátható, hogy r1 = F0 − F1.Tehát a maradék együtthatói az eredeti polinom együtthatóiból állnak, mint afenti példában is.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 14: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülMotiváció Az algoritmus A gyors konvolúció

A PÉLDA ÁLTALÁNOSÍTÁSA

Legyen f ∈ R[x] egy legfeljebb n− 1-ed fokú polinom, ahol n = 2 páros egész,1, ω, . . . , ωn−1 pedig az ω n-edik primitív egységgyöknek megfeleloFourier-pontok. Osszuk el f -et maradékosan x

n/2 − 1-el és xn/2 + 1-el.

f = q0 · (xn/2 − 1) + r0 = q1 · (x

n/2 + 1) + r1 , (1)

ahol az q0, q1, r0, r1R[x] polinomok n2 -nél kisebb fokszámúak. Ugyanakkor

f = F1xn/2 + F0 alakban írható, ahol az F0, F1 ∈ R[x] polinomok fokszáma

szintén kisebb n2 -nél.Ebbol F1(x

n/2 − 1) = f − F0 − F1, ezért(x

n/2 − 1) | f − F0 − F1, a maradékos osztás egyértelmusége miatt r0 = F0 + F1.

Hasonlóan belátható, hogy r1 = F0 − F1.Tehát a maradék együtthatói az eredeti polinom együtthatóiból állnak, mint afenti példában is.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 15: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülMotiváció Az algoritmus A gyors konvolúció

A PÉLDA ÁLTALÁNOSÍTÁSA

Legyen f ∈ R[x] egy legfeljebb n− 1-ed fokú polinom, ahol n = 2 páros egész,1, ω, . . . , ωn−1 pedig az ω n-edik primitív egységgyöknek megfeleloFourier-pontok. Osszuk el f -et maradékosan x

n/2 − 1-el és xn/2 + 1-el.

f = q0 · (xn/2 − 1) + r0 = q1 · (x

n/2 + 1) + r1 , (1)

ahol az q0, q1, r0, r1R[x] polinomok n2 -nél kisebb fokszámúak. Ugyanakkor

f = F1xn/2 + F0 alakban írható, ahol az F0, F1 ∈ R[x] polinomok fokszáma

szintén kisebb n2 -nél.Ebbol F1(x

n/2 − 1) = f − F0 − F1, ezért(x

n/2 − 1) | f − F0 − F1, a maradékos osztás egyértelmusége miatt r0 = F0 + F1.Hasonlóan belátható, hogy r1 = F0 − F1.Tehát a maradék együtthatói az eredeti polinom együtthatóiból állnak, mint afenti példában is.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 16: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülMotiváció Az algoritmus A gyors konvolúció

KIÉRTÉKELÉS A FOURIER-PONTOKBAN

Ha az (1)-be ω hatványait helyettesítjük:

f (ω2k) = q0(ω2k · (ωnk − 1) + r0(ω

2k) = r0(ω2k) ,

f (ω2k+1) = q1(ω2k+1 · (ωnkω

n/2 + 1) + r1(ω2k+1) = r1(ω

2k+1) ,

ahol 0 5 k < n/2.

Itt egyrészt azt használtuk ki, hogy ωnk = 1, másrészt a

0 = (ωn − 1) = (ωn/2 − 1) · (ω

n/2 + 1)

összefüggésben (ωn/2 − 1) nem lehet zérusosztó, így ω

n/2 = −1.Vagyis az r0-t kell kiértékelni az ω páros hatványainál, r1-et pedig apárosaknál. Legyen r∗1 (x) = r1(ωx). Felhasználva, hogy ω2 n/2-edikegységgyök, az FFT algoritmus egy „átfogalmazását” kaptuk.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 17: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülMotiváció Az algoritmus A gyors konvolúció

KIÉRTÉKELÉS A FOURIER-PONTOKBAN

Ha az (1)-be ω hatványait helyettesítjük:

f (ω2k) = q0(ω2k · (ωnk − 1) + r0(ω

2k) = r0(ω2k) ,

f (ω2k+1) = q1(ω2k+1 · (ωnkω

n/2 + 1) + r1(ω2k+1) = r1(ω

2k+1) ,

ahol 0 5 k < n/2.Itt egyrészt azt használtuk ki, hogy ωnk = 1, másrészt a

0 = (ωn − 1) = (ωn/2 − 1) · (ω

n/2 + 1)

összefüggésben (ωn/2 − 1) nem lehet zérusosztó, így ω

n/2 = −1.

Vagyis az r0-t kell kiértékelni az ω páros hatványainál, r1-et pedig apárosaknál. Legyen r∗1 (x) = r1(ωx). Felhasználva, hogy ω2 n/2-edikegységgyök, az FFT algoritmus egy „átfogalmazását” kaptuk.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 18: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülMotiváció Az algoritmus A gyors konvolúció

KIÉRTÉKELÉS A FOURIER-PONTOKBAN

Ha az (1)-be ω hatványait helyettesítjük:

f (ω2k) = q0(ω2k · (ωnk − 1) + r0(ω

2k) = r0(ω2k) ,

f (ω2k+1) = q1(ω2k+1 · (ωnkω

n/2 + 1) + r1(ω2k+1) = r1(ω

2k+1) ,

ahol 0 5 k < n/2.Itt egyrészt azt használtuk ki, hogy ωnk = 1, másrészt a

0 = (ωn − 1) = (ωn/2 − 1) · (ω

n/2 + 1)

összefüggésben (ωn/2 − 1) nem lehet zérusosztó, így ω

n/2 = −1.Vagyis az r0-t kell kiértékelni az ω páros hatványainál, r1-et pedig apárosaknál. Legyen r∗1 (x) = r1(ωx). Felhasználva, hogy ω2 n/2-edikegységgyök, az FFT algoritmus egy „átfogalmazását” kaptuk.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 19: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülMotiváció Az algoritmus A gyors konvolúció

AZ ALGORITMUS

Algorithm 1: FFT(N, ω, a(x))

Data: Adott N, kettohatványData: ω primitív N-edik primitív egységgyökData: f (x) legfeljebb N − 1-ed fokú polinomResult: A polinom Fourier transzformáltja

beginif N = 1 then

A0 ← f0 ;

else

r0 ←∑ N

2 −1i=0 (fi + fi+N/2

) · xi ;

r∗1 ←∑ N

2 −1i=0 (fi − fi+N/2

) · ωi · xi ;Az algoritmus hívása rekurzive ω2-el;

return (r0(1), r∗1 (1), r0(ω2), r∗1 (ω

2), . . . , r0(ωN−2)), r∗1 (ω

N−2) ;

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 20: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülMotiváció Az algoritmus A gyors konvolúció

AZ ALGORITMUS HELYESSÉGE

TételLegyen ω n-edik primitív egységgyök az R gyuruben, n kettohatvány.Ekkor az elozo algoritmus helyesen számolja kia DFTω-t, ehhezn log n gyurubeli összeadásra és n/2 log n szorzásra van szükség.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 21: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülMotiváció Az algoritmus A gyors konvolúció

AZ ALGORITMUS

Algorithm 2: FastConvolution(N, ω, a(x))

Data: Adott N, kettohatványData: ω primitív N-edik primitív egységgyökData: f , g legfeljebb N − 1-ed fokú polinomResult: f ∗ g

beginω2, . . . ωN−1 kiszámítása ;α← DFTω(f ); β ← DFTω(g) ;γ ← α · β ; // pontonkénti szorzás

return DFT−1ω (γ) ;

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 22: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülMotiváció Az algoritmus A gyors konvolúció

BONYOLULTSÁG

DefinícióAzt mondjuk, hogy egy R kommutatív gyuru támogatja az FFT-t,ha R-ben minden k ∈ N esetén van 2k-adik primitív egységgyök.

TételLegyen R olyan kommutatív , mely támogatja az FFT-t, n = 2k

valamilyen k ∈ N-el. Legyen továbbá f , g ∈ R[x] két polinom,melyekre deg (fg) < n. Ekkor az R[x]/< xn− 1 >-beli konvolúcióhoz3n log n R-beli összeadás, 3

2 n log n + n− 2 ω-hatvánnyal valószorzás, n R-beli szorzás és n db osztás szükséges, összesen92 n log n +O(n) muvelet. Emiatt a polinomszorzás bonyolultsága18n log n +O(n) muvelet.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 23: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülMotiváció Az algoritmus A gyors konvolúció

BONYOLULTSÁG

DefinícióAzt mondjuk, hogy egy R kommutatív gyuru támogatja az FFT-t,ha R-ben minden k ∈ N esetén van 2k-adik primitív egységgyök.

TételLegyen R olyan kommutatív , mely támogatja az FFT-t, n = 2k

valamilyen k ∈ N-el. Legyen továbbá f , g ∈ R[x] két polinom,melyekre deg (fg) < n. Ekkor az R[x]/< xn− 1 >-beli konvolúcióhoz3n log n R-beli összeadás, 3

2 n log n + n− 2 ω-hatvánnyal valószorzás, n R-beli szorzás és n db osztás szükséges, összesen92 n log n +O(n) muvelet. Emiatt a polinomszorzás bonyolultsága18n log n +O(n) muvelet.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 24: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülNegative wrapped convolution

AZ ÖTLET I

Legyen R olyan kommutatív gyuru, melyben a 2 egység, n = 2k, k ∈ N, valamintD = R[x]/〈xn + 1〉.

ÁllításD-ben ω = x 2n-edik primitív egységgyök.

Bizonyítás

Az, hogy ω = x 2n-edik egységgyök, következik az xn ≡ −1 mod (xn + 1) ésx2n = (xn)2 ≡ 1 mod (xn + 1) kongruenciákból.

Legyen p | n prím; ekkor a (c− 1) ·∑m−1

j=1 cj = cm − 1 összefüggést

m = p, c = ωnp -re alkalmazva:

ωnp − 1 =

p−1∑j=1

(ωnp )j = (ω

np )p − 1 = ωn − 1 = −2

ami egység.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 25: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülNegative wrapped convolution

AZ ÖTLET I

Legyen R olyan kommutatív gyuru, melyben a 2 egység, n = 2k, k ∈ N, valamintD = R[x]/〈xn + 1〉.

ÁllításD-ben ω = x 2n-edik primitív egységgyök.

Bizonyítás

Az, hogy ω = x 2n-edik egységgyök, következik az xn ≡ −1 mod (xn + 1) ésx2n = (xn)2 ≡ 1 mod (xn + 1) kongruenciákból.

Legyen p | n prím; ekkor a (c− 1) ·∑m−1

j=1 cj = cm − 1 összefüggést

m = p, c = ωnp -re alkalmazva:

ωnp − 1 =

p−1∑j=1

(ωnp )j = (ω

np )p − 1 = ωn − 1 = −2

ami egység.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 26: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülNegative wrapped convolution

AZ ÖTLET I

Legyen R olyan kommutatív gyuru, melyben a 2 egység, n = 2k, k ∈ N, valamintD = R[x]/〈xn + 1〉.

ÁllításD-ben ω = x 2n-edik primitív egységgyök.

Bizonyítás

Az, hogy ω = x 2n-edik egységgyök, következik az xn ≡ −1 mod (xn + 1) ésx2n = (xn)2 ≡ 1 mod (xn + 1) kongruenciákból.

Legyen p | n prím; ekkor a (c− 1) ·∑m−1

j=1 cj = cm − 1 összefüggést

m = p, c = ωnp -re alkalmazva:

ωnp − 1 =

p−1∑j=1

(ωnp )j = (ω

np )p − 1 = ωn − 1 = −2

ami egység.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 27: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülNegative wrapped convolution

AZ ÖTLET II

Ha f , g ∈ R[x] olyanok, hogy deg (fg) < n = 2k, akkor elegendofg-t kiszámítani mod (xn + 1). (Ez a negative wrappedconvolution).

!m = 2bn2 c és t = n

m = 2dn2 e. Ekkor:

f =∑

05j<t fjxmj és g =∑

05j<t gjxmj, ahol fj, gj ∈ R[x] ésfokszámuk kisebb, mint m;Legyen f ′ =

∑05j<t fjyj, g′ =

∑05j<t gjyj ∈ R[x, y].

Ekkor f (x) = f ′(x, xm), g(x) = g′(x, xm).f ′ · g′ = h′ + q′(yt + 1), ezért fg ≡ h′(x, xm) mod (xn + 1),így elegendo f ′g′ mod (yt + 1)-et kiszámolni;degy h′ < t esetén h′ egyértelmu, továbbá degx h′ < 2m.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 28: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülNegative wrapped convolution

AZ ÖTLET II

Ha f , g ∈ R[x] olyanok, hogy deg (fg) < n = 2k, akkor elegendofg-t kiszámítani mod (xn + 1). (Ez a negative wrappedconvolution).

!m = 2bn2 c és t = n

m = 2dn2 e. Ekkor:

f =∑

05j<t fjxmj és g =∑

05j<t gjxmj, ahol fj, gj ∈ R[x] ésfokszámuk kisebb, mint m;

Legyen f ′ =∑

05j<t fjyj, g′ =∑

05j<t gjyj ∈ R[x, y].Ekkor f (x) = f ′(x, xm), g(x) = g′(x, xm).f ′ · g′ = h′ + q′(yt + 1), ezért fg ≡ h′(x, xm) mod (xn + 1),így elegendo f ′g′ mod (yt + 1)-et kiszámolni;degy h′ < t esetén h′ egyértelmu, továbbá degx h′ < 2m.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 29: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülNegative wrapped convolution

AZ ÖTLET II

Ha f , g ∈ R[x] olyanok, hogy deg (fg) < n = 2k, akkor elegendofg-t kiszámítani mod (xn + 1). (Ez a negative wrappedconvolution).

!m = 2bn2 c és t = n

m = 2dn2 e. Ekkor:

f =∑

05j<t fjxmj és g =∑

05j<t gjxmj, ahol fj, gj ∈ R[x] ésfokszámuk kisebb, mint m;Legyen f ′ =

∑05j<t fjyj, g′ =

∑05j<t gjyj ∈ R[x, y].

Ekkor f (x) = f ′(x, xm), g(x) = g′(x, xm).

f ′ · g′ = h′ + q′(yt + 1), ezért fg ≡ h′(x, xm) mod (xn + 1),így elegendo f ′g′ mod (yt + 1)-et kiszámolni;degy h′ < t esetén h′ egyértelmu, továbbá degx h′ < 2m.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 30: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülNegative wrapped convolution

AZ ÖTLET II

Ha f , g ∈ R[x] olyanok, hogy deg (fg) < n = 2k, akkor elegendofg-t kiszámítani mod (xn + 1). (Ez a negative wrappedconvolution).

!m = 2bn2 c és t = n

m = 2dn2 e. Ekkor:

f =∑

05j<t fjxmj és g =∑

05j<t gjxmj, ahol fj, gj ∈ R[x] ésfokszámuk kisebb, mint m;Legyen f ′ =

∑05j<t fjyj, g′ =

∑05j<t gjyj ∈ R[x, y].

Ekkor f (x) = f ′(x, xm), g(x) = g′(x, xm).f ′ · g′ = h′ + q′(yt + 1), ezért fg ≡ h′(x, xm) mod (xn + 1),így elegendo f ′g′ mod (yt + 1)-et kiszámolni;

degy h′ < t esetén h′ egyértelmu, továbbá degx h′ < 2m.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 31: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülNegative wrapped convolution

AZ ÖTLET II

Ha f , g ∈ R[x] olyanok, hogy deg (fg) < n = 2k, akkor elegendofg-t kiszámítani mod (xn + 1). (Ez a negative wrappedconvolution).

!m = 2bn2 c és t = n

m = 2dn2 e. Ekkor:

f =∑

05j<t fjxmj és g =∑

05j<t gjxmj, ahol fj, gj ∈ R[x] ésfokszámuk kisebb, mint m;Legyen f ′ =

∑05j<t fjyj, g′ =

∑05j<t gjyj ∈ R[x, y].

Ekkor f (x) = f ′(x, xm), g(x) = g′(x, xm).f ′ · g′ = h′ + q′(yt + 1), ezért fg ≡ h′(x, xm) mod (xn + 1),így elegendo f ′g′ mod (yt + 1)-et kiszámolni;degy h′ < t esetén h′ egyértelmu, továbbá degx h′ < 2m.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 32: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülNegative wrapped convolution

AZ ÖTLET III

Legyen ξ = x mod x2m + 1 ∈ D = R[x]/⟨x2m + 1

⟩.

ξ negyedik primitív gyök;

Ha most f ∗ = f ′ mod (x2m+) és hasonlóan g∗, h∗, akkorD[y]-ban

f ∗g∗ ≡ h∗ mod (yt + 1) ;

Mivel mindhárom polinom fokszáma kisebb, mint 2m, amod (x2m + 1) redukció csak algebrai „nézopont”-váltást

jelent, a struktúraváltással alkalmazható az FFT.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 33: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülNegative wrapped convolution

AZ ÖTLET III

Legyen ξ = x mod x2m + 1 ∈ D = R[x]/⟨x2m + 1

⟩.

ξ negyedik primitív gyök;Ha most f ∗ = f ′ mod (x2m+) és hasonlóan g∗, h∗, akkorD[y]-ban

f ∗g∗ ≡ h∗ mod (yt + 1) ;

Mivel mindhárom polinom fokszáma kisebb, mint 2m, amod (x2m + 1) redukció csak algebrai „nézopont”-váltást

jelent, a struktúraváltással alkalmazható az FFT.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT

Page 34: Második nekifutás Czirbusz Sándor ELTE IK ...compalg.inf.elte.hu/~czirbusz/teaching/kompalga/2015...TARTALOMJEGYZÉK Polinomok konvolúviójaA DFT és a maradékos osztásGyur˝

TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyuruk FFT támogatás nélkülNegative wrapped convolution

AZ ÖTLET III

Legyen ξ = x mod x2m + 1 ∈ D = R[x]/⟨x2m + 1

⟩.

ξ negyedik primitív gyök;Ha most f ∗ = f ′ mod (x2m+) és hasonlóan g∗, h∗, akkorD[y]-ban

f ∗g∗ ≡ h∗ mod (yt + 1) ;

Mivel mindhárom polinom fokszáma kisebb, mint 2m, amod (x2m + 1) redukció csak algebrai „nézopont”-váltást

jelent, a struktúraváltással alkalmazható az FFT.

Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék FFT