2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Обратное преобразование Фурье над конечным полем
Сообщение12.05.2016, 22:26 


12/05/16
3
Добрый вечер!

Первый раз на этом форуме, просьба сильно не ругать оформление и постановку.

Итак, задача - реализовать умножение многочленов над произвольным конечным полем с FFT (Fast Fourier Transition). Собственно, само умножение происходит понятно - для многочленов $A(x), B(x)$, заданных векторами коэффициентов, получаем их преобразования $FFT(A(x)), FFT(B(x))$ - вектора значений в корнях из $1$. Почленно перемножаем преобразования и вычисляем от результата обратное преобразование Фурье (далее - iFFT).

Для понимания алгоритма использовал данную статью: http://www.cs.berkeley.edu/~fateman/282/readings/fftnotes.pdf - по сути, единственное более-менее внятное объяснение метода для случая конечных полей, что я нашел. Прямое преобразование сложностей не вызвало: многочлен $A(x) = a_0 + a_1 x + ... + a_{n-1} x^{n-1}$ представляется как $\begin{pmatrix} A(x_0)\\A(x_1)\\...\\A(x_{n-1})\end{pmatrix} = \begin{pmatrix} x_0^0& x_0^1& ...& x_0^{n-1}\\ x_1^0& x_1^1& ...& x_1^{n-1}\\ ...&...& ...& ...\\ x_{n-1}^0& x_{n-1}^1& ...& x_{n-1}^{n-1}\end{pmatrix} \cdot \begin{pmatrix}a_0\\a_1\\...\\a_{n-1}\end{pmatrix}$, если в качестве $(x_0, ..., x_{n-1})$ выбрать $(w^0, ..., w^{n-1})$, где $w$ - примитивный $n$-ный корень из единицы (т.е. $w^n = 1, w^k \neq 1, \forall k<n$), получим: $\begin{pmatrix} A(w^0)\\A(w^1)\\...\\A(w^{n-1})\end{pmatrix} = \begin{pmatrix} 1& 1& 1& ...& 1\\ 1& w& w^2&...& w^{n-1}\\ ...&...& ...&...& ...\\ 1& w^{n-1}& (w^{n-1})^2&...& (w^{n-1})^{n-1}\end{pmatrix} \cdot \begin{pmatrix}a_0\\a_1\\...\\a_{n-1}\end{pmatrix}$. По определению это и есть преобразование Фурье (все это описано по ссылке чуть более подробно, но суть такая). В статье утверждается, что для обратного преобразования используется аналогичный алгоритм, только вместо элемента $w$ используется $w^{-1}$, и появляется коэффициент $\frac{1}{n}$ - по сути, обратная матрица к исходной: $\frac{1}{n}\begin{pmatrix} 1& 1& 1& ...& 1\\ 1& w^{-1}& w^{-2}&...& w^{-(n-1)}\\ ...&...& ...&...& ...\\ 1& w^{-(n-1)}& (w^{-(n-1)})^2&...& (w^{-(n-1)})^{n-1}\end{pmatrix}$.Таким образом мы подошли к первому вопросу - что такое $\frac{1}{n}$? $n$ - натуральное число, длина вектора коэффициентов входного многочлена. Если вводить $n$ как сумму из $n$ единиц поля, то получим, что, в частности, для $GF(2^4)/(x^4+x+1)$ попытка вычислить $\frac{1}{n}$ приводит к обращению $0$ (при четных $n$)- дело неблагодарное, так как противоречит определению поля.
Далее, уже сам быстрый алгоритм использует дополнение степени многочлена до степени $2$ нулями - казалось бы, все здорово. Но не выйдет ли, что для больших $n$ и, соответственно, дополнений до степени $2$, не найдется примитивного корня единицы?

Заранее спасибо за ответы!

P.S.
Буду рад так же любой литературе по данному вопросу.

 Профиль  
                  
 
 Re: Обратное преобразование Фурье над конечным полем
Сообщение12.05.2016, 23:03 
Заслуженный участник
Аватара пользователя


01/03/06
13626
Москва
А откуда берется уверенность, что БПФ всегда применимо к умножению многочленов над конечным полем? :shock: Ведь не над каждым конечным полем можно выполнить обратное преобразование Фурье заранее заданного порядка. Подробно, когда это можно делать и как делать, написано, например, в книге Joachim von zur Gathen, Jürgen Gerhard Modern computer algebra, и в других работах Joachim von zur Gathen. Полезно также ознакомиться с приемом, предложенным для преодоления трудностей Sxhonhage.

 Профиль  
                  
 
 Re: Обратное преобразование Фурье над конечным полем
Сообщение13.05.2016, 14:58 


12/05/16
3
Brukvalub в сообщении #1123216 писал(а):
А откуда берется уверенность, что БПФ всегда применимо к умножению многочленов над конечным полем? :shock: Ведь не над каждым конечным полем можно выполнить обратное преобразование Фурье заранее заданного порядка. Подробно, когда это можно делать и как делать, написано, например, в книге Joachim von zur Gathen, Jürgen Gerhard Modern computer algebra, и в других работах Joachim von zur Gathen. Полезно также ознакомиться с приемом, предложенным для преодоления трудностей Sxhonhage.


Спасибо за ответ и литературу!
Ознакомился с книгой - как я понял, ограничения на применимость появляются из-за возможного отсутствия примитивных корней единицы нужного порядка. Однако остался вопрос касательно $\frac{1}{n}$ - в указанной книге описывается как $n \cdot 1_R$, где $1_R$ - единица поля $R$. Но, насколько я понимаю, при четном значении $n$ получится $0_R$ (для примера поля из первого сообщения темы). А сама суть алгоритма и сводится к тому, что многочлен дополняется нулями до степени $2^k$. Как тогда может работать обратное преобразование? Чувствую, что что-то упускаю, но понять пока не получается.

 Профиль  
                  
 
 Re: Обратное преобразование Фурье над конечным полем
Сообщение13.05.2016, 17:52 
Заслуженный участник
Аватара пользователя


11/01/06
3824
Для существования примитивного корня из 1 степени n необходимо, чтобы n не делилось на характеристику поля, потому что $x^{pm}-1=\left(x^{m}-1\right)^{p}$.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group