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

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

证明:
(1)hitting set问题是NP问题
只需要验证H的大小是否不超过b,以及验证H与Si的交不为空。
时间复杂度O(nHS)。
所以,hitting set问题为NP问题。
(2)所有问题可以归约到Hitting set问题
课本(《算法概论》)中已经证明,所有问题都可以归约到vertex cover问题。
所以,此处只要证明vertex cover问题可以归约到hitting set问题,则所有问题可以归约到hitting set问题。
以下证明vertex cover问题可以归约到hitting set问题。

  • 构建一个图G到hitting set的映射:G中的每个点对应hitting set中的每个元素,每条边对应一个Si
  • b个点的vertex cover对应大小为b的hitting set:对于G中每一条边,至少有一个端点在b个点的vertex cover集合中,所以这个集合与Si的交集不为空,即此集合对应hitting set
  • 大小为b的hitting set对应b个点的vertex cover:任意的Si与hitting set相交不为空,则每条边至少有一个端点被选中,即hitting set集合对应vertex cover

综上所述,vertex cover可以归约到hitting set问题。所以,hitting set问题是NP完全问题。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值