• 定理证明过程的复杂度(Stephen A .Cook)定理1证明的解析


         The Complexity of Theorem-Proving Procedures这篇论文最难理解的部分就是定理1证明的过程,现在网络上中文材料并没有这方面的解析,这里给出详细解析,希望对这篇复杂度原始论文解读有个帮助,如有不对,希望指正。

    定理1原话:

    翻译过来就是,

    定理1:如果字串集S被NDTM在多项式内接收,那么S多项式规约到DNF重言式。

    注释:

    所谓DNF(Disjunctive Normal Form)就是析取范式( A 1 ∨ A 2 ) ∧ ( A 3 ∨ A 4 )。与之相对的是CNF(Conjunctive Normal Form)合取范式 ( A 1 ∧ A 2 ) ∨ ( A 3 ∧ A 4 )。 他们可以用德摩根律取反转化。

    证明过程:

    为了便于理解分为两个部分,

    第一部分是证明的整个思路,第二部分是DNF的构造过程。

    1)证明思路

    定理的证明:

        假设一个非确定性图灵机M能够在多项式时间Q(n)内接收字串集S。

    给定一个输入w, 我们将构造一个CNF格式的公式A(w),如果M能够接收w(注:这里的意思是M的最终以accept状态停下)。这样~A(w)可以容易的放到DNF中(用德摩根律),(注解:上面的论文显示可能是打印软件有误,把前面的取非操作掉了)。当且仅当w不在集合S中时,~A(w)是逻辑值始终为真的申明语句(英文就是tautology)。既然整个构造过程在多项式时间范围内(以w的长度|w|的多项式时间限度),定理得证。

    2)DNF构造过程

    2.1 图灵机与一些符号的约定

        我们可以假定图灵机M仅仅有一个带子,长度上从左到右是无限制的,但有一个起始的最左格子。我们可以给这些格子从左到右依次排序1,2,3,......。再假定一个S集中的一个固定输入w,其长度为n。那么就有一个M的计算过程,能够让M在T=Q(n)多项式步骤内停下,M状态机的状态是接收。那么公式A(w)参照这个计算过程,将根据以下符号中构建。

    首先,假定M的带子的字母集合是{\sigma _{_{1}},,,,\sigma _{_{l}},状态集是{q1,,,,,,qs}。注意到计算是在多项式时间T=Q(n)内完成的,因此不会有超过T的格子被扫描。

    符号约定:

    _P{i}_{s,t}: 当格子s 在步骤t时包含字符\sigma _{i}时,该符号为真

    Q_{t}^{i}:当在步骤t时,机器M在状态q_{i}时,该符号为真

    S_{s,t}:当在时间t,格子s被带子读头扫描时,该符号为真

    公式A(w) = B^C^D^E^F^G^H^I

    具体的各范式构造如下,

    2.2 A(w)的构造过程

    B,设定每一步仅有一个格子被扫描;

    B= B1^B2^B3...^BT

    其中在每一步t的Bt是当且仅当一个格子被扫描。

    前半部分构造表示至少一个被扫描,后半部分表示不可能同时有两个格子被扫描。

    C, 设定在时间(步骤)t时,格子s中仅有一个符号;

    D,设定每一步t,图灵机仅有一个状态s;

    E,设定初始条件满足

    这里w=\sigma _{i_{1}}...\sigma _{i_{n}}. q0是初始状态, \sigma _{1}是空字符.

    F,G,H 论断保障每一步,P, Q, S能够正确地更新。

    最后I,设定机器在某个时候到达接收Accepting状态。

     通过上述构造,可以直接验证A(w)就是我们需要的范式。

  • 相关阅读:
    openstack搭建笔记-train版
    【SSM框架】Mybatis详解03(案例源码文末自取)
    JavaWeb基础面试题
    Redis常见面试题总结
    图像处理学习笔记-09-形态学图像处理
    ShardingSphere-JDBC-简介-1
    # C# 重新认识一下 IEnumerable<T>,IAsyncEnumerable<T> 以及搭配异步可能遇到的问题
    推荐两款超高质量的壁纸软件
    MySQL 查询 唯一约束 对应的字段,列名称合并
    mongodb 分片集群认证
  • 原文地址:https://blog.csdn.net/zkmrobot/article/details/127582350