文章目录

  • 一、独立集问题
  • 二、独立集问题是 NP 完全问题证明思路
  • 二、证明独立集问题是 NP 完全问题

一、独立集问题


无向图的独立集 , 指的是在无向图中找到点集的子集 , 使得它们两两之间 , 没有边相连 ;

下图中的无向图中 , 黄色的点集是独立集 ;

独立集问题也是一个 NP\rm NPNP 完全问题 ;

二、独立集问题是 NP 完全问题证明思路


证明一个命题是 NP\rm NPNP 完全问题 :

① 证明是 NP\rm NPNP 问题 : 首先证明该问题是 NP\rm NPNP 问题 ;

② 证明是最难的 NP\rm NPNP 问题 : 然后证明所有的 NP\rm NPNP 问题 , 可以在多项式时间内规约到 该命题中 ; 也可以使用一个已经证明的 NP\rm NPNP 完全问题 , 在多项式时间内规约到 需要被证明的命题 ;

证明 独立集题 是 NP\rm NPNP 完全的 , 从已知的 NP\rm NPNP 完全问题出发 , 已知的 NP\rm NPNP 完全问题就是 3-SAT 问题 ,

如果 3-SAT 问题是 NP\rm NPNP 完全的话 ,

只要证明 3-SAT 问题 可以在 多项式时间内规约 到 独立集问题 中 , 3-SAT ≤\leq≤ 独立集问题 ,

就可以证明 独立集问题 是 NP\rm NPNP 完全问题 ;

将 3-SAT 问题 可以在 多项式时间内规约 到 独立集问题 中 ,

给定一个 3-SAT 问题 的 布尔逻辑公式 ,

ϕ=(x∨y∨¬z)∧(¬x∨¬y∨z)∧(¬x∨y∨¬z)\rm \phi = ( x \lor y \lor \lnot z) \land ( \lnot x \lor \lnot y \lor z ) \land ( \lnot x \lor y \lor \lnot z)ϕ=(x∨y∨¬z)∧(¬x∨¬y∨z)∧(¬x∨y∨¬z)

构造一个 无向图 ,

使得 布尔逻辑公式 是可满足的 , 当且仅当 , 无向图中有一个 k\rm kk 独立集 ;

k\rm kk 独立集就是无向图中 k\rm kk 个节点子集 , 每两个节点之间都没有边相连 ;

证明过程 : 从 给定的 3-SAT 布尔逻辑公式 ϕ=(x∨y∨¬z)∧(¬x∨¬y∨z)∧(¬x∨y∨¬z)\rm \phi = ( x \lor y \lor \lnot z) \land ( \lnot x \lor \lnot y \lor z ) \land ( \lnot x \lor y \lor \lnot z)ϕ=(x∨y∨¬z)∧(¬x∨¬y∨z)∧(¬x∨y∨¬z) 中 , 构造出一个无向图 出来 , 使得该无向图可以满足 " 布尔逻辑公式 是可满足的 , 当且仅当 , 无向图中有一个 k\rm kk 独立集 "

二、证明独立集问题是 NP 完全问题


任意给出一个 333 合取范式 ,

ϕ=(x∨y∨¬z)∧(¬x∨¬y∨z)∧(¬x∨y∨¬z)\rm \phi = ( x \lor y \lor \lnot z) \land ( \lnot x \lor \lnot y \lor z ) \land ( \lnot x \lor y \lor \lnot z)ϕ=(x∨y∨¬z)∧(¬x∨¬y∨z)∧(¬x∨y∨¬z)

将上述公式转为无向图 : 合取范式每个子项 , 转换为三元组 , 如下图所示 ;

无向图构造原则 : 互为否定的点集 , 连接在一起 ,

没有边相连 : 下图中 x,¬y,¬z\rm x , \lnot y , \lnot zx,¬y,¬z 互相不为否定 , 三个点之间没有边相连 ;

没有边相连 : 下图中 y,¬x,¬x\rm y , \lnot x , \lnot xy,¬x,¬x 互相不为否定 , 三个点之间没有边相连 ;

有边相连 : 下图中 ¬z,z,¬z\rm \lnot z , z , \lnot z¬z,z,¬z 有两个互相为否定 , 三个点之间有 222 条边相连 ;

有边相连 : 下图中 x,¬x,¬x\rm x , \lnot x , \lnot xx,¬x,¬x 有两个互相为否定 , 三个点之间有 222 条边相连 ,

构造好的无向图 :

如果 ϕ=(x∨y∨¬z)∧(¬x∨¬y∨z)∧(¬x∨y∨¬z)\rm \phi = ( x \lor y \lor \lnot z) \land ( \lnot x \lor \lnot y \lor z ) \land ( \lnot x \lor y \lor \lnot z)ϕ=(x∨y∨¬z)∧(¬x∨¬y∨z)∧(¬x∨y∨¬z) 布尔逻辑公式可满足 ,

当且仅当 ,

上述最终形成的无向图中 , 一定存在着一个 333 个节点组成的独立集 ;

布尔逻辑公式中 , 给定一组真值 ,

x=true,y=true,z=true\rm x=true , y=true , z=truex=true,y=true,z=true

那么 x,y,z,¬x,¬y,¬z\rm x , y, z , \lnot x , \lnot y , \lnot zx,y,z,¬x,¬y,¬z 中取值为真的就是独立子集 ,

因此 x,y,z\rm x , y, zx,y,z 是独立子集 ;

布尔逻辑公式中 , 给定一组真值 ,

x=false,y=随意,z=false\rm x=false , y=随意 , z=falsex=false,y=随意,z=false

那么 x,y,z,¬x,¬y,¬z\rm x , y, z , \lnot x , \lnot y , \lnot zx,y,z,¬x,¬y,¬z 中取值为真的就是独立子集 ,

