首页 > 其他分享 >计算机的理论模型——图灵机

计算机的理论模型——图灵机

时间:2022-09-07 15:57:37浏览次数:102  
标签:q1 状态 计算机 模型 图灵机 方格 当前 读写

1. 图灵机的由来

图灵机由英国数学家阿兰·麦席森·图灵(Alan Mathison Turing)于1936年提出的一种抽象的计算模型,即一切可计算问题都可以由一个虚拟的机器代替人类进行计算。

image

图灵机的概念在《论数字计算在决断难题中的应用》中提出,原论文题目为《On Computable Numbers, with an Application to the Entscheidungsproblem》,链接https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf

可计算问题

  • 定义:设函数f的定义域是D,值域是R,如果存在一种算法,对D中任意给定的x,都能计算出f(x)的值,则称函数f是可计算的
  • 研究思路:为计算建立一个数学模型,然后证明,凡是这个计算模型能够完成的任务,就是可计算的任务

2. 图灵机的构成

image

(1)一条存储带

  • 双向无限长

  • 上面有一个个小方格

  • 每个小方格可以存储一个数字/字母

(2)一个控制器

  • 可以存储当前自身的状态

  • 一个读写头,可以读、写存储带上小方格的数字/字母

  • 可以根据读写头读到数字/字母和程序更改自身的状态

  • 可以沿着存储带一格一格地左移或右移

3. 图灵机的工作步骤

3.1 前期准备工作

  1. 初始化存储带上的符号
  2. 设置控制器当前自身的状态
  3. 放置读写头于起始位置
  4. 准备好工作程序

3.2 工作流程

  1. 读写头读出存储带上当前方格中的数字/字母
  2. 根据自身当前的状态和读到的字符,找到相应的程序语句;
  3. 根据相应的程序语句,做如下三个动作:
    • 在当前存储带的方格上写入一个相应的数字/字母
    • 变更自身状态
    • 读写头向左或向右移动一步,或保持不变

4. 头脑风暴 - 模拟图灵机工作

4.1 图灵机的程序构成

图灵机的程序可以由五个元素为一组的序列定义:

<q, b, a, m, q'>

  • q:当前状态
  • q':下一个状态
  • b:当前方格中的符号
  • a:当前方格中修改后的符号
  • m:读写头移动的方向,左移L(Left),右移R(Right),保持不动H(Hold)

举例说明:<q1, 1, 0, R, q2>,当前状态为q1,读写头所在的方格内容为1,需要做如下三个动作:

  1. 将方格的内容改为0
  2. 变更自身状态为q2
  3. 读写头向右移动一格

4.2 用图灵机来计算

图灵机运行前的准备工作:

  1. 存储带上的符号初始化,当前字母表为{1,b}
  2. 设置控制器当前状态为q1,状态集合为{q1,q2,q3}
  3. 读写头置于起始位置
  4. 准备好起始程序

image

图灵机开始工作:

第一步:

  1. 读到的数据为 1,当前的状态为q1
  2. 满足的程序如下,执行的动作为:
    • 小方格中写入 1
    • 状态保存不变,仍为q1
    • 读写头向右移动一格

image

第二步:

  1. 读到的数据为 1,当前的状态为q1
  2. 满足的程序如下,执行的动作为:
    • 小方格中写入 1
    • 状态保存不变,仍为q1
    • 读写头向右移动一格

image

第三步:

  1. 读到的数据为 1,当前的状态为q1
  2. 满足的程序如下,执行的动作为:
    • 小方格中写入 1
    • 状态保存不变,仍为q1
    • 读写头向右移动一格

image

第四步:

  1. 读到的数据为空(b),当前的状态为q1
  2. 满足的程序如下,执行的动作为:
    • 小方格中写入 1
    • 状态切换为q2
    • 读写头向右移动一格

image

第五步:

  1. 读到的数据为1,当前的状态为q2
  2. 满足的程序如下,执行的动作为:
    • 小方格中写入 1
    • 状态切换为q2
    • 读写头向右移动一格

image

第六步:

  1. 读到的数据为1,当前的状态为q2
  2. 满足的程序如下,执行的动作为:
    • 小方格中写入 1
    • 状态切换为q2
    • 读写头向右移动一格

