《算法概论》P266 8.9

首先证明hitting set(我暂且翻译为击中集)是一个NP问题。给定该问题的一个实例,包括一组集合{S1,S2,...,Sn},大小限制b,再给定问题的一个可能解H,我们可以在多项式时间内判断以下命题的真假:1.H中元素的数量不超过b;2.{S1,S2,...Sn}中每一个集合都至少有一个元素出现在H中。H是击中集问题的解当且仅当上面的命题均为真。也就是说,击中集问题能在多项式时间内验证解的正确性,所以它是NP问题。

然后,证明顶点覆盖问题(vertex cover)可以归约到击中集问题。设顶点覆盖问题的输入是 (G,g),其中G=(V,E)是一个图,V是顶点集合,E是边集,g是要求的顶点覆盖的大小。证明如下:

  1. (G,g)可以在多项式时间内转化成击中集问题的输入,方法如下:对G中的每一条边ei构造一个集合Si,Si中的元素为ei连接的两个顶点,击中集的budget为g。
  2. 如果击中集问题有解,即存在H与每个集合相交都不为空集,那么每个集合Si中至少有一个元素在H中。H、Si中的元素均对应G中的顶点,显然每条边ei连接的两个顶点中至少有一个在H中,H是G的顶点覆盖。而且H的大小不超过budget,budget为g,所以G一定有大小为g的顶点覆盖,即顶点覆盖问题有解。
  3. 如果顶点覆盖问题有解,即存在大小为g的顶点集合VC,每条边的两个顶点至少有一个在VC中。因为每条边ei对应一个集合Si,那么每个集合中至少有一个元素在VC中,并且VC的大小不超过budget,所以VC是击中集问题的解。
  4. 如果击中集有解,该解可以在多项式时间内转换成顶点覆盖问题的解。实际上,由于每个集合Si中的元素都为顶点,击中集的解直接就是顶点覆盖问题的解。

至此,我们证明了顶点覆盖问题可以归约到击中集问题。顶点覆盖问题已被证明是NP完全问题,即任一个NP问题都能归约到顶点覆盖问题,根据归约的传递性,任意NP问题可以归约到击中集问题。又因为击中集问题是NP问题,所以击中集问题是NP完全问题。

转载于:https://my.oschina.net/cofama/blog/1093922

证明:hitting set是NP完全问题相关推荐

  1. 【计算理论】计算复杂性 ( 无向图独立集问题 | 独立集问题是 NP 完全问题证明思路 | 证明独立集问题是 NP 完全问题 )

    文章目录 一.独立集问题 二.独立集问题是 NP 完全问题证明思路 二.证明独立集问题是 NP 完全问题 一.独立集问题 无向图的独立集 , 指的是在无向图中找到点集的子集 , 使得它们两两之间 , ...

  2. 【计算理论】计算复杂性 ( 证明团问题是 NP 完全问题 )

    文章目录 一.团问题是 NP 完全问题 证明思路 二.证明团问题是 NP 完全问题 一.团问题是 NP 完全问题 证明思路 证明一个命题是 NP\rm NPNP 完全问题 : ① 证明是 NP\rm ...

  3. 证明HITTING SET 是NP完全

    In the HITTING SET problem, we are given a family of sets {S1, S2, - , Sn} and a budget b, and we wi ...

  4. 8.3 证明STINGY SAT是NP完全问题

    题目 STINGY SAT is the following problem: given a set of clauses(each a disjunction of literals) and a ...

  5. 【计算理论】计算复杂性 ( NP 完全问题 - 布尔可满足性问题 ★ | 布尔可满足性问题是 NP 完全问题证明思路 ) ★

    文章目录 一.NP 完全问题 - 布尔可满足性问题 ★ 二.布尔可满足性问题是 NP 完全问题证明思路 一.NP 完全问题 - 布尔可满足性问题 ★ 布尔可满足性问题 ( Boolean Satisf ...

  6. 证明碰撞集(HITTING SET)问题是NP完全问题

    问题描述: 给定一组集合{S1,S2,S3,-,Sn}和预算b,求一个集合H,其中H和所有Si相交且H的规模不超过b.求证该问题是NP完全问题 证明: (1)先证该问题是一个NP问题. 假设给出集合H ...

  7. NP完全问题的归约-碰撞集(HITTING SET)

    原题: 在碰撞集(HITTING SET)问题中,给定一组集合{S1, S2, S3, -, Sn}和预算b,我们希望求一个与所有Si相交且规模不超过b的集合H(H与所有Si相交不为空). 证明: ( ...

  8. 【计算理论】计算复杂性 ( 3-SAT 是 NP 完全问题 | 团问题是 NP 完全问题 | 团问题是 NP 完全问题证明思路 )

    文章目录 一.3-SAT 是 NP 完全问题 二.团问题是 NP 完全问题 三.团问题是 NP 完全问题 证明思路 一.3-SAT 是 NP 完全问题 布尔可满足性问题 ( Boolean Satis ...

  9. 算法4类问题:P问题、NP问题、NP完全问题、NP难问题

    在讲P类问题之前先介绍两个个概念:多项式,时间复杂度. 1.多项式:axn-bxn-1+c 称为x最高次为n的多项式 2.时间复杂度 时间复杂度表示所需的计算工作量,当输入值接近无穷时,算法所需工作量 ...

最新文章

  1. mpvue 小程序如何开启下拉刷新,上拉加载?
  2. 河南民办计算机大学排名,2020年河南最好的民办大学最新排名
  3. service获取selinux权限_Spring Boot 整合 Spring Security 示例实现前后分离权限注解 + JWT 登录认证...
  4. Python网络编程(2)-粘包现象及socketserver模块实现TCP并发
  5. 嗯嗯------摘抄
  6. php laypage,ThinkPHP5、内容管理系统、前端框架layui、layPage模块
  7. 建模实训报告总结_计算机三维建模实训报告
  8. python适合做网站吗_python做网站吗
  9. 用ybc_box做小程序
  10. layui搭建管理后台系统
  11. 基金从业考试各科目难度特点?
  12. mathcad入门二
  13. Mysql怎么把8位数变成日期,SQL中如何将数字型转换为日期型
  14. 实现HTML页面在手机浏览器上全屏的方式
  15. 四路服务器性能是两路的两倍,又双叒叕第一! 戴尔
  16. ZZULIOJ 2131 Can Win【思维建图+最大流】
  17. 滑动窗口算法通用思想
  18. 老师给的硬核移动端测试面试题目,大家看看靠谱吗
  19. RabbitMq详解之AMQP协议
  20. Python如何对元组列表排序,探索sort用法。

热门文章

  1. 第四章USB数据流模型
  2. 安卓怎么实现计算纪念日
  3. springCloud 授权服务器
  4. P2178 [NOI2015] 品酒大会(并查集+后缀数组)
  5. web爬虫之登录google paly 商店
  6. 正负筛选(neo正向+HSV-tk负向)原理
  7. Bazel 与 gtest:构建一个最简单的测试驱动开发环境
  8. JAVA8新特性的StreamAPI 遇到的问题stream has already been operated upon or closed
  9. ubuntu下vscode配置C++项目编译调试(json文件),以高翔octomap教程为例,顺便解决vscode无法设置断点问题.
  10. 从外包测试到阿里巴巴,一位三本女生逆袭之路