深入学习《大学计算机》系列之第1章 1.7节——图灵机的一个例子

一.欢迎来到我的酒馆

        第1章 1.7节,图灵机的一个例子。

目录

    • 一.欢迎来到我的酒馆
    • 二.图灵机
      • 2.1 艾伦-图灵简介
      • 2.2 图灵机简介
    • 三.图灵机工作原理
      • 3.1 使用图灵机打印二进制数
      • 3.2 图灵机工作原理总结
    • 四.总结

二.图灵机

        本节内容主要介绍计算机科学之父——艾伦-图灵、以图灵名字命名的图灵机以及图灵机的工作原理。

2.1 艾伦-图灵简介

        艾伦-麦席森-图灵(Alan-Mathison-Turing)1912年出生于英国伦敦。父亲(朱利斯-麦席森-图灵,Julius-Mathison-Turing)是一名牛津大学的毕业生,曾赴印度担任民政部官员。母亲(埃塞尔-萨拉-斯托尼,Ethel-Sara-Stoney)毕业于巴黎大学文理学院,曾任马德拉斯铁路的总工程师。父母都是受到良好教育的高材生,说到这里,这又会使人联系起我们之前介绍过的另外一位天才人物——莱布尼茨。他们两人的家庭环境颇为相似,父母都是书香门第。耳濡目染,受到父母亲的影响,从小养成了热爱学习的习惯。可是,图灵和莱布尼茨不同的是,图灵在出生后不久便寄养在一个军人家庭,由于工作的原因,父母远赴海外印度工作,很少时间回到英国,在很大一部分时间里图灵和他哥哥都是由父母的朋友照顾。从小生活在寄养的家庭环境中,这种成长环境对后来图灵的性格养成有着至关重要的影响。进入学校后,图灵孤僻的性格让他很难和老师、同学相处。他无法与老师、同学亲近。在校园里也不受同学的欢迎,同学们经常欺负图灵,老师也不怎么喜欢他。然而,图灵热爱研究数学,他一直都沉浸在数学中。在小学时期,图灵的学习成绩并不是很好,因为这所小学偏重于哲学教育,而图灵热爱自然科学,在这里他并没有得到太多的关注,老师还在他的成绩单上对他不重视语言的学习态度表示失望。
        1926年,图灵通过英国的普通入学考试,进入舍本中学学习。刚进入中学的他,学习成绩也不是很好,即使是在他热爱的数学和物理,也是如此。虽然学习成绩不好,但是这并不能说明他在数学方面的天分,他愿意花更多的时间来研究高等数学,物理理论,爱因斯坦的《相对论》,而花在学校规定的课程上的时间少之又少。他花了大把的时间研究爱因斯坦的《相对论》以及物理理论上,在年仅15岁的时候,他就针对爱因斯坦的《相对论》写了一篇小论文送给母亲萨拉。即便在尖端学问上展现出了异于常人的天赋,老师也没有过高的评价,在他的期末评语上,老师这样写到:他花了太多时间研究高等数学,而荒废了基础学科的学习。这时的他在老师眼里,是一名孤僻的学生,只研究自己喜欢的领域的怪孩子。然而,这一切在他遇到一个男生之前开始有了变化。就在图灵写下小论文不久后,图灵认识了比他大一个年纪的克里斯托弗-摩尔康(Christopher-Morcom),克里斯也是一个非常热爱自然科学的孩子。他们经常利用课余时间在一起学习高等数学和物理,并培养出了浓厚的感情。图灵再后来和朋友的信中回忆说:与克里斯相处的日子是非常快乐的。这段关系让图灵明白如何社交以及维持学业成绩。然而,好景不长,这段友谊并没有持续太久。1930年,克里斯不幸得了感染病去世了。
        1931年,图灵以高分考入英国剑桥大学国王学院。在国王学院,图灵开始了对高等数学的深入研究。由于学院的开放与包容,身为研究鬼才以及同性恋的图灵在这里得到了前所未有的包容,他终于可以研究自己喜欢的事情了。在国王学院,图灵修了许多高等数学和物理相关课程,这为他后来在自然学科做出突出贡献打下了基础。1935年,图灵在一篇论文里面假想了一台自动化机器,简称为A机器,这台机器的概念中包含了四个元素:一条无限长纸带,纸带被划分成一个个小个子,每个小格子里面写有数字0或1;一个可以读取纸带方格的读写头;一套预先制定好的指令,这套指令可以规定机器如何运作;一个可以暂时存储机器状态的记忆体。由这四个部分组成的机器就是大名鼎鼎的图灵机。这套机器的读写头可以在纸带的小方格上自由移动,并且可以改变每个小方格内包含的数据信息,而预先设计好的规则会指定机器在当前状态下应该做什么,倘若这套规则中不存在针对当前状态的指令,机器就会停止运作。这套机器也成为后来电脑的原型,我们称这套机器最早的版本为图灵机,图灵机的概念具有开创性,而在图灵机刚被设计出来的时候并没有得到重视,直到二战爆发,图灵机才显示出了它的威力。
        电影《The Imitation Game,模仿游戏》就是以二战为背景,讲述了纳粹德国使用恩尼格玛(Enigma)加密文件,恩尼格玛的存在使得英国与德国在大西洋海战中节节败退,英国想方设法地破解纳粹德国的加密文件,而用恩尼格玛加密的文件有一亿亿种可能性,如果依靠人力去破解需要2000万年的时间。英国军方招揽了大量的密码学人才,图灵自然也在其中,图灵破译加密文件的思想是使用机器来打败机器。纳粹德国使用恩尼格玛密码机加密了文件,那我们就可以设计一套机器来解密,按照这个思想,图灵设计了一套机器,可以即时破解加密文件。虽然在现在来说,图灵设计的这套机器连电脑都算不上,顶多是一个机械式计算器,但是它的存在扭转了战局,使得德军的加密文件无处遁形。图灵和他的团队无疑是结束第二次世界战争的大功臣,更有专家表示,若是没有图灵等人的破译,二战还会再持续至少两年。战事结束之后,图灵被英国政府授予了第四级的大英帝国勋章。
        这样一位大功臣照理说会受到人们众星捧月般的爱戴,然而图灵在战后的生活可谓是一个悲剧。1953年,图灵家中被盗。在不久之后,图灵就报警了,希望警察可以快速处理此案。然而,在做笔录的时候,当被问道图灵和他同伴的关系时,图灵直接承认了自己是同性恋,这件事情非同小可,因为在那时的法律里规定,同性恋也是一种犯罪行为。偷窃案不了了之,图灵反而身陷同性恋的案子中,法院给出了两种选择,一种是注射雌性激素,另一种是坐牢。图灵选择了前者,注射雌性激素会产生荷尔蒙并且对身体有很大的副作用。过量的荷尔蒙对图灵的身体造成很大的影响,他不再像从前那样可以长跑、骑车了。图灵还因为这件事情失去了政府顾问的资格,并且规定永远不能入境美国。1954年,在被定罪两年后,图灵在公寓里服了含有氰化钾的苹果去世,享年41岁。 1966年,美国计算机协会(ACM)设立图灵奖,奖励那些在计算机科学领域做出突出贡献的人,图灵奖是计算机科学领域的最高奖项,被誉为计算机界的诺贝尔奖。
        2009年,英国政府就图灵受到的迫害一事公开道歉。2013年,英国女王向图灵追加了皇家赦免令,赦免令说,图灵在战争期间的解密工作以及在计算机科学方面的研究应该得到铭记和认可。