image

第七步:

  1. 读到的数据为 空(b),当前的状态为q2
  2. 满足的程序如下,执行的动作为:
    • 小方格中写入 空(b)
    • 状态切换为q3
    • 读写头向左移动一格

image

第八步:

  1. 读到的数据为 1,当前的状态为q3
  2. 满足的程序如下,执行的动作为:
    • 小方格中写入 空(b)
    • 状态切换为q3
    • 读写头保持不动

image

第九步:

  1. 读到的数据为 空(b),当前的状态为q3
  2. 满足的程序如下,执行的动作为:
    • 小方格中写入 空(b)
    • 状态切换为q3
    • 读写头保持不动

image

此时,图灵机成功停机,完成计算。

仔细分析,该步骤就是将左边的3个“1”右边的 2个“1” 相加,得到5个“1”,即完成3 + 2 = 5的计算。

该图灵机在进行任意两个大于0的整数相加。

5. 图灵机的重要性

5.1 图灵机的特点

  • 简单
  • 强大
  • 可实现

image

图灵机样机设计参考

5.2 图灵机的理论意义

  • 给出了一个可实现的通用计算机模型
  • 引入了通过“读写符号”和“状态改变”进行运算的思想
  • 证实了基于简单字母表完成复杂运算的能力
  • 引入了存储区、程序、控制器等概念的原型

标签:q1,状态,计算机,模型,图灵机,方格,当前,读写
From: https://www.cnblogs.com/wahahahehehe/p/16665738.html

相关文章

  • 【论文笔记】LayoutLMv2:将视觉信息加入到预训练阶段的跨模态文档预训练模型
    概述LayoutLMv2是对LayoutLM的改进,主要有以下几点区别:将视觉信息加入到了预训练阶段,而不是LayouLM中的微调阶段删除了MDC,添加了text-imagealignment和text-imgaematc......
  • Simulink集成模型测试太慢怎么办?
    Tips:现阶段模型开发大部分采用Simulink,为了验证模型实现了相关功能,需要对模型进行测试。模型测试(MiL)有单元测试和集成测试之分。单元测试中模型复杂度低,信号参数数量少,测......
  • 计算机硬件系统
    只有硬件系统而没有软件系统的计算机被称为“裸机”。计算机一般由控制器、运算器、存储器、输入设备和输出设备五个基本部分组成。 1.控制器(CU)基本功能:从内存中读取......
  • A100 买不到了,只有小显卡怎么训大模型
    为了达到更好的训练效果,通常炼丹师们会使用更大的模型和更大的Batchsize,但因此带来的大显存占用,却成为不可避免的硬伤。尤其是如今GPU越来越贵,甚至还可能买不到............
  • 【论文笔记】LayoutLM:首次结合文本和版式信息的文档预训练模型
    概述LayoutLM是一个基于Bert,结合了文本和版式信息的文档预训练模型,在多个下游任务中都达到了当时SOTA的结果。模型模型的总体结构如图1所示:图1LayoutLM总体结构La......
  • 助教总结(计算机组成原理)
    一、助教工作的具体职责和任务1.收作业在收集软件工程的作业后和与班级学委进行统计,并且批改卷子2.收集平时问题在一些理论性问题中我可以解决的,我会尽量给他们讲解,如果......
  • 一篇文章教你如何用界面组件DevExpress WPF创建一个WPF视图模型
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专......
  • 计算机编程领域的三十种基本思想概览
    运用之妙,存乎一心。计算机编程领域的基本思想,是大量实践与经验的提炼总结,是近乎于“道”的东西。有了思想的指引,就如同有高人指路,行不迷惑,遇事有法,运用之妙,存乎一心。......
  • 计算机网络性能指标之吞吐量(throughput)
    计算机网络性能指标速率(或数据率,即bps)指的是你网络单位时间内最大能传输的数据量,往往受很多外界因素的影响(时延、信道的干扰),实际上并没有速率标识的那么大。所以,速率也只......
  • 计算机网络性能指标之带宽(bandwidth)
    第一种意义带宽(bandwidth)本来是指某个信号具有的频带宽度。信号的带宽是指该信号所包含的各种不同频率成分所占据的频率范围。例如,在传统的通信线路上传送的电话信号的标......