第1章 算法概论(4np完全性理论)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
§1.3 NP 完全性理论
如何理解问题的难解?易解?多项式运行时间?
⏹多项式的运行时间认为是易解算法,当然,你认为θ(n100)难解,但次数如此高的多项式时间问题非常少,且一般都会找到一个更有效的多项式时间算法。
⏹对很多合理计算模型来说,在一个模型上用多项式时间可解的问题,在另一个模型上也可以用多项式时间获得解决。
2
如何理解问题的难解?易解?多项式运行时间?
多项式时间可解问题类具有很好的封闭性。
比如一个多项式时间算法输出给另一个多项式时间算法作为输入,或被另一个多项式时间算法作为子程序常数次调用,这样的组合算法运行时间也都是多项式的。
3
⏹一般来说,将可由多项式时间算法求解的问题看成易处理的问题,而把需要超多项式时间才能解决的问题看作难处理问题。
⏹“NP完全”(NP-Complete)问题,它的状态是未知的,迄今为止,既没有人找出求解NP完全问题的多项式算法,也没人能够证明对这类问题不存在多项式时间算法。
⏹P≠NP问题,自1971年提出以后,已经成为理论计算机科学研究领域中,最深奥和最错综复杂的开放问题之一了。
4
5
⏹
从表面上看,有些NP 完全问题有着与多项式时间算法的问题非常相似的特点,这很诱惑。
⏹最短与最长简单路径:有向图G=(V,E),单源最短路径可在O(|V|2)时间内完成,但寻找两个顶点间最长简单路径(无重复顶点)问题是NP 完全的。
⏹欧拉游程和哈密顿回路:有向图G=(V,E),欧拉游程指一个回路,遍历途中每条边一次,但可能不止一次的访问同一个顶点,这可在O(|E|)时间内找到。
哈密顿回路也是一个回路,包含V 中每个顶点。
确定有向图是否存在哈密顿回路的问题是NP 完全的。
探讨这样三类问题:P、NP、NPC(NP 完全问题)
⏹NPC类,称NP完全的(NP-complete),属于NP的一个
最难的子类。
如果一个问题属于NP,且与NP中任何问题一样“难的”。
⏹有宣称:如果任何NPC问题可以在多项式时间内解
决,则NP中所有问题都有一个多项式时间的算法,即有P=NP了。
⏹大多数认为,NP完全问题是难处理的,因为迄今为止
研究过的NP完全问题非常多,但还没有人将其中任何问题在多项式时间内解决。
不能证明!也无法排除!
9
10⏹NP 完全问题产生于不同领域:布尔逻辑、图论、算术、网络设计、集合与划分、存储与检索、排序与调度、代数与数论、游戏与趣味难题、自动机与语言理论、程序优化、生物学、化学、物理学……等等。
⏹第一个NP 完全问题:布尔表达式的可满足性问题。
即Cook 定理:给定一个由与、或和非门构成的布尔组合电路,判断它是可满足电路吗?
布尔表达式的可满足性问题SAT 是NP 完全的。
基于SAT ,逐渐地生成一棵以SAT 为树根的NP 完全问题树,其中每个节点代表一个NP 完全问题,该问题可在多项式时间内变换为其任意子节点表示的问题。
目前,这颗树已有几千个节点,且在继续生长。
典型的NP 完全问题:
典型的NP完全问题:
⏹团问题:NP完全的团是无向图G=(V,E)的一个完全
子图,团的规模为其顶点数。
判定:图中是否存在一个给定规模为k的团是NP完全的。
⏹顶点覆盖问题:NP完全的G的顶点覆盖是覆盖E中
所有边的顶点组成的集合,顶点覆盖规模即指它包含的顶点数。
判定:图中是否存在给定规模为k的顶点覆盖,或确定具有最小规模的顶点覆盖都是NP完全的。
⏹哈密顿回路问题:NP完全的图G中一条包含V中每
个顶点一次(除首尾顶点是重复了两次)的一条回路。
判定:图G是否存在哈密顿回路是NP完全的。
11
12
⏹旅行商问题:NP 完全的⏹0-1整数规划问题:NP 完全的⏹0-1背包问题:NP 完全的⏹图的k 着色问题:NP 完全的⏹最长简单回路问题:NP 完全的⏹图的独立集问题:NP 完全的⏹子图同构问题:NP 完全的⏹子集和问题:NP 完全的⏹集合划分问题:NP 完全的⏹带收益和完工期限的调度问题:NP 完全的⏹……(已证明的NP 完全问题已有上千个之多了)典型的NP 完全问题:
典型的
NP完全问题:
13。