专家系统及其常用开发语言

上传人:jin****ng 文档编号:123244432 上传时间:2022-07-22 格式:DOC 页数:10 大小:121.50KB
收藏 版权申诉 举报 下载
专家系统及其常用开发语言_第1页
第1页 / 共10页
专家系统及其常用开发语言_第2页
第2页 / 共10页
专家系统及其常用开发语言_第3页
第3页 / 共10页
资源描述:

《专家系统及其常用开发语言》由会员分享,可在线阅读,更多相关《专家系统及其常用开发语言(10页珍藏版)》请在装配图网上搜索。

1、专家系统及常用开发语言摘要:专家系统是人工智能的一个重要分支,是研究的热点。研究人员采用了各 种各样的语言进行软件的开发。为了给研究人员寻找更加适合所开发系统的语 言,介绍了专家系统的概念和结构,分析了几种常见的专家系统开发语言,比较 了其优缺点,最后给出了不同专家系统的开发建议。关键词:专家系统;CLIPS; Visual Prolog; VB; VC+: JESS1 专家系统简介11 专家系统的定义专家系统(expert system, ES)是人工智能研究中最活跃、取得成果最多和 最实用化的一个分支。专家系统早期先导者之一,斯坦福大学的EdwardFeigenbaum教授把专家系统定义为

2、“一种智能的计算机程序,它运用知识 和推理来解决只有专家才能解决的复杂问题”。也就是说,专家系统是一种模拟 专家决策能力的计算机系统。模拟一词表明专家系统要在所有方面都做得像专家 一样。所以这里把专家系统解释为在某一特定领域内,以人类专家水平去有效解 决该领域内有关问题的计算机程序。1-2 专家系统的特点专家系统之所以得到广泛的关注和发展,与其自身的优点是分不开的。下面 介绍专家系统的一些特点:(1) 适应性强。专家知识在任何计算机上都是可用的,是专家知识的集成体。(2) 成本低。提供给用户的专家知识成本非常低。(3) 危险性低。专家系统可用于那些可能对人有害的环境。(4) 持久性。专家知识是

3、持久的,会无限地持续,不像专家那样会退休或者 死亡。(5) 复合专家知识。复合专家知识可以做到在任何时候同时和持续地解决某 一个问题。由几个专家复合起来的知识,其水平可能会超过一个单独的 专家。(6) 可靠性强。专家系统可增强正确决策的信心,这是通过向专家提供一个 辅助观点而得到的。此外,专家系统还可协调多个专家的不同意见。如 果专家很累或有压力就可能会犯错误。(7) 解释、说明。专家系统能明确详细地解释出推论的推理过程。一个人可 能会太厌烦、不愿意或是没有能力去这样做,但明确、详细的解释有利 于得出正确的决策。(8) 响应快。某些突发的情况需要比专家反应得更迅速。依靠所使用的软件 或硬件,专

4、家系统可以比专家反应得更迅速或更有效。(9) 始终稳定、理智和完整的响应。在实时和突发情况下,专家可能由于压 力或疲劳而不能高效地解决问题。(1O)智能数据库。专家系统能以智能的方式来存取数据库中的数据。1 3 专家系统的结构任何类型的专家系统都是围绕知识库(knowledge base)和推理机 (inference engine) 来组织的。简单地说,知识+推理=专家系统。在此基础上, 再加上数据库、知识获取、解释机构和人机接口等功能模块,就构成了一个专家 系统的基本结构,如图1所示。图 1 专家系统的结构(1) 知识库。知识库是专家系统中用于存贮和管理领域知识的存贮器。知识 库中的知识主

5、要有两种类型:一类是已知的与当前问题有关的知识,另一类是进 行推理时需要用到的专门知识和一般常识。知识库中的知识来源于知识获取机 构,同时它又为推理机提供求解问题所需要的知识。为了建立知识库,需要解决 知识获取和知识表达两个关键问题。知识获取是要解决如何从专家那里获得某领 域的专门知识和经验的问题;知识表达则是要解决如何用计算机能够理解和处理 的形式表达和存贮知识的问题。知识库的组织和结构形式对于提高专家系统的效 率至关重要。(2) 推理机。推理机是控制和协调整个专家系统工作的“智能”机构。它根 据系统当前数据库中已知的事实,利用知识库中的知识,按一定的推理方法和控 制策略进行推理,求得问题的

