NP-完全性理论总结

算法课介绍了NP-完全性理论的方面的知识,感觉还是比较难理解的,在这里做一个总结。

课程ppt的链接:http://download.csdn.net/detail/ljh0302/9701459

1、图灵机

了解NP-完全性理论之前必须首先了解什么是图灵机。

NP-完全性理论总结_第1张图片(图片来源于网络)

所谓的图灵机就是指一个抽象的机器,它有一条无限长的纸带,纸带分成了一个个的小方格,每个方格有不同的字符。有一个机器头在纸带上移动。机器头有一组内部状态,还有一些固定的程序。在每个时刻,机器头都要从当前纸带上读入一个字符,根据当前控制器的状态读入的字符,决定执行以下3个动作之一、之二或全部:

1)改变状态控制器中的状态

2)读写头在相应方格中写入一个符号

3)读写头左、右移一格或不动

确定图灵机DTM:每次执行的动作唯一

非确定性图灵机NTM:执行的动作是有穷多个可供选择

2、P、NP、NPC、NP-hard类问题

1)P类问题

多项式时间内可解的问题

存在一个确定型图灵机M和一个多项式p,对于该问题的任何(编码)长度为n的实例,M都能在p(n)步内,给出对该实例的回答。

2)NP类问题

存在一个非确定型图灵机M和一个多项式p,对于该问题的任何(编码)长度为n的实例,M都能在p(n)步内,给出对该实例的回答。

3)NPC类问题

对于一个(判定性)问题q,若
   (1)  q∈NP
   (2)  NP中任一问题均可多项式时间多一归约到q

则称问题q为NP-完全的(NP-complete,NPC)

4)NP-hard问题

若问题q仅满足条件(2)而不一定满足条件(1),则问题q称为NP-难的(NP-hard,NPH)。显然: NPC⊆NP-hard

5)P、NP、NPC、NP-hard之间的关系

NPC是NP中最难的问题,但是NP-hard至少与NPC一样难

NP-完全性理论总结_第2张图片

你可能感兴趣的:(算法,NP完全性)