现在我们来看一看,对於eval和apply两个高阶旋子构成太极推索的基本求值器的第三种变形。这个在紫皮书的第四章的第四节称之爲逻辑程序的设计,相比较前面的第一种和第二种变形, 也就是惰性求值和非确定性计算这两个变形而言呢,这个逻辑程序设计这个变形它的意义尤爲重大。

 我请大家回顾一下我前面在本书的第三章讲现代巫师的时候,我已经向大家提出过PM1/2/3的理论框架,在那个理论框架中我提到过:2是指可能事件的逻辑和形式语言。这个形式语言具体来讲呢,就是讲这个计算机程式语言,再具体一点讲就是Lisp语言,再具体讲就是Scheme语言。而在我们的创客道活动,创业的过程中,我们推荐大家使用Racket语言,在这一节呢,我会对这一个两者之间的关系,也就是可能事件的逻辑和计算机程式语言这两者之间的关系向大家进行一个详细的介绍。我会向大家试图说明这样的 一个观点,也就是说可能事件逻辑的打造与构造。和我们的Racket编程是这个创业活动,这个同一活动的这两个不同的侧面。对於一个创客而言,它一定是在自己的创业活动中,创造出一个在此之前还不存在的东西,对於以往的事件而言呢,它的这种工作,它的这种创造是一种新的东西。所以说对於这个创客的活动,我们在它这个思维规律的考察里面,一定要考察它所创造的这个实事件是否满足逻辑关系。

 这个里面就引出一个概念叫做可能事件的逻辑,这个可能事件的概念,源自於德国科学家、数学家莱布尼茨,这个概念首先由莱布尼茨提出的。莱布尼茨认爲,对於一个事态而言如果他认爲是可能的话,那麽实际上它不应该包括这个逻辑上的矛盾。那麽由1p这个事态组成的,形成的这个组合,如果它没有,从这些事态里面推不出来逻辑上的矛盾,那麽它们形成的这个组合也是可能的。那麽由无穷多种具有各种性质的这种事态可能事物的组合,它们的统称叫做可能事件。这是莱布尼茨的一个观点。有了这个概念以後,我们可以用许多新的观点来看待我们的逻辑思维。比方说我们的现实事件,就是一个可能的事件之一,因爲在我们现实事件里面,一切都是有它内在规律的,它没有逻辑上的这些矛盾。我们在很多的文学作品里面描述的那些事件,都可以看成是虚拟的事件,都可以看成是一个可能的事件。比方说西游记,西游记的素材来自於玄奘和尚去印度求经的这个历史事实。但是它做了大量的艺术创作,它里面有路上的女儿国、火焰山、流沙河还有路上遇到了很多妖魔鬼怪,历经了八十一难才到达西天取经等等。  那麽这一个里面的一些人物,包括孙悟空、猪八戒、沙和尚、还有那个白马都是可能的一些人物,类似的,我前面讲到的希腊神话,上一讲和大家讲的希腊神话,还有大量的一些小说,科幻作品,比如阿西诺夫写的很多科幻作品,我们都可以把它认爲是可能的事件。童话也是,比方说绿野仙踪、尼尔斯的企鹅旅行记这些都是属於可能的事件,可能事件这个概念的提出,它实际上从提出的那一时刻起就和语言学的一个分支,我们叫做语义学发生了某种关联,因爲这个语义学在这个语言学里面是属於研究一个合法的句子是否具有意义,是否成立的一门学科。所以可能事件的逻辑跟语义学具有天生的内在关联,相比传统的语言学的语义学和莱布尼茨可能事件的概念在当今世界研究可能事件逻辑学有很多新的发展趋势,其中之一就是命题,命题的真假我们把它使之具有某种相对性,我们已经讲过任何的真理都相对性,它都是和环境相关联的,这个思想在我们前面讲计算机Scheme语言表达时候我已经讲过,任何事物的求值一定是和它的环境相关联的。在现代逻辑学研究里面一开始也注意到这一点,我们认爲一条规则是放之四海而皆准,世界上没有这样的真理,这是第一条。

第二条就是说在可能事件逻辑研究里面,我们把一些概率论的思想,就是从必然性、偶然性和赫然性之间跟这个可能事件发生了关联。这些概念结合起来之後使可能事件的研究内容变得大大的丰富起来。

第三条第三点就是在可能的事件之间,比如说两个可能事件,我们让它建立某种拓扑连通性,具有某种映射关系。我们叫做形影关系,在这个泛系方法论语言来讲,在可能的事件之间建立形影关系。

