何为Turing Machine(图灵机)?

1.什么是人工智能?

定义:The study and design of intelligent agents

相关书籍:《人工智能:一种现代的方法》

2.图灵机简介:

  1. 可能是 agent (智能主体)中最简单的一种,希望回答一系列的理论问题
  2. 图灵机可以模拟任何一个其他的智能主体
  3. 智能主体的极限(什么样的问题是任何程序都无法完成的)

3.图灵机的提出背景:

  1. 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
  2. 如何去刻画“算法”这个概念?
    1. λ-calculus(Alonzo Church),与之相关的数学处理软件 Mathematica ,人工智能设计语言Lisp高度相关。
    2. 递归函数论(Stephen Kleene):有限的元素+迭代规则 →一系列函数→递归函数(可计算函数)
    3. Formal System(形式化系统):公理→定理,形式化系统本身的推演也是机械化的过程,也被视作一种对算法的刻画,代表人物:哥德尔

4.图灵1936年发表的论文

:论可计算及其在判断问题上的应用,给出了图灵机的定义

5.图灵机的定义(存在多种定义)

  1. 一条无限长的纸带TAPE。纸带被划分为一个接一个的小格子,每个格子上包含一个来自有限字母表的符号,字母表中有一个特殊的符号表示空白。纸带上的格子从左到右依次被编号为0, 1, 2, …,纸带的右端可以无限伸展。
  2. 一个读写头HEAD。它可以在纸带上左右移动,能读出当前所指的格子上的符号,并能改变它。
  3. 一套控制规则TABLE。它根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的状态,按照以下顺序告知图灵机命令:
    1. 写入(替换)或擦除当前符号;
    2. 移动 HEAD, 'L’向左, 'R’向右或者’N’不移动;
    3. 保持当前状态或者转到另一状态。
  4. 一个状态寄存器。它用来保存图灵机当前所处的状态。图灵机的所有可能状态的数目是有限的,并且有一个特殊的状态,称为停机状态。参见停机问题。
  5. DIY一个图灵机!

6.图灵机的扩充

  1. 纸带:建模外部环境(扩充到二维、三维…)
  2. 读写头:建模一个智能主体(内部状态可以表示为情感、记忆,一种复杂性的体现)
  3. 指令表:建模智能主体的行动规则

7.图灵机的计算

  1. 内部状态:
    1. initial state(初始态)
    2. carry state(进位态)
    3. no carry state(无进位态)
    4. halt(停机态)
  2. 编写指令表,进行计算推演
  3. 普适性的计算方法
    1. X:input 把输入值编码到纸带的初始状态上
    2. Y:ouput 函数的输出
    3. F:根据F来定义图灵机的内部状态和指令表
  4. 图灵可计算函数:从X到Y的映射可以用图灵机来完成的函数
  5. 组合图灵机:两个图灵机分别能解决A、B问题,通过图灵机的组合可以解决此复合函数:
    z=B(A(x))
  6. 练习:给定两个图灵机,求新图灵机的指令表和内部状态(该新图灵机能完成A和B的复合运算)

8.Simulation(模拟)

  1. 模拟的基础定义:
    1. 信息之间的同构
    2. 所有的动作保持一致
  2. 在图灵机的框架下严格定义模拟:
    1. interpreter 1:能够将input i 的任意元素映射到input i’(要求单射)
    2. interpreter 2:能够将output o 的任意元素映射到output o’(要求满射)
    3. \forall x\in I,~~I_2(B(I_1(x)))=A(x),~B\Longrightarrow A

9.图灵机的扩展

  1. 用一维图灵机去模拟二维图灵机(反直觉)
    1. 二维纸带的坐标(0,0,0,0)来编码(哥德尔配数法),将二维坐标映射为一维坐标:
      f(x,y,z,t)=2x\cdot3y\cdot5z\cdot7t
  2. 二代图灵机:读写分为两条纸带,一代图灵机可以模拟二代图灵机,即把两条纸带的一对数映射为一个数
  3. 随机访问图灵机(冯诺依曼式图灵机的前身):给纸带一个编号,读写头时输入地址即跳转到指定地址

10.关于图灵机的猜想

  1. Church-Turing Thesis(猜想/论题):任何一个可以用机械的有限步骤完成的运算过程都是可以被图灵机所模拟的,反向定义了算法过程:能够被图灵机所模拟
  2. Strong Church-Turing Thesis(假说):任何物理过程都是图灵可计算的
  3. Turing complete(图灵完备性):算法的图灵完备 即该算法过程是可模拟任意一台图灵机的运作

11.Univeral Turing Machine(通用图灵机UTM)

  1. 条件:
    1. 状态集合均为Q(Q存在有限个元素),固定纸带集合A,输入的状态有可数无穷多种
  2. 必然存在一台特殊的图灵机,该图灵机能够模拟所有给定状态(QA)和输入集合里面的所有图灵机
  3. UTM的自指特性:UTM能够模拟自己
  4. 图灵停机问题:能否找到一台特殊的图灵机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不是总能给出正确答案,故前述的假设不成立,不存在解决停机问题的方法。(另一种证明方法:对角线删除法)
  5. 图灵停机问题:能否找到一台特殊的图灵机P,以使得P可以判断任意一台图灵机作用在代码Y上面是否能够停机(终止运算),构造证明 P exists,反证其不可能,即图灵停机问题不可解
    1. 是否停机
    2. 是否有死循环
    3. 判断程序的bug

相关思维导图图灵机

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值