算法概论8.9

算法概论8.9

题目要求:在碰撞集(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完全问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值