在计算理论中解释多磁带图灵机?


具有多个磁带的图灵机(TM)称为多磁带图灵机。

每个磁带都有自己的读/写磁头。

对于 N 磁带图灵机

M={( Q,X, ∑,δ,q0,B,F)}

我们将多磁带图灵机定义为具有 k 个磁带和 k 个磁头独立移动的机器(多轨迹图灵机的推广)。

δ=QxXN ->Q x XN x {L,R}N

每个 TM 都有自己的读写磁头,但状态对所有磁头都是共有的。多磁带 TM 如下所示:

在每个步骤(转换)中,TM 读取所有磁头扫描的符号,根据这些符号和当前状态,每个磁头写入、向右或向左移动,以及控制单元进入新状态。

磁头的动作彼此独立。

示例

将两个数字(每个数字都表示为一个一元字符串)相乘以得到第三个数字,这对于简单的图灵机来说很难做到,但对于三磁带机器来说却相当简单。

计算开始前的磁带 计算开始前第二次加法的磁带

首先检查这两个数字是否为零:

(0,(B,B ,B ),(B,B ,B ),(S, S, S), Halt) 两者都为零

(0,(B, 1, B),(B, 1,B ),(S, S, S), Halt) 第一个为零

(0,(1,B ,B ),(1,B ,B ),(S, S, S), Halt) 第二个为零

(0,(1, 1, B),(1, 1B, ),(S, S, S), 1) 两者都不为零

将第二个磁带上的数字加到第三个磁带上:

(1,(1, 1,B ),(1, 1, 1),(S, R, R), 1) 复制

(1,(1,B ,B ),(1,B ,B ),(S, L, S), 2) 完成复制

将第二个磁带的磁头移动到数字的左端;将第一个数字的磁头向右移动一个单元格:

(2,(1, 1,B ),(1, 1,B ),(S, L, S), 2) 移动到左端

(2,(1,B ,B ),(1,B ,B ),(R, R, S), 3) 两种类型都向右移动一个单元格

检查第一个磁带磁头以查看是否已执行所有加法:

(3,(B, 1,B ),(B, 1,B ),(S, S, L), Halt) 完成

(3,(1, 1,B ),(1, 1,B ),(S, S, S), 1) 执行另一个加法

每个多磁带 TM 都有一个等效的单磁带 TM。

如果 M 有 k 个磁带,则 M0 通过在其单个磁带上存储相同的信息来模拟 k 个磁带的效果。

使用新的符号 # 作为分隔符来分隔不同磁带的内容(标记相关磁带部分的左/右端)。

M0 还必须跟踪每个磁带上磁头的位置。

在磁带符号上写一个带点的符号以标记该磁带上磁头所在的位置。带点符号只是添加到磁带字母表中的新符号。

如果一个 T 的磁带磁头的移动导致 M0 的磁头撞到 # 或 #,则必须移动磁带的该侧以腾出空间用于新的磁带单元格。

更新于: 2021年6月16日

4K+ 次查看

开启你的职业生涯

通过完成课程获得认证

开始学习
广告