第四条这三个特点是当今可能事件语义学发展的一个趋势,向大家做一个简要的说明,在当今逻辑学研究的领域对於可能事件的研究不是孤立的。它和很多其他的逻辑学的分支有密切的关联。比方说它与模态逻辑它有内在的关联,它与时态时间逻辑有内在的关联,它与道义逻辑也有内在的关联,它与条件逻辑关联是非常密切的,而且它与自然语言研究的一些专题也有非常密切的关联。所以今天我们研究可能事件的逻辑的时候,我们需要关注这些方面的一些研究进展。而且我们要把研究的思想和我们的Lisp编程,跟我们形式语言的编程有机的结合起来。这才是我们创客道的一项重要的思想活动。在我刚才提到的与可能事件的逻辑学相关联的现代的逻辑学分支里面,有一个分支对於我们的创客活动具有巨大的影响,那就是模态逻辑,模态逻辑在我们传统的研究里面叫做模态词,就是一个命题中必然、可能、或许、大概、不可能像这样的一些限定词,我们把它叫做模态词,在新出现的这些逻辑学分支里面,比方说道义逻辑,它也有类似的一些修饰词,应该怎样、允许怎样、禁止怎样、鼓励怎样、像这样一些词我们也可以把它视爲一种模态词。在时态逻辑里面,表示时态或者时间的一些概念,比如说过去、现在、将来、这是基本的时态。还有这个完成时,现在已经完成,过去已经完成,将来在某个时候会完成。还有表示这个动作会持续一段时间的,叫进行时,在英文里面有十几种时态,表示时态的一些修饰词,我们也可以把它称爲广义的模态词。对於认知逻辑,比方说,知道、相信、认可像这样的一些动词我们也可以把它视爲一种模态词。所以说有了这样的一些的新的观点之後,模态词的范围大大的扩大了,这个时候我们就把这样的一些词语,命题里面出现的这些词语叫做广义的模态词,请大家记住这个概念。

 我曾经向吴学谋研究员请教过一些逻辑学方面的一些问题,进行过深入的讨论,我们形成的共同的观点就是,模态词或者是广义的模态词,我们还会把它进行进一步的推广,把它和我们数学研究里面的,变量,确定在一个方程的中的变量得系数来把它对应起来,发生某种关联,而对於系数的本质,就是方程里面变量系数的本质,我们也有一些非常深入的看法,我们可以把系数看成是广义的导数,在泛系方法论里面把广义的导数叫做泛导,所谓泛导就是两个量的比对,叫做泛导。泛导可以作爲一个动词,就是这个比对的过程,我们把它作爲一个动词来看待,也可以把它作爲一个名词,就是说两个泛导,这两个量的比对这个概念我们把它称之爲泛导,而泛导是我们计算本质里面六大关系之一。我前面讲过识局整、排形影、辨异同、排泛序、显运转、度生克,讲了这个局整关系,形影关系,异同关系,泛序关系,泛导关系,和泛极关系,泛导就是其中的六大关系之一,所以它是我们计算本质的一种非常重要的运算。导数这个概念,它的起源在数学里面是在出现在古典微积分里面。在古典微积分里面我们把导数看成是DY除以DX,就是两个量的微分的一个表达。在那个形式里面DY除以DX实际上就是两个量的比对,把这两个量的比对我们进行深入的思考,我们联系中国古代阴阳的思想,在我们太极图里面是不是有阴阳泛导,就是阴阳两个量的比对,把这个比对的概念进行推广,任意两个量的比对,我们把它叫做泛导。这个概念出现以後,我们可以回过头去看我们模态逻辑里面的那些模态词,无论是狭义的模态词还是广义的模态词,我们都可以把它看成是广义的一种导数。有了这个思想之後,我们再来看看它在计算机编程实验中如何进行实例化,在lisp编程里面用於表达这个泛导的方法和形似简单的让人称奇。

  我们可以用一个叫做Cons的一个原始函数叫做Primitive Percendure。我们可以用Cons把两个数据来把它连起来,形成一个叫有序偶对,或者简称叫偶对,英文叫Pair,这个Pair就构成了一个泛导,把这两个量进行比对的过程就体现在这个控制函数里面,这是非常重要的一个函数。有了泛导之後,我们可以用两个另外的函数把已经形成的偶对拆开,一个叫做Car这个函数,一个叫做Cdr这个函数,Car这个函数会把两个量中的头一个量取出来,从偶对里面取出来,这个Cdr会把偶对後面的那一部分取出来,这是另外的两个函数,Car、Cdr和Cons这三个函数在Lisp语言的历史上是非常重要的三个函数,在最初开发Lisp的时候,有刚才提到的三个函数,Car、Cdr、Cons加上Atom和eq这一共五个函数就构成了最基本的Lisp的内容,然後在这五个原始函数的基础上,再加上Quote的Cond,Lambda这三个特殊表,Lisp语言最基本的内核就已经形成了,那麽Cons我们可以把它叫做构造函数,而Car和Cdr这两个函数,我们叫做选举函数,从我刚才提到的这8个原始函数特许表的构造来看呢,Lisp语言从一开始就非常好的支持函数试的编程,因爲Set还没有包含在这8个原始函数特许表里面。有了Set函数,我们把它称之爲变更函数,我们就可以用它做更多更有趣的编程工作,当然这个还不是羣函数式的编程,什麽叫羣函数式的编程,我今後再讲Haskell语言的时候再来进行介绍。

