专家系统及常用开发语言
摘要:专家系统是人工智能的一个重要分支,是研究的热点。研究人员采用了各种各样的语言进行软件的开发。为了给研究人员寻更加适合所开发系统的语言,介绍了专家系统的概念和结构,分析了几种常见的专家系统开发语言,比较了其优缺点,最后给出了不同专家系统的开发建议。
关键词:专家系统;CLIPS;Visual Prolog;VB;VC++:JESS
1专家系统简介
1.1专家系统的定义
专家系统(expert system,ES)是人工智能研究中最活跃、取得成果最多和最实用化的一个分支。专家系统早期先导者之一,斯坦福大学的EdwardFeigenbaum教授把专家系统定义为“一种智能的计算机程序,它运用知识和推理来解决只有专家才能解决的复杂问题”。也就是说,专家系统是一种模拟专家决策能力的计算机系统。模拟一词表明专家系统要在所有方面都做得像专家一样。所以这里把专家系统解释为在某一特定领域内,以人类专家水平去有效解决该领域内有关问题的计算机程序。
1-2专家系统的特点
专家系统之所以得到广泛的关注和发展,与其自身的优点是分不开的。下面介绍专家系统的一些特点:
(1)适应性强。专家知识在任何计算机上都是可用的,是专家知识的集成体。
(2)成本低。提供给用户的专家知识成本非常低。
(3)危险性低。专家系统可用于那些可能对人有害的环境。
(4)持久性。专家知识是持久的,会无限地持续,不像专家那样会退休或者
死亡。
(5)复合专家知识。复合专家知识可以做到在任何时候同时和持续地解决某
一个问题。由几个专家复合起来的知识,其水平可能会超过一个单独的
专家。
(6)可靠性强。专家系统可增强正确决策的信心,这是通过向专家提供一个
辅助观点而得到的。此外,专家系统还可协调多个专家的不同意见。如
果专家很累或有压力就可能会犯错误。
(7)解释、说明。专家系统能明确详细地解释出推论的推理过程。一个人可
能会太厌烦、不愿意或是没有能力去这样做,但明确、详细的解释有利
于得出正确的决策。
(8)响应快。某些突发的情况需要比专家反应得更迅速。依靠所使用的软件
或硬件,专家系统可以比专家反应得更迅速或更有效。
(9)始终稳定、理智和完整的响应。在实时和突发情况下,专家可能由于压
力或疲劳而不能高效地解决问题。
vb采用什么的编程机制(1O)智能数据库。专家系统能以智能的方式来存取数据库中的数据。
1.3专家系统的结构
任何类型的专家系统都是围绕知识库(knowledge base)和推理机(inference engine)来组织的。简单地说,知识+推理=专家系统。在此基础上,再加上数据库、知识获取、解释机构和人机接口等功能模块,就构成了一个专家系统的基本结构,如图1所示。
图1专家系统的结构
(1)知识库。知识库是专家系统中用于存贮和管理领域知识的存贮器。知识库中的知识主要有两种类型:一类是已知的与当前问题有关的知识,另一类是进行推理时需要用到的专门知识和一般常识。知识库中
的知识来源于知识获取机构,同时它又为推理机提供求解问题所需要的知识。为了建立知识库,需要解决知识获取和知识表达两个关键问题。知识获取是要解决如何从专家那里获得某领域的专门知识和经验的问题;知识表达则是要解决如何用计算机能够理解和处理的形式表达和存贮知识的问题。知识库的组织和结构形式对于提高专家系统的效率至关重要。
(2)推理机。推理机是控制和协调整个专家系统工作的“智能”机构。它根据系统当前数据库中已知的事实,利用知识库中的知识,按一定的推理方法和控制策略进行推理,求得问题的解决方案或证明某个结论的正确性。
(3)数据库。数据库是用于存放推理的初始数据、中间结果和最终结论的工作存贮器,也称为事实库、上下文或黑板。数据库的信息是在不断变化之中的。在求解问题的初始阶段,它存放的是用户提供的初始数据;在推理过程中,它根
据数据库的数据从知识库中选择合适的知识进行推理,然后又把推理所得的中间结果存入数据库中;在推理的最后阶段,它将推理的最终结论存入数据库。因此,数据库是推理机的一个工作区域,记录了整个推理过程中的每一步相关信息,为解释机构回答用户的咨询提供了依据。
(4)解释器。解释器是一组人机交互程序。它能够跟踪并记录系统的整个推理过程,从而可以回答用户所提出的与系统推理有关的各种问题或者与系统推理无关但与系统自身相关的其他问题,为用户了解推理
过程以及系统维护提供了方便,是实现系统透明性的主要模块。
(5)人机接口。人机接口也称用户界面,是人与系统进行信息交互的媒介。一方面将用户的输入信息翻译成系统可以接受和处理的内部形式。另一方面,接口也将系统向专家或用户的输出信息转换为人类易于理解的形式。
1.4专家系统的适用领域
现在专家系统已经被应用到几乎每一个知识领域,表1列出了专家系统的广义分类。这些专家系统有的被设计为研究工具,有的则履行着重要的商业和工业功能。
表1专家系统的广义分类
种类通用的领域
配置以正确的方法配置系统组成
诊断基于已观察到的吉祥推断潜在的问题
教学智能教学使得学生可以问为什么,怎么样和如果……会怎么
样的问题,如同人在教学
解释解释观察到的数据
检测比较观察数据和预测数据以判断性能
规划规划行为以生产预期结果
预测预测给定情况的结果
补救对问题给定补救搭救
控制管理一个过程,可能要求解释、诊断、检测、设计、预测和
补救
在普通应用中最成功的专家系统应该是XCON系统,每年要为DEC节省数百万美元。
但是在开始建造一个专家系统之前,首先要考虑的却不是开发语言的选择,而是是否有必要开发一个专家系统。如果传统的程序设计可以有效地解决问题,那么就没有必要花费精力、时间和人力去开发专家系统。虽然开发一个专家系统的过程可以积累很多的经验,但如果开发出来的系统没有人愿意用或是没
有实际意义,那所有的工作则是毫无意义的。
专家系统最适合的那些没有高效算法解决的情况,这些情况被称为非结构化问题,且推理可能会是好的解决方法的唯一希望。
2专家系统开发语言
早期的专家系统采用通用的程序设计语言(如Fortran、Pascal、Basic等)和人工智能语言(如Lisp、Prolog、Smalltalk等),通过人工智能专家与领域专家的合作,直接编程来实现的。其研制周期长、难度大。其实对于专家系统的开发,不在于所选择的语言可不可以用,而在于适合不适合。下面介绍几种现在常用的计算机开发语言,并讨论其在开发专家系统中的应用。
2.1CLIPS
CLIPS是一种专家系统语言。专家系统语言,是一种比LISP或C语言层次更高的语言,它提供一个推理机去执行该语言的语句。CLIPS是“C语言集成产生式系统(C language integrated productionsystem)”的首字母缩写。意在克服LISP 移植性差、开发工具和硬件成本高、嵌入性低的缺点。CLIPS语言是一种多范例编程语言,它支持基于规则的、面向对象的和面向过程的3种编程范例。CUPS是一个基于Rete算法的正向链推理语言,具有高移植性、高扩展性、强大的知识表达能力和编程方式以及低成本等特点。由
于CLIPS的强大功能与良好性能,以及NASA对该软件采取的开放政策,CLIPS在美国国内外都有众多用户,他们应用CLIPS开发了许多实用的专家系统,并根据各自的需要对CLIPS进行扩充和改造。
CLIPS是崭新的、基于规则和事实进行目标推理的专家系统语言,总结继承了OPS和ART等著名专家系统工具的优点,自身也发展创新,功能完善,语法简洁,易学好用,是专家系统的专门语言。CLIPS已经完整地实现了专家系统所需要的开发环境和功能,但是,它的界面是类似DOS的操作界面,这对其独立开发专家

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。