证明支配集问题是NP完全问题

原题如下:

在一个无向图G=(V,E)中,对于D包含于V,如果对于每一个节点v,v要么在D中,要么在邻接于D中至少一个点,我们就称D为支配集。在支配集问题中,输入为一个图G以及一个预算b,我们的目标是在图G中找到一个大小最多为b的支配集,假设支配集存在的情况下。证明这个问题是NP完全问题。

证明如下:

我们可以将顶点覆盖问题归约到支配集问题。我们可以先对图G做一个预处理:

对于每条边uv,添加一个辅助顶点w,以及两条边 uw,vw,这样得到一个新图G0。接下来,我们将证明如下结论:若原图G中存在不大于b的顶点覆盖,这个顶点覆盖也是新图G0的一个支配集;反之,若新图G0中存在一个不大于b的支配集,那么对于这个支配集进行一些处理后也能得到一个图G的不大于b的顶点覆盖。

若原图G中存在不大于b的顶点覆盖,这个顶点覆盖也是新图G0的一个支配集:

如果图G有不大于b的顶点覆盖S,对于G0中的每个顶点v,要么属于S,要么v与S中的某个顶点相邻。然后假设此结论不成立,即存在v属于V,且v不属于S且V不与S中的任意一顶点相邻。因为图G0是连通的,所以一定存在边uv,且u不属于S。S是G的顶点覆盖,所以uv不属于E,就是说uv是一条新添加的辅助边。若v为非辅助顶点,由于v的所有非辅助边均被S所覆盖,所以v一定与S中的某个顶点相邻,与假设矛盾;若v为辅助顶点,假设v对应的非辅助边为uw,由于uw被S所覆盖,且u不属于S,所以w属于S,所以存在边vw使得v与S中的某个顶点相邻,与假设矛盾。所以这一部分得证。

若新图G0中存在一个不大于b的支配集,那么对于这个支配集进行一些处理后也能得到一个图G的不大于b的顶点覆盖:

我们可以进行如下的处理:设G0中有大小不大于b的支配集D,对于每条边uv以及相应的辅助顶点w,若w不属于D,则不做任何处理,因为此时uv至少有一个顶点属于D,否则w,u,v都不属于D,则w不与D中任一元素相邻,与D是支配集的结论矛盾;若w属于D并且u,v不属于D,那么可以在D中将w替换为u或v,若w属于D并且u属于D或者v属于D,则直接将w从D中删掉即可。所以第二个结论也是成立的。

我们已经知道顶点覆盖问题为NP完全问题,所以支配集问题也是NP完全问题。

  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值