基于动态聚类的有限状态机多错误诊断
2021-06-15张建标
崔 玲, 张建标,3
(1.北京工业大学信息学部,北京 100124;2.可信计算北京市重点实验室,北京 100124;3.信息安全等级保护关键技术国家工程实验室,北京 100124)
近年来,基于人工智能的错误诊断成为研究热点. Li等[1]提出基于深度学习的齿轮故障诊断方法;Shi等[2]提出基于数据挖掘的航空电子系统故障诊断方法;文成林等[3]对基于深度学习的故障诊断方法进行了综述. 但是,目前研究多是基于单个错误的假设. 有关多错误诊断的研究多集中在软件错误定位方面,如基于数据挖掘的多错误定位[4-5]、基于程序切片的多错误定位[6]、基于聚类分析的多错误定位[7]等.
与软件的错误定位方法不同,对于基于有限状态机(finite state machine,FSM)的错误诊断研究不仅是定位错误,而且要找出错误原因并进行修正. 诊断的主要思想是枚举所有可能的错误,然后根据相关信息排除一些候选错误,从而生成错误诊断集. 由于枚举数量过于庞大,基于FSM的错误诊断也多是针对单错误的方法,而且研究多是针对具体系统[8-9]. Lee等[10]和Ghedamsi等[11]提出了基于FSM单个错误的通用诊断方法,而基于FSM的多个错误的诊断问题还没有有效可行的通用方法.
本文将聚类分析方法应用到基于FSM的错误诊断中,提出基于动态聚类分析的多错误诊断方法,将失败用例分类成簇,以期每簇只存在一个错误,进而实现多错误诊断.
1 基础术语

定义1转换错误
定义2输出错误
假设已有测试序列集C={c1,c2,…,cn},其中每个cm都是一个测试序列,对应输入序列im={im1,im2,…,imp},预期输出序列om={om1,om2,…,omp},实际输出序列o′m={o′m1,o′m2,…,o′mp}.通常,若某个测试序列的实际输出与预期输出不相符,则称之为失败用例,简称反例;……
