专家系统
- 格式:doc
- 大小:121.50 KB
- 文档页数:7
专家系统是一类具有专门知识和经验的计算机智能程序系统,通过对人类专家的问题求解能力的建模,采用人工智能中的知识表示和知识推理技术来模拟通常由专家才能解决的复杂问题,达到具有与专家同等解决问题能力的水平。
这种基于知识的系统设计方法是以知识库和推理机为中心而展开的,即专家系统 = 知识库 + 推理机它把知识从系统中与其他部分分离开来。
专家系统强调的是知识而不是方法。
很多问题没有基于算法的解决方案,或算法方案太复杂,采用专家系统,可以利用人类专家拥有丰富的知识,因此专家系统也称为基于知识的系统(Knowledge-Based Systems)。
一般说来,一个专家系统应该具备以下三个要素:(1)具备某个应用领域的专家级知识;(2)能模拟专家的思维;(3)能达到专家级的解题水平。
专家系统与传统的计算机程序的主要区别如表7.1所示。
表7.1 专家系统与传统的计算机程序的主要区别列项传统的计算机程序专家系统适用范围无限制封闭世界假设建造一个专家系统的过程可以称为“知识工程”,它是把软件工程的思想应用于设计基于知识的系统。
知识工程包括下面几个方面:(1)从专家那里获取系统所用的知识(即知识获取)(2)选择合适的知识表示形式(即知识表示)(3)进行软件设计(4)以合适的计算机编程语言实现。
专家系统的发展史1965年斯坦福大学的费根鲍姆(E.A. Feigenbaum)和化学家勒德贝格(J. Lederberg)合作研制DENDRAL 系统,使得人工智能的研究以推理算法为主转变为以知识为主。
20世纪70年代,专家系统的观点逐渐被人们接受,许多专家系统相继研发成功,其中较具代表性的有医药专家系统MYCIN、探矿专家系统PROSPECTOR等。
20世纪80年代,专家系统的开发趋于商品化,创造了巨大的经济效益。
1977年美国斯坦福大学计算机科学家费根鲍姆 (E.A.Feigenballm)在第五届国际人工智能联合会议上提出知识工程的新概念。
正向演绎推理,不完整的故障码信息也能给出结论,增加了一个实例数据库,用于存储推理结果,避免了重复推理,提高了推理效率。
图2 功能模块
其中无线收发模块具有接收信息和发送信息的功能,它接收车载端发送的故障码信息,并传递给数据处理模块,并将数据处理模块传递过来的诊断结果反馈给车载端。
数据处理模块处理和转换无线收发模块传递来的故障码信息,并传递给故障诊断模块;同时处理和转换故障诊断模块传递来的诊断结果并传递给无线收发模块。
故障诊断模块接收从数据处理模块传来的车牌号和故障码,运用知识库中的知识进行推理,得出诊断结果并将车牌号和诊断结果返回给数据处理模块。
3.1数据交互协议
为了使专家系统能实时准确的接受到车载端发送来的故障求助,同时将诊断结果实时准确的反馈给车载端,建立一个好的数据交互协议是很重要的专家系统数据包格式如表1 所示。
表1 汽车故障诊断专家系统数据包格式
其中:Device 为设备编号,长一个字节;Node 表示通信节点;Data/Cmd 表示包的类型,若为0x00 表示数据,若为0x01 表示命令;Buf 表示包的实际内容,其长度(字节数)由Length 域的数据决定。
本系统在运行过程中,传输的数据包有显示端发出的故障求助包、网关发给服务中心的故障求助包和来自服务中心的分析结果包。
当车辆发生故障时,或用户觉得必要时,由用户发起故障求助,按下“故障求助”向服务中心请求帮助。
具体过程如下:
1)显示端“故障求助”按钮通过网关向服务中心发起故障综合诊断请求,请求包格式见表2。
表2.显示端发出的故障求助包
2)网关先将该请求转发给采集端。
3)采集端对关键点扫描,将扫描的故障码发给网关。
4)网关根据来自采集端的数据包确定有无故障存在,若无,直接发送故障尾包给显示端;若有,将故障码转发给显示端,同时在故障码包的Buf开始处插入“车牌号码”信息
如表3 所示,将其发给服务中心,等待服务中心的诊断结果。
表3 网关发给服务中心的故障求助包
5)若服务中心未返回诊断结果(如发生无法连接服务中心的情况),则直接将尾包发给显示端;若服务中心返回分析结果,则将来自服务中心的结果包(表4)和故障尾包依次发送给显示端。
表4 来自服务中心的分析结果包
3.2 故障诊断及设计
故障诊断模块是专家系统的核心部分,它根据发送来的故障码,运用知识库中的知识进行推理,得出故障部位、维修建议和置信度。
本系统在正向演绎推理的过程中,使用深度优先搜索策略以达到对汽车故障的诊断。
3.2.1 推理原理
本系统是基于规则的专家系统,知识被表示为“如果……那么……”的产生式规则,即“IF P THEN Q”的形式,其中P 是产生式的前件,指出该产生式规则的条件;Q 是一组结论或操作,指出当前提条件满足时应得出的结论或进行的操作[10]。
由于此系统一次获取所有故障码,无法在推理过程中询问用户相关信息,用反向演绎推理或正反向演绎推理比较困难,所以用正向演绎推理;正向演绎推理的基本思想是:用户首先用已知的初始事实集初始化临时数据库,在知识库中寻找与临时数据库中的模式匹配的知识,构成可用的知识集。
然后运用深度优先搜索作为冲突消解策略选出一条规则进行推理,并将推理出的新事实加入到临时数据库中作为下一步推理的已知事实。
如此反复这一过程直到求出所要求的解或者知识库中再无其他可用的知识为止。
本系统是正向推理的基础上的不确定性推理。
知识库中的知识具有不确定性,在推理过程中,结论的不确定度为推理过程中规则不确定度的乘积,最后的推理结果按不确定度的大小进行排序,给出用户结论的优先顺序。
本系统设置了一个实例数据库,推理的最后结果存放在实例数据库中,当下次发送来的故障码存在于实例数据库时,可以用实例数据库中已有的结论反馈给用户。
3.3 专家系统算法设计
故障诊断专家系统整体流程图见图3。
故障诊断需要故障诊断模块各部分间的协调工作,基本步骤如下:1)程序对数据处理模块传来的数据进行处理,分离出车牌号和
故障码。
2)在实例数据库中查询有无与故障码匹配的诊断结果,若有,将车牌号和诊断结果传给数据处理模块,程序结束;若无,进行步骤3。
3)建立用于推理的对象,初始化临时数据库。
4)运用知识库中知识进行推理,如果推理失败,将车牌号和“推理失败”传给数据处理模块,程序结束;如果推理成功,进行步骤5。
5)将推理实例加入实例数据库,将车牌号和推理结果传给数据处理模块,程序结束。
图4 专家系统整体流程图
3.4故障推理及设计
故障推理是以推理机为中心的推理过程,流程图如图4 所示。
基本步骤如下:
1)建立临时数据库,用于存储规则前件及其对应规则的概率和最终结果及其对应概率。
2)初始化临时数据库,将各故障码与规则前件匹配,形成规则集,运用宽度优先搜索策略,依次选取规则进行推理,将推理结果中的结论加到存储最终结果的数组中,相应概率加到存储最终结果概率的数组中;将推理结果中的操作加到存储规则前件的数组中,相应概率加到存储规则前件概率的数组中,形成新的事实集进行下一步推理。
3)反复执行步骤2 直到存储规则前件的数组中不与任何规则匹配时为止。
4)若诊断失败,返回车牌号和“推理失败”;若诊断成功,将推理结果中相同项合并,对应概率相加,去除结果中概率小于0.1 的项,并将推理结果存入“实例数据库”,返回车牌号和推理结果。
4 结束语。