Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一起了解大名鼎鼎的“图灵机”

一起了解大名鼎鼎的“图灵机”

作者头像
讲编程的高老师
发布于 2020-08-14 02:03:45
发布于 2020-08-14 02:03:45
4.4K0
举报

1936年,英国数学家阿兰・麦席森・图灵(1912―-1954年)提出了一种抽象的计算模型——图灵机( Turing machine)。图灵机,又称图灵计算机,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人类进行数学运算。

图灵提出的著名的图灵机模型为现代计算机的逻辑工作方式奠定了基础。

01

概念

图灵机是由英国数学家图灵在一篇论文《论数字计算在决断难题中的应用》(《On Computable Numbers, with an Application to the Entscheidungsproblem》)中提出的一种理想机器,这种机器可以通过一些简单的、机械的步骤模拟人类的一切数学运算。

“图灵机”设想有一条无限长的纸条,纸条上有一个个方格,每个方格可以存储一个符号,纸条可以向左或向右运动。这个纸带就像我们现代的计算机的存储器一样,纸带上面的每个格子是可以被读写的,在图 31这个例子里,机器只能写0、1、或者什么也不写。这个机器就是包含3种信号的图灵机(3-Symbol Turing machine)。

图1 图灵机设想的无限长纸袋

图灵机可以做下面三个基本的操作:

(1). 读取指针头指向的方格内的内容;

(2). 修改方框中的字符或者直接擦除方格内的内容;

(3). 将纸带向左或右移动,以便修改其临近方框的值。

02

一个简单的例子

一个简单的例子:这个例子实现的功能在纸带上打印“110”。如下面的图中所示,其中黑色框表示探头所在的位置。具体步骤为:(1)探头写1;(2)把纸带向左移动一格;(3)探头写1;(4)把带子向左移动一格;(5)探头写0。

图2 在图灵机的无限纸带上打印“110”示意

03

一个简单的程序

上面的例子比较简单,我们再来看一个稍微复杂点的例子。我们利用图灵机的设计思路设计一个可以执行“状态反转”的程序,即将前面打印在纸带上的“110”每个位上的二进制取反变成“001”。

这个时候我们需要预先定义一个指令集,也就是当图灵机上的探头读到方格内的内容时可以查这个指令集,然后将读取到的内容和指令集进行比对,根据指令集上的指示来进行下一步的操作。我们将这个简单程序的指令集定义为下表所示。

表1 指令集表

那我们看一下图灵机如何实现这个“状态反转”的小程序。如图2,探头读到的格子里的值是“0”,再查上面的表1的第2行,知道当读到“0”时,探头在格子里写入“1”,然后右移一格。

图3 探头读到“0”后的操作

此时,探头读到“1”,通过查指令集表 31,探头写入“0”,然后右移。如图4.

图4 探头读到“1”后的操作

上一步操作之后,探头再次在格子中读到“1”,再次查指令集表1,探头写入“0”然后右移。如图5.

图5 探头又读到“1”后的操作

经过上一步的右移之后,此时探头读到的格子里面的内容是空,通过读指令集表 31知道,探头不向格子中写入值,纸带也不移动。至此,图灵机就把“110”改写成了“001”。

机器状态:上面程序的指令集是不完整的,因为到最后探头不右移纸带也不改变格子里的值,但它还在不停的读取格子里的值然后查表。这个机器会一直重复执行命令,它并不知道何时停止执行。我们还需要引入一个机器状态(Machine State)的概念。我们给表 1增加一列。

表2 插入机器状态后的指令集

有了机器状态列的表 2,在上一小节中最后探头读到一个空的格子后,就会停止。

如果我们把方格里面的状态从“1”、“0”、“空”三种继续增加,而相对应的指令集表 32的行数也会跟着增加。这样的话,我们的图灵机就可以通过简单的读单元格、查指令集表、改变单元格状态、移动纸带这些非常简单、基本的操作来进行非常复杂的数学运算了

