图灵机二进制加法
萌到你眼炸
722次浏览
2021年01月17日 16:27
最佳经验
本文由作者推荐
海豹突击队第六分队-什么是散文
1.
图灵简介
阿兰
·
麦席森
·
图灵(
1912~1954
),英国著名数学家、逻辑学家、密码学家,被称为计
算机科学之 父、人工智能之父。
1912
年
6
月
23
日生于英国帕丁顿 ,
1931
年进入剑桥大学
国王学院,师从著名数学家哈代,
1938
年在美国普林斯顿大学取得博士学位,二战爆发后
返回剑桥,
曾协助军方破解德国的著名密码 系统
Enigma
,
帮助盟军取得了二战的胜利。
1954
年
6
月
7
日在曼彻斯特去世。
图灵是计算机逻辑的奠基者,提出了
“
图灵机
”
和
“
图灵测试
”
等重要概念。 人们为纪念其
在计算机领域的卓越贡献而专门设立了
“
图灵奖
”
。< br>
2.
图灵机简介
什么是图灵机
?
首先,我们用
IT
行业的语言来描述的话就是:
1
图灵机是一个处理器
2
图灵机的正常工作需要
1
个内存条,内存条中有一定的初始数据
3
图灵机可以对内存条的任何地址,按照一定的规则,进行读
/
写
4
图灵机能够根据内存条中的数据,计算出一个结果,这个结果记录在内存条上
5
内存条的容量是无限的
6
在计算出结果之前,图灵机可以工作任何时间,只要是有限的
7
内存条,图灵机,可以用任何材料制作,比如纸条,电路,甚至可以用程序模拟
然后,请注意以下几点:
1
图灵机有很多种,作用各不相同
2
每一台图灵机
(
处理器
)
都只有一个固定的运行规则,或者说 ,只有
1
种功能
3
真正的图灵机是制造不出来的,因为内存有限, 计算时间有限,但是可以近似地实现
它!
基本思想:
图灵的基本 思想是用机器来模拟人们用纸笔进行数学运算的过程,
他把这样的过程看作
下列两种简单的动作 :
在纸上写上或擦除某个符号;
把注意力从纸的一个位置移动到另一个位置;
而在每个阶段,人要决定下一步的动作,依赖于
(a)
此人当前所关注的纸上某个位置
的符号和(
b)
此人当前思维的状态。
为了模拟人的这种运算过程,
图灵构造出一台假想的 机器,
该机器由以下几个部分组成:
1.
一条无限长的纸带
TAPE
。纸带被划分为一个接一个的小格子,每个格子上包含一个
来自有限字母表的符号 ,
字母表中有一个特殊的符号表示空白。
纸带上的格子从左到右依此
被编号为
0,1,2,...
,纸带的右端可以无限伸展。
2.
一个读写头
HEAD
。
该读写头可以在纸带上左右移 动,
它能读出当前所指的格子上的
符号,并能改变当前格子上的符号。
3.
一套控制规则
TABLE
。它根据当前机器所处的状态以及当 前读写头所指的格子上的
符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的 状态。
4.
一个
状态寄存器
。
它用来保存图灵机当前所处 的状态。
图灵机的所有可能状态的数目
是有限的,并且有一个特殊的状态,称为停机状态。参见 停机问题。
注意这个机器的每一部分都是有限的,
但它有一个潜在的无限长的纸带,
因此这种机器
只是一个理想的设备。图灵认为这样的一台机器就能模拟人类所能进行的任何计算 过程。
在某些模型中,纸带移动,而未用到的纸带真正是
“
空白
”
的。要进行的指令(
q4
)展示
在扫描到方格之上( 由
Kleene (1952) p.375
绘制)
。
在某些模型中,读写头沿着固定的纸带移动。要进行的指令(
q1
)展示在读写头内。
在这种模型中
“
空白
”
的纸带是全部为
0
的。有阴影的方格,包括读写头扫描到的空白,标
记了
1,1,B
的那些方格,和读写头符号,构成了系统状态。
所谓的图灵机就是指一个 抽象的机器,
它有一条无限长的纸带,
纸带分成了一个一个的
小方格,
每个方 格有不同的颜色。
有一个机器头在纸带上移来移去。
机器头有一组内部状态,
还有一些 固定的程序。
在每个时刻,
机器头都要从当前纸带上读入一个方格信息,
然后结合自己的内部状态查找程序表,
根据程序输出信息到纸带方格上,
并转换自己的内部状态,< br>然
后进行移动。
形式化:
一台图灵机是一个七元组,{Q
,
Σ
,
Γ
,
δ
,
q0,qacc ept,qreject}
,其中
Q
,
Σ
,
Γ
都是
有限集合,且满足
1.Q
是状态集合;
2.Σ
是输入字母表,其中不包含特殊的空白符
□
;
3.Γ
是带字母表,其中
□
∈
Γ
且
Σ
∈
Γ
;
4. δ
:
Q×
「
→Q×Γ×{L,R}
是转移函数,其中
L,R
表示读写头是向左移还是向右移;
5.q0
∈
Q
是起始状态;
6. qaccept
是接受状态。
t
是拒绝状态,且。
qreject≠qaccept
图灵机
M = (Q
,
Σ
,
Γ
,
δ
,
q0,qaccept,qreject)
将以如下方式运作:
< br>开始的时候将输入符号串从左到右依此填在纸带的第号格子上,
其他格子保持空白
(即< br>填以空白符)。
M
的读写头指向第
0
号格子,
M
处于状态
q0
。机器开始运行后,按照
转移函数
δ
所描述的规则进行计算。例如,若当前机器的状态为
q
,读写头所指的格子中
的符号为
x
,设
δ
(
q,x) = (q',x',L
),则机器进入新状态
q'
,将读写头所指的格子中的符号
改为
x'
,然后将读写头向左移动一个格子。若在某一时刻,读写头所指的是第
0
号格子,
但根据转移函数它下一步将继续向左移,
这时它停在原地不动。
换句话说,
读写头始终不移
出纸带的左边界。若在某个时刻
M < br>根据转移函数进入了状态
qaccept
,则它立刻停机并接
受输入的字符串; 若在某个时刻
M
根据转移函数进入了状态
qreject
,则它 立刻停机并拒
绝输入的字符串。
注意,
转移函数
δ
是一个部分函数,
换句话说对于某些
q,x
,
δ
(
q,x)
可能没有定义,
如果在运行中遇到下一个操作没有定义的情况,机器将立刻停机。
3.
实例:两位
2
进制加法器
简 单说这个图灵机的输入字符集是
0
、
1
和
+
。
带字 符集是
0
、
1
、
+
、
.
、
=、
还有空白符。
解释一下这个图灵机程序计算加法的过程。一开始带 上内容是一个二进制加式,比如
10+10
,读写头在最左边的
1
上。首先,图灵机将读写头运动到更左一个位置,写下
=
。