《算法概论》8.9

题目:

8.9 In the HITTING SET problem, we are given a family of sets {S1,S2,...,Sn} , and a budget b , and we wish to find a set H of size b which intersects every Si , if such an H exists, In other words, we want HSi for all i .
Show that HITTING SET is NP-complete.

解答:

击中集(Hitting Set)问题是指给定一组集合 {S1,S2,...,Sn}和一个预算 b ,希望找到一个集合H满足 H 与所有的Si相交(存在公共元素)且 H 的大小不超过预算b,如果存在这样的集合 H ,用数学公式表示就是 HSi
顶点覆盖(Vertex Cover)问题是指给定图G(V, E)和预算k,希望从V中找到一个大小不超过k的顶点集合A,能够覆盖所有的边(每一条边至少有一个顶点属于A)。
顶点覆盖问题是NP完全的,现在将顶点覆盖问题规约到击中集问题。
对于G的每一条边 e=(u,v) ,令 Si={u,v} ,则得到一组集合 {S1,S2,...,S|E|} ,每一个集合 Si 对应G的一条边,集合的元素为对应边的两个顶点。让预算 b=k ,因为顶点覆盖问题中要求所有的边都被覆盖到,即每一条边至少有一个顶点属于覆盖集A中,这意味着覆盖集A与所有的 Si 都相交,而击中集问题中 HSi ,即A与H是等价的;覆盖集A最多k个点对应击中集H最多有b个元素,因此实现了顶点覆盖问题到击中集问题的归约,所以击中集问题是NP完全问题,证毕。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值