lambda演算和图灵机解读.ppt

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
lambda演算和图灵机解读

报告内容 使用λ演算的计算和图灵机模型完成简单的加法运算。 说明λ演算的计算能力与图灵机的计算能力等价。 1.λ演算 λ演算(lambda calculus)是一套用于研究函数定义、函数应用和递归的形式系统。它由阿隆佐·邱奇和他的学生斯蒂芬·科尔·克莱尼在20世纪30年代发明的。 λ演算可以被称为最小的通用程序设计语言。它包括一条变换规则(变量替换)和一条函数定义方式。 λ演算表达了两个计算机计算中最基本的概念“代入”和“置换”。“代入”我们一般理解为函数调用,或者是用实参代替函数中的形参;“置换”我们一般理解为变量换名规则。“代入”就是用lambda演算中的β-归约概念。而“替换”就是lambda演算中的α-变换。 λ表达式的唯一形式:x,λy?e,f(a) 例如:f(x,y)=x+y λx?λy?x+y 函数求值: f(2,3)可以表示为: (λx?λy?x+y) 2 3 (λy?2+y)3 2+3 如上已经完成了普通加法,这样就结束了?? lambda演算系统中合法的字符如下: x1,x2,x3,...xn 变元 →归约 = 等价 λ,(,) 所有能够在lambda演算系统中出现的合法符号只有以上四种,其他符号都是非法的。例如λx.x+2,如果没有其他对于+符号的说明,那么这就是一个非法的λ演算表达式。 同时,自然数 2 也需要定义。 在 lambda 演算中有许多方式都可以定义自然数,但最常见的还是邱奇数 Church数 邱奇编码是把数据和运算符嵌入到lambda演算内的一种方式,它是使用lambda符号的自然数的表示法。这种方法得名于阿隆佐·邱奇,他首先以这种方法把数据编码到lambda演算中。 Church数是在Church编码下的自然数的表示法。表示自然数n的高阶函数是把任何其他函数 f 映射到它的n重函数复合 的函数。 lambda演算中的数字n就是一个把函数 f 作为参数并以 f 的n次幂为返回值的函数。 2.图灵机 图灵机基本模型有一个有穷控制器,一条输入带和一个带头,带被分成许多单元,带头在每个时刻扫视带上的一个单元。 它工作的时候是这样的:从读写头在纸带上读出一个方格的信息,并且根据它当前的内部状态开始对程序进行查表,然后得出一个输出动作,也就是是否往纸带上写信息,还是移动读写头到下一个方格。程序也会告诉它下一时刻内部状态转移到哪一个。 具体的程序就是一个列表,也叫做规则表,是这样的: 简单说完成加法的图灵机的输入字符集是0、1和+。带字符集是0、1、+、=、还有空白符。 图灵机程序计算加法的过程: 一开始带上内容是一个二进制加式,比如2+3,读写头在右边的 1 上。 首先,图灵机将读写头运动到更右一个位置,写下 =,然后运动到原始位置。 开始向右扫描。读到 1 或 0,通过进入不同的状态记住读到的是 1 还是 0,把已读过的字符记成已读状态。 然后往右找 + ,找到后,再往右找 1 或 0,还是把读过的字符标记成已读状态。找到后凭借进入不同的状态记住已读到的两个加数分别是什么。 然后再往右找 =,找到后在 = 右边第一个非 0 或 1 的空位写下记住的两个加数的和。 3.λ演算的计算能力与图灵机的计算能力等价 图灵机可计算一切直觉上能行可计算的函数。 λ演算之通用在于,任何一个可计算函数都能用这种形式来表达和求值。 因而,λ演算的计算能力是等价于图灵机的。 在λ演算中,计算系统 用函数的嵌套次数来计数。 PLUS 3 2 = λm.λn.λf.λx.( (m f)((n f) x) ) 3 2 //将3和2应用于m,n这两个自由变量 =λf.λx.( (3 f) ((2 f) x) ) //((2 f) x) = (λf.λx.(f (f x)) f x) = f (f x) =λf.λx.( (3 f) (f (f x)) ) //3=λf.λx.f (f (f x)) =λf.λx.( (λf.λx.f (f (f x)))) f )(f (f x) ) //将f 和 (f (f x)) 应用于f和x上 =λf.λx.(f (f (f (f (f x))))) //正好等于5的邱奇数定义 当前内部状态s 输入数值i 输出动作o 下一时刻的内部状态s q0

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档