Швидке згортання малих кінцевих полів


17

Назвіть найвідоміші методи циклічної згортки довжиною над малим полем, тобто коли | Ж | n ? Мене особливо цікавлять поля постійного розміру, або навіть F = F 2 . Загальні твердження та посилання на асимптотичну ефективність високо оцінені.n|F|nF=F2

Передумови: Нехай - поле, а n > 0 . Ми вважаємо, що вектори u F n мають координати, індексовані Z n .Fn>0uFnZn

(Циклічний) згортки довжини над F є перетворення з U , V F п і виведення U * v F п , що визначається ( ¯u * про ) я : = Σ J Z н v J U я - J , з арифметикою індексу над Z n .nFu,vFnuvFn

(uv)i:=jZnvjuij,
Zn

Для виконання циклічної згортки над великими полями популярним методом є використання теореми згортання для зменшення нашої проблеми виконання дискретних перетворень Фур'є (DFT) та використання алгоритму FFT.

Для малих кінцевих полів DFT не визначено, оскільки немає первісного -го кореня єдності. Можна обійти це вкладення * проблема більшою кінцевої області, але це не ясно , що це кращий спосіб , щоб продовжити. Навіть якщо ми підемо цим маршрутом, було б непогано знати, чи хтось уже опрацював деталі (наприклад, вибравши, яке велике поле використовувати та який алгоритм FFT застосувати).n

Додано:

Під «вбудовування» наш згортку в, я маювиду одну з двох речей. Перший варіант: можна перейти до поля розширення, в якому бажані примітивні корені єдності примикають, і зробити згортку там.

Другий варіант: якщо наше вихідне поле є циклічним, можна перейти до циклічного поля більш великої характеристики - достатньо великої, що якщо ми вважаємо наші вектори лежачими у F p ' , не виникає "обгортання". (Мені неформально, але просто подумайте про те, як, щоб обчислити згортання на F 2 , ми можемо чітко просто зробити те саме згортання над Z , а потім прийняти відповіді mod 2.)FpFp
F2Z

Також додано:

Багато алгоритмів FFT і пов'язаних з ними проблем особливо добре працюють для «приємних» значень (і я хотів би зрозуміти ситуацію з цим краще). n

Але якщо не намагатися скористатися спеціальними значеннями , проблема циклічної згортки в основному еквівалентна (легким скороченням, що включає лінійне вибух в n ), звичайній згортці; це в свою чергу еквівалентно множенню многочленів з коефіцієнтами на F p . nnFp

За цією еквівалентністю можна використати результати, наприклад, у цій роботі фон Зура Ґетена та Герхарда (будуючи на роботі Кантора), які використовують підхід із розширенням поля, щоб отримати складність ланцюга, обмежену . Вони не визначають свої межі особливо чітко ІМО, але межа є гіршою, ніж n log 2 n навіть для F 2 . Чи можна зробити краще?O~p(n)nlog2nF2


2
Можливо, ви знайдете щось корисне в тезі Тодда Матіра .
jp

1
Я задав дуже схоже запитання щодо MathOverflow для обчислення DFT над довільними кінцевими полями; ви можете знайти відповіді відповідні.
Білл Бредлі

Відповіді:


8

Як видається, нещодавній статтю Олексія Поспелова видає сучасний стан. (Межі, які я цитую, не вперше, але вони досягають їх уніфікованим чином для довільних полів, і що не менш важливо, вони чітко констатують межі, див. Стор. 3)

можна помножити два градусів- п поліноми над довільним полем F з використанням O ( п увійти п ) множення в F і O ( п увійти п увійти лог п ) доповнення в F . Це спочатку пов’язано з Шонгаге-Страссеном (для char.2 ) та Шонхаге за чарами. 2. Як я вже згадував, це означає ті самі межі циклічної згортки. Поспелов також зазначає: "Наразі нам невідомі будь-які алгоритми із верхньою межею [вищезазначеного], які не базуються на послідовних програмах DFT ..."nFO(nlogn)FO(nlognloglogn)F2

FFNNN=O(n)NO(n)O(nlogn)

Тодд Mateer в дисертації також здається, відмінний ресурс , щоб зрозуміти FFT літератури і додатки для множення поліномів (спасибі Глечик!); але вам доведеться більше копати, щоб знайти те, що ви шукаєте.


1
Я думаю, ти прав на Фурера і Де. De не використовує складну версію FFT і, здається, технічно простіше, хоча обидва алгоритми концептуально схожі.
проти

1
Якщо ви турбуєтесь про фактори журналу, вам слід бути обережними щодо моделі машини. Нещодавнє вдосконалення Furer спеціально для машин Тьюрінга. Для одиничної вартості оперативної пам’яті (навіть без множення, але при постійному пошуку часу) ви отримуєте O (n) час для множення двох n бітних чисел і, відповідно, менші часові складності для множення на F_2 тощо, використовуючи пакування бітів та класичні методи.
Рафаель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.