【计算理论】计算复杂性 ( 无向图独立集问题 | 独立集问题是 NP 完全问题证明思路 | 证明独立集问题是 NP 完全问题 )
文章目录
- 一、独立集问题
- 二、独立集问题是 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 完全问题 )相关推荐
- 【计算理论】计算复杂性 ( 证明团问题是 NP 完全问题 )
文章目录 一.团问题是 NP 完全问题 证明思路 二.证明团问题是 NP 完全问题 一.团问题是 NP 完全问题 证明思路 证明一个命题是 NP\rm NPNP 完全问题 : ① 证明是 NP\rm ...
- 【计算理论】计算复杂性 ( 3-SAT 是 NP 完全问题 | 团问题是 NP 完全问题 | 团问题是 NP 完全问题证明思路 )
文章目录 一.3-SAT 是 NP 完全问题 二.团问题是 NP 完全问题 三.团问题是 NP 完全问题 证明思路 一.3-SAT 是 NP 完全问题 布尔可满足性问题 ( Boolean Satis ...
- 【计算理论】计算复杂性 ( NP 完全问题 - 布尔可满足性问题 ★ | 布尔可满足性问题是 NP 完全问题证明思路 ) ★
文章目录 一.NP 完全问题 - 布尔可满足性问题 ★ 二.布尔可满足性问题是 NP 完全问题证明思路 一.NP 完全问题 - 布尔可满足性问题 ★ 布尔可满足性问题 ( Boolean Satisf ...
- 【计算理论】计算复杂性 ( NP 类不同表述 | 团问题 | P 对 NP 问题 )
文章目录 一.NP 类不同表述 二.团问题 三.P 对 NP 问题 ( P vs NP ) 一.NP 类不同表述 NP\rm NPNP 对应的 确定性图灵机 表述 : NP\rm NPNP 类就是有 ...
- 【计算理论】计算复杂性 ( NP 完全问题 | 顶点覆盖问题 | 哈密顿路径问题 | 旅行商问题 | 子集和问题 )
文章目录 一.顶点覆盖问题 二.哈密顿路径问题 三.旅行商问题 四.子集和问题 五.NP 完全问题 一.顶点覆盖问题 顶点覆盖 ( Vertex Cover ) : 给定一个 无向图 G\rm GG ...
- 【计算理论】计算复杂性 ( 多项式时间规约 | NP 完全 ★ | 布尔可满足性问题 ) ★
文章目录 一.多项式时间规约 分析 二.NP 完全 ★ ( 计算理论最重要的概念 ) 一.多项式时间规约 分析 多项式时间规约概念 : [计算理论]计算复杂性 ( 多项式等价引入 | 多项式时间规约 ...
- 【计算理论】计算复杂性 ( 阶段总结 | 计算理论内容概览 | 计算问题的有效性 | 语言与算法模型 | 可计算性与可判定性 | 可判定性与有效性 | 语言分类 ) ★
文章目录 一.计算理论内容概览 二.计算问题的 有效性 三.语言 与 算法模型 四.可计算性 与 可判定性 五.可判定性 与 有效性 六.语言分类 一.计算理论内容概览 计算理论分为 形式语言与自动机 ...
- 【计算理论】计算复杂性 ( 证明 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 )
文章目录 证明 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 证明 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 在上一篇博客 [计算理论]计算复杂性 ( 非确定性 ...
- 【计算理论】计算复杂性 ( 两个带子的图灵机的时间复杂度 | 证明多个带子图灵机时间复杂度 )
文章目录 一.确定性模型的计算复杂性关系 二.证明 "多个带子图灵机时间复杂度是 O(n2)\rm O(n^2)O(n2)" 一.确定性模型的计算复杂性关系 计算的 复杂性 取决于 ...
最新文章
- Redis 日志篇:无畏宕机实现高可用的杀手锏
- 原型模式、模板方法、迪米特法则、外观模式
- 谷歌浏览器如何将繁体字设置成中文?
- mybatis返回map键值对_mybatis返回map key怎么指定
- 深入理解OracleExadata
- HTML5实践 -- 可伸缩的mobile搜索框
- 用 servlet 来创建一个用户登录界面
- 向量乘向量的转置的平方_MIT线性代数笔记1.5(转置,置换,向量空间)
- 【音视频—基础】分辨率、码率和帧率
- 推荐!程序员常用的15个学习交流网站
- ~艾比郎~学Python之Python基础
- 2020 中秋、国庆快乐!
- 网络技术大讲堂:什么是IPv6+?
- 霍夫曼编码代码matlab,matlab 实现霍夫曼编码
- c语言循环语句学习心得
- 淘宝品牌产品无授权开直通车怎么实现
- 7-3 sdust-Java-字符串集合求并集 (25 分)
- java word转pdf【去水印】
- vue3.2+ 滑动验证组件,pc/手机通用,即插即用
- 一年级计算机课画画用什么,一年级学画画入门教程