算法概论8.9
来源:互联网 发布:java多线程 编辑:程序博客网 时间:2024/05/17 07:40
题目:在碰撞集(Hitting Set)问题中,给定一组集合{S1,S2,…,Sn}和预算b,我们希望求一个所有的Si相交且规模不超过b的集合H,当然,前提是这样的集合确实存在。换句话说,我们希望对所有的i满足H∩Si≠ϕ。
证明该问题是NP-完全的。
题目求解:
先证明碰撞集问题是一个NP问题
在求解该问题的时候,它需要验证集合H的大小是不是超过b,以及验证对所有的i满足H∩Si≠ϕ,所以它的时间复杂度是 O(n|H||S|), 也既碰撞集问题是一个NP问题。
然后再把顶点覆盖问题归约到碰撞集问题上
对于顶点覆盖问题,它属于一个NP问题,接下来就是需要我们把顶点覆盖的问题归约到碰撞集上,那么碰撞集就是一个NP完全问题。
在某个图G(V,E)中,顶点覆盖问题就是看能否找到不超过k个点的情况覆盖G的所有边的问题。这样我们可以构造一个G到碰撞集问题的映射。设在碰撞集中某个Si,可以用G中的某条边e=(u,v)来表示,再假设其预算b对应于顶点覆盖问题中的K。在顶点覆盖问题中,图G的任意一条边至少有一个点在覆盖集中,也即H∩Si≠ϕ,这也就说明这两个问题是一一对应的,覆盖集中最多的k个点和规模不超过b的集合H对应。至此也就完成了从顶点覆盖问题到碰撞集问题的规约,也即碰撞集是一个NP完全问题。
0 0
- 算法概论 - 8.9
- 算法概论8.9
- 《算法概论》 习题8.9
- 算法概论8.9解答
- 算法概论课后8.9
- 《算法概论》8.9
- 算法概论8.9
- 算法概论
- 算法概论
- 《算法概论》习题8.9 碰撞集
- 组合算法概论(1)
- 组合算法概论(2)
- 组合算法概论(3)
- 计算几何算法概论
- 计算几何算法概论
- 算法概论xmind
- 算法概论第一次作业
- 第一周:算法概论
- 接口回调
- 码农成长记——css ul li 中嵌套span
- ubuntu 16.04 启用root用户方法
- .net微信公众号开发之——服务器配置
- JSP: 一个装配工的没落
- 算法概论8.9
- UVa 700 - Date Bugs
- Android 5.0 的主题
- 使用bootstrap实现下拉框搜索功能
- 第一篇博客
- 深入理解java虚拟机 虚拟机内存划分
- NFS-连接虚拟机Linux和开发板
- BASE64
- 第五章-网络性能技术