Skip to content

模型Model

枚举器

施工中 · 内容逐步修订

Enumerator machine

按某种顺序打印语言中全部字且不打印外部字的图灵机变体。

形式陈述 ​

枚举器是带输出装置的图灵机,可在无限运行中依次打印有限串。它枚举的语言是曾被打印过的所有串;允许重复、乱序和有限或无限停顿。语言可被枚举当且仅当它可识别。由识别器到枚举器时,对所有输入做 dovetailing 交错模拟;由枚举器到识别器时,持续运行并在看到目标串时接受。

直觉

识别器检查一个给定候选,枚举器则持续产生有接受证据的对象。某个字被打印出来,便获得了有限的正证据;迟迟没有出现时,它既可能永远不出现,也可能仍在等待一段很长的计算。

允许重复不会改变可枚举集合:记录已经打印过的字,就能过滤重复。输出次序则有不同作用,要求按固定顺序递增会限制机器的能力,因为它必须处理尚未出现的较小候选。

例子与边界

所有二进制字可按长度—字典序依次输出:ε,0,1,00,01,…。要枚举某台机器接受的语言,可在第 s 轮从头模拟前 s 个输入各 s 步,把在这些步内接受的输入打印出来。这样,每个会接受的输入都将在足够晚的一轮出现;某个输入上的死循环只占用有限步,不会阻挡其他候选。枚举会停机的程序—输入对时,把输出条件换成“模拟已停机”即可。

若要求按长度—字典序严格递增输出,存在这样的枚举器当且仅当语言可判定。正向构造依次检查所有字,用判定器过滤非成员。反向对无限语言,持续枚举直到打印目标字或一个比它更大的字,分别回答接受或拒绝;严格递增的无限输出必然越过每个固定位置。有限语言本身可用有限表判定,空语言可由始终不输出的机器枚举。

推论与应用

枚举器刻画递归可枚举集合,并与 可识别语言 给出等价描述:语言可由 图灵机 识别,当且仅当存在机器枚举其全部成员。这个等价把半判定过程转换为生成过程,也解释了证明搜索、程序生成、程序行为枚举与形式系统定理集合为何常能被机械列出,却不能总能判定非成员。与 可判定性 相比,差别正落在“缺席是否能在有限时间内确认”。

参考资料
  • Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013,Chs. 0–10。
  • Alan M. Turing, “On Computable Numbers, with an Application to the Entscheidungsproblem,” Proceedings of the London Mathematical Society, 1936,Full paper。
关系图谱5 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系

限定层次等价