何为Turing Machine(图灵机)?
1.什么是人工智能?
定义:The study and design of intelligent agents
相关书籍:《人工智能:一种现代的方法》
2.图灵机简介:
- 可能是 agent (智能主体)中最简单的一种,希望回答一系列的理论问题
- 图灵机可以模拟任何一个其他的智能主体
- 智能主体的极限(什么样的问题是任何程序都无法完成的)
3.图灵机的提出背景:
- Hilbert‘s 10th problem: Can we find a mechanical process with finite steps to judge if every Diophantus’s equation(equation with inter coefficients) has a solution
- 如何去刻画“算法”这个概念?
- λ-calculus(Alonzo Church),与之相关的数学处理软件 Mathematica ,人工智能设计语言Lisp高度相关。
- 递归函数论(Stephen Kleene):有限的元素+迭代规则 →一系列函数→递归函数(可计算函数)
- Formal System(形式化系统):公理→定理,形式化系统本身的推演也是机械化的过程,也被视作一种对算法的刻画,代表人物:哥德尔
4.图灵1936年发表的论文
:论可计算及其在判断问题上的应用,给出了图灵机的定义
5.图灵机的定义(存在多种定义)
- 一条无限长的纸带TAPE。纸带被划分为一个接一个的小格子,每个格子上包含一个来自有限字母表的符号,字母表中有一个特殊的符号表示空白。纸带上的格子从左到右依次被编号为0, 1, 2, …,纸带的右端可以无限伸展。
- 一个读写头HEAD。它可以在纸带上左右移动,能读出当前所指的格子上的符号,并能改变它。
- 一套控制规则TABLE。它根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的状态,按照以下顺序告知图灵机命令:
- 写入(替换)或擦除当前符号;
- 移动 HEAD, 'L’向左, 'R’向右或者’N’不移动;
- 保持当前状态或者转到另一状态。
- 一个状态寄存器。它用来保存图灵机当前所处的状态。图灵机的所有可能状态的数目是有限的,并且有一个特殊的状态,称为停机状态。参见停机问题。
- DIY一个图灵机!
6.图灵机的扩充
- 纸带:建模外部环境(扩充到二维、三维…)
- 读写头:建模一个智能主体(内部状态可以表示为情感、记忆,一种复杂性的体现)
- 指令表:建模智能主体的行动规则
7.图灵机的计算
- 内部状态:
- initial state(初始态)
- carry state(进位态)
- no carry state(无进位态)
- halt(停机态)
- 编写指令表,进行计算推演
- 普适性的计算方法
- X:input 把输入值编码到纸带的初始状态上
- Y:ouput 函数的输出
- F:根据F来定义图灵机的内部状态和指令表
- 图灵可计算函数:从X到Y的映射可以用图灵机来完成的函数
- 组合图灵机:两个图灵机分别能解决A、B问题,通过图灵机的组合可以解决此复合函数:
z=B(A(x)) - 练习:给定两个图灵机,求新图灵机的指令表和内部状态(该新图灵机能完成A和B的复合运算)
8.Simulation(模拟)
- 模拟的基础定义:
- 信息之间的同构
- 所有的动作保持一致
- 在图灵机的框架下严格定义模拟:
- interpreter 1:能够将input i 的任意元素映射到input i’(要求单射)
- interpreter 2:能够将output o 的任意元素映射到output o’(要求满射)
- \forall x\in I,~~I_2(B(I_1(x)))=A(x),~B\Longrightarrow A
9.图灵机的扩展
- 用一维图灵机去模拟二维图灵机(反直觉)
- 二维纸带的坐标(0,0,0,0)来编码(哥德尔配数法),将二维坐标映射为一维坐标:
f(x,y,z,t)=2x\cdot3y\cdot5z\cdot7t
- 二维纸带的坐标(0,0,0,0)来编码(哥德尔配数法),将二维坐标映射为一维坐标:
- 二代图灵机:读写分为两条纸带,一代图灵机可以模拟二代图灵机,即把两条纸带的一对数映射为一个数
- 随机访问图灵机(冯诺依曼式图灵机的前身):给纸带一个编号,读写头时输入地址即跳转到指定地址
10.关于图灵机的猜想
- Church-Turing Thesis(猜想/论题):任何一个可以用机械的有限步骤完成的运算过程都是可以被图灵机所模拟的,反向定义了算法过程:能够被图灵机所模拟
- Strong Church-Turing Thesis(假说):任何物理过程都是图灵可计算的
- Turing complete(图灵完备性):算法的图灵完备 即该算法过程是可模拟任意一台图灵机的运作
11.Univeral Turing Machine(通用图灵机UTM)
- 条件:
- 状态集合均为Q(Q存在有限个元素),固定纸带集合A,输入的状态有可数无穷多种
- 必然存在一台特殊的图灵机,该图灵机能够模拟所有给定状态(QA)和输入集合里面的所有图灵机
- UTM的自指特性:UTM能够模拟自己
- 图灵停机问题:能否找到一台特殊的图灵机P,以使得P可以判断任意一台图灵机作用在代码Y上面是否能够停机(终止运算),构造证明 P exists,反证其不可能,即图灵停机问题不可解
int H(procedure,Input); // 这里的H函数有两种返回值,死循环(0) 或 停机(1)
int U§
{
//H(P,P) == 0时则跳出循环,程序正常结束;H(P,P)==1时则进入死循环中。
while(H(P,P)){}
return 0;
}
考虑U(U)的运行结果。H(U,U)的输出可能出现两种状况:- 假设H(U, U)输出“停机” -> U(U)进入死循环:由定义知二者矛盾(与过程H的定义相矛盾,因为照H自己本来的定义,H(U, U)的结果应该和U(U)相同,但U()的定义却是永远做出与H()相反的结果。)
- 假设H(U, U)输出死循环 -> U(U)停机:两者一样矛盾。
因此,H不是总能给出正确答案,故前述的假设不成立,不存在解决停机问题的方法。(另一种证明方法:对角线删除法)
- 图灵停机问题:能否找到一台特殊的图灵机P,以使得P可以判断任意一台图灵机作用在代码Y上面是否能够停机(终止运算),构造证明 P exists,反证其不可能,即图灵停机问题不可解
- 是否停机
- 是否有死循环
- 判断程序的bug
- …
相关思维导图
何为Turing Machine(图灵机)?相关推荐
- 图灵 计算机 ppt,turing machine 图灵机.ppt
turing machine 图灵机 Outline 图灵机的意义 图灵机概述 图灵机的基本思想 图灵机的组成 图灵机的计算思想 图灵机的意义 图灵机模型理论是计算科学最核心的理论之一 图灵机模型为计 ...
- 【数据结构】P2 Turing Machine 图灵机
数据结构 系列博客S1第一季为 "数据结构算法与python" 系列内容. 图灵机 图灵机概述 图灵机是1936年英国数学家,计算机之父,人工智能之父 - 阿兰·图灵提出的一种 抽 ...
- 图灵机Turing Machine
图灵机Turing Machine 1. 图灵机Turing Machine基本概念 2. 图灵机Turing Machine基本定义 3. 图灵机Turing Machine例子 1936年,Ala ...
- 图灵机(Turing Machine)
图灵机,又称图灵计算.图灵计算机,是由数学家阿兰·麦席森·图灵(1912-1954)提出的一种抽象计算模型,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人们进行数学运算. 所谓的图 ...
- 编程常用英语词汇 | GitHub
Table of Contents A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 专业名词 A 英文 译法 1 译法 2 译法 3 a blo ...
- 机器学习术语中英对照表
反向传播 BPTT Backpropagation Through Time 通过时间的反向传播 BN Batch Normalization 分批标准化 Bayesian network 贝叶斯网络 ...
- AI人工智能 / ML机器学习专业词汇集
部分转自AI人工智能专业词汇集 目录 Letter A Letter B Letter C Letter D Letter E Letter F Letter G Letter H Letter I ...
- 机器学习专业英语单词
常用英语词汇-andrew Ng课程 [1 ] intensity 强度 [2 ] Regression 回归 [3 ] Loss function 损失函数 [4 ] non-convex 非凸函数 ...
- 人工智能领域专业术语合集
人工智能专业术语 资料来源:https://github.com/jiqizhixin/Artificial-Intelligence-Terminology 文章目录 人工智能专业术语 Letter ...
最新文章
- Yii学习笔记【2】
- Http Chunked Transfer Coding
- sql 增加链接服务器,SQL server利用脚本添加链接服务器,可设置别名
- leetcode 515. 在每个树行中找最大值(层序遍历06)
- 奇偶数判断(信息学奥赛一本通-T1041)
- 原生JS去除二维数组中重复了的一维数组
- 如何使用scikit-learn工具来进行PCA降维
- android实现翻书效果(文本和图片的翻书)
- C/C++函数调用方式
- python第五十二课--自定义异常类
- 面向对象17:抽象类和抽象方法、创建抽象类的匿名子类对象、模板方法设计模式
- HTML全面深入学习-用label获得焦点
- 局域网虚拟服务器的工作模式,三种虚拟局域网实现方式有哪些差异?实现虚拟局域网的工具推荐...
- 24点游戏 C语言代码
- 如何在官网上下载MySQL驱动--最新方法
- 基于java的健康管理平台设计与实现(含源文件)
- 学习编程需要学习什么?
- 选择合理的WCDMA网络无线扩容方案(转)
- 无源RFID固定资产管理解决方案
- 创业教父马云的经典语录
热门文章
- 【将金令】1.22晚间操作建议:QE数据激发避险情绪
- 通过mac地址查找PC位于那个接入层交换机上
- 32.768K的晶振用途
- 32.768khz晶振在手表中的作用
- 深度学习论文: BAM: Bottleneck Attention Module及其PyTorch实现
- Excel自动化办公(一) | 满足你对Excel数据的所有幻想,python-office一键生成模拟数据
- 每个国家的邮政编码查询
- 【0805作业】继承Thread类创建线程,输出20次数字,“你好”,线程名
- Apache DbUtils 探秘
- 蓝汛之GPIO基本操作寄存器【篇】