NP算法简单介绍.pptx
NPNP:非确定性多项式问题:非确定性多项式问题 P P:多项式级:多项式级 O(1),O(log(n),O(na)O(1),O(log(n),O(na)NPCNPC:非确定性多项式问题中非确定性多项式问题中 为为P P问题可能性最小的问题可能性最小的 或许可以被计算机在多项式时间内或许可以被计算机在多项式时间内解决或验证的问题。解决或验证的问题。第1页/共8页 NPCNPC问题目前没有多项式的有效算法,只能问题目前没有多项式的有效算法,只能用指数级甚至阶乘级复杂度的搜索。用指数级甚至阶乘级复杂度的搜索。人们想表达一个问题不存在多项式的高效人们想表达一个问题不存在多项式的高效 算法时应该说它算法时应该说它“属于属于NPCNPC问题问题”多项式多项式问题未必问题未必都都高效高效第2页/共8页减小时间复杂度时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当问题规模扩大后,程序需要的时间长度增长得有多快。NP=P?While.While.目前为止,没有人能够发现一个NP完全问题的多项式时间算法,所以NP!=P。IF IF NP=P第3页/共8页常见的常见的NPComplete问题:问题:(NPCNPC问题特点:结果易证,难以计算)问题特点:结果易证,难以计算)哈密顿回路图sum=t子集和问题反馈顶点集问题第4页/共8页NPC问题的问题的证明方法证明方法约化法(Reducibility):将一个已知的NPC问题转化为和它类似的问题,用它的算法来解决问题。对正确结果进行验证,证明为NP问题。利用约化,将问题转化为已知的问题。第一个NPC问题来自逻辑电路问题。第5页/共8页SAT问题问题已知的NP-complete问题多达几百个,但作为这些问题的“祖先”,历史上第一个被证明的NP-complete问题是来自于布尔逻辑的可满足性问题(SATISFIABLITY problem),简称为SAT由SAT问题规约到的3SAT问题,可以证明许多NPC问题的完全性。布尔公式 A=(NOT x)AND y)OR(x AND(NOT z)当 x=false,y=true z=false时,该布尔表达式值为true,则表达式 A就是可满足的。可满足性问题就是判定一个给定的合取范式的布尔公式是否是可满足的第6页/共8页定义定义第7页/共8页感谢您的观看!第8页/共8页