在这里插入图片描述

2.2 图灵机简介

        图灵机(Turing Machine,简称 “TM”),是一种抽象的计算模型。1936年,图灵发表了一篇论文《论可计算的数及其在密码问题中的应用》,首次提出了逻辑机的通用模型,图灵将这种机器称为 “A机器“,或 “自动机器”,后来人们把这个通用模型命名为图灵机。图灵机是一种可计算的数学模型,它可以简化问题。这种模型可以将人们使用纸和笔进行数学运算的过程进行抽象,由一个不存在的机器代替人们手动数学运算。这种理念使得人们可以借助机器来计算各种数学运算,大大节省了时间。并且,图灵提出的 ”A机器“ 或 ”自动机器“ 在后来启发了冯-诺依曼设计出了可存储程序计算机,我们今天使用的计算机使用的正是冯-诺依曼设计的计算机架构。
        图灵机由四个部分组成:一条无限长的纸带;一个可以读取纸带的读写头;一个可以存储读写头状态的记忆体;一套预先设计好的指令。这条纸带被平均分割成一个个小格子,小格子里可以写入数据,比如0和1;读写头可以在纸带上左右移动(移动方向有三个,RLN,分别是右移,左移,不移动),每次只能移动一个格子,读写头上有一个记忆体,可以存储当前读写头的状态(State),比如用q0表示起始状态。读写头一次不仅可以读取一个小方格内的数据,也可以向一个小方格内写入数据,也可以擦除小方格内的数据,也就是小方格内什么也没有。至于是读取纸带中的数据,还是向纸带中写入数据,完全由一套预先设计好的指令决定。读写头的操作流程全部依靠预先设计好的指令执行,一条指令包括五个部分:起始状态,字母表,读取或写入的数据,读写头移动方向,下一个状态。


