一、问题求解的计算之道
人们在生活、生产、学习、创造的过程中总会遇到各种各样的问题。为了解决这些问题,人们使用占卜、求神、经验、数学、实验、模型、哲学等各种各样的方法和工具。而其中数学才是解决问题最强有力的工具,尽管数学本身也存在着很多问题(有些问题无法用数学语言明确表述、或者有些可明确表述的问题仍无法解决)。
1. 基于有穷观点的能行方法
为了解决数学本身的可检验性问题,数学家希尔伯特提出“能否找到一种基于有穷观点的能行方法,来判定任何一个数学命题的真假”。
这种方法的特征如下:
- 由有限数量的明确有限指令构成;
- 指令在执行有限步骤后终止;
- 指令每次执行都总能得到唯一结果;
- 原则上可以由人单独采用纸笔完成,而不需要依靠其他辅助;
- 每条指令可以机械地被精确执行,而不需要智慧和灵感。
2. 关于“计算”的几种数学模型
- 哥德尔和克莱尼的递归函数模型;
- 丘奇的Lambda演算模型;
- 波斯特的Post机模型;
- 图灵的图灵机模型。
以上的几种“基于有穷观点的能行方法”的计算模型,全部都是等价的。也就是说,在一个模型中能解决的问题,在其他模型中也是可以解决的。
希尔伯特的计划最终被证明无法实现。但**“能行可计算”概念成为计算机理论的基础**,比如:图灵机成为了现代计算机的理论基础。
二、图灵机计算模型
1. 图灵机(Turing Machine)基本概念
图灵机是一种理论上的数学模型或者说抽象的机器,并不是某台具体的机器。基本思想是用机器模拟人们用纸笔进行数学运算的过程,但比数值计算更简单:
-
在纸上写上或擦除某个符号;
-
把注意力从纸上的一个位置转向另一个位置;
-
在每个阶段,要决定的下一步动作依赖于:
(1)此人当前所关注的纸上某个位置的符号;
(2)此人当前思维的状态。
2. 图灵机的基本定义
图灵机由以下部分构成:
- 一条无限长的分格纸带,每格可以记录一个符号;
- 一个读写头,可以在纸上左右移动,能读写格子上的字符;
- 一个状态寄存器,记录有限状态中的1个状态;
- 一系列有限的控制规则(如何移动读写头,什么状态下写入什么字符等)。
图片来源于网络,侵删。
图灵机模拟器软件:Visual Turing