AI数学基础之:确定图灵机和非确定图灵机
简介
图灵机是由艾伦·麦席森·图灵在1936年描述的一种抽象机器,它是人们使用纸笔进行数学运算的过程的抽象,它肯定了计算机实现的可能性,并给出了计算机应有的主要架构,引入了读写与算法与程序语言的概念为现代计算机的发明打下了基础。
本文将会讲解一下图灵机中的两种类型:确定图灵机和非确定图灵机。
图灵机
图灵机是一种数学计算模型,它定义了一个抽象机器,该抽象机器根据规则表来操纵带子上的符号。尽管该模型很简单,但是在任何给定计算机算法的情况下,都可以构建出模拟该算法逻辑的图灵机。
简单点说,图灵机就是一个模拟算法运行的抽象机器。它是这样定义的:
- 有一个无限长度的磁带,这个磁带被分成了一个接一个的单元格,磁带被用于写入字母和符号。
- 一个读写磁带的磁头,这个磁头负责控制堆磁带的写入和左右移动。
- 一个状态寄存器,用来存储图灵机的状态。
- 一个指令表,可以根据机器当前所处的状态和磁带上当前的符号,指示机器进行特定的操作。比如:擦除或者写入一个符号、向左或者向右移动磁头。
可以看到整个图灵机基本上模拟了程序的执行步骤。
图灵机虽然可以表示任意的计算程序,但是因为其极其简单的设计实际上并不适合进行计算,所以现实世界的现代计算机都是对图灵机的优化设计。
图灵完备性是指指令系统模拟图灵机的能力。从理论上讲,图灵完整的一种编程语言可以表达计算机可以完成的所有任务。如果忽略有限内存的限制,几乎所有编程语言都是图灵完备的。
图灵机的缺点
虽然图灵机可以表示任何计算任务,但是图灵机太过于简单了,在某些复杂的模型中无法很好的进行使用。比如在现代计算机中的RASP随机存储模型,因为RASP可以在寄存器中引用其他的寄存器,所以可以基于内存索引进行优化,这种优化是在图灵机中无法实现的。
图灵机的另一个限制是它们不能很好地进行并发建模。另外,因为在早期的时候,计算机的使用通常仅限于批处理,即非交互式任务,每个任务都从给定的输入数据中产生输出数据。 所以图灵机在描述现代交互式应用也有一些限制。
等效图灵机
因为图灵机是一种假想的设备,它为计算机算法的概念提供了理论基础。并且因为图灵机模型比较简单,对于复杂问题的描述比较弱,所以出现了很多图灵机的等效模型,虽然这些模型并不一定比图灵机强大,但是这些模型是真正存在的,并且使用他们可以更加容易的解决特定问题。
确定图灵机
在确定性图灵机(DTM)中,其控制规则规定了在任何给定情况下最多只能执行一个动作。
确定性图灵机具有转换功能,对于磁带头下的给定状态和符号,该转换功能指定了三件事:
要写入磁带的符号,头部应移动的方向(向左,向右或都不向),以及有限控制的后续状态。
例如,状态3的磁带上的X可能会使DTM在磁带上写Y,将磁头向右移动一个位置,然后切换到状态5。
非确定图灵机
在理论计算机科学中,非确定性图灵机(NTM)是一种理论计算模型,其控制规则在某些给定情况下指定了多个可能的动作。 也就是说,NTM的下一个状态不是完全由其动作和它所看到的当前符号决定的(不同于确定性图灵机)。
例如,状态3的磁带上的X可能允许NTM:
输入Y,向右移动,然后切换到状态5或者写一个X,向左移动,并停留在状态3。
那么问题来了,对于非确定图灵机来说是怎么进行下一步的选择的呢?实际上NTM足够幸运,它总是会选择那个能够最终指向接受状态的那一步。
你可以把NTM的诸多分支看成是许多副本,每个副本遵循一个可能的转换。 DTM遵循的是单个“计算路径”,而NTM则是“计算树”。 如果树中至少有一个分支导致接受状态,那么NTM就会接受这个输入状态。
我们看下两者的决策图:
确定图灵机和非确定图灵机 两者在计算上是等效的,也就是说,尽管它们通常具有不同的运行时,但可以将任何NDTM转换为DTM(反之亦然)。 这可以通过构造来证明。
本文已收录于 http://www.flydean.com/03-turing-machine/
最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!
AI数学基础之:确定图灵机和非确定图灵机的更多相关文章
- p,np,npc,np难问题,确定图灵机与非确定图灵机
本文转自豆瓣_燃烧的影子 图灵机与可计算性 图灵(1912~1954)出生于英国伦敦,19岁进入剑桥皇家学院研究量子力学和数理逻辑.1935年,图灵写出了"论高斯误差函数"的论文, ...
- 图解AI数学基础 | 线性代数与矩阵论
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/83 本文地址:http://www.showmeai.tech/article-det ...
- 图解AI数学基础 | 概率与统计
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/83 本文地址:http://www.showmeai.tech/article-det ...
- AI数学基础之:P、NP、NPC问题
目录 简介 P问题 NP问题 NP问题的例子 有些NP问题很难解决 NPC问题 NP-hard P和NP问题 简介 我们在做组合优化的时候需要去解决各种问题,根据问题的复杂度不同可以分为P.NP.NP ...
- AI数学基础之:奇异值和奇异值分解
目录 简介 相似矩阵 对角矩阵 可对角化矩阵 特征值 特征分解 特征值的几何意义 奇异值 Singular value 奇异值分解SVD 简介 奇异值是矩阵中的一个非常重要的概念,一般是通过奇异值分解 ...
- AI 数学基础 张量 范数
1.张量 几何代数中定义的张量是基于向量和矩阵的推广,通俗一点理解的话,我们可以将标量视为零阶张量,矢量视为一阶张量,那么矩阵就是二阶张量. 例如,可以将任意一张彩色图片表示成一个三阶张量,三个维度分 ...
- AI数学基础:符号
1.sigma 表达式 ∑ 是一个求和符号,英语名称:Sigma,汉语名称:西格玛(大写Σ,小写σ) 第十八个希腊字母.在希腊语中,如果一个单字的最末一个字母是小写sigma,要把该字母写成 ς ,此 ...
- AI 数学基础:概率分布,幂,对数
1.概率分布 参考: https://blog.csdn.net/ZZh1301051836/article/details/89371412 p 2.幂次的意义 物理理解:幂次描述的是指数型的变化 ...
- AI 数学基础 : 熵
什么是熵(entropy)? 1.1 熵的引入 事实上,熵的英文原文为entropy,最初由德国物理学家鲁道夫·克劳修斯提出,其表达式为: 它表示一个系系统在不受外部干扰时,其内部最稳定的状态.后来一 ...
随机推荐
- vue render html string
vue render html string shit element ui render string array relativeShowConvert(data) { // log(`data` ...
- django学习-25.admin管理后台里:把表名称和表字段名称的展示值都由英文显示改为由中文显示
目录结构 1.前言 2.完整的操作步骤 2.1.第一步:修改模型类Article 2.2.第二步:重启服务 2.3.第三步:退出登录并再次成功登陆admin管理后台 2.4.第四步:查看最新的表名称展 ...
- 解决ROS及Fast-RTPS安装和使用中raw.githubusercontent.com无法连接的问题
资料参考: https://blog.csdn.net/weixin_44692299/article/details/105869229
- JVM 揭秘:一个 class 文件的前世今生
本文转载自JVM 揭秘:一个 class 文件的前世今生 导语 引子:我们都知道,要运行一个包含 main 方法的 java 文件,首先要将其编译成 class 文件,然后加载 JVM 中,就可以运行 ...
- C#使用OpenCV剪切图形中的人物头像
前言 本文主要介绍如何使用OpenCV剪切图形中的人物头像. 准备工作 首先创建一个Wpf项目--OpenCV_Face_Wpf,这里版本使用Framework4.7.2. 然后使用Nuget搜索[E ...
- MFC多文档程序启动无子窗口的实现
刚学MFC的我们,肯定会从一个基本MFC程序开始. 而VC++6.0的MFC基础类提供了三种创建方式:单文档.多文档.对话框. 当我们创建多文档应用程序的时候,会自动启动一个子窗口. 在我们平时使用软 ...
- scala:分别使用懒汉式和饿汉式实现单例模式
在java中,单例模式需要满足以下要求: 构造方法私有化,使得本类之外的地方不能使用构造方法new出对象 提供私有静态属性,接收单例对象 公共的.静态的getInstance方法,便于外界拿到单例对象 ...
- 微信小程序优化:实现picker组件中input输入框禁止输入,而只能通过picker组件选择日期
原来的代码如下: <view class="right"> <picker mode="date" value="{{mat ...
- oracle can't kill session
oracle 在杀会话时,会出现杀不掉的情况. 原因是在回滚大事物 解决方法: alter system disconnect session 'sid, serial#' immediate; ...
- 【随便写写】印象笔记,WordPress,CSDN 等 写博客的不同
之前有的文章,写在了印象笔记里面,有的文章,写在了自己的WordPress博客里面,但是,感觉还是需要在主流平台分享一下文章的.就再次写写文章吧.(PS:公众号最重要的不是写作,而是排版) 说说几个这 ...