文章目录

  • 一、NP 完全问题 - 布尔可满足性问题 ★
  • 二、布尔可满足性问题是 NP 完全问题证明思路

一、NP 完全问题 - 布尔可满足性问题 ★


布尔可满足性问题 ( Boolean Satisfiability Problem , SAT ) , 是历史已经找到了一个 NP\rm NPNP 完全问题 ;

布尔逻辑公式 : 原子命题变元 x,y,⋯\rm x , y , \cdotsx,y,⋯ 通过 联结词 合取 ∧\land∧ , 析取 ∨\lor∨ , 否定 ¬\lnot¬ , 将这些变元联结在一起 , 得到一个布尔逻辑公式 ;

参考 离散数学 - 数据逻辑 - 命题与联结词 博客 : 【数理逻辑】命题和联结词 ( 命题 | 命题符号化 | 真值联结词 | 否 | 合取 | 析取 | 非真值联结词 | 蕴涵 | 等价 )

布尔逻辑公式可满足 , 指的是 存在一个赋值 , 该赋值是从原始命题到真和假的映射 , 是语法到语义的纽带 , 该赋值使得布尔逻辑公式取值为真 , 则称该 布尔逻辑公式可满足 ;

存在一个赋值 , 使得布尔逻辑公式为真 , 该布尔逻辑公式就是可满足的 ;

将 所有 可满足的布尔逻辑公式 , 放在一起 , 组成一个整体 , 称为 布尔可满足性问题 ( Boolean Satisfiability Problem , SAT ) ;

布尔可满足性问题 是 NP\rm NPNP 完全的 ;

二、布尔可满足性问题是 NP 完全问题证明思路


布尔可满足性问题是 NP 完全问题证明思路 :

① 首先证明 布尔可满足性问题 是 NP\rm NPNP 问题 ;

证明该步骤 , 只需要验证 , 给定布尔逻辑公式 , 给定一个赋值 , 验证该公式在该赋值的情况下 , 取值为真即可 ;

验证过程所花的时间与联结词个数有关 , 联结词的个数 , 肯定布会超过布尔逻辑公式的长度 ,

验证所花费的时间一定是 多项式时间 ,

因此 布尔可满足性问题 在 NP\rm NPNP 中 ;

② 再证明 布尔可满足性问题 SAT\rm SATSAT 是最难的 NP\rm NPNP 问题 ;

将 布尔可满足性问题 与 NP\rm NPNP 中每个计算问题 进行比较 ,

证明 NP\rm NPNP 中的任何计算问题 , 其难易程度 , 布会超过 布尔可满足性问题 ,

即 NP\rm NPNP 中的任何计算问题 , 都可以在 多项式时间规约到 SAT\rm SATSAT , 即 ≤SAT\rm \leq SAT≤SAT ,

该证明是很难的 ;

从 NP\rm NPNP 中 任选一个计算问题 A\rm AA ,

A\rm AA 是 NP\rm NPNP 的 , 一定存在一个 非确定性图灵机 可以判定 ( 解决 ) 该问题 , 该 非确定性图灵机 的计算复杂度一定是个多项式 O(nk)\rm O(n^k)O(nk) ,

证明该问题 A\rm AA 一定可以在 多项式时间规约到 SAT\rm SATSAT , 符号化表示 : A≤SAT\rm A \leq SATA≤SAT ,

给定一个 字符串 w\rm ww , 可以被 非确定性图灵机 N\rm NN 接受 , 从 字符串 w\rm ww 和 非确定性图灵机 N\rm NN 出发 , 在 多项式时间 内构造出一个逻辑公式 ,

非确定性图灵机 N\rm NN 接受 字符串 w\rm ww , 当且仅当 构造出的逻辑公式是可满足的 ;

构造该逻辑公式 :

构造如下表格 , 将整个 非确定性图灵机 N\rm NN 在字符串上作一个计算 , 计算的分支 , 通过一个表格装进去 ;

表格的 长和宽 都是 nk\rm n^knk ,

使用 布尔逻辑公式 表达该表格 , 使得它可以满足一定的条件 ;

引入如下概念 :

