图灵机的扩展

官方信息技术老师·22 页·深入(追求细节与边界)·0 次浏览·2 天前
图灵机计算理论扩展模型可计算边界

图灵机的扩展

看懂多带、非确定、通用机扩展如何等价于标准图灵机,以及计算能力的真正边界

按 空格/→ 演示下一步

1 / 22 页

全部页面点击任意一页,跳回舞台从这页播放

图灵机计算理论扩展模型可计算边界

图灵机的扩展

看懂多带、非确定、通用机扩展如何等价于标准图灵机,以及计算能力的真正边界

1第 1 页 · 图灵机的扩展

图灵机的形式化定义

上一页讲了扩展版图灵机能干什么——但「能干什么」得有严谨边界,边界靠形式化定义。一个图灵机就是七元组 M=(Q,Σ,Γ,δ,q₀,B,F),每个符号都对应一个不可含糊的部件。

Q 状态集
机器所有「内部状态」的有限集合,离散可枚举
Σ Γ B 字母表
Σ 输入字符集;Γ 带上能写的字符集;B 代表空白格
δ 转移函数
由当前状态+读到字符 → 写下符号+移动方向+新状态
q₀ F 初始接受
q₀ 唯一开机状态;F⊆Q 是若干个「成功停机」状态
会计在无限账本上工作对应 →图灵机七元组

Q=当前在做什么;Γ=可写的字符;B=空白行;δ=操作手册;q₀=开账那天;F=写完结清的那行

M=(Q,Σ,Γ,δ,q0,B,F)δ:Q×ΓQ×Γ×{L,R}M = (Q, \Sigma, \Gamma, \delta, q_0, B, F) \quad \delta: Q \times \Gamma \to Q \times \Gamma \times \{L, R\}
2第 2 页 · 图灵机的形式化定义

图灵机的基本结构

从左往右读一圈:读符号→控制器查表→写/移/换状态同拍发生→进入下一轮。

图解渲染中…
s3转移函数 δ(q,a)=(q',a',d),一次同时决定三件事s4在当前格子覆盖写入新符号s5读写头向左或向右移动一格s6控制器切换到新状态,'记忆'的来源
3第 3 页 · 图灵机的基本结构

图灵机的计算过程

图灵机的计算本质是一连串格局的演变,每一步都是一次原子转移。

1
初始格局
纸带左侧写入输入串,磁头置于最左非空格处,状态为起始 q₀
2
读取符号
读取磁头下方符号 s,结合当前状态 q 准备查转移函数
3
一步转移
δ(q,s)=(q',s',d) 原子地给出:写 s'、按 d 移、状态切 q'
4
新格局
新纸带内容、新磁头位置、新状态三要素合起来构成下一帧
5
判定终止
若新状态为接受态则接受,拒绝态则拒绝,否则回到第2步继续
4第 4 页 · 图灵机的计算过程

单带图灵机的局限

前面看到的图灵机读、写、左右移头——看起来挺自由。但只用一条带时,你会撞上几堵墙:有些任务做着做着就被迫回到起点。

三功能挤一条带
输入、工作、输出共用同一道带,改写就把原数据覆盖了
磁头只能逐步走
想到第 i 格必须一格一格走过去,没有随机访问
来回调头代价高
反复回扫把线性问题拖成平方级时间
典型语言变慢
识别 ww 这类重复结构,单带至少要 n² 步
单条窄巷搬运对应 →单带图灵机的移动

巷子只容一人侧身过,货搬到中间想回头核对,得原路折返;通道多就不必来回跑

T(n)=Ω(n2)T(n)=\Omega(n^2)
5第 5 页 · 单带图灵机的局限

多道图灵机的结构

从左往右看:物理单带被逻辑切层,每层记一种符号,读头整列扫描。

图解渲染中…
B逻辑分层,物理上仍是同一格F多个符号打包成一个组合读出
6第 6 页 · 多道图灵机的结构

多带图灵机的定义

上页的多道图灵机用一条带子分成多道实现并行读取,但所有内容仍挤在同一条带子上。若要真正独立地存放不同数据——就需要多带。

k 条独立带
每条带子都是独立无限的存储介质,互不干扰
k 个读写头
每个头只在自己对应的那条带上读写,k 个头并发动作
联合转移函数
一步内各头读各带符号,共同决定下一状态、写入和移动
k 任意正整数
k=1 时退化为单带图灵机,是其严格扩展
学生有多本笔记对应 →多带图灵机

每本笔记记一门课,每本一支笔在并行书写

δ:Q×ΓkQ×Γk×{L,R}k\delta: Q \times \Gamma^k \to Q \times \Gamma^k \times \{L,R\}^k
7第 7 页 · 多带图灵机的定义

多带图灵机的等价性

多带图灵机让 k 条带子和 k 个读写头各自独立工作——这让它写起来更顺手,可这「顺手」是真本事,还是只是书写方式更舒服?这一页给出回答:识别语言的能力完全等价,但效率要打折扣。

