Computer science 什么';s";P=NP?“;,为什么这是一个如此著名的问题?

Computer science 什么';s";P=NP?“;,为什么这是一个如此著名的问题?,computer-science,theory,complexity-theory,np-complete,p-np,Computer Science,Theory,Complexity Theory,Np Complete,P Np,p=NP是否是计算机科学中最著名的问题。这是什么意思?为什么这么有趣 哦,为了获得额外的学分,请张贴一份声明真假的证明。:) 根据我的浅薄知识,我做了一个简短的总结: 有一些简单的计算问题(比如在图中寻找两点之间的最短路径),可以非常快速地计算(O(n^k),其中n是输入的大小,k是常数(在图中,它是顶点或边的数量)) 其他的问题,比如找到一条穿过图中每个顶点的路径,或者从公钥中获取RSA私钥,都比较困难(O(e^n)) 但是CS speak告诉我们,问题在于我们无法将非确定性图灵机“转换”为确

p=NP是否是计算机科学中最著名的问题。这是什么意思?为什么这么有趣


哦,为了获得额外的学分,请张贴一份声明真假的证明。:)

根据我的浅薄知识,我做了一个简短的总结:

有一些简单的计算问题(比如在图中寻找两点之间的最短路径),可以非常快速地计算(O(n^k),其中n是输入的大小,k是常数(在图中,它是顶点或边的数量))

其他的问题,比如找到一条穿过图中每个顶点的路径,或者从公钥中获取RSA私钥,都比较困难(O(e^n))

但是CS speak告诉我们,问题在于我们无法将非确定性图灵机“转换”为确定性图灵机,但是我们可以将非确定性有限自动机(如正则表达式解析器)转换为确定性自动机(当然,您可以,但机器的运行时间将花费很长时间)。也就是说,我们必须尝试所有可能的途径(通常聪明的CS教授可以排除一些途径)

这很有趣,因为没有人知道解决方案。有人说这是真的,有人说这是假的,但没有达成共识。另一件有趣的事情是,解决方案对公钥/私钥加密(如RSA)有害。您可以像现在生成RSA密钥一样轻松地破解它们


这是一个非常鼓舞人心的问题。

p代表多项式时间。NP代表非确定性多项式时间

定义:

  • 多项式时间表示算法的复杂度为O(n^k),其中n是数据的大小(例如,要排序的列表中的元素数),k是常数

  • 复杂性是以操作次数来衡量的时间,是数据项数量的函数

  • 操作是作为特定任务的基本操作而有意义的操作。对于排序,基本操作是比较。对于矩阵乘法,基本运算是两个数的乘法

现在的问题是,确定性和非确定性意味着什么?有一个抽象的计算模型,一个被称为图灵机器(TM)的虚拟计算机。这台机器有有限的状态数和无限的磁带,磁带上有离散的单元,其中可以写入和读取有限的符号集。在任何给定的时间,TM都处于其状态之一,并且它正在查看磁带上的特定单元。根据从该单元读取的内容,它可以将新符号写入该单元,将磁带向前或向后移动一个单元,然后进入不同的状态。这称为状态转换。令人惊讶的是,通过仔细构造状态和转换,您可以设计一个TM,它相当于任何可以编写的计算机程序。这就是为什么它被用作一个理论模型来证明计算机能做什么和不能做什么

这里有两种TM与我们有关:确定性和非确定性。对于从磁带上读取的每个符号,确定性TM从每个状态只有一个转换。非确定性TM可能有几个这样的转变,即。E它能够同时检查多个可能性。这有点像产生多个线程。不同之处在于,非确定性TM可以生成任意数量的“线程”,而在真正的计算机上,一次只能执行特定数量的线程(等于CPU的数量)。实际上,计算机基本上是有限磁带的确定性TMs。另一方面,非确定性TM无法物理实现,除非可能使用量子计算机

已经证明,任何可以由非确定性TM解决的问题都可以由确定性TM解决。然而,尚不清楚这需要多长时间。声明P=NP意味着,如果一个问题在非确定性TM上花费多项式时间,那么可以构建一个确定性TM,该TM也将在多项式时间内解决相同的问题。到目前为止,还没有人能够证明这是可以做到的,但也没有人能够证明这是不可能做到的

NP完全问题是指一个NP问题X,任何NP问题Y都可以通过多项式约化而简化为X。这意味着,如果有人提出了一个NP完全问题的多项式时间解,这也将给出任何NP问题的多项式时间解。因此,这将证明P=NP。相反,如果有人证明P=NP,那么我们可以肯定,在传统的计算机上,没有办法在多项式时间内解决NP问题

NP完全问题的一个例子是找到一个真值赋值的问题,该赋值将使包含n个变量的布尔表达式为真。
目前,在实践中,任何在非确定性TM上花费多项式时间的问题只能在确定性TM或传统计算机上以指数时间完成。

例如,解决真值分配问题的唯一方法是尝试2^n的可能性。

对于问题的p=?NP部分的what和why,我没有什么可以补充的,但是关于证明。一个证明不仅值得一些额外的学分,而且可以解决其中一个问题。最近进行了一项有趣的民意调查,关于证明的主题,这些调查绝对值得一读。

给出我能想到的最简单的答案:

假设我们有一个问题,需要一定数量的输入,并且有各种潜在的解决方案,对于给定的输入,这些解决方案可能会解决问题,也可能不会解决问题。益智杂志中的逻辑益智就是一个很好的例子:输入就是条件(“乔治不住在bl里