支配集(dominating set)问题是NP完全问题的一个证明

支配集问题

算法概论习题8.20
  在一个无向图G=(V, E)中,我们称V的一个子集D为一个占优集,是指每个(v属于V)都属于D或与D中一个节点为邻。在占优集问题中,输入为一个图和预算b,目标是求图的一个规模不超过b的占优集——如果该集存在。证明该问题是NP-完全的。
  注: 占优集即为支配集,是dominating set的另一种译法.
  


证明
  我们不妨只考虑连通图,对于非连通图,可对每个连通块分别进行处理。

  我们使用归约进行证明
  点覆盖问题–>支配集问题
  点覆盖问题: 在一个无向图G=(V, E)中,我们称V的一个子集D为一个点覆盖,是指每条边(e属于E)其中的一个端点都属于D。在点覆盖问题中,输入为一个图和预算b,目标是求图的一个规模不超过b的点覆盖。
   
  对于一个点覆盖问题,给定G和b,我们可以构造一个无向图H,H是原本的图G加上,G上每条边(u,v),构造一个点x并连接(x,u)和(x,v). 我们可以将求点覆盖(G, b)转化为求支配集(H, b)。
  
  推论1:每一个G中的最小点覆盖S对应一个H中的最小支配集。
  因为S与所有E中的边相邻,所以S包含所有的G中的节点或与之相邻。对于新增的节点x,其派生自边(u,v),所以x也与S中的点相邻。所以S构成一个H的支配集。
  
  推论2:每一个H中的最小支配集S对应一个G中的最小点覆盖。
  对于每个H中新增的点x,若x属于S,则与x相邻的两点u, v必然不同时属于S,否则S不是最小的。因此,可以将x替换为u,v中不属于S的点,得到S’,显然S’仍是一个最小支配集。因此我们只考虑所有点都属于G的S。
  对这样的一个S,所有H中新增的x与S中的点相邻。所以所有的边(u,v)与S中的点相邻,即G中所有的边与S中的点相邻。所以S是G中的一个最小点覆盖。
  
  因此,如果需要求点覆盖(G, b),则构造H,求支配集(H, b),其结果S中的点按照推论2中的方法全部转换成G中的点,得到S’,则S’即为所求。若支配集(H, b)无解,则点覆盖(G, b)无解。
  因此,若支配集问题不是NP-完全问题,则点覆盖问题不是NP-完全问题。已知点覆盖问题是NP-完全的,所以支配集问题也是NP-完全的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值