6、解决方案或证明某个结论的正确性。(3) 数据库。数据库是用于存放推理的初始数据、中间结果和最终结论的工 作存贮器,也称为事实库、上下文或黑板。数据库的信息是在不断变化之中的。 在求解问题的初始阶段,它存放的是用户提供的初始数据;在推理过程中,它根 据数据库的数据从知识库中选择合适的知识进行推理,然后又把推理所得的中间 结果存入数据库中;在推理的最后阶段,它将推理的最终结论存入数据库。因此, 数据库是推理机的一个工作区域,记录了整个推理过程中的每一步相关信息,为 解释机构回答用户的咨询提供了依据。(4) 解释器。解释器是一组人机交互程序。它能够跟踪并记录系统的整个推 理过程,从而可以回答用户所提

7、出的与系统推理有关的各种问题或者与系统推理 无关但与系统自身相关的其他问题,为用户了解推理过程以及系统维护提供了方 便,是实现系统透明性的主要模块。(5) 人机接口。人机接口也称用户界面,是人与系统进行信息交互的媒介。 一方面将用户的输入信息翻译成系统可以接受和处理的内部形式。另一方面,接 口也将系统向专家或用户的输出信息转换为人类易于理解的形式。14 专家系统的适用领域现在专家系统已经被应用到几乎每一个知识领域,表1列出了专家系统的广 义分类。这些专家系统有的被设计为研究工具,有的则履行着重要的商业和工业 功能。表 1 专家系统的广义分类种类一、通用的领域配置以正确的方法配置系统组成诊断基于

8、已观察到的吉祥推断潜在的问题教学智能教学使得学生可以问为什么,怎么样和如果 会怎么样的问题,如同人在教学解释解释观察到的数据检测比较观察数据和预测数据以判断性能规划规划行为以生产预期结果预测预测给定情况的结果补救对问题给定补救搭救控制管理一个过程,可能要求解释、诊断、检测、设计、预测和 补救在普通应用中最成功的专家系统应该是XCON系统,每年要为DEC节省数百万 美元。但是在开始建造一个专家系统之前,首先要考虑的却不是开发语言的选择, 而是是否有必要开发一个专家系统。如果传统的程序设计可以有效地解决问题, 那么就没有必要花费精力、时间和人力去开发专家系统。虽然开发一个专家系统 的过程可以积累很

9、多的经验,但如果开发出来的系统没有人愿意用或是没有实际 意义,那所有的工作则是毫无意义的。专家系统最适合的那些没有高效算法解决的情况,这些情况被称为非结构化 问题,且推理可能会是好的解决方法的唯一希望。2 专家系统开发语言早期的专家系统采用通用的程序设计语言(如Fortran、Pascal、Basic等) 和人工智能语言(如Lisp、Prolog、Small talk等),通过人工智能专家与领域专 家的合作,直接编程来实现的。其研制周期长、难度大。其实对于专家系统的开 发,不在于所选择的语言可不可以用,而在于适合不适合。下面介绍几种现在常 用的计算机开发语言,并讨论其在开发专家系统中的应用。2

10、1 CLIPSCLIPS是一种专家系统语言。专家系统语言,是一种比LISP或C语言层次更咼 的语言,它提供一个推理机去执行该语言的语句。CLIPS是“C语言集成产生式系 统(C language integrated productionsystem) ” 的首字母缩写。意在克服LISP 移植性差、开发工具和硬件成本高、嵌入性低的缺点。CLIPS语言是一种多范例 编程语言,它支持基于规则的、面向对象的和面向过程的3种编程范例。CUPS是 一个基于Rete算法的正向链推理语言,具有高移植性、高扩展性、强大的知识表 达能力和编程方式以及低成本等特点。由于CLIPS的强大功能与良好性能,以及 NAS

11、A对该软件采取的开放政策,CLIPS在美国国内外都有众多用户,他们应用 CLIPS开发了许多实用的专家系统,并根据各自的需要对CLIPS进行扩充和改造。CLIPS是崭新的、基于规则和事实进行目标推理的专家系统语言,总结继承 TOPS和ART等著名专家系统工具的优点,自身也发展创新,功能完善,语法简洁, 易学好用,是专家系统的专门语言。CLIPS已经完整地实现了专家系统所需要的 开发环境和功能,但是,它的界面是类似DOS的操作界面,这对其独立开发专家系统有很大的影响。现在,CLIPS经常同其他语言一起嵌套使用,并取得了成功。22 Visual PrologProlog(programming i

12、n logic的缩写)是一种逻辑编程语言。它建立在逻辑 学的理论基础之上,最初被运用于自然语言等研究领域。现在已广泛应用在人工 智能的研究中,可以用来建造专家系统、自然语言理解、智能知识库等 。Visual Prolog是Windows下的可视化Prolog语言开发环境。基本Prolog语句 同DOS下的TurboProlog相似,曾使用过Turbo Prolog的人很容易就能上手,原DOS 下的Prolog原程序也很容易移植。Visual Prolog为编译型执行,运行速度比解 释型Prolog快,原程序可编译为独立执行的可执行程序,也可发布为DLL动态连 接库供VB、VC、Delphi等调

