专家系统及常用开发语言
149
开发专家系统。虽然开发一个专家系统的过程可以 积累很多的经验,但如果开发出来的系统没有人愿 意用或是没有实际意义,那所有的工作则是毫无意 义的。 专家系统最适合的那些没有高效算法解决的 情况,这些情况被称为非结构化问题,且推理可能 会是好的解决方法的唯一希望。
初被运用于自然语言等研究领域。现在已广泛应用 在人工智能的研究中,可以用来建造专家系统、自 然语言理解、智能知识库等pJ。
1.1专家系统的定义 专家系统(expert system,ES)是人工智能研究 中最活跃、取得成果最多和最实用化的一个分支。 专家系统早期先导者之一,斯坦福大学的Edward Feigenbaum教授把专家系统定义为“一种智能的计 算机程序,它运用知识和推理来解决只有专家才能 解决的复杂问题”。也就是说,专家系统是一种模 拟专家决策能力的计算机系统。模拟一词表明专家 系统要在所有方面都做得像专家一样。所以这里把 专家系统解释为在某一特定领域内,以人类专家水 平去有效解决该领域内有关问题的计算机程序【l】。 1.2专家系统的特点 专家系统之所以得到广泛的关注和发展,与其 自身的优点是分不开的。下面介绍专家系统的一些
信息翻译成系统可以接受和处理的内部形式。另一
入机接u
方面,接口也将系统向专家或用户的输出信息转换 为人类易于理解的形式。 1.4专家系统的适用领域 现在专家系统已经被应用到几乎每一个知识 领域,表l列出了专家系统的广义分类。这些专家 系统有的被设计为研究工具,有的则履行着重要的 商业和工业功能。
审审幸
Prolog:VB:VC++;JESS
文献标识码:B
文章编号:1674-3261(2010)03-0147—04
Expert
System and Its Developed Languages
LI
Tie-jun,TANG Qing—hua,WANG Jie
(MechanicalEngineering&AutomationCollege.LiaoningUniversityofTechnology,Jinzhou 121001,China)
摘要:专家系统是人工智能的一个重要分支,是研究的热点。研究人员采用了各种各样的语言进行软件的 开发。为了给研究人员寻找更加适合所开发系统的语言,介绍了专家系统的概念和结构,分析了几种常Jl!‘的专家 系统开发语言,比较了其优缺点,最后给出厂不问专家系统的开发建议。 关键词:专家系统;CLIPS:Visual 中图分类号:TP312
and
disadvantages
were compared.Finally some proposals for
expert system
development were suggested.
1
专家系统简介
特点: (1)适应性强。专家知识在任何计算机上都是 可用的,是专家知识的集成体。 (2)成本低。提供给用户的专家知识成本非常 低。 (3)危险性低。专家系统可用于那些可能对人 有害的环境。 (4)持久性。专家知识是持久的,会无限地持 续,不像专家那样会退休或者死亡。 (5)复合专家知识。复合专家知识可以做到在 任何时候同时和持续地解决某一个问题。由几个专 家复合起来的知识,其水平可能会超过一个单独的 专家。 (6)可靠性强。专家系统可增强正确决策的信 心,这是通过向专家提供一个辅助观点而得到的。 此外,专家系统还可协调多个专家的不同意见。如
方法和控制策略进行推理,求得问题的解决方案或 证明某个结论的正确性。 (3)数据库。数据库是用于存放推理的初始数 据、中间结果和最终结论的工作存贮器,也称为事 实库、上下文或黑板。数据库的信息是在不断变化 之中的。在求解问题的初始阶段,它存放的是用户 提供的初始数据;在推理过程中,它根据数据库的 数据从知识库中选择合适的知识进行推理,然后又 把推理所得的中间结果存入数据库中;在推理的最 后阶段,它将推理的最终结论存入数据库。因此, 数据库是推理机的一个工作区域,记录了整个推理 过程中的每一步相关信息,为解释机构回答用户的 咨询提供了依据。 (4)解释器。解释器是一组人机交互程序。它 能够跟踪并记录系统的整个推理过程,从而可以回 答用户所提出的与系统推理有关的各种问题或者 与系统推理无关但与系统自身相关的其他问题,为 用户了解推理过程以及系统维护提供了方便,是实 现系统透明性的主要模块。 (5)人机接口。人机接口也称用户界面,是人 与系统进行信息交互的媒介。一方面将用户的输入
第30卷第3期 2010年6月
辽宁工业大学学报(自然科学版)
Journal ofLiaoning University ofTechnology(Natural Science Edition)
V01.30,No.3
Jun.2010
专家系统及常用开发语言
李铁军,唐庆华,王洁
(辽宁工业大学机械工程与自动化学院.辽宁锦州121001)
CLIPS是一种专家系统语言。专家系统语言, 是一种比LISP或C语言层次更高的语言,它提供 一个推理机去执行该语言的语句。CLIPS是“C语 言集成产生式系统(C language
integrated production
system)”的首字母缩写。意在克服LISP移植性差、 开发工具和硬件成本高、嵌入性低的缺点。CLIPS 语言是一种多范例编程语言,它支持基于规则的、 面向对象的和面向过程的3种编程范例。CLIPS是 一个基于Rete算法的正向链推理语言,具有高移植 性、高扩展性、强大的知识表达能力和编程方式以 及低成本等特点。由于CLIPS的强大功能与良好性 能,以及NASA对该软件采取的开放政策,CLIPS 在美国国内外都有众多用户,他们应用CLIPS开发 了许多实用的专家系统,并根据各自的需要对 CLIPS进行扩充和改造12J。 CLIPS是崭新的、基于规则和事实进行目标推 理的专家系统语言,总结继承了OPS和ART等著 名专家系统工具的优点,自身也发展创新,功能完 善,语法简洁,易学好用,是专家系统的专门语言。 CLIPS已经完整地实现了专家系统所需要的开发环 境和功能,但是,它的界面是类似DOS的操作界 面,这对其独立开发专家系统有很大的影响。现在, CLIPS经常同其他语言一起嵌套使用,并取得了成 功。
在普通应用中最成功的专家系统应该是 XCON系统,每年要为DEC节省数百万美元。 但是在开始建造一个专家系统之前,首先要考 虑的却不是开发语言的选择,而是是否有必要开发 一个专家系统。如果传统的程序设计可以有效地解 决问题,那么就没有必要花费精力、时间和人力去
万方数据
第3期
李铁军等:专家系统及常用开发语言
2.1 CLIPS
Prolog为编译型执行,运行速度比解释型
Prolog快,原程序可编译为独立执行的可执行程序, 也可发布为DLL动态连接库供VB、VC、Delphi 等调用,为开发者提供更灵活的组合开发方式。 Prolog有如下几个特点: (1)Prolog程序没有特定的运行顺序,其运行顺 序是由电脑决定的,而不是编程序的人。 (2)Prolog程序中没有if、when、case、for这 样的控制流程语句,程序的运行方式由电脑自己决 定,当然就用不到这些控制流程的语句了。 (3)Prolog程序和数据高度统一,很难分清楚哪 些是程序,哪些是数据。 (4)Prolog程序实际上是一个智能数据库, Prolog的原理就是关系数据库,是建立在关系数据 库的基础上的。它和SQL数据库ture of
expert
systems were introduced.In addition,several common also their
expert system
languages developed were
analyzed.And
different
advantages
2.2 Visual Prolog
似之处,可以很方便地处理数据。
(5)强大的递归功能。递归是一种非常简洁的 方式,能够有效地解决许多难题。而在prolog中, 递归的功能得到了充分的体现。 虽然有以上优点,但Visual Prolog的界面不是 很漂亮,而且语言学起来不宜上手和掌握。虽然是 建立专家系统的一个很好的工具,但这些困难不免 影响开发人员的选择。
Visual
Prolog是Windows下的可视化Prolog语
言开发环境。基本Prolog语句同DOS下的Turbo Prolog相似,曾使用过Turbo Prolog的人很容易就 能上手,原DOS下的Prolog原程序也很容易移植。
Visual
2专家系统开发语言
早期的专家系统采用通用的程序设计语言(如 Fortran、Pascal、Basic等)和人工智能语言(如Lisp、 Prolog、Smalltalk等),通过人工智能专家与领域专 家的合作,直接编程来实现的。其研制周期长、难 度大。其实对于专家系统的开发,不在于所选择的 语言可不可以用,而在于适合不适合。下面介绍几 种现在常用的计算机开发语言,并讨论其在开发专 家系统中的应用。
图1专家系统基本结构
表1专家系统的广义分类
独娄 配胃 诊断 教学 解释 检测 规划 预测 补救 棒锚 …。 通围曲锺墟 以正确的片法配陧系统缎l成 基于L三观察到的占祥推断潜任的问题 智能教学使得学生可以I;ll为什么.怎么样 和如果…会怎么样的问题.如同人在教学 解释观察到的数据 比较观察数据和预测数据以判断性能 规划行为以产生预期结果 预测给定情况的结果 对问题给定补救措施 管理‘个过程.町能要求解释,诊所,检 测.设计,预测和补救
收稿日期:2010--03—29 作者简介:李铁军(1961一),男,辽宁营口人,副教授,硕士。
万方数据
148
辽宁工业大学学报(自然科学版)
第30卷
果专家很累或有压力就可能会犯错误。 (7)解释、说明。专家系统能明确详细地解释 出推论的推理过程。一个人可能会太厌烦、不愿意 或是没有能力去这样做,但明确、详细的解释有利 于得出正确的决策。 (8)响应快。某些突发的情况需要比专家反应 得更迅速。依靠所使用的软件或硬件,专家系统可 以比专家反应得更迅速或更有效。 (9)始终稳定、理智和完整的响应。在实时和 突发情况下,专家可能由于压力或疲劳而不能高效 地解决问题。 (10)智能数据库。专家系统能以智能的方式来 存取数据库中的数据。 1.3专家系统的结构 任何类型的专家系统都是围绕知识库 (knowledge base)和推理机(inference engine)来组 织的。简单地说,知识+推理=专家系统。在此基础 上,再加上数据库、知识获取、解释机构和人机接 口等功能模块,就构成了一个专家系统的基本结 构,如图1所示。