首页 > 范文大全 > 正文

软件构件在专家系统中的应用研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇软件构件在专家系统中的应用研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

Research on the Application of Software Component in Expert Systems

Song Yupu;Liu Min

(商丘职业技术学院,商丘 476000)

(Shangqiu Polytechnic,Shangqiu 476000,China)

摘要: 软件构件专家系统平台已经进入应用阶段。本文通过研究专家系统的工作原理、体系结构以及多种专家系统技术,提出了一个专家系统平台的设计方案和实现。

Abstract: The software component and expert system platform have entered into application stage. Through studying working principle and system architecture of expert systems as well as various expert systems technology, the design patterns and implementation of one expert systems platform is proposed in this article.

关键词: 专家系统 构件 知识库

Key words: expert systems;component;Knowledge Base

中图分类号:TP39 文献标识码:A文章编号:1006-4311(2011)20-0144-02

1什么是专家系统

专家系统(Expert Systems)也称为基于知识的系统,是人工智能的一个最为重要的应用领域。专家系统产生于二十世纪六十年代中期,经过数十年的研究己日臻成熟,其应用得到了飞速发展。专家系统的研制促进了人工智能理论和技术的发展,开辟了计算机求解非数值问题的有效途径。迄今为止,关于专家系统还没有一个公认的严格定义,一般认为它具有如下特征:①是一个智能程序系统;②具有相关领域内大量的专家知识;③它能应用人工智能技术模拟人类专家求解问题的思维过程进行推理,解决相关领域内的困难问题,并且达到领域专家的水平。将以上几点概括起来可以说,所谓专家系统就是一种在相关领域中具有专家水平解题能力的智能程序系统,它能运用领域专家多年积累的经验与专门知识,模拟人类专家的思维过程,解决问题。如何将专家的知识和经验以适当的方式存入计算机,利用类似专家的思维方式,对原始数据进行逻辑推理、演绎、并做出判断和决策,这就是专家系统的任务。从结构组成的角度来看,专家系统是一个由存放初始数据、中间结果、最终结果数据的综合数据库和存放专门领域知识的知识库,以及一个能选择和运用知识的推理机制组成的计算机系统。

2专家系统的特点和优势

虽然专家系统也是一个程序系统,但是专家系统与传统程序不同,其主要区别如下。

2.1 传统程序是对数据结构以及作用于数据结构上确定算法的表示,数据+算法=程序。而专家系统是通过运用知识进行推理,即初始数据十知识+推理=系统。

2.2 传统程序把关于问题求解的知识隐含于程序中,而专家系统则把应用领域中关于问题求解的知识单独组成一个知识库。也就是说,传统程序将其知识组织为两级,即数据级和程序级,而专家系统则将其知识组织成三级,即数据级、知识库级和控制级。

2.3 传统程序一般是通过查找或计算来求解问题的答案,基本上是面向数值计算和数据处理的,而且在问题求解过程中先做什么及后做什么都是由程序规定的;而专家系统则是通过推理来求解问题的答案或证明某个假设,本质上是面向符号处理的,其推理过程随着情况的变化而变化,具有不确定性及灵活性。

可见,专家系统与传统程序的根本区别在于前者使知识库和运用知识的推理机制相互独立。而传统程序通过算法对大量的数据进行积累和处理,使繁琐的事务处理自动化。专家系统中,知识独立于推理程序,知识与推理机制的分离为问题的求解带动来了极大的便利。当应用场合发生变化时,修改相应知识库即可,推理机制可保持不变。从而使得系统具有很强的适应性和灵活性。

3专家系统的功能

专家系统具备以下几个功能。①存储问题求解所需用的知识、初始数据和推理过程中涉及到的各种信息,如中间结果、最终结果等。②根据当前输入的数据,利用己有知识,按照一定的推理策略,去解决当前问题。③提供知识获取,机器学习以及知识库的修改、扩充和完善等维护手段。只有这样才能更有效地提高系统的问题求解能力。④提供一种用户接口,便于分析和理解用户的各种要求和请求。

4专家系统的一般结构

专家系统的一般结构以MYCIN为代表,是基于规则的专家系统,由所谓的产生式系统发展起来。这种结构包括知识库、推理机、综合数据库、人机接口、解释程序以及知识获取程序(如图1所示)。其中知识库、推理机和综合数据库是目前大多数专家系统的主要内容,而知识获取程序、专门的人机接口是所有专家系统都期望具有的模块,但它们并不是在所有专家系统都得到了实现。各模块的功能和作用描述如下。

4.1 知识库知识库里面的知识是由人类专家在某些特定领域的经验知识组成,知识库中的经验知识分为两类,逻辑性知识和启发性知识。专家知识库在专家系统有很重要的地位,专家知识库的好坏直接影响到专家系统的性能优劣,可用性、正确性、完善性是专家知识库必备的三个特点。知识库还牵扯到知识表达的问题,知识表达是指这两类知识以什么样的形式储存到计算机中,目前知识表达是人工智能中重点研究的问题。领域专家和知识工程师需要密切合作才可以建造较理想的知识库,知识库里面的知识源于专家头脑,将这些知识用专家的表示方法填入知识库。在建造知识库的过程中,也需要用户为专家系统提供一些信息数据。在知识库的设计时,专家系统若要实现透明性和灵活性,必须使知识库和推理机相互独立,也就是说解决问题的知识与使用知识的程序相互分离,专家系统的知识库不是定性的,要允许不断向知识库添加知识;而推理机则是相对稳定的,可保证系统的正常运转。

4.2 综合数据库用于存放关于问题求解的初始数据、中间结果以及最终求解结果。综合数据库的内容是不断变化的。在求解问题的开始时,它存放的是用户提供的初始事实,在推理过程中它存放每一步推理所得到的结果。推理机根据数据库的内容从知识库选择合适的知识进行推理,然后又把推出的结果存入数据库。

