“专家系统”实验报告专业:智能科学与技术班级:1102学号:**********姓名:***2014年6月5日实验1 专家系统与CLIPS实验内容提要:专家系统不仅是具有特定的结构,同时,它还有多种知识表示形式,及其相应的知识推理方法。
因此,直接采用程序设计语言实现专家系统是比较困难的,而采用适当的专家系统开发工具则可以大大降低系统开发的难度。
因此,本章结合麦粒肿系统专断专家系统开发的需要,首先安排了对专家系统及其开发工具CLIPS基本理论知识,以及CLIPS基本理论知识,以及CLIPS基本使用方法的概要介绍,目的是为第6章“麦粒肿诊断专家系统开发”做好准备。
实验重点:➢专家系统的一般结构➢产生式规则的表示及其正向推理➢专家系统开发工具的结构和特点➢专家系统开发工具CLIPS的基本语法➢专家系统开发工具CLIPS的基本使用实验目的➢掌握专家系统的一般结构➢掌握产生式规则的表示及其正向推理➢掌握专家系统开发工具的结构和特点➢了解专家系统开发工具CLIPS的设计目标与特点➢掌握专家系统开发工具CLIPS的基本语法➢掌握专家系统开发工具CLIPS的基本使用实验内容及要求➢学习专家系统的一般结构➢学习产生式规则的表示及其正向推理➢学习专家系统开发工具的结构和特点➢学习专家系统开发工具CLIPS的设计目标与特点➢学习专家系统开发工具CLIPS的基本语法➢学习专家系统开发工具CLIPS的基本使用实验步骤本实验包括以下六个具体步骤,分别是:学习专家系统的一般结构、学习产生式规则的表示及其正向推理、学习专家系统开发工具的结构和特点、学习专家系统开发工具CLIPS的设计目标与特点、学习专家系统开发工具CLIPS的基本语法,以及学习专家系统开发工具CLIPS的基本使用。
1 学习专家系统的一般结构:专家系统(ES,Expert System)是利用大量专家知识,运用只是推理方法解决特定领域中实际问题的计算机程序系统。
专家系统由产生式规则专家系统发展而来,主要包括知识库、推理机、综合数据库、知识获取程序、人机接口,以及解释程序六大部分。
其中,知识库、推理机、综合数据库,以及人际接口是目前大多数专家系统的主要内容,而知识获取程序和解释则是所有专家系统都期望具有的两个模块。
在专家系统的一般结构中,知识库用于存放各领域专家提供的经验性知识:综合数据库用于存放关于问题求解的初始数据、中间结果、假设、目标,以及最终求解结果(事实);推理机在一定的控制策略下针对综合数据库中的当前信息,识别和选取知识库中对当前问题求解有用的知识进行推理;知识获取程序完成把专家只是按一定表示形式输入到知识库中,部分代替知识工程师进行知识的自动获取,实现专家系统的字学习,不断完善知识库;解释程序可以根据用户提问,对系统给出的结论、求解过程,以及系统当前求解状态提供说明,便于用户理解系统的问题求解,增加用户对系统求解结果的信任程度,在知识库的完善过程中,便于专家或知识工程师发现和定位知识库中的错误,便于各领域的专业人员或初学者能够从问题的求解过程中得到直观学习;人机接口将专家爱或用户的输入信息翻译为系统可接受的内部形式,同时,也把系统向专家或用户输出的信息转化成人类易于理解的外部形式。
2 学习产生式规则的表示及其正向推理目前,用于专家系统的知识表示形式主要有谓词逻辑、产生式规则、语义网络、框架,以及剧本。
其中,采用产生式规则知识表示形式建立的专家系统最为流行和广泛,这主要因为:首先,产生式规则知识表示容易被人理解;其次,它基于演译推理,保证了推理结果,的准确性;最后,大量产生式规则可以连接成多棵推理树,树的宽度反映了实际问题的范围,树的深度反映了问题的难度。
产生式规则一般表示为:如果A成立,则B成立,简记为A->B,其中A是前提,B是结论。
一般来说,不同的产生式规则之间都是有联系的,即谋条产生式规则的前提实力外一条产生式规则的结论。
如果把规则库(知识库)中所包含的总目标(某些规则的结论)作为根节点,按规则的前提和结论展开形成树的形式,则形成的树就被称为推理树或知识树,它把规则库中的所有规则都连接了起来。
产生式规则的推理分为正向推理和逆向推理两种,这里主要介绍正向推理。
产生式规则的正向推理过程是:逐条搜索规则库,对每一条规则的的前提条件检查实事库(综合数据库)中是否存在。
若再事实库中前提条件的个子项不是全部存在,则放弃该条规则;若在事实库总全部存在,则实行该规则,把结论放入事实库中。
反复循环执行上述过过程,直至推出目标,并存入事实库中为止。
3学习专家系统开发工具的结构和特点开发专家系统主要有三条途径:直接使用程序设计语言,如LISP或PROLOG等;使用知识获取工具,如知识获取系统(KAS,Knowledge Acquisition System)到等;利用专家系统开发工具,如CLIPS或M.1等。
专家系统开发工具一般包括开发环境和运行环境两部分。
其中,开发环境有知识编辑、编译模块,知识库查询、维护模块,数据库查询、维护模块,知识库,以及实事库组成;运行环境有推理机,解释机制,人机交互,知识库,以及实事库组成。
知识库和实时库即被包括在开发环境中,同时也被包括在运行环境中,它们都有一定的格式要求,知识和事实由开发环境输入,提供给运行环境使用。
从专家系统开发工具的结构可以看出,专家系统开发工具具有一下特点:首先,工具有开发环境和运行环境组成,开发环境用于建立知识库、实事库、并修改、查询知识库和事实库;对指定知识表示形式的推理机和解释机制预先已经做好;运行环境的目的在于支持实际系统的运行。
其次,工具提供了一套用于开发专家系统的语言,包括知识标示语言和工具操作语言。
其中,只是表示语言用于完成外部知识到内部知识的编译;利用工具操作语言可以使用工具中的开发环境,实行运行环境中的功能。
4学习专家系统开发工具CLIPS的设记目标与特色CLIPS(C Language Integrated Production System)是由美国国家航天局约翰逊空间中心人工智能部在1985年推出的专家系统开发工具,其设计目标和特色包括:➢可用于管理、工业、商业、文教等各种领域的专家系统开发,具有广泛的通用性;➢适用于各种型号的计算机,从IBM PC及其兼容机,到V AX,HP,SUNMACINTOSH,直到CRAY,都可以运行CLIPS,具有对机型的广泛适用性➢与已有的普通软件系统易于集成,同Fortran、ADA等高级程序设计语言均有接口,为用户提供了方便➢用C语言写成,运行速度快➢具有不确定性下进行推理的能力正是由于上述设计目标与特色,加之美国国家航天局对CLIPS采取公开化,以及免费使用的政策,CLIPS在众多的专家系统开发工具中深受欢迎,CLIPS研制小组也因而获得美国航天科技奖CLIPS与比它早的专家爱系统开发工具ART、OPSS有很密切的关系,继承与吸收了ART、OPSS的长处与优点。
但是由于CLIPS最求的简单实用,以极高度的可移植性,因此,只提供了正向推理能力、CLIPS的发展历史证明,这并不影响他成为一个有效的专家系统开发工具。
5学习专家系统开发工具CLIPS的基本语法为了支持麦粒肿诊断专家系统CLIPS程序的编写,以下将分别从符号体系、语言符号、事实、规则、注释、printout命令、变量、字符通配符、特权、read 函数,以及其他常用命令等11各方面,对CLIPS的基本语法进行概要介绍。
符号体系CLIPS的符号体系包括以下三种类型。
➢需要完全照样输入计算机的字和字符,即不被<>、[ ]、{ }所括住的所有内容,比如(example)。
方括号表示其中的内容可有可无,比如在(example[1])中,方括号中的1是任选的,即输入(example)和(example 1)都是允许的。
尖括号表式其中的字所表示的意义要用一个相应的任意值代替,比如(example <integer>)表示在example后面一定要跟一个任意整数,即应输入(example 1)、(example 5)或者(example -20)等。
➢对于用双尖括号括住的描述,表示任意多个(包括0个)与其中的自相应的值,比如<<integer>>,见到这一描述,可以输入1,1 2,1 2 3,1 4 8,或-15,也可以不输入任何内容。
对于用三尖括号括住的描述,表示任意多个(但不包括0个)与其中的字相应的值,比如<<<integer>>>,相当于<integer> <<integer>>。
➢用于大括号括住的描述表示选用其中的任意一项(必须一项,但也仅一项)输入,比如{all,none,some},可以输入all,或者输入none,或者输入some。
语言符号在CLIPS主要的语言符号单位是“字段”,也称为“域”(field)。
字段包括以下三种类型。
➢字(word)。
字以可以打印的ASCII字符开始,后随零个或多个字符。
但是“<”、“|”、“&”、“$”、“?”、“+”、“-”、“()”字符及其组合不能作为字的开始字符。
另外,字中间也不能包含“<”、“|”、“&”、“()”字符,因为这些字符在CLIPS中有特殊用途,即作为字的界限符,表示字的结束。
最后,CLIPS认为统一字母的大、小写是两个不同的字。
根据一项规定,以下均为有效的CLIPS字:emergencyfireemergency-fireactivate-sprinkler-systemnotify-fire-departmentshut-down=electrical-junction-387!?#$^*➢字串(string)。
字串以引号开始和结束,双引号和结束,双引号本身是字串的一部分,期间可以有零个或任意个字符,比如“Activate the sprinkler system”。
➢数值字段或简称数值(number),表示浮点数。
在CLIPS中,所有的数,包括整型值的数,都以浮点数形式存储。
数值字段包括三个部分:符号、值和指数。
其中,符号和指数是任选的。
呼号或为+,或为-;值包括一个或多个数字,以及一个任选的小数点;指数包括字母e或E,后随任选的+或-,其后是一个或多个数字。
根据以上规定,1,1.2,.7,+3,-1,65,3.5e10都是CLIPS 中有效的数值字段数值为了解题,CLIPS程序必须有据以推理的数据或信息,这在CLIPS中被称为“事实”(fact)。
事实由配对的左、右圆括号括住的一个或多个字段组成,比如(single-field)和(two fields)。