引入字符集 : N\rm NN 是非确定性图灵机 , 其中 Q\rm QQ 是 N\rm NN 的状态集 , Γ\GammaΓ ( 伽马 ) 是 N\rm NN 的带子的字符集 , 则有 字符集 C=Q∪Γ∪{#}\rm C = Q \cup \Gamma \cup \{ \# \}C=Q∪Γ∪{#} ;

引入原子命题变元 : xi,j,s\rm x_{i,j,s}xi,j,s​ , 其中 i,j\rm i , ji,j 都是 [1,nk]\rm [1, n^k][1,nk] 区间内的值 , 每个 s\rm ss 都是 字符集 C\rm CC 中的字符 ;

上述 xijs\rm x_{ijs}xijs​ 变元的含义是 , 如果该命题变元 xijs\rm x_{ijs}xijs​ 取值为真 , 当且仅当 i,j\rm i,ji,j 格子 ( 水平为 i\rm ii , 垂直为 j\rm jj 的格子 Cell ) 对应的字符是 s\rm ss ;

得到布尔逻辑公式 : 上述表格中的格子中 , 任何格子 , 只包含一个字符 , 并且只能包含一个字符 , 该公式的长度是多项式长度 ; 公式如下 :

ϕcell=∧1≤i,j≤nk[(∨s∈Cxi,j,s)∧(∨s,t∈Cs≠t(¬xi,j,s∨¬xi,j,t))]\rm \phi_{cell} =\begin{matrix} \land \\ \rm 1 \leq i,j \leq n^k \end{matrix} [ ( \begin{matrix}\rm \lor \\ \rm s \in C \end{matrix} x_{i,j,s}) \land ( \begin{matrix}\rm \lor \\ \rm s , t \in C \\ \rm s \not= t \end{matrix} (\lnot x_{i,j,s} \lor \lnot x_{i,j,t} ) ) ]ϕcell​=∧1≤i,j≤nk​[(∨s∈C​xi,j,s​)∧(∨s,t∈Cs​=t​(¬xi,j,s​∨¬xi,j,t​))]

开始格局 : 表格中的第一行是 开始格局 , 在所有的表格中 , 一定包含了一个接受格局 , 其中一定包含了有一个状态 , 是接受状态 ;

ϕstart=x1,1,#∧x1,2,q0∧x1,3,w1∧⋯∧x1,n+2,wn∧x1,nk−1,B∧x1,nk,#\rm \phi_{start} = x_{1,1,\#} \land x_{1,2,q_0} \land x_{1,3,w_1} \land \cdots \land x_{1 , n+2 , w_n}\land x_{1 , n^k-1 , B} \land x_{1 , n^k , \#}ϕstart​=x1,1,#​∧x1,2,q0​​∧x1,3,w1​​∧⋯∧x1,n+2,wn​​∧x1,nk−1,B​∧x1,nk,#​

ϕaccept=∨1≤i,j≤nkxi,j,qaccept\rm \phi_{accept} = \lor _{1 \leq i,j \leq n^k} x_{i,j, q_{accept}}ϕaccept​=∨1≤i,j≤nk​xi,j,qaccept​​

转换函数 : 存在一个 2×3\rm 2 \times 32×3 的窗口 , 如果是合法的话 , 该表格中的内容 , 刚好是 非确定性图灵机 的 计算树 中的计算分支内容 ;

ϕmove=⋀1<i≤nk1<j<nk(窗口(i,j)是合法的)\rm \phi_{move} = \begin{matrix}\rm \bigwedge \\ \rm 1 < i \leq n^k \\ \rm 1 < j < n^k \end{matrix} \ \ \ ( 窗口 \ (i , j) \ 是合法的 )ϕmove​=⋀1<i≤nk1<j<nk​   (窗口 (i,j) 是合法的)

⋁a1,⋯,a6legalwindow=(xi,j−1,a1∧xi,j,a2∧xi,j+1,a3∧xi+1,j−1,a4∧xi+1,j,a5∧xi+1,j+1,a6)\rm \begin{matrix}\rm \bigvee \\ \rm a_1 , \cdots , a_6 \\ \rm legal \\ \rm window \end{matrix} = ( x_{i, j-1, a_1} \land x_{i, j, a_2} \land x_{i, j+1, a_3} \land x_{i +1, j-1, a_4} \land x_{i + 1, j, a_5} \land x_{i + 1, j + 1, a_6} )⋁a1​,⋯,a6​legalwindow​=(xi,j−1,a1​​∧xi,j,a2​​∧xi,j+1,a3​​∧xi+1,j−1,a4​​∧xi+1,j,a5​​∧xi+1,j+1,a6​​)

合并命题公式集合 : 将上述构造出的所有的命题公式 , 放在一起 , 就得到如下公式 :

ϕ=ϕcell∧ϕstart∧ϕaccept∧ϕmove\rm \phi = \phi_{cell} \land \phi_{start} \land \phi_{accept} \land \phi_{move}ϕ=ϕcell​∧ϕstart​∧ϕaccept​∧ϕmove​

ϕ\rm \phiϕ 的长度是 多项式长度 ,

可以将 NP\rm NPNP 中的任何计算问题 在 多项式时间中规约到 SAT\rm SATSAT 问题 ( 布尔可满足性问题 ) , 布尔可满足性问题 是 P\rm PP 中最难的问题 , 因此该问题是 NP\rm NPNP 完全问题 ;

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

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

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

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

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

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

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

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

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

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

    文章目录 一.独立集问题 二.独立集问题是 NP 完全问题证明思路 二.证明独立集问题是 NP 完全问题 一.独立集问题 无向图的独立集 , 指的是在无向图中找到点集的子集 , 使得它们两两之间 , ...

  6. 【计算理论】计算复杂性 ( coNP 问题 | coNP 完全 | P、NP、coNP 相互关系 )

    文章目录 一.coNP 类 二.coNP 完全 三.P.NP.coNP 相互关系 一.coNP 类 如果 语言 L\rm LL 在 coNP\rm coNPcoNP 中 , 那么 该语言的补集在 NP ...

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

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

  8. 【计算理论】计算复杂性 ( P 类 | 有效算法函数 | NP 直觉 | NP 简介 | NP 类严格数学定义 )

    文章目录 一.P 类 二.有效算法函数 三.NP 直觉 四.NP 简介 五.NP 严格数学定义 一.P 类 时间复杂度类 : 定义 时间复杂度类 TIME(t(n))\rm TIME( t(n) )T ...

  9. 【计算理论】计算理论总结 ( P 、NP 、NPC 总结 ) ★★

    文章目录 一.P 类 二.NP 类 三.NPC 类 ( NP 完全 ) 四.P .NP .NPC 三者关系 一.P 类 P\rm PP 类 : ★ 所有 能够被 确定性 单个带子图灵机 , 在 多项式 ...

最新文章

  1. python 程序开机自启动,亲测可用
  2. 那些年,因为英语不好所闹出的笑话!
  3. Chapter 1 First Sight——33
  4. 总结之前做项目中要注意的一些书写规范
  5. POJ 3696 欧拉函数+快速幂
  6. 修改一个CGRect的值
  7. VMware虚拟机中的CentOS7安装Nginx后本机无法访问的解决办法
  8. python xp系统_win XP的系统应该装哪个python的安装包?
  9. excel多元线性拟合_多元线性回归EXCEL图表
  10. Android Toast 吐司 自定义使用 展示图片 Toast自定义教程(一)
  11. 图像处理:根据像素坐标及像素尺寸大小裁剪遥感影像
  12. rtl驱动 ubuntu 禁用_ubuntu18.04系统中使用dkms安装wifi驱动rtl8723be的方法
  13. 中国近代史纲要 期末复习
  14. SpringBoot的使用01
  15. 时间戳——微信保存视频时发现的问题
  16. 回收站里的文件删除了怎么恢复,其实很简单
  17. xshell支持图形_Xshell打不开图形化界面,或许该这样做!
  18. deepin 下使用节能模式不降低屏幕亮度
  19. 百读不厌《破窑赋》!真正的千古奇文!
  20. linux 通过手机上网,Linux系统通过手机GPRS上网设置简介有哪些呢?

热门文章

  1. CentOS7配置本地yum源 和yum源服务器
  2. 奇绩创坛分享:从科学家到创业者的科技创新
  3. C语言实验题目[01]
  4. macbook修改账户名称
  5. pe重装系统后F盘无法打开系统拒绝访问解决方案
  6. ublox_f9p 代码中接入别人编译好的连接库(PPP定位)
  7. 叉乘点乘混合运算公式_人教版小学二年级数学概念、公式汇总(附应用题),开学前给孩子预习!...
  8. Struts2 入门学习总结一
  9. QT Qml 窗口背景透明
  10. Windows系统安装Git最新版 Git-2.20.0-64-bit