AI数学基础之:肯定图灵机和非肯定图灵机

简介

图灵机是由艾伦·麦席森·图灵在1936年描述的一种抽象机器,它是人们使用纸笔进行数学运算的过程的抽象,它确定了计算机实现的可能性,并给出了计算机应有的主要架构,引入了读写与算法与程序语言的概念为现代计算机的发明打下了基础。算法

本文将会讲解一下图灵机中的两种类型:肯定图灵机和非肯定图灵机。编程

图灵机

图灵机是一种数学计算模型,它定义了一个抽象机器,该抽象机器根据规则表来操纵带子上的符号。尽管该模型很简单,可是在任何给定计算机算法的状况下,均可以构建出模拟该算法逻辑的图灵机。架构

简单点说,图灵机就是一个模拟算法运行的抽象机器。它是这样定义的:并发

  1. 有一个无限长度的磁带,这个磁带被分红了一个接一个的单元格,磁带被用于写入字母和符号。
  2. 一个读写磁带的磁头,这个磁头负责控制堆磁带的写入和左右移动。
  3. 一个状态寄存器,用来存储图灵机的状态。
  4. 一个指令表,能够根据机器当前所处的状态和磁带上当前的符号,指示机器进行特定的操做。好比:擦除或者写入一个符号、向左或者向右移动磁头。

能够看到整个图灵机基本上模拟了程序的执行步骤。编程语言

图灵机虽然能够表示任意的计算程序,可是由于其极其简单的设计实际上并不适合进行计算,因此现实世界的现代计算机都是对图灵机的优化设计。优化

图灵完备性是指指令系统模拟图灵机的能力。从理论上讲,图灵完整的一种编程语言能够表达计算机能够完成的全部任务。若是忽略有限内存的限制,几乎全部编程语言都是图灵完备的。spa

图灵机的缺点

虽然图灵机能够表示任何计算任务,可是图灵机太过于简单了,在某些复杂的模型中没法很好的进行使用。好比在现代计算机中的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/

最通俗的解读,最深入的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

欢迎关注个人公众号:「程序那些事」,懂技术,更懂你!

相关文章
相关标签/搜索