13、用,为开发者提供更灵活的组合开发方式。Prolog 有如下几个特点:(1) Prolog程序没有特定的运行顺序,其运行顺序是由电脑决定的,而不是 编程序的人。(2) Prolog程序中没有if、when、case、for这样的控制流程语句,程序的运 行方式由电脑自己决定,当然就用不到这些控制流程的语句了。(3) Prolog程序和数据高度统一,很难分清楚哪些是程序,哪些是数据。(4) Prolog程序实际上是一个智能数据库,Prolog的原理就是关系数据库, 是建立在关系数据库的基础上的。它和SQL数据库查询语言有很多相似之处,可 以很方便地处理数据。(5) 强大的递归功能。递归是一种非常简洁

14、的方式,能够有效地解决许多难 题。而在prolog中,递归的功能得到了充分的体现。虽然有以上优点,但Visual Prolog的界面不是很漂亮,而且语言学起来不宜上手和掌握。虽然是建立专家系 统的一个很好的工具,但这些困难不免影响开发人员的选择。23 Visual BasicVB是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化 的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows环境下的各类应用程序。它简单易学、效率高。在VB环境下,利用事件 驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程 序接口 (AP

15、I)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连 接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰 富的应用软件系统。VB使用了可以简单建立应用程序的GUI系统,但是又可以开 发相当复杂的程序。VB的程序是一种基于窗体的可视化组件安排的联合,并且 增加代码来指定组建的属性和方法。因为默认的属性和方法已经有一部分定义在 了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本 里面VB程序的性能问题一直是应用者的顾虑,但是随着计算机速度的飞速增加, 关于性能的争论已经越来越少。此外大量的第三方控件针对VB提供。VB也提供了

16、建立、使用和重用这些控件的方法。现在有很多以VB为开发平台的专家系统实例。但是由VB直接编写专家系统, 编程很难而且很慢,尤其是对产生式程序、谓词分析、语法分析,如何用B处理 这种复杂的算法是阻碍其应用的瓶颈。现在还有一种方法可以考虑,就是在VB中嵌套CLIPS.具体是,运用VB开发 专家系统的操作界面;用CLIPS实现专家系统的内部推理机制;在VB中调用CLIPS ActiveX. OCX以实现嵌套。2. 4 VCVC+Microsoft Visual C+(简称Visual C+、MSVC、vc+或VC)是微软公司的C+ 开发工具,具有集成开发环境,可提供编辑C语言、C+以及C+ / CL

17、I等编程语言。 Vc+整合了便利的除错工具,特别是整合了微软视窗程式设计(Windows API)、 三维动画DirectX API,Microsoft. NET框架。目前最新的版本是Microsoft Visual C+2008.准确地说,VC和VC+不能算是一种语言,只能说是在Windows的可视环 境下利用C和C+进行编程的一个工具。VC作为一个主流的开发平台一直深受编 程爱好者的喜爱。学习VC厂、,C+要了解Windows平台的特性,掌握MFC、ATL、 COM等的知识。Windows下编程需要了解Windows的消息机制以及回调(callback) 函数的原理;MFC是win32AP

18、I的包装类,需要理解文档视图类的结构、窗口类的 结构、消息流向等等; COM 是代码共享的二进制标准,需要掌握其基本原理等。 此外要想学习好VC厂、,C+必须具备良好的C,C+的基础,因为大量的技术文 档多以英文形式发布,所以英语阅读能力也是必不可少的。以上原因导致很多人 感到入门甚难。由于CLISP是用C语言编写的,嵌入到VC平台,理论上是毋庸置疑的,在实践 中也有多种方式:直接嵌入方式、加载DLL方式、包装类方式等等。使用VC+中 的MFC提供的丰富资源设计系统的用户界面,将用户从输入的信息(事实)断言 (assert)到CLISP中去,由CLISP运用规则查询专家知识库以完成对系统的推理

