首页 > 其他分享 >白话理解什么是图灵完备、图灵非完备

白话理解什么是图灵完备、图灵非完备

时间:2022-12-07 09:57:56浏览次数:63  
标签:完备 白话 模型 纸带 图灵 图灵机 计算

前言

在阅读文章时,经常会看到"图灵完备"、"图灵非完备"的概念,用来形容一种脚本语言或一种机器逻辑模型。

其实用白话来说,图灵是一个人名,他提出了一种抽象计算模型--图灵机,如果一种语言或者模型能够实现图灵机的所有计算功能,那么称此语言或模型为 图灵完备,反之为 图灵非完备

1.图灵

艾伦·麦席森·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日),英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父。

2.图灵机

图灵机,又称图灵计算、图灵计算机,是由数学家艾伦·麦席森·图灵(1912~1954)提出的一种抽象计算模型,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人们进行数学运算。它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后进行移动。

以上只是图灵机模型的内容,而非具体的实现。

图灵机可以解决什么问题

假设上述模型里所说的功能都能被以某种形式物理实现,那么任意可计算问题都可以被解决。

计算问题的一些举例:

  • 给定一个正整数n,判断它是否是质数
  • 给定一个01序列,把他们按位取反
  • 给定一个字符串,判断某个字符是否存在,及查找存在位置
  • 给定一个逻辑蕴含的命题,求它的逆否命题

非计算问题的例子:

  • 今晚吃什么
  • 为什么太阳从东边升起

3.什么是图灵完备--专业回答

在可计算性理论里,如果一系列操作数据的规则(如指令集、编程语言、细胞自动机)按照一定的顺序可以计算出结果,被称为图灵完备(turing complete)。

一个有图灵完备指令集的设备被定义为通用计算机。如果是图灵完备的,它(计算机设备)有能力执行条件跳转(if、while、goto语句)以及改变内存数据。 如果某个东西展现出了图灵完备,它就有能力表现出可以模拟原始计算机,而即使最简单的计算机也能模拟出最复杂的计算机。所有的通用编程语言和现代计算机的指令集都是图灵完备的(C++ template就是图灵完备的),都能解决内存有限的问题。图灵完备的机器都被定义有无限内存,但是机器指令集却通常定义为只工作在特定的、有限数量的RAM上。

  • 图灵完备的语言,有循环执行语句,判断分支语句等。理论上能解决任何算法。但有可能进入死循环而程序崩溃。

  • 图灵不完备也不是没有意义,有些场景我们需要限制语言本身。如限制循环和递归, 可以保证该语言能写的程序一定是终止的。

比特币的脚本系统是图灵不完备的,以太坊的智能合约系统是图灵完备的。各有优缺点,图灵不完备会更安全些,图灵完备会更智能些。

来源链接:https://www.jianshu.com/p/a04b16c5bbda

标签:完备,白话,模型,纸带,图灵,图灵机,计算
From: https://www.cnblogs.com/xiangningdeguang/p/16962204.html

相关文章

  • (一)大白话MySQL执行SQL的流程
    ​​(一)大白话MySQL执行SQL的流程​​​​(二)大白话InnoDB存储引擎的架构设计​​​​(三)大白话MySQLBinlog是什么?​​​​(四)MySQL的BufferPool内存结构​​​​(五)MySQL的Buf......
  • 一文理解什么是DevOps,通俗易懂白话文
    一文理解什么是DevOps,通俗易懂白话文 devops是什么❝DevOps维基百科定义DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)......
  • 经验分享|原来这些图灵奖巨匠就藏在身边
    前言 这是一个真实的故事,在笔者今年参加考研复试的时候,由于疫情原因是线上复试,但是一些流程还是没变的,机试+笔试完之后就是面试了。然后就开始紧张的面试了,大家都知道面试......
  • 【白话模型量化系列一】矩阵乘法量化
    模型量化是模型加速方向一个很重要的方法,主要思想就是用int8数据格式来存储和进行计算。这样做有两点好处:可以减小模型存储的体积。原本float32存储需要4个字节,现在int8存储......
  • 软件设计模式白话文系列(十四)策略模式
    1、模式描述定义一个算法的系列,将其各个分装,并且使他们有交互性。策略模式使得算法在用户使用的时候能独立的改变。在Java中,从JDK1.8开始支持函数式编程,就是策略模式......
  • 软件设计模式白话文系列(十三)模版方法模式
    1、模式描述模版方法模式属于类行为型模式,在父类中定义业务框架,并将某些步骤的实现延迟到子类实现,允许子类在不影响框架接口的的情况下,重写某些步骤。2、模式结构模版......
  • 软件设计模式白话文系列(十二)组合模式
    1、模式描述组合模式属于结构型模式,把多个对象组成树状结构来表示局部与整体,这样用户可以以相同的方式对待单个对象和组合对象。需要注意的是这里的组合和之前系列中,我们......
  • 软件设计模式白话文系列(十一)享元模式
    1、描述以共享的方法高效地支持大量细粒度对象的复用。在Java中,通过提前初始化对象或者首次使用后记录对象,后续使用就可以复用对象来实现享元模式。类似缓存技术。2、......
  • 软件设计模式白话文系列(九)装饰者模式
    1、描述通过把对象引入包含行为的特殊封装中来为对象增强功能的模式。2、模式结构与实现逻辑具体业务类:这个类的对象就是需要被装饰者模式加强的对象。需要实现抽象装......
  • 论人类下一代语言的可能—8.1图灵机
    除了在纸笔媒介系统下以书面符号形式进行数学计算外,从一开始我们也设计和制造计算工具,利用这些工具来进行数学计算。现代计算机是计算工具的最新产品。上世纪三十年代,英国......