刚才我说的这些内容呢,都可以在紫皮书和早期的关於Lisp语言的文献里面找到,有兴趣的听衆可以,可以查找相关的一些文献以获取对Lisp语言历史的一些了解,在Lisp编程中不管你使用哪一种Lisp语言,我们都可以以Pair爲基础,然後不断的用控制函数构造一些嵌套的偶对,实际上这个嵌套的偶对呢就叫List,叫列表。如果是第一个,就是最里面的哪一个表是一个空表的话,这个时候我们嵌套出来的偶对的所形成的这个列表,叫做Properlist,有了这个Properlist之後,我们就可以做很多事情了,因爲我们可以用这个Properlist的描述现实事件里的事实,这些事实我们可以称之爲Fact,对於一堆的是事实呢,我们可以用许多列表来进行表达,这个时候我们可以得到一组叫做Facts这个概念,这个Facts这个概念,实际上在我们这个形式逻辑里面,我们可以把它称之爲一个判断,或者是把它称之爲一个命题,在这个紫皮书里面我们称它爲断言,这几个名词说的都是同一个事情,我们在这里特地说明一下。

  我们创客道实践活动中,我们需要设计基於专家系统的人工智慧系统,把这个专家系统做成一个寄存器程序,并且把这个寄存器程序变成是一个Damalpersons在Unix系统上跑起来,像网际网路上的用户提供服务,在这个专家系统设计的主题里面,我们需要像这个专家系统库首先提供一个一堆的Facts,一堆的事实,有了事实以後,我们的这个专家系统库就会构建,但是对於一个真实实用的专家系统而言,光有一些事实还是不够的,我们还需要把这些事实组织起来,表达成爲一组规则,这个规则实际上就是把一些事实和我们的逻辑运算服务结合起来。那麽这些逻辑运算符有哪些呢?一共有五个与、或、非、蕴含和相等,这五个逻辑运算符可以把事实连接成爲一个规则,英文叫做Rule,那麽这个Rule可以有一个通用的写法,这个写法是以链表的形式表达的,第一个元素就是Rule,然後第二个元素我们称之是结论,第三个元素我们称之爲Body,因爲比较抽象所以这里解释一下,结论实际上是一种模式,而Body是可以含有用户情绪的任何查询的一个形式化的表达,比如说我在我自己的创业项目里面有这麽一个规则,这个规则是什麽呢,因爲心电图是诊断心率不齐的一个黄金标准,那麽什麽叫做心率不齐呢?就是说这个结论是怎麽做出来的呢?我们可以看这个心电图里面的数据是不是无节奏的规律,还有柒仟波动和露波,还有一种快速节律,这又是一种,快速节律、还有心脏传导的阻值,这又是一种,那麽只要你是刚才提到过的四大类之一的话,我都认爲你这个人的心脏是有心率不齐这麽一个结论,在我的心电图这个创业项目里面呢,一旦用户的心电图的数据被测量和传递到我的伺服器上以後呢,那麽我们可以把这个数据视爲来自用户的查询,从我们计算机编程的角度可以这样看,那麽这个查询呢,首先我们要对它做数据分析Numerical Analysis,在前面的第四章,面粉与石膏的那一章我提到过数学建模,那麽针对心电图这个项目呢,我们首先就要用到一堆的数学理论对我们这些心电图数据,我们可以把它视爲是时序分析的这麽一个数学建模的问题,那麽这个数学建模中我们要用到很多理论,比如说小波分析,还有一些概率的思想啊,来提取我们心电图里的这些值,这是一个非常重要的一个环节,一旦心电图的原始特徵值被提取出来以後呢,那麽这个时候规则里面的第三个元素那个波底中比这个变量就会被我们地这个数值分析算法得出的特徵值所替代,那麽这个时候的查询就会按照规则所定义的线性线性关系产生这个结论,而这个结论就是我们可以视爲从这个专家系统里面所提供的一个诊断报告,这是人工智慧应用的一个典型案例,在这个项目里面呢,数值分类和非数值分类我们也叫符号分类这个计算方法得到了综合的运用,前面通过数学模型对数值特徵进行提取的那部分呢,我们把它称之爲数值分类方法,而把专家系统对这个特徵值归到哪一个病症类里面去这一套模型我们把它称之爲非数值分类,这个通过符号计算Lisp语言来完成的,那麽推而广之一个计算机专家系统它应该是一种事实和一种可以由事实推导的规则,还有对系统产生对外提供服务的接口的查询语言,在这个里面事实和规则我们把它称之爲对知识或对知识的表达,而查询语言以及查询语言所依赖的这个语法呢我们可以把它视爲这个专家系统对外服务的一个接口,那麽这个思想呢对於我麽做许许多多的创业活动具有一般性的指导意义。

 

0 0 投票数
Article Rating
订阅评论
提醒
guest
0 Comments
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x