在小有限域上快速卷积


17

在小场上,即时,长度循环卷积的最佳方法是什么?吗?我对固定大小的字段,甚至特别感兴趣。一般的渐近效率陈述和参考文献受到赞赏。n|F|nF=F2

背景: 假设为一个字段,并且Fn>0。我们认为向量uFn具有通过索引坐标Zn

(环状的)卷积长度的n超过F在转换服用u,vFn并输出uvFn,由下式定义

(uv)i:=jZnvjuij,
对进行索引运算。Zn

为了在大场上执行循环卷积,一种流行的方法是使用卷积定理将我们的问题简化为执行离散傅立叶变换(DFT),并使用FFT算法。

对于小的有限域,DFT是未定义的,因为没有原始的第个单位根。可以通过在更大的有限域中嵌入问题来解决此问题,但尚不清楚这是否是最好的处理方法。即使我们走这条路线,也很高兴知道是否有人已经制定了细节(例如,选择要使用的较大字段以及要应用的FFT算法)。n

添加:

“嵌入”我们的卷积是指两件事之一。第一种选择:可以传递到一个扩展域,在该域​​中所需的统一原始根与之邻接,并在那里进行卷积。

第二种选择:如果我们的起始字段是循环的,则可以传递给具有较大特征的循环字段 -足够大,如果我们将向量视为位于\ mathbb {F} _ { p'},不会发生“环绕”。 (我是非正式的,但是想一想如何计算\ mathbb {F} _2上的卷积,我们显然可以对\ mathbb {Z}进行相同的卷积,然后得到答案mod2。)FpFp
F2Z

还添加了:

许多用于FFT的算法和相关问题对于 “ nice”值特别有效(我想更好地理解这种情况)。 n

但是,如果不尝试利用的特殊值,则循环卷积问题基本上与普通卷积等效(通过对进行线性爆破的简单归约法);这又等效于系数超过的多项式相乘。 nnFp

通过这种等效,可以在von zur Gathen和Gerhard(基于Cantor的工作)的这篇论文中使用结果,他们使用扩展域方法来获得。他们没有以特别清晰的方式陈述IMO的界限,但是即使对于,界限也比差。能做得更好吗?O~p(n)nlog2nF2


2
也许您会在Todd Mateer论文中找到有用的东西。
jp

1
我在MathOverflow上问了一个非常类似的问题,用于计算任意有限域上的DFT。您可能会找到相关的答案。
Bill Bradley 2014年

Answers:


8

Alexey Pospelov的最新论文似乎提供了最新技术。(这不是第一个达到我要引用的界限的方法,但是它以统一的方式实现了任意字段的界限,同样重要的是,它清楚地指出了界限,请参阅第3页。)

我们可以乘两个功名 ň任意域上多项式 ˚F使用 Ø ñ 登录ñ 在乘法 ˚F Ø ñ 日志ñ 日志记录ñ 中添加 ˚F。这最初是由于Schonhage-Strassen(对于字符2)和Schonhage对于char。2.正如我所提到的,这意味着循环卷积的边界相同。波斯佩洛夫还指出:“我们目前不知道有不基于连续DFT应用程序的[以上]上限的任何算法...”nFO(nlogn)FO(nlognloglogn)F2

Cantor和Kaltofen对这些结果进行了概括,显示了任意代数(不仅是域)的界线。

如果 F支持适当阶数的离散傅立叶变换,即 F具有原始的第 N个单位根,其中 N足够大(我相信 N = O n 足够),并且 N是2或3的幂,那么我们可以使用 O n 乘法和 O n log n 加法进行多项式乘法。具有其他特殊属性的字段可以进行其他各种改进。FFNNN=O(n)NO(n)O(nlogn)

这似乎是合理的,但未知,Furer最近是否改善在整数乘法(就骂以不同的方式通过德等)可以帮助导致更快的多项式乘法的算法,在有限域上说。谁能评论?

Todd Mateer的论文似乎也是理解FFT文献和多项式乘法应用的绝佳资源(感谢Jug!);但是您必须进一步挖掘才能找到想要的东西。


1
我认为您对Furer和De的看法是正确的。De不使用FFT的复杂版本,尽管这两种算法在概念上相似,但在技术上似乎更容易。
vs

1
如果您担心对数因素,则需要注意机器型号。Furer最近的改进专门针对图灵机。对于单位成本的RAM模型(即使没有乘法,但具有恒定的时间查找),您也会获得O(n)时间用于将两个n位数字相乘,并且使用位打包和经典技术在F_2等上进行乘法的时间复杂度相应降低。
拉斐尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.