(系统分析与集成专业论文)基于web的多专家系统的构架及实现.pdf_第1页
(系统分析与集成专业论文)基于web的多专家系统的构架及实现.pdf_第2页
(系统分析与集成专业论文)基于web的多专家系统的构架及实现.pdf_第3页
(系统分析与集成专业论文)基于web的多专家系统的构架及实现.pdf_第4页
(系统分析与集成专业论文)基于web的多专家系统的构架及实现.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

(系统分析与集成专业论文)基于web的多专家系统的构架及实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 i n t e r n e t 技术的发展,为专家系统应用提供了一个良好的运行平台和多专 家系统协作平台,为专家系统提供了一个新的应用环境,将不断扩大其应用领域、 处理能力和用户范围。本文将构造一个基于w e b 的多专家系统。 本系统采用自然语言接口,方便用户的输入,不必去学习麻烦的机器语言, 使本系统更符合人的习惯,更体现了智能化。吸取了e s 和d b 各自优点,用d b 来存放a i 中的知识,这解决了传统专家系统不能访问现存数据库的局限。采用 了新兴的专家系统外壳工具j e s s ,它可以在系统运行环境下直接调用j a v a 的类 库,它可将专家系统的开发过程同功能强大的j a v a 语言结合起来,使采用j e s s 语言开发的专家系统具有良好的移植性、嵌入性。 本文介绍了本系统的基本构架和e s 间的协作通信技术。概括的介绍了j e s s 的基本用法,例如:怎样把j a v a 中的数据传递给j e s s ,以及怎样使用j e s s 来 定义事实模板、加载事实、定义规则、加载规则等方法。在本文的最后给出了知 识获取的相关方法,在前人的基础上做了相应的改进,并实现了算法。 关键词:e s ,基于w e b 的多专家系统,知识共享,j e s s ,知识获取 a b s t r a c t t h ed e v e l o p m e n to fi n t e r n e tt e c h n o l o g yp r o v i d e st h ea p p l i c a t i o n so f e x p e r ts y s t e mw i t hap i e c eo fg o o df u n c t i o np l a t f o r m s ,ac o o p e r a t e p l a t f o r mo fm u l t i p l ee x p e r ts y s t e m sa n dan e wa p p li c a t i o ne n v i r o n m e n tf o r t h ee x p e r ts y s t e m ( e s ) i tw i l le x p a n dt h ea p p l i c a t i o nf i e l d so fe s ,t h e t r a n s a c ta b i l i t yo fe sa n du s e rr a n g ec o n s t a n t l y t h er e s e a r c hi sp o i n t e d t o w a r d sc o n s t r u c t i n gaw e b b a s e dd i s t r i b u t e de x p e r ts y s t e m ( w d e s ) w h i c h i sm u l t i p l e d o m a i n t h ew d e sa d o p t sn a t u r a ll a n g u a g et oc o n v e n i e n t f o ru s e r sw h on e e d n t s t u d ym a c h i n el a n g u a g e t h es y s t e mw i l lb em o r ea c c o r dw i t hp e l p l e ,a n d m o r ei n t e l l i g e n tb e c a u s eo fn a t u r a ll a n g u a g e i tc o n t a i n st h es t r o n g p o i n t o fe sa n dd b s t o r i n gk n o w l e d g eo fa ii nd br e s o l v et h el o c a l i z a t i o nt h a t i st r a d i t i o ne sc a n ta c c e s sd b j e s s ( j a v ae x p e r ts y s t e ms h e l l ) i san e w t o o lt h a tc a nd i r e c t l yc a l lt h el i b r a r yo fj a v a ,a n dt h es y s t e mw i i ib e m o r et r a n s p l a n t i n ga n de m b e d a i n gb e c a u s eo f t h ec o m b i n i n go fj e s sa n d j a v a t h i sp a p e ri n t r o d u c e st h ea r c h i t e c t u r eo fw d e s ,t h ec o m m u n i c a t i o no f e s ,a n dh o wt ou s ej e s s ,s u c ha st r a n s f e r r i n gv a l u e sb e t w e e nj e s sa n dj a v a c o d e ,a d d i n g ,f i n d i n ga n dl i s t i n gc o n s t r u c t s ,e c t t h ea p p r o a c h e so f k n o w l e d g er e q u i r i n ga r ea d o p t e d ,a n dt h ea p p r o a c h e sh a db e e n i m p r o v e d 。 k e y w o r d s :e x p e r ts y s t e m ,aw e b b a s e dm u l t i e x p e r t s y s t e m ,k n o w l e d g e s h a r i n g ,j a v ae x p e r t s y s t e ms h e l l ,k o n w l e d g er e q u i r i n g 湖北大学学位论文原创性声明和使用授权说明 原仓4 性声明 本人郑重声明:所里交的学位论文,是本人在导师的指导下,独立进行研究 工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人或 集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集 体,均已在文中以明确方式标明。本声明的法律后果由本人承担。 论文作者签名: 时间:年 月 日 学位论文使用授权说明 本人完全了解湖北大学关于收集、保存、使用学位论文的规定,即: 按照学校要求提交学位论文的印刷本和电子版本; 学校有权保存学位论文的印刷本和电子版,并提供目录检索与阅览服务 学校可以采用影印、缩印、数字化或其它复制手段保存论文; 在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 ( 保密论文在解密后遵守此规定) 论文作者签名: 签名日期:年月日 导师签名: 签名日期: 孑舻r 乒朗e 1 绪论 1 1 研究背景和目的 当人类迈步跨进二十一世纪的时候,信息技术的发展也迎来了新的机遇和挑 战。随着计算机技术的迅猛发展,国民生产的各个行业中都融入了计算机技术a 尤其在最近的几十年中,人工智能技术“1 也逐渐地得到了广泛的应用,其中专家 系统1 更是获得了很大程度的普及。 提出专家系统思想的最大贡献就是它使人们对知识在智能的人工实现中的 作用开始有所认识,要使一个程序具有智能,就要向它提供关于某些问题领域的 大量的高质量的专门知识。在专家系统诞生之前,人工智能研究主要以形式推理, 特别是各种搜索策略为中心进行的。专家系统是人工智能的一个分支,它大量利 用专业知识以解决只有专家才能解决的问题。 我国专家系统的研究起步较晚,大约在8 0 年代初期。最初开发出来的大都 是演示系统,达不到实际应用水平。到目前为止,在理论研究和实际应用开发上 都己有了丰硕的成果,并己应用到工业、农业、军事以及国民经济的各个部门乃 至社会生活的许多方面“4 | “,”1 。 但是传统的专家系统也存在着许多问题“: 1 ) 知识获取的“瓶颈”:通常专家系统的知识获取主要采用手工方法,由知识工程 师将领域专家的知识输入到计算机中,它是间接的,不但费时,而且效率低,直接 影响到知识的质量及专家系统的功能,是人们目前亟待解决的问题。 2 ) 知识的“窄台阶”问题:目前,一般专家系统只能应用于相当窄的知识领域内求 解预定的专门问题,一旦遇到超出知识范围的问题,就无能为力,不能通过自身的 学习增长知识。 3 ) 系统的复杂性和效率问题:目前在专家系统中广泛应用的是把知识转换成计算 机可以存储的形式存入知识库,推理时再依一定的匹配算法及搜索策略到知识库 中寻找所需的知识。这种表示和处理方式一方面需要对知识进行合理的组织与管 理,另一方面由于知识搜索是一串行的计算过程,必须解决冲突等问题,这就产生 了推理的复杂性、组合爆炸和无穷递归等问题,影响到系统的效率。 4 ) 不具有联想记忆功能,适应能力差:目前的专家系统一般还不具备自学习能力 和联想记忆功能,不能在运行过程中自我完善,不能通过联想记忆、识别和类比等 方式进行推理,当已知的信息带有噪声、发生畸变等不完全信息时,缺少有利的措 施进行处理。 然而,随着技术的发展,w 啊技术使得在分布于不同位置的人们可以通过通 用的通信协议很方便的进行交流,共享他们的想法,可以处理不同的信息载体: 文本、图像、声音等。i n t e r n e t 的出现为多专家系统的相互访问提供了理想工 具。 a i 和d b 技术”1 都是计算机科学两个十分重要的领域,它们相互独立地发展 已有几十年的历史,并在各自的领域取得突出成就而获得广泛应用,然而,它们都 存在十分突出的问题和矛盾。一方面,现有的a i 系统( 如专家系统) 可以使用 成百上千条基于规则的知识去进行启发式搜索和推理,但却缺乏高效检索访问现 存数据库和管理海量数据的能力;另一方面,现有的d b m s 虽已优化到可以处理 海量商业及事务数据的水平,但却无力表达和处理a i 系统( 如专家系统) 中常 见的基于规则的知识,以提高数据库及知识库的演绎、推理能力。为摆脱单方面 进行研究的局限性,人们认识到了a 工和明技术相结合、彼此取长补短、相互促 进共同发展的广阔前景“1 。 与此同时,各地专家系统可以利用整个网络上的领域专家的知识对其知识库 进行更新。完全不同的专家系统之间,由于其知识表示与推理机制相差太大,不 太可能也没有必要进行专家系统之间的协作通信,需要进行协作的专家系统主要 是同一类型的专家系统,它们只是在知识库的内容上有所差异。鉴于目前专家系 统存在的这一系列问题,结合前人对利用数据库来存放知识的基础研究,以及新 兴专家系统外壳工具j e s s 的引入,本文在前人的基础上对多专家系统做了更进 一步的研究。因此本文构造了一种基于w e b 的由多个同一类型而不同内容的专 家系统组成的多专家系统。研究此系统的目的是采用相同的用户界面,相同的知 识库结构,相同的推理机制,以及相同的知识获取机制,在w e b 下通过i n t e r n e t 将分布于不同位置具有不同领域或同领域不同方面的知识的e s 集成在一起, 提高系统的任务处理能力和使用范围,增强专家系统在问题求解过程中的有效性 和高效性。 1 2 本文的研究内容 本系统是利用d b 来存放a i 的知识,同时日i 入新的专家系统外壳工具s e s s , 因此,主要的研究内容有: 自然语言与人机接口。在人机接口方面采用的是自然语言的界面,用自然语 言与计算机进行通信,这是人们长期以来所追求的。自然语言系统是能够让计算 机接受、解释和执行用户用自然语言给出的指令的系统。自然语言系统建立的目 的是在人类用户和计算机之间建立起更自然的联系。 知识库的构造。以关系型知识库来存贮知识,这解决了传统专家系统不能访 问现存数据库的局限,使得专家系统拥有支持大批量知识的高效存取、并发控制、 分布技术及错误恢复等功能。 在j a v a 中使用j e s s 。j e s s 是以c l i p s 的设计原理为基础进行编写,除继承 了c l i p s 的优点外,还具有许多自己独特的特征,可以在系统运行环境下直接调 用j a v a 的类库,它可将专家系统的开发过程同功能强大的j a v a 语言结合起来, 使采用j e s s 语言开发的专家系统具有良好的移植性、嵌入性,可以方便地应用 到网络上的不同机器中。另外,j a v a 多线程机制使j e s s 可以与其他应用程序并 发执行,同步机制保证了对共享数据的正确操作,通过使用不同的线程完成特定 的行为,就可以很容易地实现网络上的实时交互行为。 推理机。推理机方面采用的是新型工具j e s s ,因为它支持正向和逆向推理。 知识获取。这方面采用的是会谈式和机器学习两种方式的结合,在前人的基 础上做出了一定的改进,并实现了算法。 协作通信。采用的是j a v as o c k e t 的数据报通信方式。 以上这几部分的内容,使本系统在前人的基础上做了更进一步的实现。其中 自然语言与人机接口是由张恒玲同学研究完成的,请参看基于w e b 的多专家系 统的自然语言人机接口;知识库的构造是由魏丹同学完成的,请参看提高推 理效率的知识库重组研究:推理机是由杨琳同学研究完成,请参看多专家系 统推理机的构架及实现。 2 多专家系统技术的研究 2 1 分布式专家系统及协同式专家系统的定义 为了解决传统的专家系统所存在的一系列的问题,所以发展出两种新型专家 系统: ( 1 ) 分布式专家系统 这种专家系统m 1 具有分布处理的特征,其主要目的在于把一个专家系统的 功能经分解以后分布到多个处理器上去并行地工作,从而在总体上提高系统的处 理效率。它可以工作在紧耦合的多处理器系统环境中,也可工作在松耦合的计算 机网络环境( 例如某种局部网环境) 里,所以其总体结构在很大程度上依赖于其 所处的硬件环境。 ( 2 ) 协同式专家系统 当前存在的大部分专家系统,在规定的专业领域内它是一个“专家”,但一 旦越出特定领域( 那怕是超过一点点,甚至在领域边缘上) ,系统就无法胜任工 作。 一般专家系统解题的领域很窄,所以单个专家系统应用的局限性很大,难以 获得满意的应用效果。协同式专家系统能够克服专家系统的这一局限性。协同式 多专家系统亦可称“群专家系统”,它能够综合若干个相邻近领域的或一个领域 的多个方面的子专家系统,互相协作共同解决一个更为广泛领域的问题。例如, 一种疑难病症需要多种专科医生们的会诊,一个复杂系统( 如导弹与舰船等) 的 设计需要多学科专家和工程师的合作等等。在现实世界中,对这种协同式多专家 系统的需求是很多的。协同式专家系统与分布式专家系统有些共性,因为它们都 可能涉及多个子专家系统。然而,协同式专家系统更加强调各子系统之间的协同 合作,而不着重于处理的分布和知识的分布。所以,协同式专家系统不像分布式 专家系统,它并不一定要求有几个处理机的硬件环境,而且一般都是在同一处理 机上实现各子专家系统功能的。 ( 3 ) 分布协同式思想 随着计算机网络技术、硬件资源共享、远程数据交换以及分布式计算机与并 行处理技术的发展,基于计算机网络的分布协同式专家系统的实现成为可能。系 统的每一个子系统不仅用来实现对问题的多个方面进行并行推理,以提高系统的 效率,并且,当结论返回后,每个子系统还拥有一个协同端来依据公用知识对各 专家子系统的结论进行裁决。 2 2 专家系统的要素 专家系统可由用户界面、知识库、推理机制、知识获取等几个方面组成。 2 2 1 用户界面 这是用户与计算机系统交互的窗口。通过它,将专家和用户的输入信息翻译 成系统可接受的内部形式,同时把系统向专家或用户的输出信息转换为人类易于 理解的形式。所以要求它尽可能符合人的思维和求解问题的过程,使用尽可能接 近自然的语言以方便用户使用。 2 2 2 知识库 知识库用于储存领域专家提供的专门知识。它包括书本知识、常识性知识、 由经验得到的启发式知识等,具体的有定义、定理以及确定和不确定的运算( 推 理) 法则等等。一个专家系统的能力取决于其知识库中所含有知识的数量和质量。 2 2 3 推理机制 推理机制包括知识库管理系统和推理机。知识库管理系统能够按要求自动地 控制、扩展、更新知识库中的知识,按照推理过程的需求去搜索适用的知识,并 对知识库中知识作正确的解释。推理机选取知识库中对当前问题可用的知识,在 问题求解过程中生成并控制推理的进程。控制策略的选择常与专家系统求解的问 题类型有关,选取的合适与否将影响着系统对知识库中知识的使用效率,进而影 响着系统求解的效率。知识的选取过程在控制策略的控制下有时还需要结合一些 启发式知识,因为可用知识的使用途径存在优先程度等因素的制约。 2 2 4 知识获取 知识获取的方法分为主动式和被动式两大类。而所谓主动式知识获取,反映 的是系统根据领域专家或书本上提供的数据与资料,通过诸如归纳程序之类的知 识获取系统自动获取或产生知识并装入系统的知识库中。而被动式知识获取,指 的是由知识工程师通过与领域专家的多次接触和促膝交谈,挖掘出有关的领域知 识,并通过知识编辑器之类的工具,将这些知识以某种特定的形式传授给专家系 统,装入知识库“。 虽然知识的获取可分为主动式和被动式两种,但无论是哪一种都要经过下列 方式中的种或若干种的组合”1 。 1 ) 会谈式 知识工程师与专家的交谈是获得专家关于解问题和知识的重要途径,是比较 直观和常用的方法,易于人们掌握。但是不拘形式的会谈不易获得详细的知识, 因此,可采用专题面谈的形式,即向专家提出事先拟好的问题,由专家任意回答。 但是这种方法是机械地手工处理知识,因此建立一个知识库往往要花费许多时 问。 2 ) 计算机辅助方法 专家系统的知识获取主要任务是将知识送入程序中,同时避免错误的知识输 入,并且还要不断地删除或增加知识等。实现这些任务的经验导致了计算机辅助 方法和技术的开发a 目前常用的是:知识库编辑程序和接口、解释设备和知识库 的修改。 3 ) 机器学习 知识获取的计算机辅助方法只能完成知识获取过程的一部分工作,也就是说 当专家系统建立好并投入使用后,往往需要专家系统能根据实际需要实现自身的 学习,不断更新和修改已有的知识。这就导致了人们研究全自动获取知识的方法, 例如兰j 发现专家系统缺乏某项知识时,则由人类专家随时把自己的知识“传授, 给专家系统,专家系统接受这些知识并转换成相应的内部表示保存起来,以各以 后使用,于是就学会了该项知识。 一个机器学习过程本质上是学习系统把环境( 包括教师) 提供的信息转换成 能够理解和使用的形式并记忆下来供以后使用。在这种转换的过程中采用的方法 成为学习策略。目前机器学习方法有多种,按当前国际上流行的分类方法主要有 四种: 1 ) 按应用领域分类( 如专家系统、问题求解和认知模拟等) ; 2 ) 按获取知识的表示形式分类( 如逻辑表达式、产生式规则、框架、决策树、 神经网络等) ; 3 ) 按学习策略分类( 如演绎学习、归纳学习、类比学习等) : 4 ) 按系统多种属性分类( 如分析学习、归纳学习、联结学习和遗传学习算法等) 一般来说,任何一个学习过程都是综合的不可能只采用一种方法,因而在研 制机器学习时必须把两种或几种方法结合起来。 尽管学习系统在获取知识时效率很高,但是开发一个学习系统所花费的时间 却很多,因而有必要在研制机器学习时拓宽其应用的领域,使各领域的专家系统 能共用一个学习系统或对其稍加修改就能用到其他领域。 综上所述,可以看到会谈方法虽然简单易于掌握,但由于完全是手工处理知 识,因而效率低;计算机辅助方法则弥补了前种方法的不足,为大多数专家系统 所采用,但它只属于半自动方法,前面几部分的工作仍需要手工完成;机器学习 由于其自动化程度高、效率高,因而发展机器学习将是今后知识获取的主要途径 及主要方向。 2 3 多专家系统的模型结构 怎样把完成各种子任务的多个分专家系统组织成一个整体,使它能完满地完 成总任务,有几种结构方式可供选择:主从式、层次式、同僚式、广播式等。 2 3 1 主从式 这种分布式专家系统的结构是把整个系统分解成一个主专家系统和若干个 从专家系统。主专家系统具有一般常识并有问题求解的浅层知识,用户的问题从 主专家系统进入,一般较简单的问题,主专家系统就可独立解决。由于从专家系 统具有各个不同的方面的深层知识,当主专家系统求解过程中发现需要一些深层 知识时,就试探性地调用( 或激活) 一个或一些从专家系统,请它们协助解题。有 时可能得到的回答是“不会”或解出的答案并不是所要的,这要再由主专家系统 作进一步地试探求助,直到满意为止,然后再继续往下求解。可见在这种结构中, 若是在单处理机上实现,则主专家系统与各从专家系统之间的关系基本上是调用 与被调用的关系,而各从专家系统之间一般是互相不往来的。在这种系统中只有 一个“主专家系统”,它比其他从专家系统处于高一个层次的位置,用户只与它 交互,且由它来决定应该把任务分给哪个( 或哪些) 从专家系统来完成,故可由图 2 - i 表示。 图2 1 主从式多专家系统结构 各从专家系统之间没有直接往来,与用户也没有直接往来,如果需要互相交 互,应通过主专家系统来实现。因此,如果采用黑板进行讨论,黑板必须设在主 专家系统处。显然,在这种结构中,主专家系统是其关键,它应该有较广的知识 面( 但不一定很深) ,有很好的评估和裁决能力,以及与用户有友善的界面等。这 种结构的一种变形可以用图2 - 2 来表示。 用户 图2 - 2 主从式多专家系统结构变种 8 户 2 3 2 层次式 采用“分层负责”的办法把任务分成不同的若干层次,越是上层的分专家系 统负责越是宏观的管理与控制任务,位于基层的分专家系统才具体负责完成各种 解题子任务。 2 3 3 同僚式 在分布的环境中实现协同式多专家系统时平等的同僚或同事是一种较好的 方案。这时,也许把各分专家系统设计成整个系统不再有起控制或管理作用的“上 层专家”,而大家都是协同合作的伙伴。每个分系统都可以有其各自的用户界面。 当用户提出一个问题以后,接受它的分系统首先看它自己能否独立的解决该问 题,若能,则把该问题就地解决;若不能( 或不完全能) ,则由该分系统将该问题( 或 一些分解出的子问题) 向其它系统“广播”,请求帮助。正因为是广播所以可能 有多个分系统能解决所委托的问题( 或任务) ,并当问题解决( 或任务完成) 后都将 结果向发出问题的分系统回送,这时可采用一定的裁决方法得到一个仲裁结果, 或把它作为该分专家系统进一步工作的依据,或把它作为结果转送给用户。这种 结构可如图2 3 所示。 这样,在解题过程中,各分系统不断地提出问题或分出任务,请求其它分 系统给予帮助,同时也不时地给其他分系统服务,解决其他分系统提出的问题, 如此交叉服务,互相帮助共同完成一个总的任务。在这种协同解题的网络中,具 有相互功能( 或类似功能) 的分系统( 节点) 甚至可以不只一个,从而可以满足一些 并发执行的要求,使整个系统的解题效率提高。 用户 用户 甩芦 图2 - 3 同僚式多专家系统结构 9 2 3 4 广播式 在这种协同式专家系统的结构中,各个专家系统是以各尽所能的方式工作 的。用户的问题同时被广播给若干个分专家系统,各分专家系统根据其所具有的 不同知识和解题能力,从不同的角度对用户提出的问题给出各自的“部分解”( 或 称“具有偏见的解”) ,然后把这些“部分解”传给解答综合专家系统,进行分 析、综合和合理筛选,最终给出问题的解。见图2 4 所示。 用户 图2 4 广播式多专家系统结构 2 3 5 网络式 用户 这是一种最一般的协同式专家系统。它把整个系统表示成一张以分专家系统 为节点的有向图,这种有向图有一个节点仅有输出弧,称为开始节点,有一个节 点仅有输入弧,称为终结节点。用户的问题从开始节点进入沿有向弧的走向不断 请求驱动各后续分专家系统工作。若一个分专家系统有若干条输入弧,则只有当 其与支( 有圆弧线连在一起的几条输入弧) 上有驱动要求时,才能开始该分专家系 统工作。并且每个节点专家系统把其结果沿其输出弧传给下一步的节点专家系 统,如此一步一步往下工作,且在某些环节允许出现循环以求通过迭代不断改进 答案,直到满足定条件后再继续往下工作。系统可用图2 5 表示。 图2 - 5 网络式多专家系统结构 2 4 专家系统外壳j e s s 语言简介 j e s s 是1 9 9 5 年由美国s a n d i a 国家实验室分布式系统计算组成员e r n e s tj f r i e d m a n h i l l 用j a v a 实现的一个经过扩充的c l i p s 嘲版本。它以c l i p s 的设 计原理为基础进行编写,除继承了c l i p s 的优点外,还具有许多自己独特的特征。 ( 1 ) j e s s 的基本组成和知识表示 同大多数专家系统工具一样,j e s s 的核心也是由事实库、规则库、推理机 三大部分组成,并采用产生式规则作为基本的知识表达模式。 在j e s s 中,规则的表达形式沿用了c l i p s 的语法结构,通过对规则前件和 后件的限定,它可以支持内容丰富的模式匹配语言。 另外,j e s s 支持面向过程的编程方式,它提供了一些语句来控制规则后件 的操作流程,如使用i f t h e n e l s e 和w h i l e d 。语句,这样它就能很有效 地利用面向过程编程的优势。总之,j e s s 的这些特性使系统拥有很强的知识表 示能力。 ( 2 ) j e s s 的推理机制 j e s s 支持前向和逆向推理两种方式,前向推理同c l i p s 的原理相同,逆向 推理则是j e s s 不同于c l i p s 的一个显著特征。在j e s s 的逆向推理中,规则仍采 用i f t h e n 结构,但是在逆向推理时,推理引擎执行的是前件没有得到满足 的规则,这种行为常常被称为目标寻找。显然,j e s s 同时支持前向和逆向推理 的特点使其推理能力得到了加强。 推理的效率很大程度上依赖于匹配算法的效率。j e s s 通过实现r e t e 匹配算 法来提供非常高效的前向和逆向推理。r e t e 算法利用了专家系统中时间冗余性 和结构相似性这两个特点,有效地减少了用于匹配操作的次数。因此,当系统的 性能是由匹配算法的质量决定时,j e s s 的优点将更为明显。应当指出的是,r e t e 算法是一个以空间换取时间的算法,所以,应用j e s s 时应当考虑内存的消耗。 ( 3 ) 开发环境和文档支持 j e s s 提供了一个交互式的、命令行的开发环境,但也可以使用文本编辑器 编辑代码,然后再通过系统命令以批处理的方式载入到系统中。同时它还提供了 一个简单的图形开发环境。 3 本系统的总体结构简介 3 1 多专家系统的结构与运作规则 本文所研究多专家系统在网上的分布如图3 1 所示。它基于以下模式:( 1 ) 网上的n 个类型相同知识不同的专家系统共同组成多专家系统。( 2 ) 这n 个专家 系统的推理机与知识库的知识表示相同,知识库的知识内容不同。( 3 ) 各个专家 系统分布在i n t e r n e t 的不同主机上。以t c p i p 协议实现信息包的传送,根据 己定义的阀答理解规则对信息包进行解释。( 4 ) 本地专家系统在遇到不能解决的 问题时,能向网上的其它专家系统求助。( 5 ) 从网上其它专家系统获得新知识后, 能根据一定的学习策略对本地专家系统的知识库进行更新。( 6 ) 专家系统遇到不 能解决的问题时,可以通过一个定位援机的模块确定当前问题是否全局可解,如 果网上有其它的专家系统可解此问题,则可进一步确定该专家系统的位置。( 7 ) 当一个专家系统收到帮助请求时,它根据一定的帮助策略提供帮助。 本系统采用的模型结构是同僚式,即大家都是协同合作的伙伴。与基本的同 僚式不同的是,每个分系统都以相同用户界面面向用户。当用户提出一个问题以 后,接受它的分系统首先看它自己能否独立的解决该问题,若能,则把该问题就 地解决:若不能( 或不完全能) ,则由该分系统将该问题( 或一些分解出的子问题) 向其它系统采用“并行互知”模型“定位广播”而不是一般的“广播”。本文对 此后面有所介绍。 由于各个专家系统知识库的知识表示方法是相同的,因此这些专家系统只要 有简单的通信就可以实现发送请求与接收响应,同时解释信息包。单个专家系统 的结构如图3 2 ,网上帮助请求应答模块负责在收到其它专家系统的帮助请求后 从知识库中找到相关知识,并将其反馈给请求帮助的专家系统,它的处理流程如 图3 3 。其整体的系统流程图如图3 - 4 。 本文所讨论的多专家系统分别以四个子系统为例,它们分别是: 1 ) 动物识别系统用于识别动物的分析系统。它接受一组已知的事实,然后做 出相应的结论。 2 ) 植物识别系统用于识别动物的分析系统。它接受一组已知的事实,然后做 出相应的结论。 3 ) 医疗系统主要应用于动物及植物的病情咨询。接受一组已知事实,然后作 出相应的结论,该动物或植物得了何种病。 4 ) 天气系统根据天气、温度、潮湿和风的情况判别类别。 从表面上看在这几个子系统构成了一个分布式专家系统,其中动物识别系 统、植物识别系统是两个毫无关联的子系统,但是医疗系统在做分析的时候需要 分析这个物体是属于动物还是植物,那就需要这两个子系统的协同帮助,所以从 这个角度上来说又是一个协同式的系统“。因此,这里的多专家系统即有分布式 专家系统的特点,又有协同式专家系统的特点。 图3 - 2 单个专家系统结构图 图3 - 3 请求帮助应答模块流程图 图3 - 4 系统流程图 3 2 本系统的用户接口 随着计算机的功能、容量和速度的巨大提高,自然语言处理的理论研究有了 很大进展,特别是新一代计算机和机器人关于人机接口的研究,使人与计算机进 行自然语言”“交流变成现实。本系统中这部分的研究是由张恒玲同学完成的。 这部分的研究为基于 n e b 的产生式规则咨询类专家系统设计了一个自然语言人 机接口模型,对汉语自然语言文本进行了分析,取出相关有用的信息,分析出用 户所提出的问题是属于哪一领域,用户提供了哪些可以作为事实的信息,这些作 为最基本的信息输入。 3 3 本系统的知识库设计 这部分的研究是由魏丹同学完成的。本系统的知识库”3 设计主要提出了 一种提高推理效率的方法一一知识库重组,这种方法通过缩小推理范围来提高 推理效率。在应用中利用产生式规则表示知识,采用了数据库构造知识库的方 法,组织知识库结构。采用自顶向下组织规则,构造知识库的模型,并将这些 模型抽象成一种相关树的形式,建立知识之间的关联。 3 4 本系统的推理机制 这部分的研究是由杨琳同学完成的。在本系统的推理机方面是用j e s s 开发 工具开发的推理机。使用了正向推理和反向推理两种推理方法的设计思路,利用 高效的r e t e 算法将模式进行优化,提高了整个系统的效率。 3 5 本系统的知识获取 本系统的知识获取采取了两种方式的组合,涉及到了被动式和主动式,一种 是会谈采访式,一种是机器学习中的归纳学习方法,在前人的基础上对算法进行 了相应的改进,并用j a v a 实现了该算法。本文后面将有单独的一章详细介绍了 这两种方法。 4 本系统的开发工具j e s s 与j a v a 工具j e s s 是一个新的专家系统开发工具,在某些问题上它比c l i p s 本身更 有效,具有非常广阔的前景“”。本文在总结了前人的经验后,查阅了大量的资 料,进行了反复的实践的前提下来介绍是怎样在j a v a 中应用工具j e s s 来编辑程 序”。和进行推理的,最后给出了一个示例,在这个示例中较全面的演示了是怎样 在j a v a 中使用j e s s 进行各种操作的,并且这段代码已运用到本系统中。 j e s s “”的应用有两种主要方法:1 ) j a v a 继承j e s s2 ) j e s s 库可以在j a v a 中使用,所有的j a v a 源文件都包含i m p o r tj e s s $ 申明。 4 1 j e s s 。j e s s e x c e p t i o n 类 j e s s j e s s e x c e p t i o n 类是在j e s s 库中唯一的一种应用于函数的异常抛出, 它相当的复杂。这个类一个实例包含一个有价值的发生于j e s s 中的错误信息。 它能告之所发生的错误的名称,相关文本及错误的行数和触发错误的j a v a 异常。 关于j e s s 的最重要的一条建议是:在捕获异常的语句中显示异常对象,进行系 统输出,或者转换成一个字符串并在一个对话框中显示出来。另一个重要的建议 是:当一个特别的j e s s j e s s e x c e p t i o n 是其他种类异常的外围时, j e s s j e s s e x c e p t i o n 有一个方法g e t n e x t e x p e c t i o n 可返回非空类型。例如:如 果使用j e s s 函数调用一个抛出异常的函数,那么调用将抛出一个 j e s s e x c e p t i o n ,并且调用的j e s s e x c e p t i o n g e t n e x t e x c e p t i o n 0 将返回被抛出 的真实的异常。j e s s e x c e p t i o n 句柄应该经常检测g e t n e x t e x c e p t i o n 0 。如果句 柄仅仅显示一个抛出的异常,那么它也应该显示这个函数所返回的值。 4 2 j e s s 。v a l u e 类 在j e s s 中用的最多的就是类j e s s v a l u e ,一个v a l u e 是一个自我插述的数 据对象,在j e s s 中每个数据都包含在一个对象中。一旦它被构建,个v a l u e 的类型和内容不能被改变;它是不可变的,v a l u e 支持一个t y p e 0 函数,它可返 回这些类型( 定义在类j e s s r u 中) 内容的其中之一。 f i n a lp u b l i cs t a t i ci n tn o n e= 0 :a ne m p t yv a l u e ( n o t n i l ) f i n a lp u b l i cs t a t i ci n ta t o m = 1 :as y m b o l f i n a lp u b l i cs t a t i ci n ts t r i n g = 2 :as t r i n g f i n a lp u b l i cs t a t i ci u ti n t e g e r=4:ani n t e g e r f i n a lp u b l i cs t a t i ci n tv a r i a b l e= 8 :av a r i a b l e f i n a lp u b l i cs t a r i ci n tf a c t = 1 6 :af a c ti n d e x f i n a lp u b l i cs t a t i ci n tf l o a t = 3 2 :ad o u b l ef l o a t f i n a lp u b l i cs t a t i ci n tf u n c a l l = 6 4 :;af u n c t i o nc a l l f i n a lp u b l i es t a t i ci n tl i s t = 5 1 2 :am u l t i f i e l d f i n a lp u b l i cs t a t i ci n td e s c r i p t o r = 1 0 2 4 :( i n t e r n a lu s e ) f i n a lp u b l i cs t a t i ci n te x t e r n a la d d r e s s = 2 0 4 8 :aj a v ao b j e c t f i n a lp u b l i cs t a t i ci n ti n t a r r a y = 4 0 9 6 :( i n t e r n a lu s e ) f i n a lp u b l i cs t a t i ci n tm u l t i v a r i a b l e = 8 1 9 2 :am u l t i v a r i a b l e f i n a lp u b l i cs t a t i ci n ts l o t = 1 6 3 8 4 :( i n t e r n a lu s e ) f i n a lp u b li cs t a ti ci n t l t i s l o t = 3 2 7 6 8 :( i n t e r n a lu s e ) f i n a lp u b l i cs t a t i ci n tl o n g = 6 5 5 3 6 ;:aj a v al o n g 应该经常使用名称,而不是字面上的值,字面上的值会不注意的被改动。 v a l u e 对象是通过指定数据和类型来构造。每个构造器都要确保给定的数据和类 型应是一致兼容的。对每个构造器来说,可接受多个类型参数的值,这些有效的 构造器是: p u b li cv a l u e ( o b j e c t0 ) t h r o w sj e s s e x c e p t i o n p u b li cv a l u e ( s t r i n gs ,i n tt y p e ) t h r o w sj e s s e x c e p t i o n p u b p u b p u b v a l u e ( v a l u ev ) v a l u e ( v a l u e v e c t o rf v a l u e ( d o u b l ed ,i n t p u b t i cv a l u e ( i n tv a l u e ,i n t i n tt y p e ) t h r o w sj e s s e x c e p t i o n t y p e ) t h r o w sj e s s e x c e p t i o n t y p e ) t h r o w s7 e s s e x c e p t i o n v a l u e 支持大量的函数从v a l u e 对象中获取真实值,这些函数是 p u b li co b j e c te x t e r n a l a d d r e s s v a l u e ( c o n t e x tc ) t h r o w sj e s s g x c e p t i o n p u b l i cs t r i n gs t r i n g v a l u e ( c o n t e x tc ) t h r o w sj e s s e x c e p t i o n p u b l i cv a l u e v e c t o rf a c t v a l u e ( c o n t e x tc ) t h r o w sj e s s e x c e p t i o n p u b i i cv a l u e v e c t o rf u n c a l i v a l u e ( c o n t e x tc ) t h r o w sj e s s e x c e p t i o n p u b l i ev a l u e v e c t o rl i s t v a l u e ( c o n t e x tc ) t h r o w sj e s s g x c e p t i o n p u b l i cd o u b l ef l o a t v a l u e ( c o n t e x tc ) t h r o w sj e s s e x c e p t i o n p u b l i cd o u b l en u m e r i c g a l u e ( c o n t e x tc ) t h r o w sj e s s e x c e p t i o n p u b li c i n td e s c r i p t o r v a l u e ( c o n t e x tc ) t h r o sj e s s e x c e p t i o n p u b l i ci n ti n t v a l u e ( c o n t e x tc ) t h r o w sj e s s e x c e p t i o n 类j e s s c o n t e x t 在下一部分将会描述,如果试图通过建立一个v a l u e 转换 随机数成为其他的类型,将会抛出j e s s 异常。然而,一些类型可自由地作内部 转换,例如:i n t 和f l o a t 。 4 2 1j e s s v a l u e 的子类 j e s s v a l u e 有很多子类:j e s s v a r i a b l e , j e s s f u n c a l l v a l u e , j e s s f a c t l d v a l u e ,和j e s s l o n g v a l u e ,他们是有趣的四个子类。如果希望建 立一个v a l u e 来表示一个变量,一个函数调用,一个事实和一个j a v al o n g 时, 必须使用合适的子类。 1 ) j e s s v a r i a b l e 类 当希望建立个表示一个变量的v a l u e 时,请使用v a l u e 的子类,请看下面 的一个构造器: p u b l i cv a r i a b l e ( s t r i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论