新一代专家系统工具——基于Java的Jess(2)

来源:百度文库 编辑:神马文学网 时间:2024/05/02 20:36:03
同大多数专家!!一样,Jess的核心也是由事实库、规则库、推理机三大部分组成,并采用产生式规则作为基本的知识表达模式

!新一代Jess !

!从!LISP!到CLIPS !

Jess提供了一个交互式的、命令行的开发环境,但也可以使用文本编辑器编辑代码,然后再通过命令以批处理的方式载渗透到中同时它还提供了一个简单的图形开发环境类似于CLIPS,Jess非常重视调试!!和错误跟踪这两方面它的调试命令可以帮助使用者监视事实库、知识库中的内容,以及议程表中被激活规则的情况,也可以监视某一规则前件的部分匹配的情况在错误跟踪方面,Jess中的JessException类提供了丰富的错误信息,包含了对出错问题的解释和堆栈跟踪表中的信息,如出错子函数的名字、相关的语句、出错的行数等,可以很好地帮助开发人员发现错误原因

专家!!,即专家语言,是一种比!LISP!或C语言层次更高的语言,它提供一个推理机去执行该语言的语句早期的专家!!大都由!LISP!开发,20世纪80年代中至90年代初是!LISP!的黄金时期但随着!LISP!的广泛应用,其问题也逐渐暴露一是!LISP!的运行速度直到1989年,!LISP!应用程序只有在用!LISP!编写的操作系统上才具有较好的运行效率,所以,一些计算机公司专门设计了运行人工智能语言程序的专用机器,但这使每次软件的更新或升级都要付出巨大的代价二是!LISP!的嵌渗透性当要解决一个非常复杂的问题时,!LISP!显得极其无能为力这两点限制了!LISP!的发展,它只被使用在某些特定的应用领域

Jess自从问世以来就百度空间登陆首页没有停止过对功能的扩展,有许多研究技术人员不断地在Jess的基础上添加新的辅助功能加拿大国家研究委员会信息技术研究所的R.A.Orchard早在1995年就扩展了CLIPS的功能,将模糊推理的功能加渗透到CLIPS中,推出了模糊专家外壳!!FuzzyCLIPS后随着Jess的推出,R.A.Orchard将工作重心转移到Jess上来,将模糊推理的功能加渗入渗出到Jess中,推出了FuzzyJ ToolkitFuzzyJ Toolkit本身就是一个模糊专家外壳,但只支持模糊前件和模糊后件这些基本的推理方式它可以和Jess结合,形成功能更为强大的专家外壳 FuzzyJess,FuzzyJess不但可以表达精确事实、模糊事实、执行模糊推理,还具有Jess的强大功能

!1. Jess的基本组成和知识表示 !
!!!北京理工大学计算机科学与工程系 吴沁奕 陈英 吴鹤龄 !

在Jess中,规则的表达形式沿用了CLIPS的语法结构,通过对规则前件和后件的限定,它可以支持内容丰富的模式匹配语言另外,Jess支持面向过程的编程方式,它提供了一些语句来控制规则后件的操作流程,如使用if…then…else和while…do…语句,这样它就能很有效地利用面向过程编程的优势总之,Jess的这些特性使拥有很强的知识表示能力

Jess支持前向和逆向推理两种方式,前向推理同CLIPS的原理相同,逆向推理则是Jess不同于CLIPS的一个显著特征在Jess的逆向推理中,规则仍采用if…then…结构,但是在逆向推理时,推理引擎执行的是前件没有得到满意的规则,这种行为常常被称为目标寻找显然,Jess同时支持前向和逆向推理的特点使其推理能力得到了加强

01-11-16 上午 09:33:54

在Jess中,事实包括简单事实和对象事实简单事实就是一个描se0秘笈述事物的断言,而对象事实除此之外还封装了方法,可以接受外界信息改变自身的特征这一概念本身并不是Jess首次提出的,ART-IM、CLIPS都支持这一概念但Jess表达对象事实的方法确实别具一格:它用Java而非本身的语言来定义对象在CLIPS 6.0中,对象事实通过本身的语句defclass和make-instance来定义,但在Jess中,类的定义由Java语言书写,编译通过后即可动态地加渗透中用Java虚拟机编译通过后,通过defclass命令将该类加渗入渗出,它就可以执行类似于CLIPS中对类的各种操作,如生成它的一个实例、调用它的方法等由此可见,Jess可以方便地调用Java中的类库,使用Java中的各种数据结构和方法,从而具备其他不可比拟的优良的嵌渗入渗出能力

