Skip to content

枚举器

Enumerator machine

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

条目类型
模型

形式陈述

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

直觉

识别器从给定候选出发寻找接受证据,枚举器则把语言看成一条可能无限延伸的输出流,系统地生成所有有证据的对象,而不是逐个回答成员资格。某个字符串只要最终被打印出来,就获得了有限的正证据;没有出现则无法在有限时间内判断它永远不会出现。交错模拟保证不会因某个永不停止的候选而阻塞后续候选,而允许重复和任意次序不会改变可枚举的集合,因为这些都可由额外 bookkeeping 消除。

例子与边界

所有二进制串可按长度和字典序依次输出:\varepsilon,0,1,00,01,。要枚举某台机器接受的语言,或所有会停机的程序—输入对,则应做 dovetailing:第 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。
关系图谱4 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

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

限定层次等价