NP完全问题

原创 2008年10月02日 18:20:00
NP完全问题是不确定性图灵机在P时间内能解决的问题,是世界七大数学难题之一。
  NP完全问题排在百万美元大奖的首位,足见他的显赫地位和无穷魅力。
  数学上著名的NP问题,完整的叫法是NP完全问题,也即“NP COMPLETE”问题,简单的写法,是 NP=P?的问题。问题就在这个问号上,到底是NP等於P,还是NP不等於P。证明其中之一,便可以拿百万美元大奖。
  这个奖还没有人拿到,也就是说,NP问题到底是Polynomial(意思是多项式的),还是Non-Polynomial,尚无定论。
  NP里面的N,不是Non-Polynomial的N,是Non-Deterministic(意思是非确定性的),P代表Polynomial倒是对的。NP就是Non-deterministic Polynomial的问题,也即是多项式复杂程度的非确定性问题。
  什么是非确定性问题呢?有些计算问题是确定性的,比如加减乘除之类,你只要按照公式推导,按部就班一步步来,就可以得到结果。但是,有些问题是无法按部就班直接地计算出来。比如,找大质数的问题。有没有一个公式,你一套公式,就可以一步步推算出来,下一个质数应该是多少呢?这样的公式是没有的。再比如,大的合数分解质因数的问题,有没有一个公式,把合数代进去,就直接可以算出,它的因子各自是多少?也没有这样的公式。
  这种问题的答案,是无法直接计算得到的,只能通过间接的“猜算”来得到结果。这也就是非确定性问题。而这些问题的通常有个算法,它不能直接告诉你答案是什么,但可以告诉你,某个可能的结果是正确的答案还是错误的。这个可以告诉你“猜算”的答案正确与否的算法,假如可以在多项式时间内算出来,就叫做多项式非确定性问题。而如果这个问题的所有可能答案,都是可以在多项式时间内进行正确与否的验算的话,就叫完全多项式非确定问题。
  完全多项式非确定性问题可以用穷举法得到答案,一个个检验下去,最终便能得到结果。但是这样算法的复杂程度,是指数关系,因此计算的时间随问题的复杂程度成指数的增长,很快便变得不可计算了。
  人们发现,所有的完全多项式非确定性问题,都可以转换为一类叫做满足性问题的逻辑运算问题。既然这类问题的所有可能答案,都可以在多项式时间内计算,人们於是就猜想,是否这类问题,存在一个确定性算法,可以在指数时间内,直接算出或是搜寻出正确的答案呢?这就是著名的NP=P?的猜想。
  解决这个猜想,无非两种可能,一种是找到一个这样的算法,只要针对某个特定NP完全问题找到一个算法,所有这类问题都可以迎刃而解了,因为他们可以转化为同一个问题。另外的一种可能,就是这样的算法是不存在的。那么就要从数学理论上证明它为什么不存在。
  前段时间轰动世界的一个数学成果,是几个印度人提出了一个新算法,可以在多项式时间内,证明某个数是或者不是质数,而在这之前,人们认为质数的证明,是个非多项式问题。可见,有些看来好象是非多项式的问题,其实是多项式问题,只是人们一时还不知道它的多项式解而已。
  如果判定问题π∈NP,并且对所有其他判定问题 π∈NP,都有π'多项式变换到π(记为π'∞π),则称判定问题π 是NP完全的。
  对P类,NP类及NP完全问题的研究推动 了计算复杂性理论的发展,产生了许多新概念,提出了许多新方法。但是还有许多难题至今没有解决,P=NP?就是其中之一。许多学者猜想P≠NP,但无法证明。

《算法概论》第八章NP完全问题部分习题解

8.10利用推广的方法证明NP-完全性。对以下每个问题,通过证明它是本章某个NP-完全问题的推广说明它是NP-完全的。...
  • mattmu
  • mattmu
  • 2017年07月06日 12:52
  • 236

证明NP完全问题

8.14 Prove that the following problem is NP-complete: given an undirected graph G = (V, E) and an in...
  • u012655441
  • u012655441
  • 2017年06月07日 14:37
  • 616

算法概论第八章 NP完全问题 习题证明

8.3 吝啬SAT问题是这样的: 给定一组字句(每个句子都是其中文字的析取)和整数k, 求一个最多有k个变量为true的满足赋值, 如果该赋值存在. 证明吝啬SAT问题是NP完全问题. 证明: ...
  • Tomjx
  • Tomjx
  • 2017年07月05日 19:52
  • 228

算法:NP问题,NP完全问题(NPC),NPhard问题

在做计算机算法关于NP完全问题这一章的作业的时候,发现有很多概念理解的不是很透彻,然后就反复看老师的讲义,在网上查阅各种资料,花了很多时间来弄懂这块的内容。发现书上的概念太正式,定义太标准,不容易很快...
  • qq_23926575
  • qq_23926575
  • 2016年12月14日 22:51
  • 3000

《Algorithms》第8章:NP完全问题 学习笔记

/* * 第0~第8章的全部笔记已经整理在http://zjsblog.com/ALGO/index.html * Algorithms 是一本很经典的算法入门书,希望对朋友们有所帮助 */ ...
  • Zyearn
  • Zyearn
  • 2013年02月02日 18:31
  • 10391

21个NP完全问题

来源于wiki百科。 卡普的21个问题列表如下,多数以问题的原名,加上巢状排版表示出这些问题归约的方向。举例,背包问题(Knapsack)是NP-完全问题的证明,是从精确覆盖问题归约到背包问题,因此...
  • l_mingo
  • l_mingo
  • 2017年01月08日 10:29
  • 2073

几个NP-完全问题的证明

1.吝啬SAT问题8.3吝啬SAT问题是这样的:给定一组子句(每个子句都是其中文字的析取)和整数k,求一个最多有k个变量为true的满足赋值——如果该赋值存在。证明吝啬问题是NP-完全问题。 证明:...
  • kufaaa
  • kufaaa
  • 2017年01月20日 12:35
  • 3096

算法学习笔记--NP完全问题

算法学习笔记–NP完全问题什么是NP完全问题?简单来说就是非常难解的问题,无法找到一个快速解决的算法,如旅行商问题和集合覆盖问题。如何判断一个问题是NP问题?NP问题无处不在,如果能够判断一个问题是N...
  • u012925804
  • u012925804
  • 2017年05月06日 21:57
  • 246

卡普的21个NP完全问题-问题描述

卡普的21个NP完全问题的问题描述
  • w746805370
  • w746805370
  • 2016年05月04日 09:35
  • 3931

[总结]算法中的P问题、NP问题、NP完全问题和NP难问题

啊啊
  • databatman
  • databatman
  • 2015年10月21日 14:44
  • 9974
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NP完全问题
举报原因:
原因补充:

(最多只允许输入30个字)