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

举报
韩曙亮 发表于 2022/01/11 01:51:40 2022/01/11
2.9k+ 0 0
【摘要】 文章目录 一、团问题是 NP 完全问题 证明思路二、证明团问题是 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 1 ∨ x 1 ∨ x 2 ) ∧ ( x 1 ‾ ∨ x 2 ‾ ∨ x 2 ‾ ) ∧ ( x 1 ‾ ∨ x 2 ∨ x 2 ) \rm \phi = ( x_1 \lor x_1 \lor x_2 ) \land ( \overline{x_1} \lor \overline{x_2} \lor \overline{x_2} ) \land ( \overline{x_1} \lor x_2 \lor x_2 ) ϕ=(x1x1x2)(x1x2x2)(x1x2x2)

构造一个 无向图 ,

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

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


证明过程 :给定的 3-SAT 布尔逻辑公式 ϕ = ( x 1 ∨ x 1 ∨ x 2 ) ∧ ( x 1 ‾ ∨ x 2 ‾ ∨ x 2 ‾ ) ∧ ( x 1 ‾ ∨ x 2 ∨ x 2 ) \rm \phi = ( x_1 \lor x_1 \lor x_2 ) \land ( \overline{x_1} \lor \overline{x_2} \lor \overline{x_2} ) \land ( \overline{x_1} \lor x_2 \lor x_2 ) ϕ=(x1x1x2)(x1x2x2)(x1x2x2) 中 , 构造出一个无向图 出来 , 使得该无向图可以满足 " 布尔逻辑公式 是可满足的 , 当且仅当 , 无向图中有一个 k \rm k k "





二、证明团问题是 NP 完全问题



参考上篇博客 【计算理论】计算复杂性 ( 3-SAT 是 NP 完全问题 | 团问题是 NP 完全问题 | 团问题是 NP 完全问题证明思路 ) 三、团问题是 NP 完全问题 证明思路


给定的 3-SAT 布尔逻辑公式 ϕ = ( x 1 ∨ x 1 ∨ x 2 ) ∧ ( x 1 ‾ ∨ x 2 ‾ ∨ x 2 ‾ ) ∧ ( x 1 ‾ ∨ x 2 ∨ x 2 ) \rm \phi = ( x_1 \lor x_1 \lor x_2 ) \land ( \overline{x_1} \lor \overline{x_2} \lor \overline{x_2} ) \land ( \overline{x_1} \lor x_2 \lor x_2 ) ϕ=(x1x1x2)(x1x2x2)(x1x2x2) 中 , 构造出一个无向图 出来 , 使得该无向图可以满足 " 布尔逻辑公式 是可满足的 , 当且仅当 , 无向图中有一个 k \rm k k "


构造点集三元组 : 给定 3-SAT 合取范式 , 布尔逻辑公式中 , 每个子项都有一个三元组 ,

在这里插入图片描述

上图中的 无向图 左侧的 点集三元组 对应 布尔逻辑公式 合取范式 中的 ( x 1 ∨ x 1 ∨ x 2 ) \rm ( x_1 \lor x_1 \lor x_2 ) (x1x1x2) 子项 ,

上图中的 无向图 顶部的 点集三元组 对应 布尔逻辑公式 合取范式 中的 ( x 1 ‾ ∨ x 2 ‾ ∨ x 2 ‾ ) \rm ( \overline{x_1} \lor \overline{x_2} \lor \overline{x_2} ) (x1x2x2) 子项 ,

上图中的 无向图 右侧的 点集三元组 对应 布尔逻辑公式 合取范式 中的 ( x 1 ‾ ∨ x 2 ∨ x 2 ) \rm ( \overline{x_1} \lor x_2 \lor x_2 ) (x1x2x2) 子项 ,


构造无向边 : 对于布尔逻辑公式 , 3-SAT 公式 ,

ϕ = ( x 1 ∨ x 1 ∨ x 2 ) ∧ ( x 1 ‾ ∨ x 2 ‾ ∨ x 2 ‾ ) ∧ ( x 1 ‾ ∨ x 2 ∨ x 2 ) \rm \phi = ( x_1 \lor x_1 \lor x_2 ) \land ( \overline{x_1} \lor \overline{x_2} \lor \overline{x_2} ) \land ( \overline{x_1} \lor x_2 \lor x_2 ) ϕ=(x1x1x2)(x1x2x2)(x1x2x2)

如果要取值为真 , 需要每个子项取值都为真 ,

如果每个子项为真 , 每个子项都是析取式 , 只要保证每个子项中至少有一个为真即可 ,

在每个子项中取一个 词 为真的值 , 词的取值互相之间不发生矛盾 , 不能出现有一个词 是另外一个词的否定 , 词就是 原子命题变元 或其否定 ;

x 1 \rm x_1 x1 x 1 ‾ \rm \overline{x_1} x1 互为否定 , 这两个节点之间不能有边相连 ,

x 2 \rm x_2 x2 x 2 ‾ \rm \overline{x_2} x2 互为否定 , 这两个节点之间不能有边相连 ,

无向边构造原则 : 不同的 3 3 3 组点集之间 , 如果不是互为否定的 , 就连接一条边 , 本组之间没有边 ;

下图是构造好的无向图 :

在这里插入图片描述


证明 布尔逻辑公式 ϕ = ( x 1 ∨ x 1 ∨ x 2 ) ∧ ( x 1 ‾ ∨ x 2 ‾ ∨ x 2 ‾ ) ∧ ( x 1 ‾ ∨ x 2 ∨ x 2 ) \rm \phi = ( x_1 \lor x_1 \lor x_2 ) \land ( \overline{x_1} \lor \overline{x_2} \lor \overline{x_2} ) \land ( \overline{x_1} \lor x_2 \lor x_2 ) ϕ=(x1x1x2)(x1x2x2)(x1x2x2) 是可满足的 , 当且仅当 , 无向图中有一个 3 \rm 3 3 团 ;


取值 :

x 1 = f a l s e ,   x 1 ‾ = t r u e \rm x_1 = false , \ \overline{x_1} = true x1=false, x1=true

x 2 = t r u e ,   x 2 ‾ = f a l s e \rm x_2 = true, \ \overline{x_2} = false x2=true, x2=false


x 1 ∨ x 1 ∨ x 2 = f a l s e ∨ f a l s e ∨ t r u e = t r u e \rm x_1 \lor x_1 \lor x_2 = false \lor false \lor true= true x1x1x2=falsefalsetrue=true

x 1 ‾ ∨ x 2 ‾ ∨ x 2 ‾ = t r u e ∨ t r u e ∨ f a l s e = t r u e \rm \overline{x_1} \lor \overline{x_2} \lor \overline{x_2} = true \lor true \lor false = true x1x2x2=truetruefalse=true

x 1 ‾ ∨ x 2 ∨ x 2 = t r u e ∨ t r u e ∨ t r u e = t r u e \rm \overline{x_1} \lor x_2 \lor x_2 = true \lor true \lor true= true x1x2x2=truetruetrue=true


上述取值时 , 合取范式中每个子项都为真 , 布尔逻辑公式取值为真 ;


3 3 3 团 : 在无向图中 , 找到一个 3 3 3 团 , 下图中红色的点组成的集合就是一个 3 3 3 团 , 可以发现取值为真的点都可以组成一个 3 3 3 团 ;

在这里插入图片描述


上图中 3 3 3 团 的规律就是找到 3 3 3 个取值为真的赋值 , 就可以自动找到一个 3 3 3 团 ;

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/111240611

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。