往期文章:

  1. NPC简介

  2. NP-hard问题证明

  3. NPC 证明(一)

  4. NPC 证明(二)

本文介绍如何通过3SAT归约,进而证明支配集是NPC问题。

3SAT问题

→ \rightarrow → 3-Satisfiability (3Sat)

给定一个有穷的布尔变量集合 X = { x 1 , x 2 , … , x n } X=\lbrace x_1,x_2,\ldots,x_n \rbrace X={x1​,x2​,…,xn​},变量 x i x_i xi​取值为1或者0,另有一组子句 C = { c 1 , c 2 , … , c m } C=\lbrace c_1,c_2,\ldots,c_m \rbrace C={c1​,c2​,…,cm​}, C = c 1 ∧ c 2 ∧ … ∧ c m \mathbb{C}=c_1\wedge c_2 \wedge \ldots \wedge c_m C=c1​∧c2​∧…∧cm​, c i = x j ∨ x k ∨ x l c_i = x_j \vee x_k \vee x_l ci​=xj​∨xk​∨xl​。求是否存在一组取值使得 C \mathbf{C} C为真,即任意 c i c_i ci​为真。

Dominating Set(支配集)

→ \rightarrow → Dominating Set

给定图 G G G,正整数 k k k,是否存在dominating set的大小最多为 k k k。
Dominating Set D D D是点集 V V V的一个子集,并且对于不在 D D D中的点 v v v,至少存在一条边 ( u , v ) ∈ E (u,v)\in E (u,v)∈E, u ∈ D u\in D u∈D。

解题思路:

我们知道将支配集归约到3SAT进而证明3SAT是NPC是很容易的。CSCI5320的习题里,要进行相反方向的归约,将3SAT的问题转化成支配集的问题进行求解,相对来说比较难。

  1. 对于每个变量 x i x_i xi​,我们都构造两个点, x i x_i xi​和 x i ‾ \overline{x_i} xi​​,以及一条边 ( x i , x i ‾ ) (x_i,\overline{x_i}) (xi​,xi​​)
  2. 对于 c i c_i ci​当中的三个变量 x j ∨ x k ∨ x l x_j \vee x_k \vee x_l xj​∨xk​∨xl​,我们构造一个点 c i c_i ci​,三条边 ( x j , c i ) (x_j,c_i) (xj​,ci​), ( x k , c i ) (x_k,c_i) (xk​,ci​)和 ( x l , c i ) (x_l,c_i) (xl​,ci​)。如果布尔表达式取反,那么我们可以对应的连接 ( x j ‾ , c i ) (\overline{x_j},c_i) (xj​​,ci​)。
  3. 最关键的一步,我们如何确保 x i x_i xi​, x i ‾ \overline{x_i} xi​​恰好有且仅有一个点落在支配集里。我们增加一个点 y i y_i yi​,并且添加两条边 ( x i , y i ) (x_i,y_i) (xi​,yi​)与 ( x i ‾ , y i ) (\overline{x_i},y_i) (xi​​,yi​)。

那么我们可以知道 C \mathbb{C} C可满足当且仅当上述构造的图中有一个大小 m m m的支配集。

证明:

  1. 当 C \mathbb{C} C可满足时,显而易见,对应取真的变量构成一个支配集。
  2. 当上述构造的图中有一个大小为 m m m的支配集时,因为 ( x i , x i ‾ , y i ) (x_i,\overline{x_i},y_i) (xi​,xi​​,yi​)三个点当中最少有一个点在支配集当中,所以支配集的大小最小为 m m m。那么我们可以得到结论 ( x i , x i ‾ , y i ) (x_i,\overline{x_i},y_i) (xi​,xi​​,yi​)三个点恰好有且仅有一个点在支配集当中。当 y i y_i yi​在支配集当中时,我们总可以由 ( x i , x i ‾ ) (x_i,\overline{x_i}) (xi​,xi​​)当中的一个点来替换。那么由此便可得到一个令 C \mathbb{C} C可满足的取值。

