图灵机

时间:2013-04-10 03:27:01

标签: finite-automata turing-machines formal-languages

我正在读一本关于语言和语言的书。 Automata和我不了解图灵机。我已经自学了DFA的NFA和Pushdown Automata而没有任何问题。有人可以解释一下这是做什么的吗?

B = {w#w |w∈{0,1} *}

下图包含了M1计算时磁带的几个快照 在输入011000#011000上启动时,在第2阶段和第3阶段。

Turing Machine

非常感谢!

2 个答案:

答案 0 :(得分:2)

“想象一下无穷无尽的酒店房间,每个房间都有一个灯泡和一个控制它的开关。最初,所有的房间都是黑暗的。机器人从其中一个房间开始,有能力操作开关和搬到邻近的房间。

机器人有几个可以进入的状态,每个状态根据当前房间是亮还是暗来确定它应该做什么。例如,机器人的规则可以包括以下状态:

“害怕”状态:

如果房间很暗,请打开灯并向左移动房间。

如果房间很轻,不要做任何事情并进入“正常”状态。  “正常”状态:

如果房间很亮,请关灯,然后移到右边的房间。

否则,进入“害怕”状态。

一个特殊状态是“停止”状态。当机器人发现自己处于这种状态时,该过程就完成了。

假设机器人有n个状态(不包括“停止”状态),它就会停止。这一点的最大房间数量是多少?

这个系统直接指向图灵机。酒店是胶带,机器人是图灵机,黑暗的房间和明亮的房间是0和1格。“

来自googology wiki。我给了它一个想法,但是,当然,自从我以来,这个文本已得到改进。

答案 1 :(得分:1)

图灵机是一种假想机器,带有存放符号的磁带。它可以有多个磁头,可以从磁带读取符号或将符号写入磁带。

现在你的语法说B = {w#w |w∈{0,1} *},即任何形式为“w#w”的字符串,其中w是0和1的任意组合或根本没有。因此,对于这个特定的例子,假设w = 011000。结果字符串将为011000#011000,您的图灵机将验证它是否遵循此语法。

在这种情况下,您的图灵机有一个头。它从字符串的开头开始。读取第一个字符为0.标记为“x”:意思是我读过这个。然后在#之后立即进行检查并检查它刚刚读取的内容是否匹配。在这种情况下,它也是0,因此它将其标记为匹配“x”。然后它返回到先前的位置并对下一个角色执行相同的操作。它一直这样做,直到达到#。当它读取散列或#时,它检查字符串的结尾,如果它是字符串的结尾,它接受这个字符串,表示是,这遵循给定的语法。