资源描述
NP问题 Non-deterministic(非确定性)Polynomial(多项式) NP:非确定性多项式问题 P:多项式级 O(1),O(log(n),O(na) NPC:非确定性多项式问题中 为P问题可能性最小的 或许可以被计算机在多项式时间内 解决或验证的问题。 NPC问题目前没有多项式的有效算法,只能用指数级甚至阶乘级复杂度的搜索。 人们想表达一个问题不存在多项式的高效 算法时应该说它“属于NPC问题” 多项式问题未必都高效 减小时间复杂度 时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当问题规模扩大后,程序需要的时间长度增长得有多快。 NP=P? While. 目前为止,没有人能够发现一个NP完全问题的多项式时间算法,所以NP!=P。 IF NP=P 常见的NPComplete问题: (NPC问题特点:结果易证,难以计算) 哈密顿回路图 sum=t 子集和问题 反馈顶点集问题 NPC问题的证明方法 约化法(Reducibility):将一个已知的NPC问题转化为和它类似的问题,用它的算法来解决问题。 对正确结果进行验证,证明为NP问题。 利用约化,将问题转化为已知的问题。 第一个NPC问题来自逻辑电路问题。 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就是可满足的。可满足性问题就是判定一个给定的合取范式的布尔公式是否是可满足的 定义
展开阅读全文