




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 专家系统中知识库的建立关键在于专家知识的合理表示,本文阐述了如 何利用面向对象技术实现专家知识的表示。 面向对象的方法是将所要认识研究的事物进行双重性描述,即对象的静 态描述和动态描述。前者表示对象的类别属性,后者表示对象的行为属性 两者相互影响又相互依存。静态描述表示对象的状态:动态描述分成两部分: 一类为修改自身属性状态的操作,另一类是产生输出结果的操作。即对象赴 把数据和操作该数据的代码封装在一起的实体,有着特殊的属性和行为方式。 对象之间通过消息传递相互通信,并且可以通过公有函数的调用进行对象刚 的操作。 专家系统中的知识表示是将具有领域特色的人类专家知识符号化的过 程,它将特定领域中的事实、关系、过程等编码成为合理的数据结构。传统 的知识表示方法有逻辑、语义网络、产生式系统、框架系统等,面向对象的 在用原型方法将专家知识表述为计算机语言时,由于知识数据的存取 l : 于关系模型数据库,而关系模型和面向对象模型之问的特性存在很大不嗣, 对象不能直接映射到关系数据表中,两者的结合需要些特殊技术,故本文 也对如何将面向对象技术与关系数据库集成进行了探讨。 本文中的实例一重庆市主要农作物区域布局专家系统,采用面向对象的 程序设计语言v i s u a lc + + 6 0 ,很好地支持了面向对象的知识表示。操作系 统平台为w i n d o w s9 8 w i n d o w sn t 4 0 ,数据库平台是m i c r o s o f ta c c e s s 2 0 0 0 。 关键词:专家系统面向对象知识表示 封合实魄立术效建技有为象分也对作力面操能用和讯了据通论数的讨的性点识致重 知一中。 蓄极施类爹不人之础表把识基识 过知的知通的好的,同良型 式不了原方得供和维使提架思,制框 的中机、 类体理则人实推规合个的化符单效构法在有结方装理现 t h er e s e a r c ho fo b j e c t o r i e n t e dk n o w l e d g er e p r e s e n t a t i o n i na g r i c n l t ur ee x p e r t - s y s t e m t h es t i c k i n gp o i n ti nt h eb u i l d i n go f t h ek n o w l e d g eb a s ef o re x p e r ts y s t e mi s r e p r e s e n tt h ee x p e r tk n o w l e d g ei nr e a s o n ,h o wt or e p r e s e n tt h ee x p e r tk n o w l e d g e u s i n gt h eo b j e c t o r i e n t e dt e c h n i q u ei se l a b o r a t e di nt h i sp a l e r t h em e t h o do fo b j e e l o r i e n t e dd e s c r i b e st h et h i n gb e i n gs t u d y i n g d o u b l y ,v i z s t a t i cd e s c r i b i 如a n dd y n a m i cd e s c r i b i n g t h e f i r s t e x p r e s s e s t h e o b j e c t sc l a s s i f i e da t t r i b u t e ,t h el a t t e re x p r e s s e st h eo b j e c t sa c t i o na t t r i b u t e ,t h e t w oa r ei n t e r a c t i o n a la n da l s oi n t e r d e p e n d e n t t h es t a t i cd e s c r i b i n ge x p r e s s e st h e o b j e c t ss t a t e :t h ed y n a m i cd e s c r i b i n gd i v i d e si n t ot w op a r t s :o n el st h eo p e r a t i o n t om o d i f ya t t r i b u t es t a t eo fs e l f , t h eo t h e ro n ei st h eo p e r a t i o nt op r i n tt h e r e s u l t t h e “o b j e c t ”i sae n t i t ye o m p o s e do ft h ed a t aa n dt h ec o d e t oo p e r a t et h e d a t a ,i th a ss p e c i a la t t r i b u t ea n da c t i o nm o d e k n o w l e d g er e p r e s e n t a t i o ni ne x p e r ts y s t e mi st h ep r o c e s st os y m b o l e dt h e h u m a ne x p e r t sk n o w l e d g ew h i c hh a v ef i e l df e a t u r e ,i tc o d e st h et r u t h 、r e l a t i o n 、 c o u r s ei nt h eg i v e nr e a l mt oa p p r o p r i a t ed a t as t r u c t u r e t h em e t h o do f o b j e c t o r i e n t e da c c o r d sw i t ht h em o d eh u m a nt h i n k ,b ye n c a s i n gt h ed a t ap a r ta n d t h eo p e r a t i o np a r to fh u m a ne x p e r t sk n o w l e d g ee f f i c i e n t l y ,i tm a k e sd i f f e r e n t k n o w l e d g eh a v ea c c o r d a n tc o m m u n i c a t i o na b i l i t ya n da l s oo f f e r sw e l lf o u n d a t i o n f o rs o u n da n de f f e c t i v er e a s o n i n gm e c h a n i s m i nt h i sp a p e ru s i n go b j e c t 。o r i e n t e d t e c h n i q u et o r e a l i z et h et h r tek n o w l e d g er e p r e s e n t a t i o nm e 曲d d s f r u e t u r e d r u l e s 、f r a m e sa n dp r o t o t y p ei sd i s c u s s e dm a i n l y , w h e ne x p r e s s i n gt h ee x p e r tk n o w l e d g et oc o m p u t e rl a n g u a g e ,t h ea c c e s so t k n o w l e d g ed a t ab a s e so nr d b m s ,b u tt h eo b j e c t o r i e n t e dm o d e l a n dt h er e l a t o n m o d e lh a v eg r e a td i f f e r e n e e si nc h a r a c t e r ,t h e “o b j e c t ”c a n tb em a p p e dt ot h e r e l a t i o nd a t a b a s et a b l e , s ow ed i s c u s s e dt h ei n t e g r a t i o no ft h eo b j e c t - o r i e n t e d t e c h n i q u ea n dr d b m s a l s o t h ee x a m p l ei nt h i sp a p e 卜t h ea r e al a y o u te x p e r ts y s t e mf o rp r i m a r y c r o p so fc h o n g q i n ga d o p t so b j e c t - o r i e n t e dp r o g r a m m i n gl a n g u a g ev i s u a lc + + 6 0 ,t h u ss u s t a i n st h eo b j e c t o r i e n t e dk n o w l e d g er e p r e s e n t a t i o np r i m e l y t h e o p e r a t i n gs y s t e mi sw i n d o w s9 8 w i n d o w sn t4 0 ,t h ep l a t f o r mo fd a t a b a s ei sm sa c c e s s k e y w o r d :e x p e r ts y s t e m o b j e c t o r i e n t e d k n o w l e d g e r e p r e s e n t a t i o n 第一部分文献综述 专家系统是人:【智能领域中的一门重要学科,面向对象技术则是汁算机 学科发展的最新导向之一,为了研究两者的结合问题,本章先对争家系统、 面向对象技术及知识表示作一综述。 1 专家系统原理 1 1 人工智能发展简介 人工智能( a r t i f i c i a li n t e l l i g e n c e ) 又称机器智能( m a c h i n ei n t e l l i g e n c e ) 是计算机科学中一门新兴的边缘学科。它也是数学、逻辑学、心理学、暂学, 生物学及计算机科学的多学科相互渗透下的交叉性学科。 产业革命解放了人的体力劳动,使用机器可以完成繁重的体力工作,极 大地促进了人类社会的进步和经济的发展。在人类历史发展的过程中,自然 会提出如何用机器解放人的脑力劳动。制造和使用仿人的智能机器是入们长 期以来的愿望。 “符号”和“推理计算”的概念,使形式逻辑符号化是“机器思维”研 究的萌芽。1 9 世纪以来,数理逻辑、自动机理论、控制论、信息论、仿生学 计算机、心理学等科学技术的进展,为人工智能的诞生和发展,准备了思想、 理论和物质基础。 现实世界中,相当多的问题求解是复杂的,常常没有算法可遵循,或者 即使有计算方法,也是n p 问题。人们可以采用启发式知识进行求解,把复杂 的问题大大简化,可在浩翰的搜索空间中迅速找到解答。这是运用专门领域 的经验知识,经常会取得有关问题的满意解,但不是数学上的最优解。这种 处理问题的方法具有显著的特色,导致人工智能的诞生。1 9 5 6 年由盘卡锡 ( j m c c a r t h y ) 、明斯基( m l m i n s k y ) 等发起,美国的1 0 多位心理学家、 数学家、计算机科学家、信息论学家在美国达特茅斯( d a r t m o u t h ) 大学举办 夏季讨论会,j 下式提出人工智能的术语,开始了具有真正意义的人: 智能的 研究。经过四十多年的研究和发展,人工智能取得了很大的进展。许多人工 智能专家系统研制成功并投入使用。自然语言理解、机器翻译、模式洪别、 计算机视觉、图象处理等方面,都取得了不少研究成果。其应用渗透到许多 领域。促进它们的发展。 本世纪后期,人工智能蓬勃发展。专家系统开始广泛应甩,挹观了专家 系统开发工具,开始兴起人工智能产业。特别是t 9 8 2 年f 1 本政府币式宣布 投资开发第五代计算机,极大地推动了人工智能的发展。许多国家制订相应 的计划,进行人工智能和智能计算机系统的研究。我国也将智能计算机系统 的研究列入国家8 6 3 高技术计划。 四十多年来,人工智能的研究取得了一定的进展,提出了启发式搜索策 略、非单调推理、机器学习的方法等。人工智能应用,特别是专家系统、智 能决策、智能机器人、自然语言理解等方面的成就促进了人二【:智能的研究。 当前,人工智能的主要研究领域包括:分布式人工智能、知识工程和专家系 统、自然语言处理、机器人视觉、机器学习和人工神经网络、模式识别、定 理证明、自动程序设计、智能数据库、智能检索等等。以知识信息处理为 中一1 1 , 的知识工程是人工智能的显著标志,而专家系统则是知识一【:程应用中的 主要课题。 1 2 专家系统基本结构 1 2 1 专家系统的基本概念和特征 专家系统( e x p e r ts y s t e m 简称e s ) 是人工智能应用的重要领域。它的 一般性定义是:一种计算机程序,它在某些特定领域内,能以人类专家的水 平去解决该领域中的问题,在某些方面甚至可能超过人类专家。 e s 具有如下一些基本特征: 启发性:不仅能够使用逻辑性知识,也能够使用启发性知识。 透明性:能向用户解释它的推理过程,回答用户的一些关于它自身的 问题,如何得到问题的解,证明得出的结论。 高效性:象人类专家一样甚至比单个人类专家更好地解决困难的问题, 因为它除速度高以外,还可以取众( 专) 家之长。以适当的方式与人进行对话, 包括使用自然语言,类似于专家的行为。 灵活性:知识库中的知识便于修改、补充和优化。 比起一般的数据处理系统,e s 更专门、更特殊。传统的数据处理系统是 通过从算法上对大量的数据进行累积和处理,使费时的事务员的工作自动化, 而l j s 通常是完成那种典型的要由具有专门知识的人在几十分钟或几小时内 完成的量大而性质相对重要的任务,如翻译、诊断、订计划、排时间表等等。 为了完成这些任务,e s 有选择地利用数据进行推理。与基于算法的数据处理 方法中所出现的问题相反,e s 通常要考察大量的可能性,或者说动态地建立 解决问题的方法。 1 2 2 专家系统的基本设计思想 一般应用程序是把问题求解的知识隐含地编在程序中,而专家系统则将 其应用领域的问题求解中的知识单独分开组成一个叫知识库( k n e w e d g e b a s e ) 的实体。知识库的处理是通过独立于知识库的、易识别的控制策略来进 行的。也就是说,一般的应用程序将其知识组织成两级:数据级和程序级, 而大多数专家系统则将知识组织成三级:数据级、知识库级和控制级。 专家系统的主要特征是有一个巨大的知识库,存储着某个专门领域( 如医 学、化学、探矿等) 的知识。而系统的控制级,通常表达成某种推理规则。整 嚣鬃一墅 和管理其自身知识等”。这样既便于用户的理解和接受,同时也便于系统的维 护。 d 、提供知识获取、修改、扩充和完善等其它维护手段。只有这样才能更 订效地提高系统的问题求解能力及准确性。 e 、提供一种人机界面,既便于用户使用,同时又能分析、理解用户的各 种i 肖求。 其中,存放知识和使用知识是e s 的两个基本功能。 e s 的一般结构如图1 1 所示包括六部分:知识库、综合数据库、推理机、 刚户界面、解释程序和知识获取程序。 i 3 知识表示 1 3 1 概述 l 、知识表示的基本概念 知识表示是人工智能( a i ) 研究中的个中心课题。近年来知识工程的兴 起使得知识表示的研究显得尤为重要。知识工程主要研究知识的处理,因此, 如何表示和管理知识以便能被智能系统最好地利用是知识工程中的关键问 题。知识工程的出现大大地促进了知识表示的发展。目前,知识表示不仅成 为a f 的个重要分支,而且已经形成了一个独立的子领域。 知识是经过削减、塑造、解释、选择和转换的信息。是山特定领域的描 述、关系和过程组成的。表示是为描述世界所作的一组约定,是知识的符号 化过程。正如我们可以用不同的方式来描述同一事物,对于同知识,我们 电可以采用不同的表示方法。但是在解决某一f 【j j 题时,不同的表示方法司。能 广= ,j j 完全不同的效果。因此,为了有效地解决问题,我们必须选择一种合适 的表示方法。知识表示主要是选择合适的形式表示知识,即寻找知识与表示 之叫的映射。它研究的主要问题是各种数据结构的设计,即知识的形式表示 方法:研究表示与控制的关系:表示和推理的关系以及知识表示和其他领域 的关系。知识表示的目的在于:通过知识的有效表示,使人工智能程序能利f j 这些知识作出决策,制定计划,识别状况和对象,分析景物,获取结论等等。 2 、知识的类型 一般说来,a i 程序成功的关键是能西有效地表示领域知识。领域知识有 各种形式,包括特殊领域的术语定义,领域中客体的相互关系,以及决策标 准等等。同1 2 给出了知识系统的知识库中可能存贮的各类知识。 知识库中的这些知识,按其在智能程序求解问题过程中的作用,通常可 分为四类:说明性知识,即描述特殊问题以及问题求解当前状况的知识;与 领域相关的问题求解知识;描述控制簧略的过程性知识;元知识,及关于知 识的知识。 4 剀1 ,2知识库中可能存贮的各类知识 1 3 2 知识表示的主要方法 1 、逻辑表示法 逻辑是知识表示的主要方法。利用逻辑公式人们能描述对象、性质、状 况和关系。例如“宇宙飞船在轨道上”可以描述成:i n ( s h u t t e r ,o r b 【t ) ,“所 有的人都有头”可描述成,v ( x ) p e r s o n ( x ) 一h a s ( x ,h e a d ) 。在这种方法 中,知识库可以看成是一组逻辑公式的集合,知识库的修改是增加或删除逻 辑公式。 逻辑表示法的主要优点是:( a ) 符号简单,描述易于理解,( b ) l j 然、f ” 密、灵活、模块化;( c ) 具有严格的形式定义:( d ) 每项事实仅需表示一次; ( e ) 具有证明过程中所使用的推理规则:( f ) 利用定理证明技术可以从老的事 实自动推导出新的事实。主要缺点是:( a ) 难于表示过程和启发式知识:( b ) 山于缺乏组织原则,利用该方法表示的知识库难于管理:( c ) 由于是弱证明过 程,当事实的数目增大时,在证明过程中决定使用哪条规则时可能产生组合 爆炸。 逻辑表示通常包括命题演算和谓词演算。 2 、语义网络 语义网络是知识表示中最重要的方法之一。语义网络利用结点和带标记 的弧构成的有向图描述事件、概念、状况、动作以及客体之间的关系。带标 记的有向图能十分自然地描述客体之间的关系。 语义网络的主要优点是:( a ) 重要相关性能被明确地清晰地表示出来:( b ) 相关事实可以从其直接相连的结点中推导出来,而不必遍历整个庞大的知识 库;( c ) 能利用“i s a ”和“s u b s e t ”链在网络中建立性质继承层次;( d ) 易 于对继承层次进行演绎:( e ) ,能够利用少量的基本概念的记号建立状态和动 作的描述。其主要缺点是:( a ) 不能保证网络操作所得推论的有效性:( b ) 对 于网络不存在标准的术语和约定,语义解释取决于操作网络的程序;( c ) 网络 的搜索需要强有力的组织原则。 3 、产生式系统 产生式系统由规则库、全局数据库和推理机构成。 输入数据 图1 3 产生式系统结构 规则库由描述问题求解领域的一般知识规则构成。全局数据库包含拙述 系统状念的事实和断言。推理机( 即规则解释器) 选择执行的规则,完成问题 的求解。产生式系统如图1 3 所示。 产生式( 即规则) 采用“i f t h e n ”的形式。前件是能与数捌 库匹配的任何模型,动作部分说明了前件满足时系统采用的动作。规则的意 义是,如果( i f ) 前件满足,则( t h e n ) 系统执行动作( 或得出结论) 。 推理机采用的选择规则的策略称为控制策略。在传统的产生式系统中, 推理机采用“识别一动作”的循环执行规则,即推理机重复执行下述r 作,( a ) 找出全局数据库中数据匹配的规则集合;( b ) 从此规则集中选取一条规则:( c ) 执行规则,修改全局数据库。 采用产生式系统作为知识表示方法的知识库的特性是:知识库由一组松 散的描述领域知识的产生式构成。对于特殊用户,产生式可以按一定原则以 子集合的形式组织,称为知识源。全局数据库描述了系统的状态。控制结构( 规 则解释器) 选择和执行规则。 产生式的主要优点是:( a ) 模块性;( b ) 信息易于增加、删除更新:( c ) 自然性;( d ) 有利于表示启发式知识,特别是允许利用领域知识直接指导演绎 过程;( e ) 易于保持动作所产生变化的踪迹; ( f ) 有利于控制说明性和过程 性命题之间的互相作用。其主要缺点是:( a ) 难于维护大型系统规则之问的模 块性;( b ) 规则之问的约束及相互作用导致低效率:( c ) 在问题求解过程中难 于追踪控制路径;( d ) 产生式是纯相关的,因此不能提供灵活的解释。 4 、框架和脚本 f 1 常生活中许多活动是由一些固定的事情构成的,如上班、吃饭、买东 西等,人们在处理这些情况时常常利用过去已经形成的经验。为了表示那些 固定的情况,可以采用一种特殊的表示法:框架表示法。框架是把某一特殊事 件或对象的所有知识存贮在一起的一种复杂的数据结构。它包含过去定义的 内在关系的说明信息和过程信息,而未来的情况,依靠它们可以利用以前获 得的知识来解释新的数据。这种知识组织方式有利于“期望制导”的处理, 即根据人们所在的特定环境寻找期望的事情。使这种推理成为可能的是框架 中的槽( s l o t ) ,利用槽的概念人们能为框架创建的环境填加知识。例如,关 于汽车的一般概念的框架,可以有说明车轮的数目和长度的槽。一个具体汽 车的框架有相同的槽,继承了一般框架的说明,但是槽的内容可能得到更充 分的说明。对一般汽车框架和具体汽车的框架分别描述如下, 框架:汽车 上层框架:运输工具 车轮的数目:整数( 缺省值= 4 ) 车身的长度:浮点数 框架:张华的汽车 上层框架:汽车 车轮的数目:4 车身的长度:3 2 6 m 框架中可能有几类不同的知识。不同类的知识可以用4 i 同的槽柬| 兑叫。 如l :厦例子中提到的特殊化( 具体化) 槽( s p e c i a l i z a t i o n o f s 1 0 l ) ,主要采 用建立框架中的性质继承层次,使得子框架能继承父框架中的说明信息。这 类似于语义网络中的i s 一二链。框架中允许有自己的子槽,某些系统巾允许 个槽有一个复杂的类框架的结构。利用槽能说明期望信息,并h 一个槽可附 加个过程,说明在需要的情况下如何求槽的一个值。槽可以有缺省值,醴 明在缺乏相关数据的情况下槽的值。上述例子中车轮的数目的缺省值为4 。 利用框架表示方法的知识库的特征是一组结构化的框架的集合。框架表尔多 用于固定的事件和状况,如吃饭、指明标准制作设备、景物分析、书写固定 新闻报告、分析故事、自然语言理解、标准计划等等。 框架表示方法的主要优点是:( a ) 有利于期望制导的处理;( b ) 在给定的 状况f ,通过设计能决定其本身的可利用性或者提供其他框架;( c ) 知以组织 的方式有利于推理。主要缺点是:( a ) 许多实际情况与原型不符;( ) ) 对新的 情况不易适应。 目前关于框架研究的重点是,框架对大规模知识系统的组织的意义,表 示结构对实际认识的意义,表示系统付诸实践的问题等等。 脚本是一种类框架的结构,用来表示组固定次序的事件如吃饭、上 班、房屋起火的新闻报导等。一个脚本就是一组槽,与每个槽结合在一起的 可能是这个槽可含什么值的信息,也可以是缺席值。一个脚术通常也岔进入 条件、结局、支撑物、角色、线索、场次。脚本出现丰要缘于现实埘界中存 在事件发生的模式,模式之所以出现在于事件中存在因果天系, j 为者从习 一项活动是为了接着能从事另一项活动。 5 、过程表示法 过程表示是将知识包含在若二1 _ 二过程之中。过程是一小段程序,它处理其 些特殊事件或特殊状况。每个过程都包含说明客体和事件的知识,以及往u 8 明完好的情况下的运行知识等。过程通常用于程序或模块实现。“j 菜礤i :二曩状稠;出现时凋粥子程序。”t 琵是过程表示的个例于。 教7 :h :要g :表嚣知泼厍的特征是知识库是一组过程集合。知识库的修改魁 铂删除r 程序,或修改子程序及访问条件。 ,量程表示方珐的主要优点是:( a ) 有利于表示启发式知泌:( b ) 能实现扩 充逻辑推理( 如缺省推理等) ;( c j 具韵高度模块化的优点;( d ) 能够通过类比 进行推理。其主硬缺点是:( a ) 由j 二知识隐含在过程之中,因此难于修改和证 明:( ) j 固定的控制信息限定了终池可能的方法。 产生式系统也可以看成是种过程表示方式。两者的主要区别在丁,过 程表示允许子程序之f h jr | 丁以直接通讯,而在产生式系统中,产生式规| i ! i j 只能 通过全局数据库瓦棚作用。 知i = 表示的方法还包括赢接表示法、语义原语、概念从属等,在此就1 i 一一介绍了。 2 面向对象程序设计技术 2 1 面向对象的基本概念 2 11 面向对象技术的出现 用冯- 诺依曼计算机求解问题的问题空问结构与求解问题方法的方法字 问结构不相一致,导致了程序设计方法和计算机体系结构方而的诸多问题。 荷向对象的程序设计技术正是在这样的背景下,根据人类认识世界的思维活 动、从认识方法论的角度提出的,它改变了过去传统的以过程和操作为中心 束设 i 叠二奄的结构化程序妒t 一 去,是以“对象”或“数据结构”为中,【、j 、砹 计软俐。j 1 一。,1 :陶池7 0 一软件的可重用性也比较好。 2 1 2 基一t - 檄总 i 对象( o b j e c t ) 客删世界丰j 的任何事物在一定的前提条件下,都可以成为认识研究的对 象。对象有两重性,即对象的静态描述和动态描述。前者表示对象的类别属 性,后者则表示对象的行为特性,它们相互影响又相互依存。在面向埘缘的 程序设计中,“对象”是系统中的基本实体,它的静态描述可表示为一个四 元组: 对象:= ( i d ,d t ,o p ,f c ) 其中:t d 对象的标以或对象的名字 d t 数据 ( j p 操作 f c 对外接口,或对象受理操作的名称集。 对象的动念描述表示为一个自动机: 对缘:= ( i d 、o p 、s t 、p t ) 其中:i d 对象的标识或名字 0 n 操作震每个操作o p 隐含对应个状态转移函数f :j 跗状态集 1 ,t 输入符集 如图2 1 所示 一 幽2 1 对象的动态自动机 状 态 变 换 简言之,对象是把数据和操作该数据的代码封装在一起的实体。这是说, 对象有着特殊的属性和行为方式。在面向对象的程序设计中,对象是用户定 义了类型的变量,对象之问只能通过函数调用相互通信,一个对象可以调刚 另一个对象中的公有函数。当对象的一个函数被调用时,对象执行其内部的 代码来响应这个调用。 2 类( c l a s s ) 类是一种对象类型,它描述属于该类型对象的共同特性。这种特性包括 操作特性和存储特性。类具有继承性( i n h e r i l a n c e ) ,一个类可以是某一类的 子类,从而从父类那里继承所有的特性。类中的每一个对象作为该类的一个 实例,成为个成员对象。例如:字符c h a r 是一个类,它描述字符的性质, 具有字符运算和存贮的特性。在程序的结构上,类形成一个具有特殊功能的 模块,具有五个方面的属性: 名称:类名。 超类( s u p e re l a s s ) :类的父类名。 类变量( c l a s sv e r i a b l e s ) ,该类所有对象共享的变量集。 实例对象变量( i n sl a n c ev a r i a b l e s ) :类的每一个对象所具有的私千i 变量。 类属性( c l a s sa t t r i b u t e s ) :类的对象所共享的方法( m e t h o d s ) 、外部方 法( e x t e r n a lm e t h o d s ) 和规则( r u l e s ) 集。我们用五元组形式化地描述类: 类( c l a s s ) := ( i d ,i n h ,d t ,o i ,i f ) 其中i d 是类的标识符或名字;i n h 是类的继承性描述;dr i 是数据结构捕 述:0 i 是操作集名的具体实现;i f 是对外接口。 3 消息与方法 消息传递是对象问进行通讯的唯一手段,一对象可以通过传递消息与别 的对象联系。消息的功能是请求对象执行某种操作,某一对象在执行相应的 操作时,又可以请求其他对象完成某种操作。 例如:f i r s tc o s 解释:个消息请求名为f i r s t 的对象计算它的c o s 值。 可以看出,消息是发送给某个对象的动作标识符,说明对象要执行的操 作,因此消息具有固定的模式。使用对象只需了解它的消息模式,而刁i 必知| 道具体执行的细节。程序的执行就体现为对象间的消息传递。 方法则是对对象实施各种操作的描述,亦即消息的具体实现。 例如 2f a c t o r i a l 一2 在上例中,2 是一个对象,f a c t o r i a l 是一个消息,它请求对象执行阶乘 运算,而f a c t o r i a l 的内部算法就是一个方法。 2 2 面向对象的基本特征 2 2 1 模块性( m o d u l e ) 一个对象是系统中基本的运行实体,其内部状态不受或很少受外界的影 响,它具有模块化最重要的特性:抽象和信息隐蔽。模块反映了数据和对象的 抽象,是设计良好软件系统的基本属性,每个模块是程序可单独编址的元 素。 2 2 2 封装性( e n c a p s u la t i o n ) 封装是一种信息隐蔽技术。就是把数据和加工数据的操作封装在一起, 构成一个具有某类类型的实例即对象。对象就是封装的数据和操作。如图示 旺丑 对象将自己的功能封装起来,以便将对象的使用者和设计者分开,从而 加快软件开发的速度。 2 2 3 继承性( 1 n h e r it a n c e ) 继承是类的特性。即子类可以继承父类的特性,系统的处理能力可以通 过对象的继承性实现共享。继承可以用一个偏序关系来定义: i n h := ( c , = ) : 其中c 是具有继承关系的所有类, = 表示继承关系。显然继承关系具有 传递性:如果( c 2 = c ,) ,( c 。 = c :) 则c 。 = c ,继承关系常称: “( isa ) ”关系a 因为若a 类继承b 类,b 类是父类,a 类是子类,a 类继承b 类的全部性质, 所以a 即是b “( ai sab ) ”,一般情况下a 也可以具有b 所没有的特性和内 容,即增加的部分。见图2 2 : a | b l j 继承增加 幽2 2 继承性图图2 3 多重继承 一个类可以有多个子类,也可以有多个父类,所以一个类可以继承i : 个类,这种继承方式就称为多重继承,如图2 3 。 2 2 4 动态连接( d y n a m i cb i n d i n g ) 面向对象的程序设计中,对象功能的执行是在运行时、消息传送时确定 的,因此可以实现对象间的动态连接,这样比较灵活,有利于建立类库,仪! 于重用和扩充。 2 2 5 多态性( p o l y m o r p h i s i n ) 面向对象的程序设计语言支持多态性。从本质上看,多念就是个韬字 可以有多种语义。允许把同一消息送到一个父类的对象和它的予类的对缘上, 多态性主要强调在一个类等级中,可以使用相同函数的多个版本,取决r 运 行时入口参数的类型、存取方式和返回值,可在不同的运行时问执行。 2 2 6 易维护性和开放型设计 由于对象实现了抽象和封装,使可能的错误局限于自身,不易传播,易 于查错和修改,同时利用对象的继承性,可使系统的功能不断地根据需要进 行扩充,而很小影响到其它软件的运行。 2 3 面向对象的程序设计 而向对象程序设计被认为是9 0 年代计算机科学技术领域的导向技术之 一,已成为计算机界研究的热门课题,从认识论的观点出发,基:了二对象比较 符合人类的思维方式,因此它不仅限于程序设计领域,而且已经渗透剑j i 算机的有关分支,出现了面向对象的计算机体系结构,面向对象的多媒体技 术,面向对象的知识表示和方法等,许多专家学者从哲学的认识方法沦的m 度研究这一方法。以该思想为基础的程序设计语言也得到迅速发j 陡井! l 小 强大的生命力。 面向对象的程序设计方法是基于对象模型的观点,将问题逐步分解成 组相互作用的基本实体,它们是面向对象的基本构件即类一对象模型。对 象与对象之间,通过消息互相作用和联系。而类具有层次结构,子类可以继 承父类的特性,这种设计方式与客观世界的抽象模型在结构上非常一致,完 全符合人类思维的方式。相应的软件开发过程如下: 分析阶段 分析问题域,找i _ 【j 和识;i f 基本对象及其相互关系 设计阶段 分析对蒙,建立对象模_ ! f ! ! ,明确它们的分类利层次关系 j 实现阶段 报据具体任务,将类组装,实现类之间的作_ ! i 和相互关系。 典型的面向对象程序设计语言有s m a l l t a l k 和e i f f e l 等,c + + 则是现今主流 语言,它是c 语言的超集,与c 语言兼容,主要版本有m i c r o s o f t c c + + 7 0 、 b o r l a n dc + + 、t u r b oc + + 等。本文采用的是可视化的面向对象编程语i i m i e r o s o f tv i s u a lc + + 6 0 。 第二部分引言 面向对象技术及其应用的发展是近年来计算机科学技术领域的导向之 一,面向对象的思维方式以类、对象、消息和方法为最基本的特征,追求的 是求解空问与问题空间的直接映射。人工智能是计算机执行某些与人的智能 有关的复杂功能的能力,是对人类智能的一种模拟和扩展。随着面向对象方 法的发展及其应用领域的不断扩大,人工智能工作者开始把面向对象技术用 于专家系统的建造。 专家系统的基本组成为知识库和推理机两部分,知识库存储从专家那早 得到的、关于某个领域的专门知识,而如何以计算机能够存储的形式合理地 表示知识则是建立知识库的关键所在。面向对象的知识表示是用面向对象的 技术实现人类专家领域知识的表示,它以抽象数据类型为基础,能方便地描 述复杂对象的静态特性、动态行为及相互作用,能在不同层次表示知识。在 高层次,对象能封装复杂的行为,而具体细节对该知识又是透明的;还可构 造相关信息并把它们保持在一起,灵活性好,所以用面向对象方法处理知识 表示,具有明显的优越性。 在知识表示的过程中,采用何种数据技术进行知识数据的存储是至关重 要的,它直接关系到知识表示的合理性。传统知识表示方法一般采用数据文 件存储知识数据,这样建立的数据库是一个封闭、专用而没有丌放性和可访 问性的数据库,大大的缩短了系统的预期寿命;关系型数据库提供了强火的 数据管理能力及高度灵活的数据开放性,而且它与面向对象技术的结合能构 建出大型、复杂的管理大量数据的知识库系统。但由于两者在基础上存在着 类型系统、语言、数据实体等不同,两者的集成需要一些特别技术,所以我 们也在本文中对如何将面向对象技术与关系数据库集成进行了探讨。 第三部分面向对象的知识表示 1 。面向对象模型与知识表示 面向对象系统提供封装和对象的局部存储机制,而基于过程的程序设计 语言缺乏这种高级的结构化概念,不利于开发大型的专家系统。 使用面向对象的知识表示,概念化的对象可表示某个特定领域的知识, 它们问保持同样的层次关系。相对具体的概念可由一个或多个相对抽象的概 念所蕴涵。一个子类可以有多个超类,其特性可由多个超类的特性组合丽成; 在子类对象中只需表达其特有的层性并处理知识,从而减少知识表示中的重 复。在面向对象的编程技术中,程序表示为不同类型的对象的集合,个类 型是由一组值和作用于该组值的组操作集合在一起构成的。类实质上定义 的是一种对象类型,它描述属于该类型的所有对象的特性,山该类对象共享。 在专家系统知识库的建立过程中,专家知识的表示方法,常用的有规则、 语义网络、框架、逻辑等。其中结构化规则和框架类知识用对象模型描述较 为合适:结构化的规则本身可表示为一种对象,其前提和结论又可以表示为 另类对象,通过将规则的数据和操作封装在一起,实现规则的有效管理, 知识库由一组组的规则构成,每条规则表示一条知识;框架知识表示理论提 出了以层次结构来表达知识的观点。在框架型知识表示中,知识库i _ l _ l 系列 的框架组成,每个框架可以表示一个事物和概念。框架之间最通常的联系方 法是ak i n do f 的关系,共同的属性在上层框架中定义,特殊的属性在r 层 框架中定义,上下框架之同引入属性继承的概念,而每个框架又幽若干个命 名的槽构成,槽是一种数据结构,可以有值,亦可以是其它框架结构,每个 槽可以有若干侧面,每个侧面又可以有若干值。 幽3 1 知识表示中的框架结构 知识表示中的框架结构与面向对象技术中类的层次继承等特性有相似 性。我们可以用父类表示上层框架,子类表示下层框架;槽办可以出类或另 行定义其他形式来表示。类的属性可以表示槽的各个侧面及槽值,而类的每 一个对象实例代表框架所示实体类的一个特定实体。 产生规则和框架系统由于自身的一些局限性,不能很好地发挥面向对象 技术的优势,原型知识表示方法则可很好的解决这个问题。 2 面向对象知识表示的实现 2 1 结构化的规则 我们把规则定义成对象,把规则的结构以及关于规则的操作定义成规则 类,由规则类生成的所有规则对象组成知识库,对知识库的操作方法由规则 类的操作方法实现。 知识库的结构如图3 2 所示: r u l e 图3 2 知识库的结构 规则类定义如下: c 1 a s sr u l e c h a r * n a m e ; l i s t * p r e : i n tc o n c : p u b l i c : r t l l e * n e x t r u l e ( c h a r 宰n ,i n tp ,i n tc ) r u l e 0 : i n tq u e r y 0 : v o i dg e t n a m e0 c o u t k n a m e ; ; 胤则由规则类的构造函数建立,规则动态结点的存储单元山析构函数释 放。一条规则是一个知识实体,它本身具有咨询推理功能,这出规则类的函 数q u e r y 实现。规则是规则链中的一个结点,一条规则链组成一个知识库。 对于产生式系统,除了由规则链组成一个知识库以外,还有一个事实库,记 录用,o 与系统对话的结果及推理的中间结果,也就是表示当前的环境。事实 库是动念的,它最初包括原始的所有断言,但不知断言是真还是假,随着与 用户对话,激活断言有的为真,也有的为假,同时规则库中的规则根据事实 库中断言的真假做出推理。 事实库的结构如图3 3 所示:事实号 圈3 3 事实的结构 、 其中事实号是事实的内部代号,断言是关于事实的结论,取值为“真”、 “假”、“未知”三种情况,事实对象建立时,断言的值为“未知”。 事实定义如下: c 1 8 s sf a c t f p r i v a t e : i n tn u m b e r : c h a rn a m e 2 1 ; i n ta c t i v e : i n ts u e c : p u b l i c : f a c t n e x t : f a c t ( i n tn u m c h a r l ) : c h a r 6 e t n u m b e r ( ) : i n tg e t n u m b e r ( ) ( r e t u r nn u m b e r ; in tg e t a c t ( ) r e t u r na c t i v e : in tg e t s u c c ( ) r e t u r ns u e c : v o i dp u t a c t ( c o n s ti n ta c t o ,i n ts u c o ) a c t iv e = a c t o ,s u c c = s u c o : ; 在建立知识库的同时,也建立了事实库。事实库也是一个动态链表, 个事实是链表中的一个结点,确切地说事实库与知识库是一个统一体。事实 号是事实库的唯一关键字,知识库中的规则通过事实号与事实库发生联系, 如图3 4 所示: 事实出链对象实现,链的结点只有两个数据域,一个是事实号,另一个 是指向f 一个结点的指针,链类说明如下: c l a s sl i s t p r i v a t e : i n tn u m b e r ; p u b l i c : l i s t + n e x t ; | i s t ( i n tn u m ) n t u n b c r = n u m ; n e x t = n u l l ; i n tg e t n u m b e r ( ) r e t u r nn u m b e r ;) ) : 圈3 4 规则
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 狂飙政治课件第九课
- 2025年度全国网络安全知识竞赛试题库及答案(共三套)
- 农业无人机智能化水平提升对2025年农业资源合理配置的影响报告
- 调整工程方案的通知(3篇)
- 安全教育教官培训内容课件
- 牧场安全生产培训课件
- 四川省宜宾市2025年中考化学真题附真题答案
- 农业废弃物处理与碳捕获技术集成报告
- 农业品牌价值评价体系构建:2025年资金申请研究报告
- 粮食种业面试题库及答案
- 医疗科室外包合同协议书
- 基于核心素养的中小学安全教育课程设计与实施路径
- 超级充电综合站及配套设施建设项目可行性研究报告
- 中国心房颤动管理指南2025解读
- 《云计算与大数据》课件第3章“大数据”关键技术与应用
- 2025-2026学年人教大同版(2024)小学英语三年级上册教学计划及进度表
- 2025年兽医实验室理论考试题库及答案详解【夺冠系列】
- 2025-2026学年陕旅版(三起)(2024)小学英语四年级上册(全册)教学设计(附目录)
- 2025年血液净化护理知识测试题库附答案
- 中国式现代化讲稿课件
- 心电监护血氧饱和度监测技术
评论
0/150
提交评论