Skip to content

通用图灵机

Universal Turing machine

输入机器编码和输入串后模拟该机器运行的图灵机。

形式陈述

固定一种可有效解析的编码。通用图灵机 U 接收 M,w,其中 M 是图灵机、w 是其输入,并逐步模拟 Mw 上的运行:若 M 接受、拒绝或永不停机,U 分别表现为接受、拒绝或永不停机。模拟可把 M 的状态表、各带内容和读写头位置编码到 U 的工作带上;不同合理编码和单带/多带实现只改变模拟开销,不改变可计算函数类。

直觉

机器本身也能表示成数据。一个固定解释器读取“程序编码 + 输入”,即可执行所有其他机器,这正是通用计算机和存储程序思想的抽象核心。

例子与边界

现代解释器把源程序或字节码连同输入交给同一个运行时,结构上类似 U(M,w)。通用性不表示有限设备能实际保存无穷带,也不保证高效:朴素模拟可能产生多项式甚至更大的时间开销。若编码不是可判定、可解析的合法机器描述,所谓模拟问题本身就没有固定形式。

推论与应用

通用机使“程序分析另一个程序”可形式化,导出停机问题、对角化、自解释器和可计算枚举。复杂性理论还需指定高效通用模拟器,才能把机器描述开销纳入时间或空间界。

参考资料
  • Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013,Ch. 3, universal Turing machine and machine encodings。
  • Alan M. Turing, “On Computable Numbers, with an Application to the Entscheidungsproblem,” Proceedings of the London Mathematical Society, 1936,Full paper, universal-machine construction and machine descriptions。