复习下图灵机概念

本来想在最原始的图灵机概念上去寻找通用的UI方案,结果突然想到,web、html、xml、浏览器…这些就是前人最终的方案。操作系统提供的ui接口是基础原子操作,mfc、qt都是二次封装,个人可以考虑进一步封装,但不存在理想中的cpp通用方案(有的话就是浏览器和html了)。特定专业方向可以有部分实现。

以下部分来自百度词条,部分是个人杂记。
英国数学家艾伦・麦席森・图灵(1912―-1954年)于1936年提出的一种抽象的计算模型,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人类进行数学运算。

用机器替代人工进行自动计算。可能受更早的差分机启发(1822年出现模型,能提高乘法速度和改进对数表等数字表的精确度)。

图灵机:它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后进行移动。

理论化描述如下:
一台图灵机是一个七元组,{Q,Σ,Γ,δ,q0,qaccept,qreject},其中 Q,Σ,Γ 都是有限集合,且满足:
1、Q 是状态集合;
2、Σ 是输入字母表,其中不包含特殊的空白符;
3、Γ 是带字母表,其中 Q∈Γ且Σ∈Γ ;
4、 δ:Q×Γ→Q×Γ×{L,R}是转移函数,其中L,R 表示读写头是向左移还是向右移;
5、q0∈Q是起始状态;
6、 qaccept是接受状态。
7、qreject是拒绝状态,且qreject≠qaccept。
图灵机 M = (Q,Σ,Γ,δ,q0,qaccept,qreject) 将以如下方式运作:
开始的时候将输入符号串 从左到右依此填在纸带的第 号格子上, 其他格子保持空白(即填以空白符)。M 的读写头指向第 0 号格子, M 处于状态 q0。机器开始运行后,按照转移函数 δ 所描述的规则进行计算。例如,若当前机器的状态为 q,读写头所指的格子中的符号为 x,设 δ(q,x)= (q’,x’,L), 则机器进入新状态 q’, 将读写头所指的格子中的符号改为 x’, 然后将读写头向左移动一个格子。若在某一时刻,读写头所指的是第 0 号格子, 但根据转移函数它下一步将继续向左移,这时它停在原地不动。换句话说,读写头始终不移出纸带的左边界。若在某个时刻 M 根据转移函数进入了状态 qaccept, 则它立刻停机并接受输入的字符串; 若在某个时刻 M 根据转移函数进入了状态 qreject, 则它立刻停机并拒绝输入的字符串。
注意,转移函数 δ 是一个部分函数, 换句话说对于某些 q,x, δ(q,x)可能没有定义, 如果在运行中遇到下一个操作没有定义的情况, 机器将立刻停机。

通用图灵机 (可编程图灵机) 可以模拟任意一个图灵机,这也是将图灵机作为现代计算机的形式模型的根本原因。现代电子计算机其实就是这样一种通用图灵机的模拟,它能接受一段描述其他图灵机的程序,并运行程序实现该程序所描述的算法。

停机问题(halting problem)是逻辑数学的焦点,是第三次数学危机的解决方案。其本质问题是:给定一个图灵机和一个任意语言集合S,是否会最终停机于每一个s∈S。其意义类似于可确定语言。显然任意有限S是可判定性的,可数的(countable)S也是可停机的。
通俗地说,停机问题就是判断任意一个程序是否会在有限的时间之内结束运行的问题。如果这个问题可以在有限的时间之内解决,则可以有一个程序判断其本身是否会停机并做出相反的行为。这时候显然不管停机问题的结果是什么都不会符合要求,所以这是一个不可解的问题。
停机问题的本质是一阶逻辑的不自恰性和不完备性。类似的命题有理发师悖论、全能悖论等。
比较容易理解的方式:停机测试悖论:计算机里有个测试程序,这个测试程序的原则是,对于计算机里所有程序,当且仅当这个程序不递归调用自己(输出停机),测试程序就调用它(对应不停机)。如果这个程序递归调用自己(对应不停机),测试程序就不调用它(对应停机)。无法回答的问题是,测试程序递归调用自己么?
悖论就是逻辑上的自相矛盾,其最简形式就是:本命题是假命题。
哥德尔不完全性定理:“无矛盾”和“完备”是不能同时满足的。

图灵机有很多变种,但可以证明这些变种的计算能力都是等价的,即它们识别同样的语言类。证明两个计算模型A和B的计算能力等价的基本思想是:用A和B相互模拟,若A可模拟B且B可模拟A,则它们的计算能力等价。
汇编语言、C、CPP之间等价。如果要做一个新的语言,加一些新的特性,那么首先要实现的就是C语言的基本语法。

图灵机的意义:
(1)它证明了通用计算理论,肯定了计算机实现的可能性,同时它给出了计算机应有的主要架构;
(2)图灵机模型引入了读写与算法与程序语言的概念,极大的突破了过去的计算机器的设计理念;
(3)图灵机模型理论是计算学科最核心的理论,因为计算机的极限计算能力就是通用图灵机的计算能力,很多问题可以转化到图灵机这个简单的模型来考虑。
通用图灵机向人们展示这样一个过程:程序和其输入可以先保存到存储带上,图灵机就按程序一步一步运行直到给出结果,结果也保存在存储带上。更重要的是,隐约可以看到现代计算机主要构成,尤其是冯・诺依曼理论的主要构成。

基于图灵机的概念,后人设计出了计算机硬件、软件。汇编、C…
如果说程序=数据+算法,那么图灵机=计算机硬件+数据+算法。7元组中δ是算法,其他都是数据。
也许很多问题,想不清楚时,可以回到图灵机的概念上去寻找答案。例如:关系型数据库是否算是一种通用数据方案?是否存在一种通用的UI方案?…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值