复杂性理论难以检查的价值


13

质数计算函数,降级,小于定义为质数的数目或等于。xπ(x)x

我们可以从定义一个决策问题,如下所示:π(x)

给定两个用二进制写的数字和,确定。Ñ π X = Ñxnπ(x)=n

我和一个朋友今天早些时候在谈论这个问题。有一个针对这个问题的伪多项式时间算法-只需将计数,在每一步使用试验除法即可查看有多少个质数,并检查其是否等于。问题也存在于PSPACE中,因为我刚刚描述的算法可以实现为仅使用多项式辅助空间。ñxn

但是,我很难找到一种方法来将这个问题放入较低复杂度的类中。我看不到如何为该问题构建多项式时间验证程序,因此我不确定它是否在NP中,也根本无法考虑将其纳入多项式层次结构的方法。

最适合此问题的复杂度类别是什么?

谢谢!


通常这些类型的问题往往取决于黎曼猜想......有许多“附近”功能,有这方面你....
VZN

Answers:


11

这在很大程度上是一个开放的问题。我将概述一些可以“自然”解决问题的类。

您的定义很难使用,这个问题很难适合任何现有的复杂性类。您定义的语言是和。因此,例如,如果在类则将在。这使得很难描述您定义的语言,因为必须指出“语言与语言的 ”才能给出最严格的界限。{ X Ñ | π X Ñ } { X Ñ | π X Ñ } ķ { X Ñ | π X Ñ } Ç Ò ķ ķ{(x,n)|π(x)n}{(x,n)|π(x)n}{(x,n)|π(x)n}K{(x,n)|π(x)n}coKKcoK

问题“计算 ”是在一个问题P,其中P ˚F P 小号P Ç é是类的形式“计算的非确定性,多项式TM的接受路径的数量”的问题。显然,我们可以构造一个不确定性是TM猜一个数q X,然后(与AKS)测试是否q是素数。π(X)#P#PFPSPACEqxq

的决定变种P P,这是类中的一些形式的语言:“鉴于非确定性多项式TM,做至少有一半的计算路径接受吗?”。两者{ x n | π X Ñ }{ X Ñ | π X Ñ }可能是还原成中的问题P P#PPP{(x,n)|π(x)n}{(x,n)|π(x)n}PP (通过对上述TM进行一些伪造,以平衡接受路径的数量)。


3

你的问题在C = P= 通过算法,

非确定性地猜测整数,使得[m和一点0m<2log2(x+1)]b
如果x < m然后拒绝
如果是b=1这样:
如果m < n然后接受否则拒绝
其他:
如果m 是素数则接受否则拒绝




特别是您的问题也在于PP,因为PP在真值表约简下被关闭


2

实际上,您可能会更快或更慢地得到答案:-(

π(x)有相当好的近似值。因此,您可以计算出这样的近似值,如果距离太远,您会知道π(x)≠n。例如,如果n≥x,那么我知道π(x)≠n而不计算任何东西。

有一种快速算法可以确定π(x)是偶数还是奇数,以O(x ^(1/2))运行。您可以运行此算法,并且它可能会检测到n的奇偶校验错误并完成。如果n是接近π(x)的随机整数,则机会为50。

除此之外,我不知道有什么方法比计算π(x)更快。这非常不方便-如果我编写了一个应该计算π(10 ^ 25)的程序,但是得到的结果显然不是错误的,那么除了重复执行该操作外,没有其他方法可以检查我的结果是否正确计算。而且,您不能只使用我的程序重复计算,而是需要编写一个不同的程序,否则您将无法检测到我的程序是否存在使它计算的函数与π(x)略有不同的错误。

可以很容易地以大约O(n ^(2/3))计算π(x),并且通过一些非常深的数学运算可以更快地计算出。


1
这很有趣,但是问题更多的是包含该问题的复杂性类。
usul 2016年
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.