我正在读一本关于语言和语言的书。 Automata和我不了解图灵机。我已经自学了DFA的NFA和Pushdown Automata而没有任何问题。有人可以解释一下这是做什么的吗?
B = {w#w |w∈{0,1} *}
下图包含了M1计算时磁带的几个快照 在输入011000#011000上启动时,在第2阶段和第3阶段。
非常感谢!
答案 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”。然后它返回到先前的位置并对下一个角色执行相同的操作。它一直这样做,直到达到#。当它读取散列或#时,它检查字符串的结尾,如果它是字符串的结尾,它接受这个字符串,表示是,这遵循给定的语法。