因此 一个 ¬x\rm \lnot x¬x 两个¬z\rm \lnot z¬z 组成的点集 是独立子集 ;

【计算理论】计算复杂性 ( 无向图独立集问题 | 独立集问题是 NP 完全问题证明思路 | 证明独立集问题是 NP 完全问题 )相关推荐

  1. 【计算理论】计算复杂性 ( 证明团问题是 NP 完全问题 )

    文章目录 一.团问题是 NP 完全问题 证明思路 二.证明团问题是 NP 完全问题 一.团问题是 NP 完全问题 证明思路 证明一个命题是 NP\rm NPNP 完全问题 : ① 证明是 NP\rm ...

  2. 【计算理论】计算复杂性 ( 3-SAT 是 NP 完全问题 | 团问题是 NP 完全问题 | 团问题是 NP 完全问题证明思路 )

    文章目录 一.3-SAT 是 NP 完全问题 二.团问题是 NP 完全问题 三.团问题是 NP 完全问题 证明思路 一.3-SAT 是 NP 完全问题 布尔可满足性问题 ( Boolean Satis ...

  3. 【计算理论】计算复杂性 ( NP 完全问题 - 布尔可满足性问题 ★ | 布尔可满足性问题是 NP 完全问题证明思路 ) ★

    文章目录 一.NP 完全问题 - 布尔可满足性问题 ★ 二.布尔可满足性问题是 NP 完全问题证明思路 一.NP 完全问题 - 布尔可满足性问题 ★ 布尔可满足性问题 ( Boolean Satisf ...

  4. 【计算理论】计算复杂性 ( NP 类不同表述 | 团问题 | P 对 NP 问题 )

    文章目录 一.NP 类不同表述 二.团问题 三.P 对 NP 问题 ( P vs NP ) 一.NP 类不同表述 NP\rm NPNP 对应的 确定性图灵机 表述 : NP\rm NPNP 类就是有 ...

  5. 【计算理论】计算复杂性 ( NP 完全问题 | 顶点覆盖问题 | 哈密顿路径问题 | 旅行商问题 | 子集和问题 )

    文章目录 一.顶点覆盖问题 二.哈密顿路径问题 三.旅行商问题 四.子集和问题 五.NP 完全问题 一.顶点覆盖问题 顶点覆盖 ( Vertex Cover ) : 给定一个 无向图 G\rm GG ...

  6. 【计算理论】计算复杂性 ( 多项式时间规约 | NP 完全 ★ | 布尔可满足性问题 ) ★

    文章目录 一.多项式时间规约 分析 二.NP 完全 ★ ( 计算理论最重要的概念 ) 一.多项式时间规约 分析 多项式时间规约概念 : [计算理论]计算复杂性 ( 多项式等价引入 | 多项式时间规约 ...

  7. 【计算理论】计算复杂性 ( 阶段总结 | 计算理论内容概览 | 计算问题的有效性 | 语言与算法模型 | 可计算性与可判定性 | 可判定性与有效性 | 语言分类 ) ★

    文章目录 一.计算理论内容概览 二.计算问题的 有效性 三.语言 与 算法模型 四.可计算性 与 可判定性 五.可判定性 与 有效性 六.语言分类 一.计算理论内容概览 计算理论分为 形式语言与自动机 ...

  8. 【计算理论】计算复杂性 ( 证明 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 )

    文章目录 证明 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 证明 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 在上一篇博客 [计算理论]计算复杂性 ( 非确定性 ...

  9. 【计算理论】计算复杂性 ( 两个带子的图灵机的时间复杂度 | 证明多个带子图灵机时间复杂度 )

    文章目录 一.确定性模型的计算复杂性关系 二.证明 "多个带子图灵机时间复杂度是 O(n2)\rm O(n^2)O(n2)" 一.确定性模型的计算复杂性关系 计算的 复杂性 取决于 ...

最新文章

  1. Redis 日志篇:无畏宕机实现高可用的杀手锏
  2. 原型模式、模板方法、迪米特法则、外观模式
  3. 谷歌浏览器如何将繁体字设置成中文?
  4. mybatis返回map键值对_mybatis返回map key怎么指定
  5. 深入理解OracleExadata
  6. HTML5实践 -- 可伸缩的mobile搜索框
  7. 用 servlet 来创建一个用户登录界面
  8. 向量乘向量的转置的平方_MIT线性代数笔记1.5(转置,置换,向量空间)
  9. 【音视频—基础】分辨率、码率和帧率
  10. 推荐!程序员常用的15个学习交流网站
  11. ~艾比郎~学Python之Python基础
  12. 2020 中秋、国庆快乐!
  13. 网络技术大讲堂:什么是IPv6+?
  14. 霍夫曼编码代码matlab,matlab 实现霍夫曼编码
  15. c语言循环语句学习心得
  16. 淘宝品牌产品无授权开直通车怎么实现
  17. 7-3 sdust-Java-字符串集合求并集 (25 分)
  18. java word转pdf【去水印】
  19. vue3.2+ 滑动验证组件,pc/手机通用,即插即用
  20. 一年级计算机课画画用什么,一年级学画画入门教程

热门文章

  1. 林正刚本地化中摸索前进 称中国未来无可比拟
  2. 2018-12-10
  3. 尝试create tech team
  4. minimun-depth-of-binary-tree
  5. 20个必不可少的Python库
  6. 最大公共子串提取“模式”
  7. WCF RIA Service实体类中发复杂类型
  8. Docker学习笔记之保存和共享镜像
  9. react-native 集成极光推送jpush-react-native时的小问题
  10. Mysql Federated Server 示例