“可识别性刻画半判定过程、定理枚举和存在性搜索,建立递归可枚举集合、部分可计算函数定义域与图灵机接受语言之间的对应;在Chomsky 层级中,它正是最一般的 Type 0 语言层。枚举器与识别…”
形式陈述
枚举器是带输出装置的图灵机,可在无限运行中依次打印有限串。它枚举的语言是曾被打印过的所有串;允许重复、乱序和有限或无限停顿。语言可被枚举当且仅当它可识别。由识别器到枚举器时,对所有输入做 dovetailing 交错模拟;由枚举器到识别器时,持续运行并在看到目标串时接受。
直觉
识别器检查一个给定候选,枚举器则持续产生有接受证据的对象。某个字被打印出来,便获得了有限的正证据;迟迟没有出现时,它既可能永远不出现,也可能仍在等待一段很长的计算。
允许重复不会改变可枚举集合:记录已经打印过的字,就能过滤重复。输出次序则有不同作用,要求按固定顺序递增会限制机器的能力,因为它必须处理尚未出现的较小候选。
例子与边界
所有二进制字可按长度—字典序依次输出:
若要求按长度—字典序严格递增输出,存在这样的枚举器当且仅当语言可判定。正向构造依次检查所有字,用判定器过滤非成员。反向对无限语言,持续枚举直到打印目标字或一个比它更大的字,分别回答接受或拒绝;严格递增的无限输出必然越过每个固定位置。有限语言本身可用有限表判定,空语言可由始终不输出的机器枚举。
推论与应用
枚举器刻画递归可枚举集合,并与 可识别语言 给出等价描述:语言可由 图灵机 识别,当且仅当存在机器枚举其全部成员。这个等价把半判定过程转换为生成过程,也解释了证明搜索、程序生成、程序行为枚举与形式系统定理集合为何常能被机械列出,却不能总能判定非成员。与 可判定性 相比,差别正落在“缺席是否能在有限时间内确认”。
参考资料
- 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。