4.3 推理机在专家系统中推理机是根据用户提出的问题和信息,按专家的思想选择知识库的知识。并利用这些知识进行推导,以得到所要解决问题的答案,推理机是专家系统的核心部分。推理机的推理方式主要有三种:正向推理、反向推理和混合推理。①正向推理是由原始数据出发,按一定策略,运用有关知识库的知识,推断出结论的方法。这种方法是从数据到结论,所以这种推理方式也叫数据驱动策略,或者叫做向上驱动策略。②反向推理又叫逆向推理,是先提出结论或假设,然后去寻找支持这个结论的证据,这种由结论到数据的策略,称为目标驱动策略,也叫向下策略。反向推理实现简单,可提高系统的运行效率。③混合推理顾名思义就是正反向混合推理,系统根据数据库中的原有数据,利用正向推理的方式帮助系统提出假设,然后利用进一步得到的信息用逆向推理的方式寻找支持证据,反复进行这两个过程。

4.4 知识获取程序专家系统是运用知识解决问题的,专家系统要像人一样,通过学习各种知识,不断增长才干,提高解决问题的能力,能不断适应外界环境的变化,换句话说,知识获取就是对原有知识库中的知识扩充提供了一种方法,知识获取又叫做机器学习。

知识获取是人工智能研究的核心问题,学习是知识获取的一个基本手段,学习系统可以分为7类:①传授式学习,也叫指导式学习或教授式学习,是对专家提供的信息进行选择并形式化。②类比学习,是利用相似性来认识事物的学习方法,其基础是类比推理。它是根据已知事物,通过类比去解决另一未知事物的推理过程,即内一个新的事物和另一事物在某些方面相似,可以推出这个事物和已知事物在其他方面的相似。③例子学习,也称为示例学习,是归纳学习的一个特例,根据某一概念的一组正例和反例,归纳出能描述所有正例的概念,这个概念能排除所有的反例,是从具体示例中推导出一般性知识的学习方法,可从一些初级的大量示例中,归纳出更大范围的一般性知识。④机械式学习,也称为记忆式学习,是最简单原始的学习方法,通道记忆和评价外部环境所提供的信息来学习。⑤解释学习,在领域专家的指导下,通过对学个问题的求解分析,构造出求解过程的因果解释关系结构,便于以后指导求解类似问题。⑥观察发现式学习,也叫聚类学习,把观察到的事物划分成若干类,并建立相应的概念,即概念聚类,是比归纳学习高一级的形式。它接受的实例中含有噪声和矛盾,需由学习单元进行鉴别和提纯,分析实例的相互联系,达到概念聚类或发现新的概念和定律。⑦神经网络学习,利用一组样本数据作为网络的输入或输出,按照一定的学习算法自动调节神经元之间的连接强度或拓扑结构,即所谓的改变其内部状态,使输入输出成某种规律,此时,网络的实际输出满足期望值。

4.5 解释程序对系统的求解过程以及系统当前的求解状态提供说明,便于用户理解系统的求解过程及进度。

4.6 人机接口将用户的输入信息翻译为系统可接受的内部形式,把系统向用户输出的信息转换成人类易于理解的外部形式。

5专家系统平台的实现

系统运行平台负责运行生成器生成的专家系统,支持附加的多媒体信息,保证稳定运行平台。美观、正确、高效是系统运行平台的基本要求。组件对象模型(COM)是当前所有Microsoft32位操作系统都提供的一个系统级别的技术,它负责设计、构建和使用软件组件。COM组件是以Win32动态连接库(DLL)或可执行文件(EXE)的形式的可执行代码组成的。只有遵循COM规范编写的组件才能满足对组件框架的所有要求。

5.1 用COM来实现构件管理器在专家系统平台中使用构件技术已建立了许多单独的功能构件,如:知识库管理构件、知识库求精构件、推理机构件、解释机构件等。对这些构件可以用MFC ActiveX控件向导制作,也可以用ATL编写。这两种编程工具都是VC++中面向COM组件的,只不过采用的技术路线不同。软构件管理器将对构件库实行管理。生成器引导用户选择适当的构件、生成一些界面的脚本,然后装配成一个实用的专家系统。软构件管理器对构件装配器提供支持。软构件管理器自身也是一个COM组件。

5.2 推理机构件平台要为用户提供多种推理机选择,如正向推理机、反向推理机、双向推理机及模糊推理机等。定义一个封装推理机算法的对象的类层次结构,类层次结构的根结点将定义支持推理机算法的接口,每个子类实现这个接口以执行特定的算法,而客户将通过统一的接口来调用推理机算法。InferEng是为封装推理算法设计的对象,它的接口可让推理机知道要推理的内容。在创建推理机时得到一个它的子类实例,用具体的推理算法来对目标进行推理。推理机构件是一个没有界面的COM组件,调用推理机就是调用它的接口方法,过程是设置推理目标和知识库,调用推理方法进行推理,然后将推理结果传递给调用者或写入综合数据库中。

5.3 知识库管理构件知识库管理构件是一个界面元素较多的组件,而MFC支持大量图形元素接口,所以,选用MFC来开发这个组件。并利用MFC的ActiveX Control Wizard来创建一个ActiveX控件。将知识库管理控件加载到系统平台之中,可以通过软构件管理器来实现。知识库管理控件要成为平台的一部分,同时可以加载到新生成的专家系统中。

参考文献:

[1]朱宇,杜翠红.生物发酵罐集中控制系统的实现[J].计算机系统应用,2010,12.

[2]陈翰馥.控制理论的现状及对它的期望[J].信息与控制,2010.

[3]张再兴,孙增析.关于专家控制[J].信息与控制,2010.6.