我们现在使用的各种计算机、嵌入式系统等虽然看似复杂,但在本质上也还是对图灵机的进化而已。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 讲编程的高老师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
图灵机 快速入门教程
图灵机是图灵机理论中提出的理想模型,其可以实现任意复杂的计算。 什么是图灵机 英国数学家艾伦·图灵在1936年提出了「图灵机」的理论。「图灵机」设想有一条无限长的纸条,纸条上有一个个方格,每个方格可以
陈树义
2018/04/13
1.6K0
图灵机 快速入门教程
从图灵机开始
说到图灵机,我们首先要说说图灵这个人。笔者觉得我们这种搞计算机的人都应该知道并记得这个人。 图灵,1912年6月23日生于英国帕丁顿。是数学家、密码破译专家,当然还有很多“家”,我们就先不说了。后来他又到美国普林斯顿大学取得博士学位,二战爆发后返回英国,帮助军方破解德国的著名密系统Enigma,帮助盟军取得了二战的胜利。啊,看到这里你是不是瞬间觉得他很伟大了。不过笔者认为他真正伟大的地方不在这里,而是他提出了两个最重要的东西——图灵机和图灵测试。也是因为这两个东西,他后来被人们尊称为计算机之父、人工智能之父
企鹅号小编
2018/01/11
7360
从图灵机开始
我的猫居然是图灵机?!
在一条无限长的纸带(tape)上,一个读/写头进行移动,或按照特定的指令集执行更加复杂的行为:
量子位
2021/12/02
5820
我的猫居然是图灵机?!
AI数学基础之:确定图灵机和非确定图灵机
图灵机是由艾伦·麦席森·图灵在1936年描述的一种抽象机器,它是人们使用纸笔进行数学运算的过程的抽象,它肯定了计算机实现的可能性,并给出了计算机应有的主要架构,引入了读写与算法与程序语言的概念为现代计算机的发明打下了基础。
程序那些事
2021/04/12
1K0
【计算理论】图灵机 ( 图灵机图示 | 图灵机形式定义 )
下图是图灵机的简单示意图 : 图灵机由 无穷长的带子 , 读头 , 状态 组成 ;
韩曙亮
2023/03/28
1.3K0
【计算理论】图灵机 ( 图灵机图示 | 图灵机形式定义 )
从图灵机、图灵测试到人工智能:什么决定了AI能否取代人类?
导读:美国电视剧《西部世界》第二季的第一集一经播出就引起热议。一时间,人和人工智能这个话题又重新被辩论。由于程序功能越来越强大,人们开始担心:“人工智能程序会不会全面取代人类?”
IT阅读排行榜
2019/08/28
9950
从图灵机、图灵测试到人工智能:什么决定了AI能否取代人类?
软硬件融合技术内幕 基础篇 (2) —— 罪恶政权迫害世界和平功臣致死的故事
先说结论:小霸王学习机的处理器 理光6502,是图灵完备的,因此理论上小霸王学习机可以作为服务器。
用户8289326
2022/09/08
3920
软硬件融合技术内幕 基础篇 (2) —— 罪恶政权迫害世界和平功臣致死的故事
计算机科学: 图灵机模型,计算理论的基石
在计算机科学的领域中,图灵机(Turing Machine)是一个不可或缺的概念。由艾伦·图灵(Alan Turing)于1936年提出,图灵机不仅在理论上定义了计算的本质,也奠定了现代计算理论的基础。本文将深入探讨图灵机的模型及其重要性,解释为何图灵机被视为计算理论的基石。
运维开发王义杰
2024/06/11
1.3K0
计算机科学: 图灵机模型,计算理论的基石
图灵、图灵机和图灵测试
说到人工智能就不得不提到图灵,大家现在手头使用的智能手机、计算机都可以说是一种图灵机,即通过对输入进行计算得到输出的机器,图灵最早给出了这种机器形式化的定义和理论证明,并提出了图灵测试这一伟大的思想实验。至今人工智能仍然是在图灵以及哥德尔、冯诺依曼等那一代伟大科学家构筑的基础上探索前行。
用户7623498
2021/03/16
1.6K0
「从未被制造出的最重要机器」,艾伦·图灵及图灵机那些事
计算是我们大多数人凭直觉就能理解的一个熟悉概念。我们以函数 f (x) = x + 3 为例,当 x 为 3 时,f (3) = 3 + 3。答案是 6,非常简单。很明显,这个函数是可计算的。但是有些函数并非那么简单,而且要确定它们是否可以计算也非易事,这意味着它们可能永远都无法得出一个最终答案。
机器之心
2023/08/07
5090
「从未被制造出的最重要机器」,艾伦·图灵及图灵机那些事
每周学点大数据 | No.5算法的分析之图灵机
No.5期 算法的分析之图灵机 小可:那计算机科学有没有对易解和难解问题进行一个相对严格的界定呢? Mr. 王:有的,这里既然提到了多项式算法和易解难解问题,那么我们就简单来谈一谈NP完全性的问题,这有助于对后面一些问题的理解。真正的NP 完全性讨论和复杂度归约是比较复杂的主题,一般要到硕士生阶段才会接触,这里我们只简单谈谈。提到NP完全性,我们先要了解前面提到过的“图灵机”。 小可:我也很好奇,这个“图灵机”究竟是什么呢? Mr. 王:想要理解图灵机,需要具有一定的自动机理论基础,最好先了解一下有穷自动
灯塔大数据
2018/04/09
8180
每周学点大数据 | No.5算法的分析之图灵机
【计算理论】图灵机 ( 非确定性图灵机 | 非确定性图灵机指令分析 | 计算过程 | 非确定性指令出现多个分支 | 非确定性图灵机转为计算树 | 计算树 )
向非确定性图灵机中输入字符串 , 每次的后续操作 , 不是唯一的 , 有很多可能性 ;
韩曙亮
2023/03/28
7250
【计算理论】图灵机 ( 非确定性图灵机 | 非确定性图灵机指令分析 | 计算过程 | 非确定性指令出现多个分支 | 非确定性图灵机转为计算树 | 计算树 )
【计算理论】图灵机 ( 图灵机示例 )
一般情况下我们计算时涉及的图灵机都是 向右无限延长的带子 , 带子有一个左端点 ;
韩曙亮
2023/03/28
1.1K0
【计算理论】图灵机 ( 图灵机示例 )
从图灵机到量子计算机,计算机可以解决所有问题吗?
今天,我们正式开启一个新专栏 —— 计算机组成原理。计算机组成原理是计算机科学中最基础的理论知识,你越早掌握这些知识,你就能越早享受知识带来的 "复利效应"。
用户9995743
2022/12/22
1.1K0
从图灵机到量子计算机,计算机可以解决所有问题吗?
《论可计算数及其在判定上的应用》简单理解
刚刚拜读了一本书, 《图灵的秘密》. 该书介绍了图灵的论文《论可计算数及其在判定上的应用》, 其指出: 一个拥有铅笔, 纸和一串明确指令的人类计算者, 可以被看做是一种图灵机. 那么图灵机是什么呢?
烟草的香味
2020/12/18
2.4K0
人工“智能”与图灵机
人工“智能”与图灵机 今天白天有两件事情,第一是我看到了一篇知乎神文,讨论比图灵机更强悍的计算模型。第二是朋友圈讨论群都在刷亚马逊机器学习年会和微软build大会。对于吃瓜群众来说,人工智能是个越炒
用户1564362
2018/04/08
1.1K0
人工“智能”与图灵机
从图灵机到冯诺依曼机
上文中(操作系统系列(2):操作系统发展历史),我们谈了操作系统的发展历程,它伴随着硬件的发展而发展。本文,我们将一起探讨一下计算机模型的发展过程。在上文中我们说了在手工操作时期开始,内存的存在方式是纸带,将所需存放的内容以0、1的方式存放于纸带上,然后配合打孔机进行内存中内容的读写,计算结果,将返回结果写入到纸带上。
xujjj
2019/06/29
2.8K0
从图灵机到冯诺依曼机
智能的本质(二)---图灵机,电脑,以及人脑
讨论智能的本质,图灵机是无法回避的问题。图灵在很早的时候就旗帜鲜明的表示了图灵机的模型就是智能的本质,而人脑无非只是这种模型或者类似这种模型的一个具体实现而已。同时代的冯诺依曼却不这样认为。冯诺依曼这个人很重要,在这篇文章后面还会提到。 其实我想很多人或多或少都听说过图灵机是什么。学过计算理论的人更是很清楚。本质上来说,这是一个图灵脑子里拍出来的某种非常笨拙的机器。我们可以用脑子和纸笔一步一步去模拟这个机器。我无意在这里去严格的定义图灵机。这个机器大致上来说是一条无限长的带子,被分成了无限个格子。有有限个字
用户1564362
2018/04/04
1.4K0
【计算理论】计算理论总结 ( 图灵机设计 ) ★★
格局 Configuration , 格局是给图灵机照一个 快照 , 下图就是图灵机在计算过程中 , 某一个时刻的快照 ;
韩曙亮
2023/03/28
7360
【计算理论】计算理论总结 ( 图灵机设计 ) ★★
编程语言进化史《禅与计算机程序设计艺术》 / 陈光剑
计算机编程语言是程序设计的最重要的工具,它是指计算机能够接受和处理的、具有一定语法规则的语言。
一个会写诗的程序员
2021/04/30
1.8K0
编程语言进化史《禅与计算机程序设计艺术》 / 陈光剑
推荐阅读
相关推荐
图灵机 快速入门教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档