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

news2024/11/22 16:54:20

一.欢迎来到我的酒馆

        第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.coloradmin.cn/o/1446015.html

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

相关文章

vue核心技术(二)

◆ 指令补充 指令修饰符 通过 "." 指明一些指令 后缀,不同 后缀 封装了不同的处理操作 → 简化代码 v-bind 对于样式控制的增强 为了方便开发者进行样式控制, Vue 扩展了 v-bind 的语法,可以针对 class 类名 和 style 行内样式…

第76讲安全退出实现

安全退出实现 VueX 是一个专门为 Vue.js 应用设计的状态管理构架,统一管理和维护各个vue组件的可变化状态(你可以理解成 vue 组件里的某些 data )。 Vuex有五个核心概念: state, getters, mutations, actions, modules。 state:vuex的基本数…

全国计算机技术与软件专业技术资格(水平)考试软考中级高级报名步骤

第一步: 1、登陆全国的计算机网上报名平台 http://bm.ruankao.org.cn/sign/welcome 根据自己所在地区,选择报考城市入口(例如:北京考区考生,直接选择北京就 可以) 第二步:用户登录 1、已有…

线性判别分析(LDA)

一、说明 LDA 是一种监督降维和分类技术。其主要目的是查找最能分隔数据集中两个或多个类的特征的线性组合。LDA 的主要目标是找到一个较低维度的子空间,该子空间可以最大限度地区分不同类别,同时保留与歧视相关的信息。 LDA 是受监督的,这意…

Mom系统初步认知

什么是MOM系统? MOM指制造运营管理,是Manufacturing Operation Management的缩写;指通过协调管理企业的人员、设备、物料和能源等资源,把原材料或零件转化为产品的活动。MOM系统集成了生产计划、库存管理、生产调度、质量管理、设备维护、人员管理等功能,以实现生产效率和…

web前端项目-进击的玉兔【附源码】

进击的玉兔 【进击的玉兔】是一款基于Web前端技术的游戏&#xff0c;其主题和背景与中国的传统文化和神话有关。在游戏中&#xff0c;玩家需要通过解决各种难题和挑战来收集月饼&#xff0c;最终达成游戏目标。 运行效果&#xff1a; HTML源码&#xff1a; <!DOCTYPE h…

Android13新特性之预测返回手势

Android14新特性之预测返回手势 简介 Android 14引入了对预测性返回手势的支持&#xff0c;这意味着开发者可以通过系统提供的额外动画和API来实现定制化的动画效果。这一更新使得应用程序可以在用户执行返回手势时展示一个动画预览&#xff0c;例如在应用程序前显示Home屏幕…

Makefile编译原理 make 中的路径搜索_2

一.make中的路径搜索 VPATH变量和vpath关键字同时指定搜索路径。 实验1 VPATH 和 vpath 同时指定搜索路径 mhrubuntu:~/work/makefile1/18$ tree . ├── inc │ └── func.h ├── main.c ├── makefile ├── src1 │ └── func.c └── src2 └── func.c mak…

FRP内网穿透如何避免SSH暴力破解(二)——指定地区允许访问

背景 上篇文章说到&#xff0c;出现了试图反复通过FRP的隧道&#xff0c;建立外网端口到内网服务器TCP链路的机器人&#xff0c;同时试图暴力破解ssh。这些连接造成了流量的浪费和不必要的通信开销。考虑到服务器使用者主要分布在A、B、C地区和国家&#xff0c;我打算对上一篇…

万维网的文档

目录 1 万维网的文档 动态万维网文档 CGI CGI 网关程序 活动万维网文档 用 Java 语言创建活动文档 1 万维网的文档 分为&#xff1a; 静态万维网文档。内容不会改变。简单。(html、xml、css) 动态万维网文档。文档的内容由应用程序动态创建。 活动万维网文档。由浏览器端…

