世界七大数学难题,它们就像一道道亮丽的风景,吸引着世界各国的数学家的注意。这七个“世界难题”是:NP完全问题、霍奇猜想、庞加莱猜想、黎曼假设、杨·米尔斯理论、纳卫尔-斯托可方程、BSD猜想。这七个问题都被悬赏一百万美元。今天我们要介绍的是NP完全问题。
NP完全问题
1、NP完全问题简介
NP就是Non-deterministic Polynomial的问题,也即是多项式复杂程度的非确定性问题。
假设P ≠ NP的图解。若P = NP则三类相同。
假设P ≠ NP的图解。若P = NP则三类相同。
而如果任何一个NP问题都能通过一个多项式时间算法转换为某个NP问题,那么这个NP问题就称为NP完全问题(Non-deterministic Polynomial complete problem)。NP完全问题也叫做NPC问题。
2、NP完全问题的描述
例:在一个周六的晚上,你参加了一个盛大的晚会。由于感到局促不安,你想知道这一大厅中是否有你已经认识的人。宴会的主人向你提议说,你一定认识那位正在甜点盘附近角落的女士罗丝。不费一秒钟,你就能向那里扫视,并且发现宴会的主人是正确的。然而,如果没有这样的暗示,你就必须环顾整个大厅,一个个地审视每一个人,看是否有你认识的人。
生成问题的一个解通常比验证一个给定的解时间花费要多得多。这是这种一般现象的一个例子。与此类似的是,如果某人告诉你,数13717421可以写成两个较小的数的乘积,你可能不知道是否应该相信他,但是如果他告诉你它可以分解为3607乘上3803,那么你就可以用一个袖珍计算器容易验证这是对的。
人们发现,所有的完全多项式非确定性问题,都可以转换为一类叫做满足性问题的逻辑运算问题。既然这类问题的所有可能答案,都可以在多项式时间内计算,人们于是就猜想,是否这类问题,存在一个确定性算法,可以在多项式时间内,直接算出或是搜寻出正确的答案呢?这就是著名的NP=P?的猜想。不管我们编写程序是否灵巧,判定一个答案是可以很快利用内部知识来验证,还是没有这样的提示而需要花费大量时间来求解,被看作逻辑和计算机科学中最突出的问题之一。它是斯蒂文·考克于1971年陈述的。
NP完全问题
3、NP完全问题的解决
人们发现,所有的完全多项式非确定性问题,都可以转换为一类叫做满足性问题的逻辑运算问题。既然这类问题的所有可能答案,都可以在多项式时间内计算,人们于是就猜想,是否这类问题存在一个确定性算法,可以在多项式时间内直接算出或是搜寻出正确的答案呢?这就是著名的NP=P?的猜想。解决这个猜想,无非两种可能,一种是找到一个这样的算法,只要针对某个特定NP完全问题找到一个算法,所有这类问题都可以迎刃而解了,因为他们可以转化为同一个问题。另外的一种可能,就是这样的算法是不存在的。那么就要从数学理论上证明它为什么不存在。
4、NP完全问题最新情况
2010年8月6日,HP LAB的 Vinay Deolalikar教授宣布证明了P!=NP,证明文章已经发送到该问题各相关领域专家手中,等待检验,在他的主页上,证明过程已经公布(PDF格式共103页),但在8月15日,人们关于论文的看法——即证明不能成立——已经趋于稳定(当然这不能排除大家都同时犯了错误的可能性),随后的发言越来越多地集中于更抽象的层面,并且至今仍在继续。