NP问题
概要:NP问题集中研究 P?=NP。现在普遍认为P!=NP。
- P问题(polynomial):多项式时间内可以求出解的问题,polynomial中文意思是多项式。信息学竞赛出的问题都是P类问题,因为让你用指数级的时间来搜索答案的问题毫无意义。
- NP问题:在多项式时间内可以验证一个解是否正确的问题。这里假设有一台非确定性图灵机,什么是非确定性图灵机呢?通俗点说就是一台可以猜出一个问题的解的机器,并且这个解一定是正确的。(很神奇吧?怎么可能会有这种机器?确实没有,确实是人类幻想中的机器)。然后在确定性图灵机中进行验证这个解。确定性图灵机就是一台普通的机器。
大家从名字上看NP,会容易造成NP就是非P类问题,这是错误的!NP不是非P类问题!NP问题至少包含P类问题,即P⊂NP。因为一个可以在多项式时间内求出解的问题,必然能在多项式时间内验证解。现在有关NP类问题的研究就围绕NP是否是P的一个子集进行的,因为若P⊂NP&&NP⊂P,那么就有P=NP。一切的NP问题就能在多项式时间内求解了。
为了解释NP和P类问题的关系,我们可以先关注属于NP类问题的一个子集问题,它就是大名鼎鼎的NPC – NP完全问题了。
在提出NPC问题之前我们先来弄懂什么是约化这一重要的概念。 - 约化:一个问题A可以约化为问题B意思就是,可以用