面向对象技术已成为信息系统应用和开发的主流技术,这是因为它具有信息隐蔽、数据抽象、动态约束和继承性等特点,在处理复杂问题方面具有很强的能力.面向对象中“类”的概念,反映了人类认识事物从特殊到一般的归纳抽象,而继承性则实现了从一般到特殊的演绎过程.因此,面向对象的方法更接近于人类的一般思维活动,适合建造专家系统.将面向对象技术引入专家系统已成为引人注目的一个方向。
随着专家系统的广泛应用,人们已逐渐认识到,专家系统的成功开发,从某种意义上讲依赖于有效的专家系统工具。专家系统工具为用户提供开发专家系统的环境,如用户接口、解释系统、知识获取系统、排错帮助等。在该环境下,用户只需把某专业领域的知识按要求输入知识库中,就可迅速构成一个专家系统。
由于机械设计自身的特点,机械设计专家系统开发工具比诊断型、决策型专家系统开发工具要复杂得多.面向对象的程序设计方法是开发大型软件系统行之有效的方法,将其方法用于专家系统工具的设计,可提高软件的可重用性、可扩展性和可维护性。作者用结构化方法开发的MDEST(Machinery
Design Expert System Tool)专家系统工具系统.在此基础上,我们进一步研究开发了面向对象的机械设计专家系统开发工具OMEST(Object-oriented
machinery design expert system tool),该工具把问题的元素表示为对象,对象包含了规则、框架和过程.本文介绍面向对象的机械设计专家系统工具OMEST的系统结构,阐述OMEST系统的面向对象的知识表示方法和面向对象的推理机制.
1 OMEST系统的结构
机械设计过程包括方案设计、结构设计及计算、评价(如评价结果不满意则需进行再设计)、绘制工程图等。为了满足机械设计的要求,OMEST系统具有图1所示的结构。
知识获取系统协助用户建立、扩充和维护知识库。推理机采用复合不精确推理方法,解决机械设计中设计知识的不确定性.方法库管理主要完成诸如优化设计、有限元分析等数值计算和应用数据处理,用于推理决策.评价系统进行可接受性决策,判断设计是否满足设计约束条件,即是否失效.失效处理模块对失效进行处理,并实现回溯,进行再设计.解释系统可显示/打印推理中成功匹配的规则及系统是如何得出结论的.绘图接口实现工具系统与绘图软件包AutoCAD联接,用于工程图的绘制.在AutoCAD环境下还可建立和使用图形库.用户接口系统提供良好的人机界面,管理并执行用户和专家系统之间的所有对话通讯.知识库是规则对象的集合,一条规则对象是否被激活由消息决定.数据库用于记录专家系统处理的中间假设和结论,存放用户提供的事实和由规则推出的中间结果及最后结论.事实空间是事实的集合,由消息激活的规则对象将推理结果放入事实空间.
2 面向对象的知识表示
2.1 基本概念
关于知识表示的方法,目前常用的有逻辑、语义网络、产生式规则、框架、剧本、神经网络等,而面向对象的知识表示法近来已引起了人们的关注.该方法以描述对象的数据结构为中心来构筑系统.面向对象的知识表示包括了知识对象、知识类、属性、消息、类层次与继承等概念,分别描述如下:
(1)知识对象:逻辑上独立、具有固定结构的知识实体都可定义为知识对象.知识对象既封装了状态又封装了行为,所以对象不仅具有数据的特点,还具有程序的特点.
(2)知识类:具有相同结构、属性和方法的知识对象的集合组成一个知识类.所有知识对象都是某个知识类的实例化,即按照知识类提供的结构、属性和方法的描述方式形成具体的知识对象.
(3)属性:每个对象都包含有若干属性,用于描述对象的状态、组成和特性.
(4)消息:对象与对象之间发送或者传递的参数和信息称为消息.消息传输是激活对象的唯一方法,知识对象通过消息的传递和对象之间的相互作用来实现推理及推理过程的控制.
(5)类层次与继承:面向对象系统允许用户从现有的类中导出新类,称之为原有类的子类.子类继承父类的所有属性,用户也可以为子类定义附加的属性.子类与父类的联系形成了一种类的层次特性,而子类对父类属性的继承说明了它们之间的继承性.
2.2 OMEST系统的面向对象的知识表示
由于机械设计应用到的知识相当广泛,单一的知识表示方法很难充分表达,故OMEST系统采用规则—框架—过程的混合知识表示方法,其特点是以规则为主体,辅以框架和过程.框架之间通过规则来连接.同样,过程之间也通过规则来连接.在机械设计中处理的信息有两类:一类是专家的启发式知识,用规则可以较好地表达;另一类是各种数据图表和公式等规范性知识.对机械设计中用到的数据图表,可以采用框架来表示,而在求函数关系式时可用过程表示.因此,OMEST的规则—框架—过程混合知识表示方法能充分表达机械设计领域的知识.在OMEST中,把规则定义成知识对象,把规则的结构以及关于规则的推理使用定义成规则类,规则类的定义如下:
Class Rule
{
Char * Name;
//规则名
Knowledge Fact Premise[];
//前提条件子句
Infer Value Conclusion[];
//结论子句
Char Rule Explanation;
//规则解释
Int Infer Method;
//推理算法
}
一条规则是规则类的实例化,即一条规则是一个知识对象,它本身可以选择使用不同的推理算法完成自身的推理.规则类中前提条件子句的值可有多种来源,可以是用户输入的值,框架知识对象的某一个槽值,某一个过程执行后的返回值,或另一条规则匹配后的结论子句。
知识表示中的框架结构与面向对象技术中类的层次继承等特性十分相似,因而框架的对象表示很容易做到.OMEST系统用父类表示上层框架,子类表示下层框架,槽由类来表示,而类的属性可以表示槽的各个侧面及槽值.类的每一个对象(即槽)是槽类的实例化(即特定实体).在OMEST中,过程也表示成知识对象,其表示形式为:
Class procedure
{
Char * Name; //过程名
Knowledge Fact Argument[] //参数表
Value Result[] //返回值
}
OMEST系统的面向对象的知识表示方法,将规则、框架和过程都用对象来表示,以对象为单位将知识和控制封装起来,增加了知识的表达能力和知识库的易维护性.
3 OMEST系统的面向对象的推理机制
机械设计问题是一个较复杂的问题,一般解决的方法是从问题的分层结构出发,对每一个子问题提出当前可行的解决方案,经评价系统判定是否满足设计的约束条件.若不满足约束条件,需进行再设计,直到满足约束条件为止,即得到设计的解.因此,整个系统的行为在很大程度上依赖于应用领域的知识,由具体知识指导实际的推理流程.面向对象技术很自然地符合机械设计问题的描述和求解.
OMEST系统的面向对象的推理模型使每一个知识实体(规则对象)自带一个相对独立的推理算法,可以完成自身的推理.即规则对象包括知识的存储和知识的使用,从而把推理机制同规则对象封装在一起.推理是在知识库与数据库传递消息的过程中实现的.事实空间记录当前状态,每个规则对象从事实空间得到有关事实的消息,根据规则匹配原则进行复合不精确推理,并将推理的结果再发送给事实空间.如所有前提条件都被证实,则结论为真,否则系统不知道结论是否为真.
OMEST系统控制分类内控制和类间控制.类内控制通过类自己定义的方法管理,即类内控制依靠机械设计领域的知识,它决定系统的微观行为.类间控制采用的方式是消息传输,它决定系统的宏观行为.消息传输是激活对象的唯一办法.
4 结 语
机械设计问题是一个很复杂的问题,主要表现在设计对象各部分之间的关联很多,同时有些工作是创造性的.面向对象技术在处理复杂问题方面具有很强的能力,它具有信息隐蔽、数据抽象、动态约束和继承性等特点,同时以对象为单位,将事实性知识、判别性知识、过程性知识、经验性知识和控制性知识封装在一个整体中,容易实现知识库的一致性和完整性,因而非常适合构造应用于机械设计领域的专家系统工具。OMEST系统是面向对象的机械设计专家系统工具,它将多种知识表示融合于知识对象中,其面向对象的推理机自带各种控制信息和复合不精确推理方法,使得系统具有较强的适用性和通用性,为用户开发机械设计专家系统提供了一个良好的环境。
|