">
0引言
专家系统(ExpertSystem,ES)[1]是人工智能的一个重要分支,随着计算机技术的不断发展、日臻完善和成熟。专家系统的建立可以使专家丰富而宝贵的知识和经验更好的传承和被利用,进而产生社会效益和经济效益。当今社会,计算机几乎成为各个领域必不可少的工具,它在使用过程中出现故障也是在所难免的,因此对各种计算机故障进行及时地诊断与维修非常重要,建立计算机故障诊断专家系统对于提高维修人员的工作效率和降低维修成本有十分重要的意义。但关于计算机故障诊断专家系统的研究和构建较少,并且主要集中在知识表示和推理机制的研究上。文献[2]主要研究了计算机故障诊断专家系统的基本结构;文献[3]仅给出了数据表的设计和推理机制的选择;文献[4]构建了基于本体和规则的计算机故障诊断专家系统,但是其基于确定性的推理,无法给出各种故障可能性的大小。因此,本文给出一种基于可信度的计算机故障诊断专家系统的设计与实现,其目的在于使缺乏计算机专业知识的用户通过本系统对常见的故障进行诊断,并为维修提供一定的指导。测试结果表明该系统能够满足上述要求。
1需求分析和功能设计
1.1功能需求分析
随着计算机的应用越来越广泛,相应的各种故障也出现了。一般都是由维修人员根据自己的经验判断故障类型并进行维修,而没有维修经验的计算机普通用户则需要经过很长一段时间的积累才能掌握一定的维修技术。因此,设计一个计算机故障诊断系统来帮助普通用户快速实现计算机故障诊断很有意义。本文给出了一种基本符合实际操作的基于可信度的计算机故障诊断专家系统。用户能够利用该系统对计算机出现的各种常见故障现象、故障点进行有效的查询,对故障原因作出正确的诊断,对可信度进行正确的评价。其实现的主要功能有:故障原因诊断、新知识的增加、删除和更新可信度计算,以及故障处理方法指导等。
1.2功能设计
基于可信度的计算机故障诊断专家系统的主要任务是对计算机常见故障进行诊断,该系统的主要功能有:故障原因诊断、知识管理和故障处理方法查询等。⑴故障原因诊断:诊断出故障点和故障原因。由于引起某个故障现象的故障部位可能不止一个,本系统设计在进行故障原因诊断时,首先诊断出可能导致该故障现象的故障部位,然后根据不同的故障点信息给出可能的故障原因,并给出诊断结果的可以信任的程度。⑵知识管理:本系统将知识转化为规则存储到数据库中。知识管理包括规则的添加、更新和删除。用户在诊断过程中若某种故障现象系统中没有存储,那么用户可将这些新的知识添加到数据库中;若发现某条规则不精确,可通过规则更新将本条规则补充完善;若规则出现错误,可通过删除规则删除对应规则。⑶故障处理方法查询:主要功能是给出故障处理方法供维修参考,并给出相关维修案例。
2关键技术
基于可信度的计算机故障诊断专家系统采用VisualStudio2010开发,编程语言为C#,数据库为SQLServer2008。其中的关键技术主要有知识表示、推理机制和可信度计算。
2.1知识表示
知识是信息经过加工处理、解释、挑选和改造而形成的,是人们进行决策的基础。知识是一种宝贵的资源,知识的推广和使用可以产生巨大的经济效益。人工智能中的知识表示形式有产生式、与或图、语义网络、框架等[5],专家系统中使用基于产生式的知识表示方法居多。产生式规则,以IF…THEN…的形式出现,如果前提条件得到满足,就产生相应的动作或结论。本系统的知识来源于算机维修人员的经验总结。首先获取的知识主要包括故障现象、故障诊断规则和故障产生原因等。本系统提供了知识管理模块,对于知识库中没有存储的故障现象及原因,用户可通过插入规则来进行知识库扩充,这样使得知识库更加完善。在数据库中共设计存储12种计算机常见故障,将数据库中的故障诊断数据利用故障树的形式具体表示出来。由于数据较多,我们只给出死机、重启、显示器黑屏这三种故障现象的故障树信息。故障树如图1所示。图1中省略了运行速度降低、软件运行出错、不能启动、网络连接不通、网络速度太低、光驱不能读盘、没有声音、设备找不到、器件损坏等八种故障现象。本系统将知识以规则的形式存储到数据库中。根据故障树,将故障树信息转化为规则存储。规则以IF...THEN...的形式表示。下面仅对故障树中死机现象以IF...THEN...的形式表示出来,如表1所示。
2.2推理机制与可信度计算
推理机是故障诊断专家系统的核心组成之一。故障诊断专家系统使用正向推理、反向推理和混合双向推理实现[6]。本系统采用正向推理策略进行推理。将规则存储在数据库中,用户运行程序后,先查找所有数据,然后再根据用户的选择进行筛选,此时,系统根据选择的故障点信息进行正向推理,找到匹配的故障原因解释信息并将此信息显示到窗口中。系统同时设计有可信度计算功能。可信度,就是某种推理判断的可以信任的程度,一般用CF表示,CF可以是从-1到+1,正值表示可以信任的程度,负值表示反对或不相信的程度。程序运行后诊断出故障原因后并同时计算出可能出现该故障的概率即可信度。本文在进行故障原因诊断时,故障点发生故障的概率为触发该故障点的所有规则的可信度之和。
3系统测试
3.1运行界面
基于可信度的计算机故障诊断专家系统主要有三个功能模块,分别为故障原因诊断、知识管理和故障处理方法查询模块。本系统是基于.NET平台进行开发的,在Windows平台下运行。系统运行界面如图2和图3所示。
3.2故障诊断结果
本文通过逐步增加故障现象,测试故障诊断结果。测试用例逐步增加“重启”、“显示器黑屏”、“没有声音”等故障现象,故障点电源的故障原因及可能性与故障现象的对应关系测试结果如表2所示。结果表明,基于可信度的计算机故障诊断专家系统对于计算机常见故障可做出初步的诊断,并给出故障原因和可信度值。
3.3功能测试
功能测试方面,根据功能设计对基于可信度的计算机故障诊断专家系统的各种功能进行了测试,测试结果如表3所示。测试结果表明,本系统所涉及的功能都能够实现,达到了设计要求,能够实现对计算机故障原因诊断以及可信度的推断。
4总结
本文实现了基于可信度的计算机故障诊断专家系统,用户界面简洁大方、操作简单,故障原因诊断准确快速,并有完善的异常处理机制和信息提示机制。实验结果表明,该系统实现了较为完整的计算机故障诊断专家系统的功能,具有一定的应用前景,也为下一步的改进奠定了基础。下一步的工作主要是对该系统进行改进和完善:①进一步完善知识库,使存储的知识更加精确,这样也使诊断结果更加可信;②丰富系统维修建议方面的功能,以期在进行故障诊断时也能够给出准确的维修方法;③优化可信度计算算法,提高可信度的精确值。
作者:刘放美 王扣金 蔡增玉 蒙应杰 单位:郑州轻工业学院计算机与通信工程学院 兰州大学信息科学与工程学院