用户: Rushcheyo/《算法分析与设计》论文阅读/PRIMES is in P

是指所有质数构成的集合. 本文旨在介绍 AKS 算法, 它是第一个多项式时间的确定性质数判定算法, 即输入 时间内判断是否有 .

本文中 为底, 为底.

1一个随机算法

先介绍一个由 Agrawal 和 Biswas 在 1999 年发表的比较简单的随机算法 [AB99], 这是之后确定性算法的基础. 我们使用的关键判据如下:

引理 1.1 (Fermat 小定理的推广)., 是质数当且仅当:

(1)

证明. 是质数, 一定是 的倍数 (因为分子有素因子 , 分母没有) ;

不是质数, 任取质数 , 令 满足 , 考察 (1) 式左边的 项系数:

那么 更不能是 0.

然而该多项式恒等式的次数过高, 为降低检验复杂度, 我们取 , 并随机选取 次首一多项式 , 亦即 中均匀独立随机, 之后判断是否有:

(2)

引理 1.2. 不是质数且存在至少是 11 的质数 时, (2) 式不成立的概率至少是 .

证明.. 在引理 1.1 的证明中我们已看见, 在 , 那么 可以唯一分解, 且各不可约因子中度数为 的不超过 个.

的随机方式使 的系数在 中随机选取. 考虑到 , 只要估计 次首一不可约多项式的数目. 由 Möbius 反演熟知这是:

代入概率下界:

分析一下时间复杂度: (2) 式计算需要 次多项式乘法和取余, 用 FFT 每次需要 位整数乘法 (也是 时间) , 总共是 时间, 重复 次后即可达到 的错误率, 因此该算法共消耗 时间.

2去随机化

在上面的算法中, 我们随机选取了一个多项式, 而从分析中可以看出, 我们其实只是想要一个次数比较大的不可约多项式. 另一方面还可以观察到, 我们检查 下是否成立, 间接的检查了对素元 是否在 下成立.

在 AKS 算法中, 我们将该多项式固定为 . 在 上, 我们知道 有一个次数是 的不可约因子: 第 分圆多项式 . 然而在 上情况有所不同:

引理 2.1 (有限域上的分圆多项式). 阶有限域, , 上的每个不可约因子的次数均为 . 这里 表示 的阶.

证明.代数闭包 . 对 有刻画: 对 , 当且仅当 .

考虑 次本原根 (即 个根中不是 次单位根的这些组成的乘法群 (域的乘法群的有限子群必为循环群) 的生成元, 分圆多项式的定义也是一样的) , 我们断言其极小多项式是 , 这是由于:

1.

上只固定 的自同构, 于是一个 上多项式零点包含 就要包含 ;

2.

该多项式的系数 次方后不变 (因为是根的初等对称多项式, 其 次方是根 次方亦即轮换后的初等对称多项式, 由对称性不变) , 因而在 中.

其实以上无非是说, 对于 Galois 扩张 , 的最小多项式就是 . 而 的有限扩张的 Galois 群由 生成, 这是由于自同构必须是 (因为扩域的乘法群循环) , 然后这个固定底域当且仅当 .

因此, 取 是引理 2.1 中这样一个不可约因子, 那么我们的分析可以限制在域 上. 为了保证 的次数够大, 我们 的选取如下:

引理 2.2., 存在 , 使得 .

证明.

反证这些 都满足 , 则它们均整除:

因此该范围内与 互质的数的 至多是 , 从而该范围内所有数的 至多是 .

下面只需要证明 就导出了矛盾.

首先证明 . 由 Kummer 定理, 对任意质数 , 的次数是 进制下相加的进位次数, 显然不超过 的位数减一, 即 , 这就是 中的次数.

然后考虑 . 我们知道 . 若 是偶数, 互质, 则 , 易知该 . 当 是奇数时, .

引理 2.2 中, 我们只保证了 , 但是 的次数是 . 在 Agrawal, Kayal 和 Saxena 的第一版预印本里, 他们确实用了解析数论的工具做到了这一点, 然而 Hendrik Lenstra 简化了证明使得我们只需保证 够大.

下面给出详细的算法:

1.

如果 , 拒绝;

2.

找最小的 满足 ;

3.

如果存在 使得 , 拒绝;

4.

如果 , 接受;

5.

检查:

(3)

不成立则拒绝; 全部成立则接受.

3算法的分析

如同上一节所说, 我们现在固定质因子 的次数为 的不可约因子 , 以及由他们诱导的域 . 由于算法第 3、4 步的检查, 必有 .

我们有 成立. 另一方面, 我们自然有 . 在该式两边取 次方, 得到 .

展开上面式子, 有 , , 由于 , 这相当于 , 因而结合 , . 我们抽象出如下性质:

定义 3.1. 如果 和多项式 满足 , 称 是内省的 (英文: introspective) .

引理 3.2 (数乘封闭性). 如果 都对 内省, 内省.

证明. , 其中第一个等号在 意义下, 然而这比 要强, 因为 .

引理 3.3 (多项式乘封闭性). 如果 均内省, 则 内省.

证明. 显然.

定义 , , 立刻有:

推论 3.4.

, 内省.

现在我们回到域 上. 自然对应由 生成的群 (因为每个元素都有阶) , 由有限域性质这是个循环群. 下面会分别给出 的上界和下界导出矛盾.

我们注意到集合 的结构高度取决于 是否是 的幂次. 下面将 联系在一起.

引理 3.5., 则 .

证明. 此时 , , 因而 , 故 . 取 为生成元立得.

上面的引理提示我们定义群 上生成 (记得 ) , 于是我们可以估计 :

引理 3.6. 不是 的幂次, 则 .

证明., 必有两个 相同的, 由引理 3.5 不超过他们中的较大值, 更不超过 .

为了导出矛盾, 我们只需要给出 的下界. 如果两个多项式度数小于 的度数, 它们对 取模后自然不同, 因此 (这是不定方程 的解数) 是显然的 (注意易证 去保证 ) . 然而我们在第二节末尾讨论过, 我们能方便控制的是 , 因此我们需要下面更强的下界:

引理 3.7 (Hendrik Lenstra).

证明. 同样, 我们证明两个 中度数均小于 的不同多项式 后仍然不同. 反证相同. 记 , 有 . , . 注意 次本原单位根的极小多项式, 于是 是域 上的 次本原单位根. 由于 , 也都是 次本原单位根. 因而作为域 上的系数非 0 多项式有 个不同零点, 矛盾.

定理 3.8. AKS 算法是正确的.

证明. 现在只需要证 , 因为算法第一步就拒绝了次幂数, 最后只能 是质数.

显然 , 故 .

显然 , 于是 .

最后分析 AKS 算法的时间复杂度. 由于 , 第 5 步要执行 步, 每步进行 次乘法, 每次乘法进行 位数乘, 因此总的时间复杂度是 .

参考文献

[AB99]

M. Agrawal and S. Biswas (1999). Primality and identity testing via Chinese remaindering. Proceedings of IEEE FOCS 1999, pp. 202–209.

[AKS02]

M. Agrawal, N. Kayal and N. Saxena (2004). PRIMES is in P. Annals of Mathematics 160, pp. 781–793.