编码到单带轨道
用分隔符把 k 条带的内容交替排到一条带的多个轨道
标记虚拟磁头
用专用符号(如 #)标出每条虚拟带读写头的当前格
同步多头动作
每步扫描全带找出所有磁头,按原 TM 规则一并更新
时间复杂度上升
原本 O(T(n)) 的多带机,模拟后变 O(T(n)²)
语言识别等价
接受的语言集合完全一样;可计算性相同,仅效率有差
几个会计各记一本账对应 →多带机的并行读写

一人模拟就得把几本账并到一册,靠书签来回定位各本当前页

Tsingle(n)=O(Tmulti(n)2)T_{\text{single}}(n) = O\bigl(T_{\text{multi}}(n)^2\bigr)
8第 8 页 · 多带图灵机的等价性

标准转移函数的形式

前几页我们看到多带、多道扩展让 δ 越来越复杂。要读懂那些扩展,先回到最基础的版本——单带标准图灵机的每一步行动,全部压在一个五元组里。这一页我们把它拆开看。

当前状态 q
控制器所处的逻辑阶段,相当于一个模式标记
读入符号 X
读写头当前格子里的字符,是这一步的唯一输入
下一状态 p
执行后控制器切到的新模式,决定后续行为
写入符号 Y
覆盖当前格子的新字符,可以等于 X(相当于不改动)
移动方向 D
L 或 R 之一,读写头沿带子平移一格
电梯控制器对应 →δ(q,X)=(p,Y,D)

当前楼层+按键→目标楼层+显示更新+轿厢方向

δ(q,X)=(p,Y,D),  D{L,R}\delta(q, X) = (p, Y, D), \; D \in \{L, R\}
9第 9 页 · 标准转移函数的形式

静止图灵机

标准图灵机读一格后,读写头必须左移或右移——没有「原地不动」的选项。但如果我们想反复观察当前格,就得给机器多一种动作。

增加 Stay 移动
移动方向集合从 {L, R} 扩展为 {L, R, S},S 代表读写头原地不动
转移函数更新
δ 的输出变为 Q × Γ × {L, R, S},新增的 S 是第三种移动符号
计算能力等价
带 Stay 的图灵机能被标准图灵机模拟,扩展只让表达更方便
读书时夹的书签对应 →Stay 移动选项

标准机读一页就得翻下一页;Stay 像书签,让读写头停在当前格反复看

δ(q,a)=(q,b,D), D{L,R,S}\delta(q,a) = (q', b, D),\ D \in \{L, R, S\}
10第 10 页 · 静止图灵机

扩展移动的影响

上一节我们允许读头原地不动,这看起来像是放宽了约束。但让磁头停下来真的会增强机器吗?本节给出回答。

静止移动的含义
允许读头在某一步既不左移也不右移,只改写当前格
核心结论
静止图灵机的计算能力等于标准图灵机,没有增强
状态拆分模拟
把一步「改写+不动」拆成两步相同读写,用状态接力完成
等价性
静止图灵机能接受的语言,标准图灵机也能接受,反之亦然
扩展的真正价值
扩展只是语法便利,不改变可计算的边界
编程的语法糖对应 →图灵机的扩展

语法糖让代码写起来更顺手,但不会让程序能算出新东西

δ:Q×ΓQ×Γ×{L,R,S}, S 即 Stay\delta: Q \times \Gamma \to Q \times \Gamma \times \{L, R, S\},\ S\text{ 即 Stay}
11第 11 页 · 扩展移动的影响

受限图灵机的思想

前面我们给图灵机加了多带、多头、扩展移动——能力没本质增加。本页反过来:能不能把图灵机削得更简单——比如禁止左移、限定半带、不能写——能力居然还一样?受限模型要回答的正是这个问题。

等价性目标
受限模型必须仍能模拟标准 TM,能力不增不减
剥离冗余能力
逐步砍掉看似必要其实可替代的特性,找出计算的最小充分条件
简化证明技巧
受限模型上构造互模拟更直观,结果可迁移回一般情形
贴近真实约束
只读输入、有限工作存储,对应实际计算机的物理限制
工具箱只留几件基本工具对应 →受限图灵机仍能完成一般计算

工具越少,越能看清哪些工具是真正不可替代的

12第 12 页 · 受限图灵机的思想

线性有界自动机LBA

上页说可以限制图灵机来构造更弱的模型。最直觉的限制方式是限定磁带长度——给一个常数 k,磁带最多只能用到输入长度乘以 k 那么长。这一类受限图灵机,叫线性有界自动机 LBA。

定义
磁带被限制在输入长度的常数倍内,读写头不能越界
边界标记
在输入两端放 ⊲ 和 ⊃ 哨兵,读写头落到哨兵即停
识别能力
恰好对应上下文相关语言 CSL,即 1 型文法生成的语言类
与一般TM对比
空间被限制为 O(n),计算能力严格弱于通用图灵机
LBA问题
确定性LBA与不确定性LBA是否等价?计算复杂性经典开放问题
在固定大小的答题区域内作答对应 →LBA磁带边界限制

输入多长,可用空间就是它的常数倍,不能向两侧多伸一格

13第 13 页 · 线性有界自动机LBA

LBA的工作方式

从带⊢⊣哨兵的输入带开始,读写头每步:读符号→查δ→判方向→检查是否撞边界。撞到即拒绝停机。

图解渲染中…
a2⊢左哨、⊣右哨,头永远不能越出这两道墙a5δ是受限转移函数,给出新符号与移动方向a7左移前必先问是否撞到左哨⊢,这是与标准TM的关键区别a10撞到哨兵=计算失败,机器停机并拒绝输入
14第 14 页 · LBA的工作方式

图灵机与LBA的对比

结构相似却常被混淆:空间边界与语言层级才是真正的分水岭

标准图灵机
  • 读写带可无限延伸,无空间限制
  • 识别递归可枚举语言 r.e.
  • 停机问题不可判定
  • 通用计算模型的原型
线性有界自动机 LBA
  • 带长限制为输入的线性倍数
  • 识别上下文有关语言 CSL
  • 停机问题同样不可判定
  • 受限但贴近实际计算场景
TM 是通用天花板,LBA 用更小代价刻画上下文有关语言;选谁看语言层级,不看强弱
15第 15 页 · 图灵机与LBA的对比

其他受限图灵机

前面我们限制了磁带的形态,多带多道都仍是图灵等价。那再激进一点——直接限制读写头,或把磁带整个换成简陋的计数器,还撑得住吗?

只读头图灵机
输入带只能读不能写,但配独立的可读写工作带;仍图灵等价
计数器机结构
用有限个存非负整数的计数器代替磁带,指令只有 +1、-1、判0、跳转
单计数器的上限
只有一个计数器时能力塌到上下文无关语言(CFL),等价于下推自动机
双计数器即图灵完备
Minsky 定理:两个计数器即可模拟任意图灵机,重新达到图灵等价
老式算盘对应 →计数器机

每一档就是一个计数器:上推一珠=+1,下推一珠=-1,档上无珠=判0;几档就是几个独立计数器

16第 16 页 · 其他受限图灵机

自动机层次结构

中央图灵机为基准;虚线指等价变体,实线逐级受限即能力包含。

图解渲染中…
TM通用图灵机:所有变体的能力参照基准LBA纸带长度受输入长度线性约束PDAFA 加一条栈,可识别上下文无关语言FA仅有有限状态,识别正则语言
17第 17 页 · 自动机层次结构

有限自动机与图灵机

正则语言 vs 递归可枚举语言——自动机能力阶梯的最低与最高。

有限自动机
  • 无纸带,仅靠有限状态记忆
  • 读头只读、只能单向移动
  • 只能识别正则语言
  • 无法计数,也不能处理嵌套
图灵机
  • 无限长纸带,可读可写任意符号
  • 读头可左右自由移动
  • 能识别递归可枚举语言
  • 图灵完备,可模拟任何算法
FA 因状态有限注定无法计数;TM 的无限纸带突破了这层天花板,正则语言严格包含于递归可枚举语言。
18第 18 页 · 有限自动机与图灵机

下推自动机与图灵机

下推自动机和图灵机都来自自动机家族,但一个靠栈、一个靠磁带,能处理的语言天差地别。

下推自动机 PDA
  • 存储只有栈,先进后出
  • 识别上下文无关语言
  • 非确定比确定能力更强
  • 等价于上下文无关文法
图灵机 TM
  • 存储是无限磁带,可来回扫
  • 识别递归可枚举语言
  • 确定与非确定能力等价
  • 等价于无限制0型文法
栈的先进后出是PDA的天花板,处理嵌套/括号匹配够用;需要一般计算的,必须上磁带。
19第 19 页 · 下推自动机与图灵机

Church-Turing论题

图灵机作为计算模型的通用性论题

Church-Turing论题
图灵机作为计算模型的通用性论题
20第 20 页 · Church-Turing论题

核心概念自测

点击作答

图灵机经过多带、多道、允许静止等扩展后,与标准图灵机相比:

21第 21 页 · 核心概念自测

深入思考

先自己琢磨,再翻答案对照思路——别急着对照。

1多带图灵机与单带图灵机在「能算」上等价,模拟时为何要付出效率代价?这意味着什么?

参考答案提示:模拟多带需把多条带和磁头位置编码到单带不同区域,代价通常是多项式级。「等价」只关乎能力,不关乎速度——能力等价不等于性能等价。

2LBA 把工作带限制在输入长度内,这种「看起来很小的限制」为什么让它弱于标准图灵机?

参考答案提示:空间受限让 LBA 只识别上下文有关语言;更关键的是,它的空性问题至今未决——受限带来的不是简单变弱,而是判定上更微妙。

3面对号称「超越图灵机」的计算模型,基于 Church-Turing 论题,你第一句应该追问什么?

参考答案提示:先问「它解决了哪个图灵机算不了的问题?」。要么是描述不清(偷偷依赖物理过程),要么是把「算得快」与「能算」混为一谈。

22第 22 页 · 深入思考