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