lambda演算 和图灵机
- 格式:ppt
- 大小:82.00 KB
- 文档页数:13
6种计算模型计算模型是计算机科学中的一个重要概念,它是描述计算过程的数学模型。
在计算机科学中,有许多种不同的计算模型,每种模型都有自己的特点和适用范围。
在本文中,我们将介绍6种常见的计算模型。
1.有限自动机:有限自动机是一种描述有限状态机的计算模型。
它由一组有限状态、一组输入符号和一组状态转移函数组成。
有限自动机适用于描述简单的计算过程,如正则表达式匹配和字符串处理等。
2.图灵机:图灵机是由英国数学家艾伦·图灵提出的一种抽象计算模型。
图灵机包括一个无限长的纸带和一个可以读写移动的头部。
图灵机可以模拟任何计算过程,因此被认为是一种通用的计算模型。
mbda演算:Lambda演算是一种基于函数定义的计算模型。
它使用匿名函数和函数应用来描述计算过程。
Lambda演算是函数式编程语言的理论基础,它具有优雅简洁的数学形式。
4.递归函数:递归函数是一种递归定义的计算模型。
它使用函数自身的调用来描述计算过程,递归函数适用于描述递归结构的计算问题,如树形结构的遍历和分治算法等。
5.数据流模型:数据流模型是一种描述并行计算的计算模型。
它使用数据流图来描述计算过程,将计算分解成一系列数据流操作。
数据流模型适用于描述流式计算和并行计算等。
6.并发模型:并发模型是一种描述并发计算的计算模型。
它使用并发控制结构来描述计算过程,将计算分解成多个并发执行的任务。
并发模型适用于描述多任务调度和并发通信等。
这些计算模型各具特点,在不同的计算问题中有不同的应用。
了解和掌握这些计算模型有助于我们更好地理解计算过程和设计高效的算法。
希望本文对你有所帮助。
什么是Lambda演算?1.什么是解释系统宇宙的表象,即,宇宙中的符号。
符号背后有意义。
为了表达符号背后的意义,需要解释系统,来将符号映射至意义。
所以解释系统,就是,宇宙中的符号(或宇宙的表象)与意义之间的映射规则。
人类就是这样一个解释系统。
人类可以感知宇宙表象,获得表象背后的意义,意义在人感知到的就是一种体验。
所以人类的体验就是解释系统的产物。
人类为了描述自身这个解释系统,将描述输出到物质上,例如文字,图像,声音。
就出现了两类,模拟人的解释系统的次级解释系统。
这两类次级解释系统,分别是,逻辑系统,和直觉系统。
逻辑系统的代表是数学系统。
直觉系统的代表是艺术系统。
单说,逻辑系统,其目的是,映射符号代表的意义,即,映射符号的语义。
Lambda演算等价于数学系统,所以Lambda演算本质上就是一个系统,就是一个解释系统。
就是一个模拟人的解释系统(感知系统)的次级解释系统。
就是一个所谓的解释器。
所以,反过来看,数学系统也是一个解释器。
Lambda演算可以看成一个编程语言。
所以,反过来看,数学系统也是一个编程语言。
2.家谱2.1之前的认知:逻辑系统是爷爷数学系统是爸爸Lambda演算是儿子2.2现在的认知:宇宙第一义是爷爷逻辑系统是爸爸,直觉系统是妈妈数学系统是哥哥,Lambda演算是弟弟。
(弟弟比哥哥更严肃)艺术系统是姐姐。
mbda演算于数学系统的区别Lambda演算和数学系统的本质区别是,Lambda演算是一个更严谨的人,数学系统是一个更随意的人。
他们俩个虽然能力一样,性质一样,但是做事风格不一样。
如果是做工程,显然选择严肃规范理性的的人更合适。
另一个比喻,数学系统是橡皮泥,Lambda演算是乐高玩具。
虽然他们都可以做玩具(业务),都可以映射小汽车(语义)。
乐高块相比橡皮泥更加规范,更加容易协作。
接口一致,容易连接。
(见下图)橡皮泥乐高所以Lambda的优势,就在于构建复杂,需要多人协作的工程。
计算机行业,显然属于需要多人协作的工程,所以自然选择了Lambda演算作为底层解释器。
lambda演算实例关于lambda演算的定义和解释的确有点让人迷糊,主要不是因为lambda演算有多复杂,而是一些基本概念没有归入正确位置的原因。
这里先写一点草稿,在实践中学习和领悟lambda演算到底是个什么东西。
一:自然数运算:在lambda演算中的邱奇数定义0 = λf.λx.x1 = λf.λx.f x2 = λf.λx.f (f x)3 = λf.λx.f (f (f x))SUCC = λn.λf.λx.f(n f x)SUCC是一个有三个自由变量的函数计算SUCC 0=λn.λf.λx.f (n f x) 0 //将0代入n=λf.λx.f (0 f x) //0=λf.λx.x=λf.λx.f (λf.λx.x f x) //λf.λx.x f x是将两个参数的函数λf.λx.x应用于(f x)这两个值的结果,结果等于x=λf.λx.f x //正好等于1的邱奇数定义SUCC 1=λn.λf.λx.f (n f x) 1 //将1代入n=λf.λx.f (1 f x) //0=λf.λx.x=λf.λx.f (λf.λx.(f x) f x) //λf.λx.(f x) f x是将两个参数的函数λf.λx.(f x)应用于(f x)这两个值的结果,结果等于(f x)=λf.λx.f (f x) //正好等于2的邱奇数定义小节:不妨把lambda演算看做一个自动机,你输入一个式子(一个λ项),它就给你输出一个演算结果,至于输入和输出有什么意义,是我们自己赋予的。
比如为了计算0的后继,我们只是输入(λn.λf.λx.f(n f x) λf.λx.x)给这个机器,这个机器就会给我们输出λf.λx.f x。
在解释这个输入输出关系时,我们会说,SUCC 0 = 1,这样就赋予这个运算一个意义。
这个自动机知道自己在做加1操作吗?其实它什么也不知道。
为什么邱奇数这样定义?其实不妨把它们看做是被偶然发现的一些λ项,这些λ项的组合项的演算结果恰好能对应于自然数的运算而已。
数据与信息一、数据、信息与知识1.数据数据是对客观事物的符号表示,单纯的数据是没有意义的数据的表现形式包括文字、图形、图像、音频和视频等,数字是最简单的表现形式数据的载体是实物,包括书本等2.信息信息是用来消除随机不确定性的东西特征:(1)载体依附性:信息的表示、传播、存储必须依附于载体,而不是信息表示的事物。
(2)时效性:信息反映的是某一特定时间内的状态,它会随时间的推移而变化。
(3)共享性:信息是可以传递和共享的,可以被重复使用而不会产生损耗。
(4)可加工处理性、真伪性:信息是可以加工和处理的。
信息有真实信息和虚假信息之分。
(5)价值性:信息的价值是相对的,包含显性价值和隐性价值。
3.知识知识是人类在社会实践中获得的认识和经验的总和,也是人类在实践中认识客观世界的成果。
知识是可以积累和传承的。
4.智慧:全世界只有少部分人具有智慧高科技(航天、人工智能等)、对未来的预测、创造5.数据、信息与知识关系信息是数据经过储存、分析及解释后所产生的意义,信息的载体是数据通过归纳、演绎、比较等手段对信息进行挖掘,形成知识举例:数据:37.5;信息:小明的体温是37.5摄氏度;知识:正常人的体温在36.5-37.5之间二、数据采集编码1.数据采集采集自然界数据:传感器(一般由敏感元件、转换元件、其他辅助元件组成)采集网络数据:网络爬虫2.进制转换(1)数据在计算机内部是以二进制方式进行存储和处理的。
(2)常用的数制有:二进制(B)、十进制(D)、十六进制(H)。
(3)各进制之间的转换规则如下:①二进制→十进制按权展开相加法例如:1001B=1*23+0*22+0*21+1*20=9D②十六进制→十进制按权展开相加法例如:3BH=3*161+11*160=59D③十进制→二进制除2取余倒序法例如:29D=11101B(算式如下图所示)④十进制→十六进制除16取余倒序法例如:49D=31H⑤二进制←→十六进制8421分组转换法例如:A9H=10101001B(从低位开始,以四位为一组)3.存储容量单位最小的存储容量单位:比特(bit)(b)基本的存储容量单位:字节(Byte)(B)1B=8b 1KB=1024B 1MB=1024KB 1GB=1024MB4.数字化(1)模拟信号和数字信号模拟信号是连续的数字信号是二进制,是离散的,不连续的将模拟信号转换为数字信号的过程称为数字化。
王垠:图灵的光环图灵的光环仿佛全世界的人都知道,图灵(Alan Turing)是个天才,是他创造了计算机科学,是他破解了德国纳粹的Enigma密码。
由于他的杰出贡献,计算机科学的最高荣誉,被叫做“图灵奖”。
然而根据自己一直以来对图灵机等计算模型的看法,加上一些历史资料,我发现图灵本人的实际成就,相对于他所受到的崇拜,其实相差甚远。
由于二战以来各国政府对于当时谍报工作的保密措施造成的事实混淆,再加上图灵的不幸生世所引来的同情,图灵这个名字似乎拥有了一种扑朔迷离的光环。
人们把很多本来不是图灵作出的贡献归结在他身上,把本来很平常的贡献过分地夸大。
图灵的光环,掩盖了许多对这些领域做出过更加重要贡献的人。
图灵传2012年,在图灵诞辰一百周年的时候,人们风风火火的召开各种大会,纪念这位“计算机之父”,很多媒体也添油加醋地宣传他的丰功伟绩。
还有个叫Andrew Hodges的人,抓住这个时机推销自己写的一本传记,叫做《Alan Turing: The Enigma》。
这本书红极一时,后来还被改编成了电影。
这本传记看似客观,引经据典,字里行间却可以感受到作者对图灵个人的膜拜和偏袒,他在倾心打造一个“天才”。
作者片面地使用对图灵有利的证据,对不利的方面只字不提。
仿佛图灵做的一切都是有理的,他做的不好的地方都是因为别人的问题,或者风水不好。
提到别人做的东西,尽是各种缺陷和局限性,不是缺陷也要说成是缺陷;提到图灵的工作,总是史无前例,开天辟地的发明。
别人先做出来的东西,生拉硬拽,硬要说成是受了图灵的“启发”,还怪别人没有引用图灵的论文。
这让你感觉仿佛别人都在抄袭图灵伟大的研究成果,都在利用他,欺负他似的。
如果你不想花钱买书,可以看看同一作者写的一个图灵简要生平,足以从中感受到这种倾向。
我写这篇文章的很大一部分原因,就是因为这本传记。
作者对图灵贡献的片面夸大,对其他一些学者的变相贬低,让我感到不平。
图灵在计算机界的名声,本来就已经被严重的夸大和美化,被很多人盲目的崇拜。
为什么“⽆⼈问津”的Lisp可以这么狂?⼀到周末,Hello World 咖啡馆就⽐平时热闹得多,各种语⾔都来到这⾥,互相打探对⽅的最新特性,看看⾃⼰能不能借鉴⼀些。
这天晚上,由于Lisp的到来,咖啡馆的⽓氛显得格外热烈。
LispLisp⾝穿⼀⾝时髦⼜奇异的括号服装,和Clojure, Scala等⼏个函数式编程的忠实拥趸坐在⼀桌,谈笑风声,时不时挖苦⼀下隔壁的⼏个⼈,那⾥坐着以C语⾔为⾸的⼏个⼤佬。
他悠闲地端起了⼀杯咖啡,悠悠地说道:“听说Java也⽤上了函数式编程? ”Clojure道:“是啊,加上去没多久,好多⼈还没⽤熟呢!”Lisp不屑地说道:“加上了也没⽤,不是我瞧不起他们,表达能⼒实在是太弱了!”隔壁的C语⾔早就憋了⼀肚⼦⽕,听到这句话,忍不住说道:“你嘚瑟什么呀,我知道你是基于Lambda演算的,但我们是基于图灵机的啊,上世纪已经证明这图灵机和Lambda演算是等价的,所以我们的能⼒是⼀样的。
对了,你知不知道什么是图灵机,以及他的实现冯诺依曼架构啊?”Lisp懒懒地说:“没兴趣了解,理论上计算能⼒是等价的,但并不代表在语⾔层⾯的表⽰⼀样,⽐如说,在我这⾥⾮常⾃然的函数式编程,在你们那⾥看起来就很别扭,是不是啊Java⽼弟?” Java有点不好意思,他很清楚,⾃⼰的函数式编程就是⼀个半吊⼦,所谓的Lambda表达式就是个接⼝实现⽽已。
(详情参见:《Lambda表达式有什么⽤?》)Python出来解围:“ 我这⾥⽀持得很好啊,我可以把函数当做参数进⾏传递,可以把函数当做返回值返回,还可以把函数保存到数据结构中!⾼阶函数map, reduce⽤起来也贼爽。
”JavaScript接⼝道:“我也是啊!”程序就是数据Lisp 笑了⼀下,接着问道:“你们能在运⾏时创建新的函数吗?”Java 看到展⽰⾃⼰的机会来了,马上接⼝道:“怎么不能?在程序运⾏的时候,我可以通过操作Java字节码的⽅法,动态地⽣成函数和类,⼈们经常说的AOP就是这么玩的。
量子计算机常见术语简介(4)胡经国52、图灵机⑴、图灵机概述图灵机(Turing Machine),又叫做图灵计算、图灵计算机,是由数学家阿兰·麦席森·图灵(1912-1954)提出的一种抽象计算模型,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人们进行数学运算。
具体而言,图灵机有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色;并且,有一个机器头在纸带上移来移去。
机器头有一组内部状态,还有一些固定的程序。
在每个时刻,机器头都要从当前纸带上读入一个方格信息;然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并且转换自己的内部状态;然后进行移动。
⑵、图灵的基本思想图灵机发明者图灵的基本思想是:用机器来模拟人们用纸笔进行数学运算的过程。
他把这样的过程看作下列两种简单的动作:在纸上写上或擦除某个符号;把注意力从纸的一个位置移动到另一个位置;而在每个阶段,人要决定下一步的动作,依赖于:①、此人当前所关注的纸上某个位置的符号;②、此人当前思维的状态。
⑶、图灵机组成为了模拟人的这种运算过程,图灵构造出了一台假想的机器。
该机器由以下几个部分组成:①、一条无限长的纸带TAPE纸带被划分为一个接一个的小格子。
每个格子上包含一个来自有限字母表的符号。
字母表中有一个特殊的符号表示空白。
纸带上的格子从左到右依此被编号为0,1,2,…。
纸带的右端可以无限伸展。
②、一个读写头HEAD该读写头可以在纸带上左右移动。
它能够读出当前所指的格子上的符号,并且能够改变当前格子上的符号。
③、一套控制规则TABLE它根据当前机器所处的状态以及当前读写头所指格子上的符号来确定读写头下一步的动作;并且改变状态寄存器的值,令机器进入一个新的状态。
④、一个状态寄存器它用来保存图灵机当前所处的状态。
图灵机所有的可能状态的数目是有限的;并且有一个特殊的状态,称为停机状态。
需要注意的是,这个机器的每一部分都是有限的。