在这里插入图片描述

三.图灵机工作原理

        前面详细地介绍了图灵机的组成,在我们了解了图灵机的大致原理之后,我们继续探讨图灵机的工作原理。

3.1 使用图灵机打印二进制数

        简而言之,图灵机由以下四个部分组成:一条无限长的纸带,一个读写头,一个保存读写头状态的记忆体,一套预先设计好的指令。下面我们用图灵机模型打印出二进制数111,通过这种方式介绍图灵机的工作原理。在开始之前,我们需要制定一套指令,读写头根据我们预先设计好的指令运行。因此,我们规定,读写头的起始状态为q0,终止状态为q3,状态集为{q0,q1,q2,q3},字母表为{0,1,B(B表示Blank)},行动集为{L,R,N(N表示不移动)}。我们的需求是使用图灵机模型在纸带上打印出二进制数111,根据这个需求可以写出一套指令:

{q0,B,1,R,q1}
{q1,B,1,R,q2}
{q2,B,1,N,q3}

        有了指令,图灵机就可以根据这套指令来执行,下面我们演示在纸带上打印出二进制数111的步骤:
        首先,根据第一条指令{q0,B,1,R,q1},把读写头的当前状态记录为q0,这是读写头的起始状态,接着是B,这是字母表,表示当前小方格内什么数据也没有。这时候,我们读取了两个数据,q0和B,这是指令的前两个数据,我们可以把指令{q0,B,1,R,q1}拆分成一个规则集,规则集通俗来讲就是方便我们查看指令用的,按照上面的三个指令,我们可以写出对应的规则集:


在这里插入图片描述


        第二,写好了指令,图灵机就可以根据指令运行。按照我们之前定义的需求,在一条空白的纸带上打印出二进制数111。图灵机会逐条地执行指令,第一条执行的指令是:{q0,B,1,R,q1},q0表示读写头的当前状态,B表示当前纸带上的小方格为空白,什么数据也没有。第一条指令的前两位数据是q0和B,根据这个我们可以去规则集表里查询到第一条指令的操作,后面的三位数据就是具体的操作,{q0,B,1,R,q1},1表示读写头写入的数据,R表示在写入数据完成后,读写头需要往右移动一格,q1表示更新读写头的内部状态,由最初的q0更新为q1。


在这里插入图片描述


        下图演示了图灵机在执行指令{q0,B,1,R,q1} 的操作流程:

在这里插入图片描述


        接着执行指令{q1,B,1,R,q2}:

在这里插入图片描述


        执行最后一条指令{q2,B,1,N,q3}:
在这里插入图片描述


        三条指令全部执行完成后,在纸带上就输出了一个二进制数111。

