数理逻辑5 -- 计算理论2

原创 2018年04月15日 16:17:59

图灵机的示意图(Diagram)

上节笔记给出了图灵机的定义,那一大堆四元组构成的指令集真个是比汇编代码还要难懂。不仅难写,更难检查。因此,我们需要一种“简便”的图灵机表示方式。

我们说,一个图灵机的示意图包含以下内容:
(1) 令F1,F2,...,Fr为任意图灵机,它们有共同的字符集为A={a0,a1,...,ak}
(2) 从平面上选择任意有限个点,称为顶点(vertex);
(3) 对每个顶点,填上一个图灵机Fi,同一个图灵机可填到多个顶点;
(4) 用箭头连接顶点,允许指向自身的肩头。每个箭头标上一个整数i,其中1ik。从同一个顶点出发的两个不同箭头,不许打同一个标签;
(5) 其中一个顶点画个圈圈围住它,表示初始顶点(initial vertex)

下图就是一个图灵机的示意图。
图灵机示意图例子

每个图灵机示意图都定义出了一个图灵机,它的四元组指令集由如下方法构成:
(1) 对图中的图灵机,写下它们所有的指令四元组,改写它们的状态符号,使得任意两个图灵机都没有共同的状态符号。但是,初始图灵机的状态符号保留不变;
(2) 对某个箭头u连接的两个图灵机Fi,Fj,若左边的图灵机Fi中的任意状态符号qs,都不存在qsau开头的四元组指令,那么就增加qsauauqt指令进新构造的图灵机,其中qt是右边图灵机Fj的状态符号。

以上第2点是为了保证,若原本的图灵机Fi停在qsau上时,右边的图灵机Fj可以接着继续工作。

因此,图灵机示意图就构造了一个新的图灵机,给定磁带上的任意输入,它的工作方式如下:
(1) 示意图中的初始图灵机开始工作;
(2) 当某个图灵机停止时,查看此时磁头读取的符号au,然后查看该图灵机对应的朝外的箭头,若这些箭头都不含有标签u,那么整个示意图停止工作;
(3) 若(2)中的某一个箭头的标签是u,那么该箭头对应的右边图灵机接着继续工作。

因此,我们就可以用示意图来构造各种图灵机。为此,我们需要进一步简化示意图的表达:
(1) 若一个顶点和另一个顶点相连接的箭头包含了所有的0,1,...,k,那么我们用一个无标签箭头取代这k个箭头;
(2) 若一个顶点和另一个顶点相连接的箭头包含了所有除u以外的标签,那么我们用箭头u来表示这k1个箭头;
(3) 令F1F2表示F1F2,令F1F2F3表示F1F2F3,等等。令F2表示FFF3表示FFF,等等。
(4) 若没有顶点被圈圈包起来,那么最左边的顶点就表示初始图灵机。

上述话语讲得云里雾里,我们来看几个具体的示意图。首先,我们需要三个基本的图灵机。

基本图灵机

假设字符集为A={a0,a1,...,ak}
1. r(右移机, right machine):四元组指令形如q0aiRq1,因此右移机的指令个数为k+1,它的操作很简单,读取一个符号,右移一格,停止。
2. l(左移机,left machine):指令形如q0aiLq1,读一个符号,左移一格,停止。
3. aj(常数机,constant machine):指令形如q0aiajq1,因此它的指令个数也是k+1个,操作是读一个符号,把它变成aj,然后停止。

常用示意图

基于上面的基本图灵机,我们构造几个常用的示意图。这些就是比机器码好一点,比汇编难一点的“图灵机代码”。

首先,我们定义一些缩写。

缩写

