4 Turing机

4.1 Turing机的基本模型

  1. Q: 基本Turing机的7要素中,哪些从状态转移图容易看出?如何看出它们?
    A: 状态集Q显然(每个圈对应一个状态)
    带字母表C显然(所有在图中出现过的字母)
    动作函数\(\delta\)用弧上的\(若干字母/L或R或字母\)表示
    输入字母表A并不能直接看出
    空白符\(B\)为约定记号
    初始状态\(q_1\)没有入边
    接受状态集\(F\)用双圈表示
  2. Q: 为了容易使用计算机书写,用字符串()表示格局,()表示\(\delta\),()表示计算过程。
    A: \(a_1a_2\cdots qa_j\cdots a_k\),四元组集合,\(格局\vdash_\mathscr M 格局\cdots\)
  3. Q: 一进制乘法机中临时符号\(a\)有何作用?
    A: 每次复制字符串\(1^v\)时,复制了一个值就把被复制串最末尾的一个1改成\(a\),于是不需要在TM内部记住改过多少个。(注:所以“九九乘法表”这样只考察有限情况时当然就不需要这样的临时符号)
  4. Q: 可以说一个图灵机对应一个函数吗?反之呢?
    A: 不行(同一个图灵机,不同变量数,对应不同函数)。反之也不行(显然)。
    思考:参考上面。可以用莱斯定理证明\(\{n|f(x):=\Phi(x,n)可以用偶数个状态的图灵机计算\}\)非递归集吗?

4.2 Turing机的各种形式

  1. Q: 对于\(t\)个状态的四元TM,需要多少个状态的五元TM模拟?为什么?反之呢?
    A: \(2t\),多\(t\)个记录“执行了不应该的移动”
    \(3t\),多\(t\)个记录“下一步向左”,多\(t\)个记录“下一步向右”。
  2. Q: 对于用单向无穷带TM模拟基本TM,回忆TM输出的定义(要删去所有不属于\(A\)的字符,包括\(B\)),我们知道在TM计算得到结果时,需要的字符之间可能有许多空白符,故可能导致难以简单判断有意义的符号“到右边何处为止”。
    因此我们需要一个额外特殊符号()来确保读写头“用过的地方”都在()范围内(保证这一点需要添加()等四元组)。
    这样一来在单向无穷带Turing机结束时,()即可。
    A: \(\$\)\(\#\$\),针对所有\(q_i\)添加\(q_i \$ B q_i', q_i' BRq_i'', q_i'' B\$ q_i''',q_i'''\$L q_i\)(合理即可),向右扫描至\(\$\)再对左侧结果进行处理使得最终结果呈现方式确为从左向右
  3. Q: 用单带TM模拟多带TM,如何理解“\(\mathscr M'\)状态集为\(Q\times C^k\times \{0,1\cdots k\}\)”?
    A: 除了记录状态,还要记录\(k\)个读写头处的符号,以及左侧有多少个读写头。
    注:考虑输出后的附带处理,可能也需要类似1.的\(\#\$\)等。
  4. Q: 考虑离线TM对于考察什么问题带来方便?
    A: 空间复杂度(占用的存储单元数),区分输入串和中间数据的空间占用。

4.3 Turing机与可计算性

  1. Q: 考虑TM的多种形式,用“环”(cycle,不是ring)写出Turing可计算等价于\(\mathscr S\)程序可计算的证明框架,做简要注解。
    A: 多带TM 模拟 \(\mathscr S\)程序 模拟 单向无穷带TM 模拟 基本TM 模拟 多带TM
    多带为了方便记录\(\mathscr S\)程序中各变量。(“类型转换”:自然数变为一进制字符串)
    单向无穷带为了方便用哥德尔编码记录带上字符串(不过这并不本质。显然哥德尔编码“左一个右一个”也能记录基本TM的带上字符串)。(“类型转换”:字符串变为自然数)
    注意两个方向都有类型转换。因为递归函数、\(\mathscr S\)的“类型”都是自然数,TM(以及后面的文法)的“类型”是字符串。

4.4 Turing机接受的语言

  1. Q: 根据r.e.和递归集定义,说明为什么证明r.e.等价于被TM接受比较简单,但证明递归集等价于被总停机的TM接受比较复杂。
    A: r.e.定义中用是否有定义(终止)区分,直接对应Turing机是否接受。
    然而递归集定义中对函数值做出要求,但Turing机接受时不能保证函数值,所以
    对于证明一个方向(存在可计算函数是该语言特征函数):Turing机必须最后把函数值按要求改写成1或0,并停机在(额外定义唯一接收状态\(p\))接受格局(即输出1或0)
    对于证明另一个方向(存在总停机的TM接受该语言):Turing机必须设法读取自己输出的是1还是0,并由此决定是否接受。(这样的TM总停机显然)
  2. Q: 特征函数Turing可计算等价于递归集,那么特征函数Turing部分可计算等价于递归可枚举集吗?
    A: 不等价。特征函数一定是全函数,特征函数Turing部分可计算等价于递归集,不等价于递归可枚举集。
    递归可枚举集是说存在部分可计算函数恰好在此集合上有定义。可以说递归可枚举集的特征函数有一部分(值为1那部分)可以被计算,但这并不是“部分可计算”(不要望文生义)。

4.5 非确定性Turing机

  1. Q: NTM计算树中如果存在()则称该NTM接受()。
    A: (至少一个)从\(q_1 Bx\)开始以某个接受格局结束的计算(树中的路径),\(x\)
  2. Q: 用“猜想”,“枚举”,“BFS”,“并行”等关键词解释“NTM与DTM识别能力相同”。
    A: NTM具有某种猜想能力,在运行过程中“分支”,猜错了不接受不影响“主干”进行。
    DTM模拟NTM用“队列”结构做“BFS”,相当于枚举所有可能的猜想,并对这些猜想通过“单线程模拟并行的多线程”,每次所有的模拟“各在树上前进一步”
    (回忆第三章中我们曾经用循环和计步函数“并行模拟”多个待考察是否终止的计算过程)
  3. Q: “不可能在实际计算中直接实现NTM”和“P=NP”有何联系?
    A: 如果能在实际计算中直接(不影响效率地)实现NTM,那相当于“P=NP”的实际效果。
    可以说:你看到的世界没有被颠覆,这本身就说明不可能在实际计算中直接实现NTM.