3.2 图灵机工作原理总结

        图灵机是一种抽象的计算模型,它可以将人们使用纸和笔计算数学运算进行抽象,使用机器来代替人们手动数学运算。这种理念使得人们可以借助机器来进行各种数学运算,极大的缩减了人们用于数学运算上的时间。后来的冯-诺依曼结构正是受到了图灵机的启发,设计出了可存储程序计算机,这正是现在计算机的原型。图灵机按照预先设计好的指令来运行,一条指令包括五个部分:读写头的起始状态,小方格内当前的数据,需要写入的数据,读写头的移动方向,读写头下一个状态。
状态集:{q0,q1,q2,q3,qn}(q0为读写头的起始内部状态,终止状态可以手动确定)
字母表:{0,1,B}(B表示Blank,空白)
行动集:{L,R,N}(N表示不移动)

四.总结

1.介绍艾伦-图灵的个人生平。图灵设计的机器是破译 “恩尼格玛” 的关键。
2.介绍图灵机。图灵机是一种抽象的计算模型,它可以代替人们手动进行数学运算,极大的缩减了在数学运算上的时间。
3.介绍图灵机的工作原理。图灵机是按照预先设计好的指令执行,一条指令明确指定了读写头的内部状态,写入纸带小方格的数据以及更新读写头的内部状态。
4.参考资料:
(1) 艾伦-图灵简介:https://baike.baidu.com/item/%E8%89%BE%E4%BC%A6%C2%B7%E9%BA%A6%E5%B8%AD%E6%A3%AE%C2%B7%E5%9B%BE%E7%81%B5/3940576?fr=ge_ala
(2) 图灵机简介:https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/turing-machine/one.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/680501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java学习-常用API-新增时间

1.学习JDK8新增时间的原因? 2.JDK8新增了那些时间? 代替calendar的 localDate localTime localDateTime 常用APi及代码示例: ZoneIdZonedDateTime 常用方法 代码示例: 代替Date的 Instant常见方法及其代码示例: 注…

权限提升:利用Linux漏洞提权

