欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】
图灵机Turing machine是英国科学家阿兰·图灵Alan Turing在1937年构想的一个计算机原型,图灵机被计算机届公认为现代计算机理论的开端,可以说,没有这个图灵机,就没有现代计算机的诞生,因此,阿兰图灵也被称之为计算机科学之父。
以上是教科书式的内容,但到底图灵机是怎么个东西,原理是怎么样的,为什么这么有意义,却很少有人真的说清。
目的起源
图灵首先是个数学家,他有一个超前的想法,那就是建造一台机器,用来模拟人们用纸和笔进行运算的过程,他仔细思考之后认为,人的计算过程就是两种动作的组合:
- 在纸上写下或者擦掉、修改某个符号。数字、字符等等都可以看做是符号,最简单情况下肯定就是数字0和1。
- 在一个地方写完擦完了,就挪到纸上的另外一个地方继续写啊擦啊。
每次除了写擦和换位置,另一个关键因素就是人的思考和决定,而这个思考又是依赖两个因素进行:
- 纸上当前位置的符号。
- 他头脑里的状态,就是那一瞬脑子里在想着什么。
基本模型
开始的配图看起来有些神秘,看上去也很复杂,但那只是艺术家的幻想罢了,真实的图灵机并不复杂。
为了模拟人做运算的过程,图灵构想的机器包含以下几个部分:
- 一个很长很长的纸条TAPE,上面被分成一个接一个的格子,每个格子内可能是空的,也可能是1或者是0。
- 一个能够左右移动的读写头HEAD,就像一个指针可以在纸条的格子上来回移动,而且能够读懂格子上的数字,也能把数字擦了再改写成别的数字。
- 一个状态寄存器,你可以把它当做是长在HEAD上的一个小屏幕,屏幕上能够显示不同的字符表示人大脑里当前记住的一个状态数字State。
- 一套控制规则表格TABLE,它根据寄存器当前显示的状态字符和和当前纸条位置的数字来确定读写头下一步该向左还是向右还是不动停止,以及下一步该把寄存器修改成什么新的数字,大概就是这么三步:
- 在纸条当前格子擦除或写入新的数字。
- 移动HEAD,向左L或向右R或者不动N。
- 修改寄存器的状态数字。
最简单的例子
下面是一个用于翻转0和1的图灵机程序。
只要我们把指针放在纸条最右侧的非空位置上,过一会儿运行完毕之后,整个纸条上的连续的0和1就会被翻转过来,最终指针也会停留在最左侧位置上。
从这里我们可以粗略把它对应到我们的计算机设备,底下的规则表相当于我们编写的程序,纸条上的0和1相当于我们硬盘上存储的数据,而指针则相当于我们的CPU和内存,它根据程序代码设定的规则不断地处理数据,并不停地在内存中保存和更新临时状态(临时变量)。
欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】
每个人的智能新时代
如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,欢迎转载~
END