推理的效率很大程度上依赖于匹配算法的效率Jess通过实现Rete匹配算法来提供非常高效的前向和逆向推理Rete算法利用了专家中时间冗余性和结构相似性这两个特点,有效地减少了用于匹配操作的次数因此,当的性能是由匹配算法的质量决定时,Jess的优点将更为明显应当指出的是,Rete算法是一个以空间换取时间的算法,所以,应用Jess时应当考虑内存的消耗

!4.Jess的入一步扩充——FuzzyJ Toolkit !

!!今年7月底推出的FuzzyJ Toolkit 1.2是目前的最新版本由于FuzzyJ Toolkit开发时间较短,还有许多不完善的地方,所以,在与Jess集成的FuzzyJess中存在两个主要问题首先,它不支持对不确定因子的传递,即在事实与规则前件是模糊匹配的时候,规则仍然以绝对的确信度推导出后件其次,没有引渗入渗出模糊对象事实的概念,它是指事实含有精确和模糊的百度se0排名属性从人机交互的意义上说,模糊对象事实有利于知识的表达,能够非常好地体现人类的知识结构我们在以上两个方面对FuzzyJess的功能入行了扩充和完善,编写了Fuzzywrap类包,这样在FuzzyJess的基础上,为模糊模式匹配、模糊数据综合、确信度因子的传递等方面提供了一种简单易行的方式,它所基于的原理和算法可参阅FuzzyCLIPS

Jess提供了一个非常完备的电子文档,它可以帮助开发人员很快查询到需要的信息,将Jess嵌渗透到Java应用程序中由于Jess在很大程度上是CLIPS的克隆版本,感兴趣的读者可参考CLIPS用户手册和参考手册

Jess是1995年由美国Sandia国家实验室分布式计算组成员Ernest J. Friedman-Hill用Java实现的一个经过扩充的CLIPS版本它以CLIPS的设计原理为基础入行编写,除继承了CLIPS的优点外,还具有许多自己独特的特征,如支持正向和逆向推理,可以在运行环境下直接调用Java的类库等,这些特点将专家的开发过程同功能强大的Java语言结合起来,使采用Jess语言开发的专家具有良好的移植性、嵌渗入渗出性,可以方便地应用到金瓶梅上的不同机器中另外,Java多线程机制使Jess可以与其他应用程序并发执行,同步机制保证了对共享数据的正确操作,通过使用不同的线程完成特定的行为,就可以很容易地实现金瓶梅上的实时交互行为目前,Jess被广泛用于学术、工业、商业等领域,是一个有着广阔发展前景的专家开发平台





CLIPS(C Language Integrated Production System)正是为解决这些问题而出现的它于1984年由美国航空航天局约翰逊空间中心(NASA’s Johnson Space Center)推出,意在克服!LISP!移植性差、开发网上如何赚钱!!和硬件成本高、嵌渗透性低的缺点CLIPS是一个基于Rete算法的前向推理语言,用标准C语言编写,目前最新的版本为6.10它具有高移植性、高扩展性、强大的知识表达能力和编程方式以及低成本等特点一经推出,立即受到欢迎,被广泛应用于政府、工业和学术界,有力地推动了专家技术在各领域及各种运行环境下的应用目前,CLIPS是一个自由软件,主要由原来在NASA工作的设计人员维护它提供了一个新闻讨论组,可作为从事CLIPS的开发人员交换信息的场所更具体的信息可访问它的官方网站http://www.ghg.net/clips/CLIPS.html由于CLIPS的强大功能与良好性能,以及NASA对该软件采取的开放政策,CLIPS在美国国内外都有众多用户,他们应用CLIPS开发了许多实用的专家,并根据各自的需要对CLIPS入行扩充和改造,如加拿大研究委员会在CLIPS中加渗透了模糊推理功能,推出了FuzzyCLIPS,我们也成功地在CLIPS中加渗入渗出了图形功能,推出了图形化专家!!GEST(Graphical Expert System Shell)

!3.开发环境和文档支持 !

Jess通过模式匹配语言对事实入行操作在Jess中,模式匹配操作符的类型有很多,从可以同任意事实入行匹配的单一操作符到只能同满意特定约束值的事实入行匹配的复杂操作符特别要指出的是,Jess中有“unique”条件元素,它告诉同该模式匹配的事实是惟一的这样,当模式发现一条事实同它匹配后,就会停止对事实库的检索,在实际应用中,这可以将的性能提高20%~30%,而CLIPS不支持这一条件元素

近10年来,随着计算机大地se0视频教程技术和人工智能技术的飞速发展,尤其是技术的入步,专家也有了新的重大发展,出现了以Java为核心技术的专家开发!!由美国Sandia实验室推出的专家外壳Jess(Java expert system shell)就是其中的一个出色代表,本文将介绍它的来龙去脉和主要特点,以及围绕Jess我们所做的初步工作

!2.Jess的推理机制 !