当前位置:   article > 正文

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

独立集问题





一、独立集问题



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

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

在这里插入图片描述


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





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



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

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

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


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

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

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

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


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) ϕ=(xy¬z)(¬x¬yz)(¬xy¬z)

构造一个 无向图 ,

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

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


证明过程 :给定的 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) ϕ=(xy¬z)(¬x¬yz)(¬xy¬z) 中 , 构造出一个无向图 出来 , 使得该无向图可以满足 " 布尔逻辑公式 是可满足的 , 当且仅当 , 无向图中有一个 k \rm k k 独立集 "





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



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

ϕ = ( 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) ϕ=(xy¬z)(¬x¬yz)(¬xy¬z)


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

在这里插入图片描述



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

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

在这里插入图片描述

没有边相连 : 下图中 y , ¬ x , ¬ x \rm y , \lnot x , \lnot x y,¬x,¬x 互相不为否定 , 三个点之间没有边相连 ;
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述


构造好的无向图 :

在这里插入图片描述


如果 ϕ = ( 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) ϕ=(xy¬z)(¬x¬yz)(¬xy¬z) 布尔逻辑公式可满足 ,

当且仅当 ,

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



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

x = t r u e , y = t r u e , z = t r u e \rm x=true , y=true , z=true x=true,y=true,z=true

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

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

在这里插入图片描述



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

x = f a l s e , y = 随 意 , z = f a l s e \rm x=false , y=随意 , z=false x=false,y=,z=false

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

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

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/215158
推荐阅读
相关标签
  

闽ICP备14008679号