通过3SAT证明支配集是NPC问题相关推荐

  1. (三)独立集、支配集及匹配——图论笔记系列

    3,独立集,支配集与匹配 3.1,独立集 定义:设G=<V,E>是简单图无向图,S ⊆ \subseteq ⊆V,S ≠ ∅ \neq\varnothing ​=∅,若S中任何两个顶点都 ...

  2. 树的最小支配集、最小点覆盖、最大独立集【模板】

    最小支配集:指从所有顶点中取尽量少的点组成一个集合,使得剩下的所有点都与取出来的点有边相连.顶点个数最小的支配集被称为最小支配集.这里用贪心法来求. 1.以1号点深度优先搜索整棵树,求出每个点在DFS ...

  3. 独立集,覆盖集,支配集,最大团,最大匹配

    独立集: 独立集是指图的顶点集的一个子集,该子集的导出子图不含边.如果一个独立集不是任何一个独立集的子集, 那么称这个独立集是一个极大独立集.一个图中包含顶点数目最多的独立集称为最大独立集.最大独立集 ...

  4. 牛客假日团队赛8:H.Cell Phone Network(最小支配集)

    链接:https://ac.nowcoder.com/acm/contest/1069/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6553 ...

  5. 树形DP求树的最小支配集,最小点覆盖,最大独立集

    转自:https://www.cnblogs.com/Ash-ly/p/5783877.html 一:最小支配集 考虑最小支配集,每个点有两种状态,即属于支配集合或者不属于支配集合,其中不属于支配集合 ...

  6. *【POJ - 3659】Cell Phone Network (树形dp,最小支配集)

    题干: Farmer John has decided to give each of his cows a cell phone in hopes to encourage their social ...

  7. [UVA-1218] Perfect Service(树的最小支配集)

    题目链接:https://vjudge.net/problem/UVA-1218 题目大意:给你一棵无向树,让你求树的最小支配集,但是有一个要求是除最小支配集外剩下的任何一个结点不能同时连接支配集中的 ...

  8. 证明碰撞集(HITTING SET)问题是NP完全问题

    问题描述: 给定一组集合{S1,S2,S3,-,Sn}和预算b,求一个集合H,其中H和所有Si相交且H的规模不超过b.求证该问题是NP完全问题 证明: (1)先证该问题是一个NP问题. 假设给出集合H ...

  9. 贪心法求树的最小支配集,最小点覆盖,最大独立集

    原文地址(转自 Ashly的博客) 定义: 最小支配集:对于图G = (V, E) 来说,最小支配集指的是从 V 中取尽量少的点组成一个集合, 使得 V 中剩余的点都与取出来的点有边相连.也就是说,设 ...

最新文章

  1. 技术图文:位运算技术在求解算法题中的应用
  2. Openssl rand命令
  3. Android NDK环境搭建
  4. WhatsApp CEO向FreeBSD捐赠一百万美金
  5. linux检测u盘容量,Ubuntu18.04使用f3probe检测U盘实际容量
  6. 前端学习(3199):jsx小练习
  7. 简明Python教程学习笔记_1_基本
  8. 澄清谣言!微盟创始人回应员工删库:涉事者深陷网贷,有过轻生
  9. kafka消费者脚本无法启动问题
  10. 数据运营小白如何搭建“初期用户生命周期体系”?
  11. python源码剖析笔记
  12. 基于SSM框架的考勤签到请假系统
  13. 10-TensorFlow 基于LeNet的轴承故障诊断
  14. 基于SSM的应急指挥系统
  15. mysql查询各科成绩前三名_mysql巧用连表查询各科成绩前三名
  16. 构造地质学类毕业论文文献包含哪些?
  17. 3.30团体天梯赛后个人感想
  18. 最强旗舰手机功能曝光:大变活人、智能静音、拍照测肤……
  19. html箭头相关符号
  20. 鸿蒙渊主线任务,天下3易信公众平台

热门文章

  1. 在Word2003中打开Word2007文档的方法及教程下载
  2. ios可视化编程 UI高级 UI_13
  3. 小写转大写输出,并统计数字、大写字母、小写字母的个数
  4. “由于文件许可权错误,word无法完成保存操作”的解决办法
  5. 打印机服务器属性添加哪个文件,如何设置打印机服务器属性如何找到打印机服务器属性...
  6. 特斯拉召回43万辆国产车/ 苹果头显最早明年发布/ 网易将在暴雪游戏停运后退款… 今日更多新鲜事在此...
  7. EndNote: layout can not be formatted because it is no longer open
  8. 电脑数据怎么迁移?6种旧电脑数据传输到新电脑方法分享
  9. 计算机网络提供给用户的常见服务有文件服务,【填空题】计算机网络提供给用户的常见服务主要有文件服务、消息传递服务、__________服务和应用服务。...
  10. 你好!Docker【概念+源码+保姆式教程】