公爵娱乐

AKS素性测试_

201810月05日

AKS素性测试_

AKS素性测试 AKS素性测试(也称为Agrawal-Kayal-Saxena素性测试和cyclotomic AKS测试)是Manindra Agrawal,Neeraj Kayal和Nitin Saxena在印度理工学院Kanpur计算机科学家创建和发布的确定性素数验证算法,2002年8月6日,在一篇题为“PRIMES is in P”的文章中[1]该算法首先确定在多项式时间内是否有任何给定的数是素数或复合数。作者获得了2006年哥德尔奖和2006年Fulkerson奖。 AKS是第一个同时具有普遍性,多项式,确定性和无条件的素数验证算法。以前的算法已经开发了几个世纪,并且最多达到了三个这些属性,但不是全部四个。 虽然该算法具有理论重要性,但在实践中并未使用。对于64位输入,Baillie-PSW素数测试是确定性的,运行速度快很多个数量级。对于更大的输入,ECPP和APR测试(也是无条件正确的)的性能优于AKS。此外,ECPP可以输出一个原始性证书,该证书允许独立和快速验证结果,这在AKS算法中是不可能的。 AKS素性检验基于以下定理:给定一个整数n(≥2),并给出一个与n互质的整数,当且仅当多项式同余关系 ( X 一个 ) ñ ≡ ( X ñ 一个 ) ( MOD ñ ) {\\ displaystyle(x a)^ {n} \\ equiv(x ^ {n} a){\\ pmod {n}}} (1) 成立。[1]请注意,x应该被理解为一个正式的符号。 这个定理是对费马小定理多项式的推广,可以很容易地用二项式定理和二项式系数的下列性质证明: 虽然关系式(1)本身构成一个素性检验,但验证它需要指数时间:蛮力方法需要扩展(x-a)n多项式和得到的n 1个系数的减少量(mod n) 。 同余是多项式环equalityn [x]中的一个等式。在quotn [x]的一个商环中求值,为所涉及的多项式的阶数创建一个上界。 AKS评估ℤn[x] /(xr - 1)中的相等性,使得计算复杂度取决于r的大小。为了清楚起见,[1]这表示为一致性 ( X 一个 ) ñ ≡ ( X ñ 一个 ) ( MOD X [R - 1 , ñ ) {\\ displaystyle(x a)^ {n} \\ equiv(x ^ {n} a){\\ pmod {x ^ {r} -1,n}}} (2) 这与以下内容相同: ( X 一个 ) ñ - ( X ñ 一个 ) = ( X [R - 1 ) G ñ F {\\ displaystyle(x a)^ {n} - (x ^ {n} a)=(x ^ {r} -1)g nf} (3) 对于一些多项式f和g。 注意所有素数都满足这个关系(在(3)中选择g = 0给出(1),这对于n素数是成立的)。当r是多项式到n的数字时,可以在多项式时间内检查这个同余。 AKS算法评估一个值的大集合的这种一致性,其大小是n的多项式的大小。 AKS算法的有效性证明表明,可以找到r和一组具有上述性质的值,如果同余成立,则n是素数的幂次[1]。 在上述文章的第一版中,作者证明了该算法的渐近时间复杂性 Ø 〜 ( 日志 ⁡ ( ñ ) 12 ) {\\ displaystyle {\\ tilde {O}}(\\ log(n)^ {12})}  (使用从大O符号Õ)。换句话说,该算法花费的时间少于多倍数(以数字为单位)因子n倍的数字的十二次方。然而,论文中证明的上限相当宽松;事实上,如果真的,索菲热尔曼素数分布的广泛猜测会立即将最坏的情况下调到 Ø 〜 ( 日志 ⁡ ( ñ ) 6 ) {\\ displaystyle {\\ tilde {O}}(\\ log(n)^ {6})} 。 在发现之后的几个月里,出现了新的变体(Lenstra 2002,Pomerance 2002,Berrizbeitia 2003,Cheng 2003,Bernstein 2003a / b,Lenstra和Pomerance 2003),其计算速度提高了数量级。由于存在许多变体,Crandall和Papadopoulos在2003年3月发表的科学论文“关于实施AKS级素性测试”中提到算法的“AKS级”。 针对其中的一些变体以及其他反馈,论文“PRIMES is in P”更新为AKS算法的新公式和正确性证明。 (这个版本最终发表在“数学年鉴”上)。虽然基本思想保持不变,但r是以新的方式选择的,而正确性的证明更加连贯。虽然以前的证据依赖于许多不同的方法,但新版本几乎完全依赖于有限域上的分圆多项式的行为。新版本还允许改进时间复杂度的界限,现在可以通过简单的方法来显示 Ø 〜 ( 日志 ⁡ ( ñ ) 10.5 ) {\\ displaystyle {\\ tilde {O}}(\\ log(n)^ {10.5})} 。使用筛分理论的附加结果,可以进一步将其减少到 Ø 〜 ( 日志 ⁡ ( ñ ) 7.5 ) {\\ displaystyle {\\ tilde {O}}(\\ log(n)^ {7.5})} 。 2005年,Carl Pomerance和H.W. Lenstra,Jr.展示了AKS的一个变体, Ø 〜 ( 日志 ⁡ ( ñ ) 6 ) {\\ displaystyle {\\ tilde {O}}(\\ log(n)^ {6})}  操作,其中n是要测试的数字 - 显着改善了初始 Ø 〜 ( 日志 ⁡ ( ñ ) 12 ) {\\ displaystyle {\\ tilde {O}}(\\ log(n)^ {12})}  约束在AKS论文的第一版中。[2]该论文的更新版本也是可用的。[3] Agrawal,Kayal和Saxena提出了他们算法的变体, Ø 〜 ( 日志 ⁡ ( ñ ) 3 ) {\\ displaystyle {\\ tilde {O}}(\\ log(n)^ {3})}  如果阿格拉瓦尔的猜想是真实的话,但是,亨德里克伦斯特拉和卡尔波默斯的启发式论证表明它可能是错误的[1]。 该算法如下:[1] 这里ordr(n)是n模r的乘法次序,log2是二进制对数,并且 φ ( [R ) {\\ displaystyle \\ scriptstyle \\ varphi(r)}  是欧拉的r的总体函数。 本文第3步显示为检查1 <(a,n)
回到顶部

Powered by 公爵娱乐 @2018 RSS地图 html地图

Copyright 站群 © 2012-2013 365建站器 版权所有