专家系统7.7.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7.7 专家系统的开发工具 广西师范大学计信学院 目录 专家系统的开发是一件复杂比较困难的工作,人们从大量的开发实践中深深的体会到工具的重要性,并且设计和研制了一批复杂程度不等,支持环境不同、使用方法不一的开发工具,为专家系统的建造提供了许多便利。 开发工具分为四种主要类型 (1)人工智能语言 (2)专家系统外壳 (3)通用型专家系统工具 (4)专家系统开发环境 7.7.1人工智能语言 人工智能语言是计算机程序设计语言的一个子类,由于其表示形式、功能及机理适合于描 述人工智能范畴的问题,因而常被用来编写专家系统及其它以知识为基础的系统。常用的人工智能语言有LISP语言、PROLOG语言及SMALLTALK语言。另外,目前C及C++语言也常用于专家系统的开发。 1、表处理语言LISP LISP语言是麦卡锡和他的研究小组在1960年研制实现的一种人工智能语言。到现在为止,LISP是在人工智能中应用最广泛的一种程序设计语言,早期的许多著名专家系统都是利用它开发的,例如MYCIN与PROSPECTOR等。而其特征如下 (1)LISP语言是是一种适合于符号处理的语言,它处理的唯一对象是符号表达式(S-表达式),即有符号构成的表,因此又称为它为表处理语言。 S-表达式的BNF表示为:S-表达式∷=原子|(S-表达式·S-表达式)其中S-表达式的基本元素,它自身就是一种最简单的S-表达式。原子分为数值的原子与符号原子两种,数值原子是通常的数,例如126;符号原子是以字母开头的字母数字串,可以用来表示变量、常量和函数的名字等,例如NAME,AGE等。LISP中有两个特殊的原子,即NIL和T。NIL表示逻辑假,也表示空表();T表示逻辑真。 S-表达式通常用表的形式表示,例如对如下的S-表达式; (A·(B·(C·NIL))) 则上面的式子用表来表示为 (A B C ) (2)LISP中没有语句的概念,语言中的一切成分都是以函数的形式给出的。因此,LISP语言又称为是一种典型的函数语言。 LISP中定义了若干基本函数,用户还可以根据需要利用这些基本函数定义自己所需要的函数。函数的一班形式是(函数名 参数1 参数2 …参数n) 主要的基本函数有: 函数CAR及CDR分别用于取表头及表尾,例如 (CAR 〞(A B C))= A (CAR〞 ((A B C)D E))=(A B C) (CDR 〞(A B C))=(B C) (CDR〞 ((A B C)D E))=(D E) 其中,符号〞表示对于后面的S-表达式构成一个S-表达式只是引用,不进行计算。因为LISP对函数的调用形式(函数名 参数表),如果在(A B C)的前面不加〞,就会把A当作函数名,把B,C当作参数,因而(A B C)被当作函数调用而求值。另外,求表尾函数得到的一定是一张表。 函数CONS用于把两个简单的s-表达式,它用第一个参数做表头,用第二个参数作表尾,构成一个新表。例如 (CONS〞(A)〞(A B))=((A)A B) (CONS(CAR L)(CDR L))=L 其中,L表示某个表 函数APPEND用于把两个表连接成一个表。例如 (APPEND 〞(A B) 〞(C D))=( A B C D) 函数LIST用于把多个S表达式构成一个新表。例如 (LIST 〞(A B )(C D ))=((A B)(C D)) 函数SETQ用于把一个S-表达式的值赋给一个变量。例如( SETQ x 8 )把8赋值给X ( SETQ L 〞(A B) )把(A B)赋给L 函数NULL用于判断相应的S-表达式是否为另一个S-表达式中的元素。若是,则值为T,否则为NIL。例如 (NULL 〞()) 值为T (NULL 〞(()))值为NIL 函数EQ及EQUAL分别用于判断两个原子或两个S-表达式是否相同,若相同其值为T否则为NIL。例如 (EQ 〞A 〞A) 值为T (EQUAL 〞(A B) 〞(B A)) 值为NIL 函数MEMBER用于判断一个S-表达式是否为另一个S-表达式中的元素。若是,则值为T,否则为NIL。例如 (MEMBER 〞A 〞(A B C)) 值为T (MEMBER 〞A 〞(B C)) 值为NIL 函数LAST用于取表中的最后一个元素,且将它构成一张表。例如(LAST 〞(A B C))=(C) (LAST 〞(A (B C)))=(B C) 函数SUBST用于把一个S-表达式的某一部分用另一个S-表达式代替。其形式为(SUBST S1 S2 S3)他表示把S3中的S2用S1代替。例如 (SUBST〞(A B ) 〞E 〞(G E F) )=(G(A B) F) 函数PLUS,DIFF,TIMES,DIVIDE分别用于数的

文档评论(0)

wyjy + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档