npm config set registry https://registry.npm.taobao.org 这个设置了默认的镜像源之后如何恢复默认的镜像源

要恢复npm默认的镜像源&#xff0c;你可以使用以下命令将registry设置回npm的官方源&#xff1a; npm config set registry https://registry.npmjs.org/这个命令会修改你的全局npm配置&#xff0c;将包的下载源改回npm官方的源。这样做之后&#xff0c;任何后续的npm install…

【二叉树】层序遍历

目录 层序遍历概念&结构 层序遍历的实现 整体思路 代码实现 图示理解 BT升级 整体思路 代码实现 图示理解​ 应用 题目 前序&中序&后序遍历&#xff1a;深度优先遍历dfs 层序遍历&#xff1a;广度优先遍历bfs 层序遍历概念&结构 层序遍历&#xf…

【java语言基础⑥】面向对象——面向对象的思想、类与对象

1.学习目标 了解面向对象的思想&#xff0c;能够说出面向对象的三个特性掌握类的定义&#xff0c;能够独立完成类的定义掌握对象的创建和使用&#xff0c;能够完成对象创建&#xff0c;用对象访问对象属性和方法掌握对象的引用传递&#xff0c;能够独立实现对象的引用传递熟悉…

力扣_字符串6—最小覆盖字串

题目 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串&#xff0c;则返回空字符串 “” 。 示例 &#xff1a; 输入&#xff1a;s “ADOBECODEBANC”, t “ABC” 输出&#xff1a;“BANC” 解释&#xff1a;…

Java安全 URLDNS链分析

Java安全 URLDNS链分析 什么是URLDNS链URLDNS链分析调用链路HashMap类分析URL类分析 exp编写思路整理初步expexp改进最终exp 什么是URLDNS链 URLDNS链是Java安全中比较简单的一条利用链&#xff0c;无需使用任何第三方库&#xff0c;全依靠Java内置的一些类实现&#xff0c;但…

mxxWechatBot主动发送消息至微信

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。 免责声明&#xff1a;该工具仅供学习使用&#xff0c;禁止使用该工具从事违法活动&#xff0c;否则永久拉黑封禁账号&#xff01;&#xff01;&#xff01;本人不对任何工具的使用负责&am…

【Git版本控制 05】多人协作

目录 一、邀请开发用户 二、新建远程分支 三、拉取远程分支 四、推送远程分支 五、合并远程分支 六、多分支协作 一、邀请开发用户 在windows环境下&#xff0c;再clone同⼀个项⽬仓库&#xff0c;来模拟⼀起协作开发的另⼀名⼩伙伴。 际开发中&#xff0c;每个⽤⼾都有…

【Web】超级详细的Linux权限提升一站式笔记

目录 一、Linux内核提权 提权原理 提权环境 提权复现 二、SUID提权 SUID介绍 设置SUID SUID提权原理 查找SUID文件 提权介绍 find提权 bash提权 vim提权 python提权 三、计划任务提权 提权原理 提权环境 提权步骤 四、环境变量劫持提权 提权原理 提权环境…

【机器学习】卷积和反向传播

一、说明 自从 AlexNet 在 2012 年赢得 ImageNet 竞赛以来&#xff0c;卷积神经网络 (CNN) 就变得无处不在。从不起眼的 LeNet 到 ResNets 再到 DenseNets&#xff0c;CNN 无处不在。 您是否想知道 CNN 的反向传播中会发生什么&#xff0c;特别是反向传播在 CNN 中的工作原理。…

【知识整理】技术新人的培养计划

一、培养计划落地实操 1. 概要 新人入职&#xff0c;要给予适当的指导&#xff0c;目标&#xff1a; 1、熟悉当前环境&#xff1a; 生活环境&#xff1a;吃饭、交通、住宿、娱乐 工作环境&#xff1a;使用的工具&#xff0c;Mac、maven、git、idea 等 2、熟悉并掌握工作技…