图灵机对计算机学科的意义,图灵机有什么意义_学习图灵机模型中遇到的问题...

图灵机意义

图灵提出图灵机的模型并不是为了同时给出计算机的设计,它的意义我认为有如下几点:

1、它证明了通用计算理论,肯定了计算机实现的可能性,同时它给出了计算机应有的主要架构;

2、图灵机模型引入了读写与算法与程序语言的概念,极大的突破了过去的计算机器的设计理念;

3、图灵机模型理论是计算学科最核心的理论,因为计算机的极限计算能力就是通用图灵机的计算能力,很多问题可以转化到图灵机这个简单的模型来考虑。

对图灵机给出如此高的评价并不是高估,因为从它的设计与运行中,我们可以看到其中蕴涵的很深邃的思想。通用图灵机等于向我们展示这样一个过程:程序和其输入可以先保存到存储带上,图灵机就按程序一步一步运行直到给出结果,结果也保存在存储带上。另外,我们可以隐约看到现代计算机主要构成(其实就是冯诺依曼理论的主要构成),存储器(相当于存储带),中央处理器(控制器及其状态,并且其字母表可以仅有0和1两个符号),IO系统(相当于存储带的预先输入);

4、“图灵机”只是假象的“计算机”,完全没有考虑硬件状态,考虑的焦点是逻辑结构。图灵在他著作里,进一步设计出被人们称为“通用图灵机”的模型,图灵机可以模拟其他任何一台解决某个特定数学问题的“图灵机”的工作状态。图灵甚至还想象在带子上存储数据和程序。“通用图灵机”实际上就是现代通用计算机的最原始的模型。

学习图灵机模型中遇到的三个问题

1) 为什么图灵机有不可判的问题?

2) 为什么强大的图灵机会不停机?

3) 为什么图灵当初要设计图灵机?

图灵机虽然构造简单,但却及其强大,它能模拟现代计算机的所有计算行为,堪称计算的终极机器。然而即便是这个终极机器,也有令它无能为力的问题,这便是第一个要回答的问题:为什么图灵机有不可判的问题?

b52e708741cf839fef28c4d6f9fdf5da.png

首先明确什么是图灵可识别(Turing recognizable)和图灵可判定(Turing decidable)。图灵机的识别对象是语言,图灵可识别当然不是说图灵本人能识别的语言(照这样说汉语可能是图灵不可识别的~),事实上这只是简称,全称应该是图灵机可识别语言(Turing machine recognizable language)和图灵机可判定语言(Turing machine decidable language)。 一台图灵机在读取一个串后可能进入三种状态:接受、拒绝、循环,如果图灵机进入循环状态,那它将永不停机。现在假设有语言A,如果能设计出一台图灵机M,对于任意字符串ω,如果ω∈A,那么M读取ω后会进入接受状态,那么A是一个图灵可识别语言。注意这个定义对于ω不属于A的情况没有做出限制,所以M读取到不属于A的ω,那么它有可能拒绝,也有可能循环。 图灵可判定语言的要求更严格,它要求对于语言A能设计出一台图灵机M:如果ω∈A,M进入接受状态;否则进入拒绝状态。如果一个语言是图灵可判定的,总能设计出一台图灵机,能在有限步数内判定一个字符串是不是属于这个语言。如果一台图灵机对所有输入总是停机,那么称它为判定器(decider)。然而第一个问题指明一定有所有判定器都不能判定的问题,要证明这一点,得从康托(Georg Cantor)说起。

康托最大的贡献可能是创建了现代集合论,他认为某些不同的无穷集合有不同的大小。1891年,康托发表了一篇只有5页的论文,证明实数集的基数大于自然数集,并在这篇论文中提出了传说中的对角线方法(方法虽然巧妙但很简单,wiki上有我就不赘述)。图灵机的不可判定问题便需要借助对角线方法。而实数集“大于”自然数集这个事实,可以这么想:“无限&TImes;无限”比“无限&TImes;有限”大。每个自然数是有限的,集合是一阶无限,自然数集就是一阶无限;相较之下,一个实数是一阶无限,集合又是一阶无限,那么实数的集合就是二阶无限。这个一阶二阶只是我个人的说法,关于不同集合之间的大小关系,康托提出连续统假设,即希尔伯特第一问题,认为不存在一个基数绝对大于可数集而绝对小于实数集的集合,不过这跟今天的话题没有关系,不再展开。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
神经图灵机(Neural Turing Machine,NTM)是一种结合了神经网络和图灵机思想的模型,用于处理序列数据。训练神经图灵机模型可以分为以下几个步骤: 1. 数据准备:首先,你需要准备用于训练的序列数据。这些数据可以是文本、音频、图像等。确保数据集具有足够的多样性和代表性。 2. 构建模型:接下来,你需要构建神经图灵机模型的网络结构。该模型通常由两部分组成:控制器(controller)和外部存储器(external memory)。控制器可以是循环神经网络(RNN)或者其他类型的神经网络,用于读写外部存储器。外部存储器可以是一个可访问和可写入的矩阵。 3. 定义损失函数:为了训练模型,你需要定义一个适当的损失函数来衡量模型输出与真实值之间的差异。常见的损失函数包括均方误差(Mean Squared Error)和交叉熵(Cross Entropy)等。 4. 训练模型:使用准备好的数据集和定义好的损失函数,通过反向传播算法来更新模型的参数。你可以使用梯度下降等优化算法来最小化损失函数。 5. 评估模型:在训练过程,你可以使用验证集来评估模型的性能。常见的评估指标包括准确率、损失值等。根据评估结果,你可以调整模型的超参数或者网络结构。 6. 预测和应用:训练完成后,你可以使用训练好的神经图灵机模型进行预测和应用。根据具体的任务,你可以输入新的序列数据,并通过模型输出来进行预测或者生成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值