首页 . 文学 . 语言文字 . 计算语言学及语料库语言学 . 计算语言学 . 图灵机

图灵机

/Turing machine/
条目作者冯志伟

冯志伟

最后更新 2022-01-20
浏览 516
最后更新 2022-01-20
浏览 516
0 意见反馈 条目引用

由控制器、分成方格的输入带子以及每次可扫描输入带子上一个方格的读写头所组成的机器。由英国数学家A.M.图灵(Alan Mathison Turing,1912~1954)最早提出。

英文名称
Turing machine
创立者
A.M.图灵
所属学科
语言文字

图灵机中的读写头除了能在带子上读,还可以在带子上写,而且这个读写头还能向左或向右运动。图灵机的计算从初始状态q0开始。这时,读写头在最左的非空白符号上。输入带子的左边和右边是无限长的,除输入符号串之外,其他所有的方格都记以空白符号#。

图灵机的指令是形式为(ai,qj,qk,al,x)的五元组,其中,aial是字母表符号(可能相同),qjqk是状态(也可能相同),x的值可为L(表示向左运动)或R(表示向右运动)。这个指令可解释如下:如果读写头扫描ai,控制器处于状态qj,则把符号ai换成符号al,把状态qj变为qk。x的值等于R时,读写头向右移动一个方格;当x的值等于L时,读写头向左移动一个方格,被读的符号有时也可以是空白,这样,控制器就可以超出输入符号串的范围而到达带子的任何一个部分。

当图灵机到达的指令中不能再继续有五元组时,图灵机就停止。如果图灵机在最后状态停止,它就接收了输入符号串,如果图灵机停止在非最后状态,则输入符号串被拒绝。由于图灵机不一定要在空白符号停止,它就可能会把某一计算没完没了地进行下去而停不下来。如果对于某一给定的输入符号串,图灵机的计算永不停止,那么,就认为这个输入符号串被拒绝。

例如,输入符号串在字母表{a,b}上,图灵机可读写空白符号#,状态为q0q1q2,初始状态为q1,最后状态为q0q2,指令①~⑥如下:

(a,q0,q1,a,R)

(a,q1,q2,b,L)

(a,q2,q0,b,R)

(a,q0,q0,b,R)

(#,q1,q1,a,R)

(#,q0,q2, #,R)

计算1:

图1 执行指令6后,输入符号串被接收图1 执行指令6后,输入符号串被接收

当执行指令⑥后,没有什么指令可以再执行了,图灵机停止。由于状态是最后状态,输入符号串被接收。

计算2:

图2 执行指令1之后,输入符号串被拒绝图2 执行指令1之后,输入符号串被拒绝

执行指令①之后,没有指令能够再执行,图灵机停止。由于不是最后状态,因此,输入符号串被拒绝。

计算3:

图3 不断地执行指令5,输入符号串被拒绝图3 不断地执行指令5,输入符号串被拒绝

不断地执行指令⑤,控制器不断地用代替右边的空白符号#,因此,输入符号串被拒绝。

由上可以看出,图灵机在运算时,限制比有限自动机宽得多:有限自动机的读数头只能读,而图灵机的读写头既能读又能写;有限自动机只能向一个方向运动,而图灵机则既能向左运动,又能向右运动;在与4种类型的形式语法相对应的4种自动机中,有限自动机是限制最严的,图灵机是限制最宽的。因此,有限自动机只能识别文法上限制最严的有限状态语言,图灵机则能识别文法上限制最宽的0型语言。以有限自动机和图灵机为两个极端,在它们中间是后进先出自动机线性有界自动机

相关条目

阅读历史

    意见反馈

    提 交

    感谢您的反馈

    我们会尽快处理您的反馈!
    您可以进入个人中心的反馈栏目查看反馈详情。
    谢谢!