Page 170 - 《软件学报》2025年第12期
P. 170

欧阳继红 等: HSDiag: 变种碰集算法求解诊断                                                      5551


                 模, 效率最高提升     40  倍.
                    图  12  显示在复杂电路    Polybox  中生成两个等价类, k 代表选取变量的个数, 等于           0  时表示没有使用等价类策
                 略. 在分割小规模的电路时, 虽然使用等价类策略对电路进行缩减, 但是也分成了                        2 个集合簇, 而每个集合簇的求
                                                                                 k
                 解时间相似, 当等价类获得收益较小时, 即部分集合簇解集较少甚至无解, k 值越大反而求解的时间不一定越小.
                 在  Polybox_54  中, k=6  时整体求解效率要好于   k=5, 7, 比  k=0  时平均提升一个数量级. 在   Polybox_90  电路中, 使用
                 等价类策略的     HSDiag  算法求解时间都明显缩减, 因随着          k 的增大等价类分解的组件个数也逐渐均衡, 故求解时
                 间也随着降低. 特别是对于第         7–15  个实例, k=8  比  k=0  平均提升一个数量级以上. 同样的, 在第      1–4  个实例中并不
                 是  k=8  最好, 一些系统观测值大部分满足了理论值, 使得生成的解集较少, 甚至大量子句集产生的解都是冗余的,
                 整体求解时间相对较慢.

                        0.20                                    1 000
                                                                        |EC|=1  |EC|=4
                                                                        |EC|=8  |EC|=2
                        0.15    |EC|=1  |EC|=4                   100
                       运行时间 (s)  0.10  |EC|=8  |EC|=2           运行时间 (s)



                        0.05                                      10


                          0                                        1
                            1 2 3 4 5 6 7 8 9 10 11 12 13 14 15      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
                                        等价类分类                                    等价类分类
                                     (a) Fulladder_1000                       (b) Fulladder_16000
                                             图 11 在  Fulladder 电路中的等价类比较


                         10                                     1 000
                               k=0                                      k=0
                               k=7                                      k=8
                               k=6                               800
                          1                                             k=7
                               k=5                               600    k=6
                       运行时间 (s)  0.1                            运行时间 (s)  400

                        0.01
                                                                 200
                       0.001                                       0
                            1 2 3 4 5 6 7 8 9 10 11 12 13 14 15      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
                                        等价类分类                                    等价类分类
                               (a) Polybox_54 选取 k 个变量分成等价类            (b) Polybox_90 选取 k 个变量分成等价类
                                             图 12 在  Polybox  电路中的等价类比较

                  4   总 结

                    基于模型诊断是根据待诊断的系统的内部结构编码成                   CNF  子句, 通过一致性检测来确定故障组件的位置. 利
                 用  SAT  求解器先求出极小冲突集再求出极小碰集. 这种策略虽然可以获得诊断, 但是耗时严重, 并且因求出所有
                 极小冲突集是不切实际的, 故获得的诊断并不精确. 本文利用极大可满足子集与极小修正集的互补性, 提出一种变
                 种碰集算法    HSDiag. 该算法能够直接获得候选诊断, 和目前性能最优间接求诊断的算法相比, 在求解效率及诊断
                 的数量上都有明显的优化, 运行时间有            5–100  倍的提升, 诊断数量能多获得       1  倍以上. 为了在更大规模的电路上有
                 效, 本文又提出一种用于求解候选诊断的等价类策略, 它能够大幅度缩减编码子句的数量, 在本文所提算法的基础
                 上, 运行时间进一步提升       2  倍以上.
   165   166   167   168   169   170   171   172   173   174   175