:表示任意符号
BB:连续的空字符串
B:右边全是空字符
B:左边全是空字符
W:任意非0长度的非空字符串
X:形如BW1BW2BWn,其中n1

  1. P,称P机器。如下图, 它的作用是找出当前符号右边(不含当前)第一个空字符。它的指令集是q0aiRq1,1ik,以及q1aiaiq0i>0
    P机器

  2. Λ,称Λ机器,如下图,找出当前符号左边(不含当前)的第一个空字符。
    L机器

  3. R,右止机器(right-end machine),如下图,它的操作是_XBB⇒∼XB_B,即若任意X右边以两个空字符结束,那么从左往右,把磁头移到X右边的第一个空字符位置。注意,上述式子中的下划线表示磁头位置。
    RE机器

  4. L,左止机器(left-end machine),如下图,它的操作是BBX_BB_X,即找到X左边第一个空字符位置。
    LE机器

  5. T,左漂机器(left-translation machine),如下图,操作是_BWB⇒∼WB_B,即把W移到左边的空字符左方。
    T机器

  6. σ,漂移机器(shift machine),如下图,操作是BW1BW2B_BW2B_B,即W2W1覆盖掉
    漂移机器

  7. C,清洗机器(clean-up machine),如下图,操作是BBXBWB_⇒∼WB_B,即把中间的X清洗掉。
    清洗机器

  8. K,词复制机器(word-copier),如下图,操作是BWB_BWBWB_。注意,那个绕回来的箭头是指向r的。
    词复制机器

  9. Kn,n价复制机器(n-shift copier),如下图,操作是BWnBWn1BW1B_BWnBWn1BW1BWnB_,即把Wn复制到最右边的位置。
    n复制机器

最后,下面这个不难证的引理告诉我们,示意图等价与图灵机。
引理5.2.1:对任意以A={a0,a1,...,ak}为字符集的图灵机,存在一个示意图,它由rla0,a1,...,ak构成,并且它们对所有磁带的作用效果一样。

版权声明:本文为博主原创文章,欢迎转载 https://blog.csdn.net/vermouthsister/article/details/79947870

数理逻辑2 -- 量化理论1

之前的笔记“数理逻辑1”介绍了命题演算,接下来在此基础上介绍量化理论,即引入量词符号∀\forall和相关的变量符号及函数符号。基于命题演算的形式逻辑有个明显的不足,就是难以表达诸如“所有x都具有y特...
  • vermouthsister
  • vermouthsister
  • 2017-07-25 10:21:42
  • 224

数理逻辑5 -- 计算理论1

图灵机 Turing Machine 我读此书和做笔记主要出自于好奇心,前三章是为了搞懂神神秘秘的哥德尔不完备定理,顺便学习一阶逻辑的知识。第四章的集合论是为了以后的实分析、测度论、概率和随机过程等...
  • vermouthsister
  • vermouthsister
  • 2018-04-14 16:37:13
  • 4

数理逻辑2 -- 量化理论5

接下来我们要建立类似命题演算里系统L那样的一阶逻辑公理系统。 先看一些定义。 定义2.16: BB,DD是好式子,Γ\Gamma是一个好式子的集合, BB是逻辑有效的(logically va...
  • vermouthsister
  • vermouthsister
  • 2017-07-27 14:10:48
  • 243

计算理论导引(第二版)(Michael Sipser著 唐常杰等译)习题解答(1-9章)

  • 2009年12月08日 22:23
  • 182KB
  • 下载

数理逻辑习题答案(第二版)

  • 2009年12月23日 17:52
  • 237KB
  • 下载

计算理论基础 第2版 Harry R. Lewis 第1章

看到计算理论基础这门课程,就挺怀念郑虹老师给我们讲编译原理的那段日子了。虽然理论性强,但还是要沉下心去读一读,毕竟学术、专业都比较枯燥。 这门课偏理论,主要是培养咱思考、解决问题的能力吧。根据教学,...
  • u010679719
  • u010679719
  • 2016-10-17 10:59:00
  • 412

数理逻辑2 -- 量化理论2

上一节笔记给出了一阶逻辑语言的定义,本节笔记将要讨论一阶逻辑语言的满足性(satisfiability)与真假性(truth and falsity)。在讨论之前,必须再给出一些关键定义。首先,一个好...
  • vermouthsister
  • vermouthsister
  • 2017-07-25 12:10:40
  • 127

《计算理论导引》唐常杰译第二版1-9章课后题答案

  • 2015年05月04日 10:52
  • 1.35MB
  • 下载

计算理论基础答案(部分)

  • 2012年11月07日 08:49
  • 331KB
  • 下载
收藏助手
不良信息举报
您举报文章:数理逻辑5 -- 计算理论2
举报原因:
原因补充:

(最多只允许输入30个字)