目录 Linux权限基础 Linux用户权限 Linux文件权限 特殊的Linux文件权限 Linux本机信息收集 利用Linux漏洞进行提权 脏牛漏洞 pkexec Linux权限基础 Linux用户权限 在Linux中,根据权限的不同,大致可以分为三种:超级用户(…

C#,卢卡斯数(Lucas Number)的算法与源代码

1 卢卡斯数(Lucas Number) 卢卡斯数(Lucas Number)是一个以数学家爱德华卢卡斯(Edward Lucas)命名的整数序列。爱德华卢卡斯既研究了这个数列,也研究了有密切关系的斐波那契数(两个…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 2月13日,星期二

每天一分钟,知晓天下事! 2024年2月13日 星期二 农历正月初四 1、 春节假期旅游爆火!多地景区宣布门票售罄,建议错峰错区游览。 2、 中国旅游研究院:预计2024年全年国内旅游人数将超过60亿人次。 3、 应急管理部&#…

Solidworks:从2D走向3D

Sokidworks 的强大之处在于三维实体建模,这个形状看似复杂,实际上只需要拉伸一次,再做一次减法拉伸就行了。第一次做三维模型,费了不少时间才搞明白。 接下来做一个稍微复杂一点的模型,和上面这个操作差不多&#xff0…

基于Seaborn和Matplotlib的可视化案例分析

处理数据有时会有点无聊。将原始数据转换为可理解的格式是整个过程中最重要的部分之一,那么为什么只停留在数字上,当我们可以将数据可视化为令人兴奋的图表时,这些图表可以在python中获取。这篇文章将重点探索耐人寻味的预处理之旅。 Seabor…

SSM+SpringBoot框架

单例bean是线程安全的吗 AOP Spring事务失效 第四种,在方法内部使用,需要用代理类调用此方法 bean生命周期 bean的循环依赖 SpringMVC执行流程 、 SpringBoot自动配置原理 Spring常见注解 MyBatis执行流程 MyBatis延迟加载 MyBatis缓存

最新在线看4K高清电影网站推荐

随着互联网技术的发展,观看高清电影已经不再是难事。这里我为大家分享几个最新的在线看4K高清电影网站,让您在家就能享受到极致观影体验。 通过下面这个即可 1. 【超清影视】 【超清影视】是国内新兴的4K高清电影网站,拥有海量的影片资源&a…

000——对i.MAX6uLL进行开箱检查

目录 00外观检查 01有线网卡检查 02USB-host测试 03耳机测试 04按键测试 05查看CPU温度 00外观检查 看起来没什么问题,买了半年了刚开始要做 01有线网卡检查 开机启动正常,韦东山老师还写了个欢迎界面,这个我后面因为要用于毕业设计&am…

《Linux 简易速速上手小册》第5章: 用户与群组管理(2024 最新版)

文章目录 5.1 管理用户账户5.1.1 重点基础知识5.1.2 重点案例:创建一个新的开发者账户5.1.3 拓展案例 1:禁用用户登录5.1.4 拓展案例 2:设置账户到期 5.2 群组概念与管理5.2.1 重点基础知识5.2.2 重点案例:为项目团队设置群组5.2.…

《Linux 简易速速上手小册》第3章: 文件系统与权限(2024 最新版)

文章目录 3.1 Linux 文件系统结构3.1.1 重点基础知识3.1.2 重点案例:设置一个 Web 服务器3.1.3 拓展案例 1:日志文件分析3.1.3 拓展案例 2:备份用户数据 3.2 理解文件权限3.2.1 重点基础知识3.2.2 重点案例:共享项目文件夹3.2.3 拓…

FPGA_简单工程_数码管静态显示

一 理论 数码管是一种半导体发光器件,基本单位是发光二极管。 以六位八段数码管为例,每段需要一个端口信号,6814位。 74HC595芯片: 8位串行输入,并行输出的位移缓存器,其内部具有8位移位寄存器和一个存储…

Javaweb之SpringBootWeb案例之 登录功能的详细解析

1. 登录功能 1.1 需求 在登录界面中,我们可以输入用户的用户名以及密码,然后点击 "登录" 按钮就要请求服务器,服务端判断用户输入的用户名或者密码是否正确。如果正确,则返回成功结果,前端跳转至系统首页面…

算法学习——LeetCode力扣二叉树篇4

算法学习——LeetCode力扣二叉树篇4 222. 完全二叉树的节点个数 222. 完全二叉树的节点个数 - 力扣(LeetCode) 描述 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中&#xf…

车载诊断协议DoIP系列 —— 协议中术语解释和定义

车载诊断协议DoIP系列 —— 协议中术语解释和定义 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,…

罗德里格斯公式简要介绍

一、罗德里格斯公式(Rodrigues’ rotation formula)是一个用于计算绕任意轴旋转向量的数学公式。它是由欧仁罗德里格斯(Olinde Rodrigues)在1840年提出的。这个公式在三维空间中描述了一个向量绕着单位向量旋转θ角度后的结果。 …

C++初阶:容器(Containers)list常用接口详解

介绍完了vector类的相关内容后,接下来进入新的篇章,容器list介绍: 文章目录 1.list的初步介绍2.list的定义(constructor)3.list迭代器( iterator )4.string的三种遍历4.1迭代器4.2范围for循环 5…

无人机飞行控制系统功能,多旋翼飞行控制系统概述

飞行控制系统存在的意义 行控制系统通过高效的控制算法内核,能够精准地感应并计算出飞行器的飞行姿态等数据,再通过主控制单元实现精准定位悬停和自主平稳飞行。 在没有飞行控制系统的情况下,有很多的专业飞手经过长期艰苦的练习&#xff0…

【Docker进阶】镜像制作-用Dockerfile制作镜像(一)

进阶一 docker镜像制作 文章目录 进阶一 docker镜像制作用dockerfile制作镜像dockerfile是什么dockerfile格式为什么需要dockerfileDockerfile指令集合FROMMAINTAINERLABELCOPYENVWORKDIR 用dockerfile制作镜像 用快照制作镜像的缺陷: 黑盒不可重复臃肿 docker…

Kafka 入门笔记

课程地址 概述 定义 Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ) 发布/订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接受感兴趣的消息 消息队列 消息队…