1.P类问题:如果一个问题可以找到一个能在多项式的时间里解决它的算法。
2.NP问题:指可以在多项式的时间里验证一个解的问题。The halting Problem是NP问题,所有的P类问题都是NP问题。

3.NPC问题:(1)它是一个NP问题;(2)所有的NP问题都能归约到它(例:逻辑电路问题);既然所有的NP问题都能归约成NPC问题,那么只要任意一个NPC问题找到了一个多项式的算法,那么所有的NP问题都能用这个算法解决了,NP也就等于P了。因此,说:“正是NPC问题的存在,使人们相信P不等于NP。”NPC问题目前没有多项式的有效算法,只能用指数级或阶乘级复杂度的搜索。

4.NP-Hard问题:所有的NP问题都能归约到它,但它不一定是一个NP问题。

5.逻辑电路问题:给定一个逻辑电路,问是否存在一种输入使输出为TRUE。证明它是NPC问题:(1)它属于NP问题。(2)任意一个NP问题的输入和输出都可以转换成逻辑电路的输入和输出(证明过程很复杂)。

6.哈密顿回路,TSP问题都是NPC问题。

7.证明某种语言L是NPC的一种方法:

1)证明L属于NP

2)选取一个已知的NP完全语言L1

3)描述一种算法来计算一个函数f,它把L1中的每个实例x属于{0,1}*都映射成为L中的一个实例f(x)

4)证明对所有x属于{0,1}*,函数f满足x属于L1当且仅当f(x)属于L

5)证明计算函数f的算法具有多项式运行时间。

posted on 2011-01-17 13:54  pandy  阅读(338)  评论(0编辑  收藏  举报