面向对象技术的专家专家系统生成工具在农业上的应用
日期:2018年01月15日
编辑:
作者:无忧论文网
点击次数:1559
论文价格:免费
论文编号:lw201112270740525966
论文字数:2786
所属栏目:农业推广论文
论文地区:中国
论文语种:中文
论文用途:职称论文 Thesis for Title
<p>面向对象技术的专家专家系统生成工具在农业上的应用</P>
<p> </P>
<p>摘要:专家系统领域中,知识规则是由前提和结论组成的。专家系统在进行推理时,首先要获取前提,有些前提可以直接通过人机交互得到(称直接前提),而有些前提需根据模型间接得到(称间接前提)。运用面向对象方法学的原则,将直接前提用属性表示,间接前提用方法表示,也将为得出结论所运用的模型用方法表示,再将相关的属性和方法封装在一起,构成一个类,则整个知识规则可抽象成由具有面向对象特点的类组成的知识表示形式,它将描述问题空间的属性和方法有机地结合在一起;同时,在构造推理机时,仍然按面向对象的原则匹配对象,构成了问题空间和求解空间的一致性。这样的软件具有稳定性好、易维护、易扩充的特点。</P>
<p> </P>
<p>关 键 词:知识和模型结合 面向对象技术 专家系统生成工具</P>
<p> </P>
<p>Abstract: In expert system fields, knowledge rules are made up of premises and conclusions. Beforeinferring, premises must be acquired, some premises are directly acquired by man-computer alter-nation(called direct premises),but some premises are acquired indirectly by models(called indirectpremises). The authors apply the principals of object-oriented methodology, direct premises arerepresented to attributes, indirect premises are represented to methods, and models that are neededfor acquiring conclusions are represented to methods, too. Then, interrelated attributes and methodsare encapsulated to a class, the whole knowledge rules are constructed of classes that have character-istics of object-oriented. The object-oriented knowledge representation unites knowledge andmodels; Simultaneously, we construct a inference engine that matches objects by object-orientedprincipals. The knowledge representation and inference engine keep question space and solving spaceidentical. This kind of software has good stability, maintainability and expansion ability.</P>
<p>Key words: knowledge and model combination; object-oriented technology; agriculture expert sys-tem tool</P>
<p> </P>
<p>专家系统领域中,传统的知识表示方法是知识规则的简单罗列,这种表示方法显然存在着很多弊端,例如,随着专家知识的不断积累,增加、修改知识库中的知识会造成知识的大爆炸及推理时的逻辑混乱,得出错误的结论,失去了专家系统的意义。自20世纪80年代,面向对象的一些概念和技术逐步被应用到了专家系统领域,将知识规则中的文字属性封装到了类中,解决了知识获取的瓶颈问题,使软件的灵活性、维护性和扩充性有所提高。但是目前的专家系统,有的是单一的基于经验型的;有的是单一的基于模型形式的;有的是将单一的经验型专家系统和单一的模型式专家系统孤立地放到一起,构成综合型专家系统;有的是将经验和模型结合在一起,构成一个专家系统,但这种经验和模型的连接还不理想。通过我们多年从事专家系统生成工具的研究及面向对象方法学的教学工作,将面向对象方法学原则在专家系统领域得到了更进一步的运用,抓住了知识规则前提中的知识和相应模型的内在联系,将它们一同封装在类里,实现了描述问题空间的属性和方法的统一的知识表示方法;推理机是求解空间的实体,它需要将现实的情况与专家知识匹配,因此我们采用具有面向对象继承特点的推理策略,达到了问题空间和求解空间的一致性[1],这样的软件具有很好的稳定性、可维护性和可扩充性,并且提高了推理效率。</P>
<p> </P>
<p>1 面向对象的知识表示采用面向对象的设计思想,将专家知识整理、归纳、抽象成具有继承关系的类的树结构,并将类实例化,构成相应的对象,简单的示意图如图1所示,其中,C1、C2、C3表示类,用实线矩形表示,C1为根类,C2、C3为C1的子类,也称C1的下层类,矩形中的Aij代表知识规则中的前提,不具有等式形式的前提为直接前提,也称属性,具有等式形式的前提为间接前提,需要用模型求得,等号右边为相应的方法名。MCi代表知识规则中的结论,它需要用模型求得,等号右边即为方法名;示意图1中的虚线矩形框代表有相应的例化对象,C2的对象为O21、O22,C3的对象为O31。</P>
<p> </P>
<p>2 知识库结构将图1所示的专家知识和模型用相互关联的表构成关系型数据库,它包括类表、属性表、方法表、对象表、结论表。其构成如下:</P>
<p>属性表: 类名 属性名 属性类型 权值1 A11 T 1001 A12 T 901 A13 F 802 A21 T 902 A22 T 853 A31 T 903 A32 F 90属性表描述了属性Aij所属的类及相应的属性类型,“T”代表该属性为直接前提,“F”代表该属性为间接前提,需要通过方法表中相应的数学模型计算出。“权值”代表该属性的重要程度。方法表: 类名 方法名1 Function131 Methodi3 Function32方法表描述了类所对应的方法名。方法名为“Functionij”代表属性表中Aij的属性值是由它求出;方法名为“Methodi”代表推理机在推理过程中所运用的数学模型,如不确定性推理模型及推理结论的模糊性模型等。对象表:类名 对象名 属性名 属性值2 O21 A11 ...2 O21 A12 ...2 O21 A13 ...2 O21 A21 ...2 O21 A22 ...2 O22 A11 ...2 O22 A12 ...2 O22 A13 ...2 O22 A21 ...2 O22 A22 ...3 O31 A11 ...3 O31 A12 ...3 O31 A13 ...3 O31 A31 ...3 O31 A32 ...对象表描述了对象所属的类、其属性名及相应的属性值,即专家经验值。结论表:对象名 结论O21 C21O22 C22O31 C31结论表描述了对象所对应的结论,如属于某种疾病的防治措施等。</P>
<p> </P>
<p>3 推理机的数据结构知识表示是为推理服务的,面向对象的知识表示将同一类中不同对象的相同操作,只用一个方法名表示,并嵌入到相应的类中;将不同类的所有对象都用到的相同操作也用同一方法名表示,并嵌入到根类中,因此,一个方法名对应着唯一的模型。采用具有面向对象技术的VC++语言定义了一个方法类,包含了知识库中的一切模型,构成了相应的成员函数,给予了明确的定义。如图1,面向对象的知识表示具有继承性特点,即子类继承父类的属性和方法。匹配子类时,除了要匹配相应类的属性外,还要匹配其父类的属性,而父类中又包括了父类即上层类的属性,因此,如果先匹配其上层类,再匹配其具有继承关系的下层类,就会避免大量的重复操作,大大提高推理效率。深度优先的推理策略恰好能体现出这样的优越性。为了实现深度优先的推理策略,我们采用栈数据结构[2],将推理过程中的类号按推理顺序放入链表中,就一个分支来说,越是上层类越是放到栈底,尽管是先匹配上层类,后匹配下层类,但上层类控制着树的分支走向,所以,当搜索某类,认为它无控制权(最下层类),或者控制权已经完成时,才将此类从栈中推出。依次,完成整个树的搜索过程。</P>
<p> </P>
<p>4 推理步骤本研究采用的是正向推理,即数据驱动,通过用户回