12.07.2015 Views

Algorytmy transformacji wielomianowych i ich zastosowania

Algorytmy transformacji wielomianowych i ich zastosowania

Algorytmy transformacji wielomianowych i ich zastosowania

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

PreliminariaObecnie znane algorytmy pozwalają na obliczenie splotu z wykorzystaniemc (n) = O (n log n log log n)operacji [Schönhage i Strassen, 1971; Cantor i Kaltofen, 1991]. W 2007 roku M. Fürerpodał algorytm szybszy dla ”astronomicznie dużej” wartości n, o złożonościobliczeniowejc (n) = O (n log n) 2 O(log∗ n) ,gdzielog ∗ n = min { i 0 : log (i) n 1 } i log (0) n = n oraz log (i+1) n = log log (i) n.Algorytm c (n) Literaturaklasyczny O (n 2 ) Bini i Pan, 1994Karatsuba O (n 1.59 ) Karatsuba, 1995w oparciu o FFT O (n log n) von zur Gathen i Gerhard,2003Schönchage-Strassena O (n log n log log n) Schönhage i Strassen,1971Fürera O (n log n) 2 O(log∗ n)Fürer, 2007Tabela 3.1: Złożoność obliczeniowa algorytmów obliczania splotuDla wektorów a i b definiuje się także zwinięty splot jako wektorktórego współrzędne są równea ⊗ b = (c 0 , c 1 , . . . , c n−1 ),i∑c i = a k b i−k , i = 0, 1, . . . , n − 1. (3.3)k=0Łatwo widać, że algorytmy obliczania zwiniętego splotu oraz splotu są tego samegorzędu. Z drugiej strony, algorytm obliczania zwiniętego splotu nie wymaga niecosztucznego podwajania wymiaru dziedziny dyskretnej <strong>transformacji</strong> Fouriera. Jedenz algorytmów obliczania zwiniętego splotu opiera się na równościa ⊗ b = { F −1 [F (a) · F (b)] + F −1 [F (Ψ · a) · F (Ψ · b)] /Ψ } /2, (3.4)15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!