19、, 并将推理结果返回到VC+环境中显示。这就是VC+与CLISP的混合编程内涵。25 JESSJESS是1995年由美国Sandia国家实验室分布式系统计算组成员ErnestJ. FriedmanHill用JAVA实现的一个经过扩充的CLIPS版本。它以CLIPS的设计 原理为基础进行编写,除继承了 CLS的优点外,还具有许多自己独特的特征,如 支持正向和逆向推理,可以在系统运行环境下直接调用JAVA的类库等。这些特点 将专家系统的开发过程同功能强大的JA、,A语言结合起来,使采用JESS语言开 发的专家系统具有良好的移植性、嵌入性,可以方便地应用到网络上的不同机器 中。另外,JAVA多线程机

20、制使JESS可以与其他应用程序并发执行,同步机制保 证了对共享数据的正确操作,通过使用不同的线程完成特定的行为,就可以很容 易地实现网络上的实时交互行为 。JESS非常小巧、灵活,并且是己知规则引擎中最快的。核心JESS语言与CLIPS 依然兼容,许多JESS脚本也是有效的CLIPS脚本。与CLIPS一样,JESS使用Rete 运算法则来处理规则。Rete是一个非常高效的算法,用于解决复杂、艰深的多对 多匹配问题。日前,JESS被广泛用于学术、工业、商业等领域,是一个有着广阔 发展前景的专家系统开发平台。在专家系统中开发时,可以选择JESS语言编写推理机,程序外壳则使用JAVA 语言来实现,利

21、用J AVA强大的编程能力可以实现专家数据库系统中的知识共享、 并发控制等。JESS 自从问世以来就没有停止过对功能的扩展。加拿大国家研究委员会信 息技术研究所的R. A. Orchard将模糊推理的功能加入到JESS中,推出了Fuzzy J Toolkit. Fuzzy J Toolkit本身就是一个模糊专家系统外壳,但只支持模糊前件 和模糊后件这些基本的推理方式。它可以和JESS结合,形成功能更为强大的专家 系统外壳FuzzyJESS, FuzzyJESS不但可以表达精确事实、模糊事实、执行模糊推 理,还具有JESS的强大功能。3结论专家系统作为人工智能最活跃的分支,其应用日益广泛。在选择

22、开发专家系 统前,研究人员应首先论证其必要性,其次选择合适的语言工具。CLIPS是专家系统语言,但是多于其他语言嵌套使用。从专家系统的现状来 看,Visual Prolog作为专用的AI语言,对专家系统开发很适合,但是其语言掌 握较难,适合专门学过该语言的研究者。对于初学者,如果没有很好的语言基础, 且系统较小,对速度要求不高,可以选择VB来开发。VC+作为功能强大的开发语 言,适合较大的系统,但其门槛相对较高,要求熟练掌握语言特点。如果研究者 有熟练的J AVA功底,且软件开发工程较大,不妨采用JESS作为开发语言。现在有一些成型的专家系统外壳,开发者可以根据自己的情况,训练自己的 专家系统

23、,这是现代专家系统开发技术的重要一步,因为这意味着对每一项新的 应用,再也不必从头开始建立一个系统了。这大大缩短了专家系统的研制周期, 从而为专家系统在各领域的广泛应用提供条件。参考文献:fl】 JOSEPH Giarratano Gary Riley.工业方专家系统原理与 编程【M】.北京:机械工业出版社,2000f2】潘全文,艾弘飞,房振旭.专家系统的基本原理和基于 CLIPS的专家系统设计与实现【J】.飞机设计,2004(4): 788O.【3】李益南.CAPP专家系统研究及开发【D】.长沙:湖南大 学. 2003.【4】郭姝嫒.化工过程模拟辅助设计专家数据库系统的研究 D】.大连:大连理工大学,2005.【5】付荣华,康慧,曲平.不锈钢钎焊管理信息系统的开发 fJ1,电焊机,2007(3): 卜4.6】马华杰,袁永军,谭悦.CLIPS与Visual C+接口的研究 【J 仪器仪表用户,2005(2): 11o_111.【7】吴沁奕,陈英,吴鹤龄新一代专家系统工具 基于Java的JessDB / OL. 201 0-03一02】. http: #www. WOW somenetseostudyseowangzhai2010012678323htm1【8】梁灵辉.专家系统外壳的数据库设计J】.中小学电教, 2007(4): 55一59.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!