“可识别性刻画半判定过程、定理枚举和存在性搜索,建立递归可枚举集合、部分可计算函数定义域与图灵机接受语言之间的对应;在Chomsky 层级中,它正是最一般的 Type 0 语言层。枚举器与识别…”
形式陈述 ​
枚举器是带输出装置的图灵机,可在无限运行中依次打印有限串。它枚举的语言是曾被打印过的所有串;允许重复、乱序和有限或无限停顿。语言可被枚举当且仅当它可识别。由识别器到枚举器时,对所有输入做 dovetailing 交错模拟;由枚举器到识别器时,持续运行并在看到目标串时接受。若语言可判定,还可按长度—字典序无重复地枚举。
直觉
识别器从给定候选出发寻找接受证据,枚举器则把语言看成一条可能无限延伸的输出流,系统地生成所有有证据的对象,而不是逐个回答成员资格。某个字符串只要最终被打印出来,就获得了有限的正证据;没有出现则无法在有限时间内判断它永远不会出现。交错模拟保证不会因某个永不停止的候选而阻塞后续候选,而允许重复和任意次序不会改变可枚举的集合,因为这些都可由额外 bookkeeping 消除。
例子与边界
所有二进制串可按长度和字典序依次输出:
枚举顺序若被额外要求严格递增,能力会变化:对可判定语言可以先判定再按序扫描;一般可识别语言未必有可计算的无重复有序枚举。有限时间内尚未输出某串,也不能据此拒绝它。
推论与应用
枚举器刻画递归可枚举集合,并与 可识别语言 给出等价描述:语言可由 图灵机 识别,当且仅当存在机器枚举其全部成员。这个等价把半判定过程转换为生成过程,也解释了证明搜索、程序生成、程序行为枚举与形式系统定理集合为何常能被机械列出,却不能总能判定非成员。与 可判定性 相比,差别正落在“缺席是否能在有限时间内确认”。
参考资料
- 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。