骆小彬
(广东韶关市技师学院,广东 韶关512026)
基于案例推理CBR(C ase-Based Reasoning)最早由美国耶鲁大学Roger Schank教授在其1982年的著作《Dynamic Memory》中提出,是根据故障机的表现与特征而得到历史记忆中的源案例,并由源案例指导解决故障机求解的一种策略[1]。主要包括表示与存储、检索与匹配、重用与修改、学习与评价4部分。
目前,中国的计算机用户接近2亿,而维修技师普遍缺乏。计算机各种硬件故障中,主板故障率较高。据2010年法国硬件网站Hardware.fr统计,以华硕为例,硬件故障达到2.49%,该品牌部分型号(如P5ND)达到7.8%。可见计算机故障数量巨大。这些故障的解决全靠数量严重不足的计算机维修人员及其经验,使得维修出错率及成本居高不下。在计算机故障诊断中引入CBR方法,可有效提高诊断准确率,减少维修人员数量,降低对维修人员经验上的要求,进而降低成本,提高维修质量。
维修经验在维修技师的知识构成中占有十分重要的地位,而这又往往是一些维修技师所缺乏的。构建诊断系统可帮助维修人员建立案例库,为缺乏经验的维修人员提供参考,提高故障定位的准确率。
在参考整个计算机故障诊断过程的基础上,把系统的工作过程定义为以下4步:
(1)维修技师将计算机故障值输入系统;
(2)系统根据得到的故障值,判断它属于何种故障类型,给出故障单元部位建议及进一步检测部位和检测建议;
(3)维修技师将检测到的参数、数据输入系统;
(4)系统根据输入的参数和数据,检索出之前最为类似的案例,并给出维修方案供维修人员参考。
图1描述了这一过程。在系统设计中,把系统案例库分成两个部分:确定故障大范围的类型库和具体到小范围甚至到元件级别的维修库。类型库是指针对某些故障现象,大致将其划分到某一单元电路,是对某一类故障的抽象;维修库是在单元电路内具体故障元件的确定,是元件级维修建议的基础。
案例表示是对故障现象的具体情况尽可能地完整描述,是CBR运行的基础。在系统设计中,把案例信息表示成故障信息表。这里,故障信息表有两个:(1)故障部位表,由故障名称、故障现象、故障部位和检测建议组成;(2)检测项目表,由检测项目、检测值、权重组成。以不开机故障为例,故障部位表设计结构如表1所示,检测项目表如表2所示。
表1 故障部位表
表2 南桥检测项目表
利用以往计算机硬件故障的历史数据建立案例库,根据上述案例的框架表示方法,单个案例可以采用SQL Server的关系型数据库技术,通过设计一张主表和一系列关联表来存储相关知识。即案例由n个可能产生的故障单元组成,每个单元里面又有多个需要检测的部位。将这些单元内检测项目用一个表来描述,如上述南桥检测项目表示如下:检测编号(varchar)、检测项目(varchar)、检测值(varchar)、权重(float)、详细说明(varchar)、备注(varchar)。
检测项目的检测值有两种情况:一种是用文字表述,如“<80 Ω”,“烫手(无法忍受)”等;另一种是具体值,如“3.3 V”,“80 Ω”。 这些值可通过测量得到,看其落入哪一区间,从而得到诊断结果。
由于每一检测值的可能程度不一样,因此必须考虑它们的权重。权重的确定通常可以采取多种方法,如专家主观确定法、GUM(Good-Up-Matching)方法和层次分析法 AHP(Analytic Hierarchy Process)。这里,选择AHP法。
案例的检索就是在案例库中,依据故障机的检测值寻找与之相似的案例。基于案例的推理过程本质上是计算两个案例相似度的过程。相似度是根据两个案例的测量值计算出来。两个案例的测量值越接近,其相似度越高,案例库中案例的故障信息就越有参考价值[2]。
推理之前要输入故障机的必要信息,即故障机的检测值及相应权值。然后检索案例库中相关案例,计算两者的相似度,取相似度大于0的前10组案例,就能获得有效的诊断信息。目前使用的检索方法主要有最近相邻法、归纳索引法和知识引导法等。考虑到主板故障特点,这里采用最近相邻法进行检索,方法如下:
(1)输入当前故障机I的测量值,确定权值:
其中 INk为测量项目名称,IVk为测量值,IWk为权值,n为测量数量。
(2)从案例库中检索案例,获得案例R的测量值及权值:
其中 RNk为测量项目名称,RVk为测量值,RWi为权值,m为测量数量。
(3)比较当前故障机I与案例库中案例R的元素,选出名称相同的元素。
(4)计算总体相似度,如式(3)所示:
使用上述计算方法得出的案例相似度比较好地表示了案例的相似程度。案例的相似度以检测项目结果为计算依据。这里采用的基于案例的推理过程,实际上就是根据检测项目结果分析得到可能发生故障部件的过程。其前提是案例信息的表示,包括故障描述信息和检测项目信息,以及检测项目的权值。
CBR采用增量式学习,能不断地增加知识量和解题能力,这要归因于对新案例的保存。在行业中,一般会设置一个相似度阈限 (s1,s2)。即新案例与检索到的案例相似度大于s2时,表示新案例与检索到的案例很相似,信息量和知识含量不高,参考价值不大,不对这些案例进行保存;如果新案例与检索到的案例相似度小于s1,表示新案例信息量和知识含量有较大参考价值,对该案例进行存储[3]。
表3 实例分析表
由上文给出的案例表示以及案例相似度的计算方法,在案例库中选取3个典型主板故障案例作为检索案例,选取1个已经发生的主板故障作为故障机,假设在具体原因未知的情况下,根据故障主板测量值与选取的3个案例进行比较,以此来检验系统的检索机制,见表3。
应用上述计算方法计算出故障机与案例库中3个案例的总体相似度分别为 0.9、0.4和0.45。可见,故障机与案例1最为相似。在实际故障维修过程中,维修人员可参考案例提供的维修方法进行维修。
CBR是世界前沿技术,其应用还要经过深入研究。这里将CBR应用在计算机硬件故障维修领域,通过故障案例的表示,将专家的经验知识存储起来;通过案例的检索和查询,部分替代了人的经验判断;通过案例的推理,初步完成了故障的诊断。本系统在计算机硬件故障诊断中取得了较好的效果,提高了故障诊断的准确度和效率,降低了维修人员的劳动强度。随着案例库的不断完善,系统将能获得更好的诊断效果。
[1]朱文博,刘莎,甘屹.基于案例推理的故障诊断系统软件开发[J].上海电气技术,2010,3(3):29-33.
[2]顾东晓.案例检索及权重优化方法研究及应用[J].系统工程学报,2009,24(6):764-766.
[3]赵勇,赵厚仁.数据仓库技术在飞行事故中的应用研究[J].微计算机信息,2009,25(9):143-145.