算法:一个NP问题的证明(课后习题)
来源:互联网 发布:阿里巴巴自创数据库 编辑:程序博客网 时间:2024/05/22 17:31
问题描述:
课后习题8.10:利用推广的方法证明NP-完全性。对以下每个问题请通过证明它是本章某个NP-完全问题的推广说明它是NP-完全
的。
(a)子图同构:给定两个作为输入的无向图G和H,判断G是否为H的一个子图(即删除H中的某些顶点或边后,所得的新图最多只
需再修改某些顶点的名称,即可与G相同),且如果是,返回由V(G)到V(H)相关映射。
(b)最长路径:给定图G和整数g,求G中一条长为g的简单路径。
(c)最大SAT:给定一个CNF公式和整数g,求满足其中至少g个子句的真赋值。
(d)稠密子图:给定一个图和两个整数a和b,求G中的a个顶点,使得它们之间最少有b条边。
(e)稀疏子图:给定一个图和两个整数a和b,求G中的a个顶点,使得它们之间最多有b条边。
(f )集合覆盖。(该问题衍生了两个著名的NP-完全问题。)
(g)可靠网络:给定两个nxn的矩阵,一个距离矩阵dij,一个连接需求矩阵rij以及预算b。我们要求一个图G=({1,2,......,n},E)
使得:
(1)其中所有边的总代价不超过b;
(2)在任意两个不同的顶点i和j之间,存在rij条顶点互不相交的路径。
(提示:假设所有dij都为1和2,b=n,所有的rij=2。这属于哪个著名的NP-完全问题?)
证明:
(a)令图G 为一个环,环上的顶点数等于图H 的顶点数。那么若G 是H 的同构子图,则说明H 存在Rudrata 回路(经过图中每个顶
点有且仅有一次的回路)。所以可以判断Rudrata回路事实上是子图同构问题的一个特例。所以子图同构是Rudrata回路的推
广。
(b)如果令g = V −1,即得到一条Rudrata 路径(经过图中每个顶点有且仅有一次的回路)。所以Rudrata路径可以看做是该问题的
一个特例。
(c)令 g 为子句的总数,即成SAT问题,所以最大SAT为SAT问题的一个推广。
(d)令b=a(a-1)/2,此时这a 个顶点两两相连,于是即成最大团问题(图中的每个顶点间均有边相连)。
(e)令b = 0,即成最大独立集问题(一个顶点集合中的任意两个顶点间均没有边相连)。(f) 最小顶点覆盖:每条边所依赖的两个顶点至少有一个在集合中,最小说的是满足前面条件的顶点的集合包含的顶点数最小。
最小顶点覆盖问题可以看做是将集合覆盖中的集合当做一个点,所以该问题可以看成是最小顶点覆盖问题的推广。
(g)提示中所描述的特例:假设所有dij都为1和2,b=n,所有的rij=2,是一个旅行商问题(TSP)。
(TSP:给定n个顶点和它们之间两两的距离值,以及预算b,需要确定一条旅行路线,该路线是经过每个顶点一次的环,且总
的费用不超过b。)
- 算法:一个NP问题的证明(课后习题)
- NP完全问题的证明-算法概论课后习题8.15
- 算法概论习题:8.14NP-完全问题的证明
- 《算法概论》课后习题8.8 证明4SAT是NP完全的
- NP完全问题习题证明
- NP完全问题 课后习题
- 算法概论习题 8.22 NP-完全问题证明
- 算法概论第八章 NP完全问题 习题证明
- 【算法概论习题解答】8.8证明精确的4SAT是NP-完全问题
- 算法概论习题8.8——证明精确的4SAT是NP-完全问题
- 算法概论习题8.8 证明精确的4SAT问题是NP完全问题
- [算法作业] Chapter 8 NP-complete problems 课后习题部分证明
- 证明NP问题(算法概论8.8)
- 【NP-完全问题】课后习题8.3
- 【算法证明】NP完全性问题证明
- 算法概论 课后习题 8.3 证明
- NP课后习题8.3
- 【算法概论习题解答】8.3证明吝啬SAT问题是NP-完全问题
- centos6.5安装spark2
- 【C#】值类型和引用类型
- MySQL5 学习笔记--数据记录基本操作
- Redis的补充---持久化和主从复制
- jquery入门2
- 算法:一个NP问题的证明(课后习题)
- fork()一道题
- zoj 1022 Parallel Expectations
- queue
- 快速挂载iso文件到虚拟机系统
- 炒股新理论——短线滚动操作波段股
- [LeetCode] 209. Minimum Size Subarray Sum
- 局域网的文件共享设置方式
- leetcode77. Combinations