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

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



                            26                                   22
                                   MCS-MHS                              MCS-MHS
                                   HSDiag                        20     HSDiag
                           诊断解个数 (×10 5 )  16                   诊断解个数 (×10 5 )  18
                            21
                                                                 16
                                                                 14
                            11
                                                                 12
                             6                                   10
                               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) c499                             (b) c1355
                            20                                   25
                                   MCS-MHS                              MCS-MHS
                                   HSDiag                        20     HSDiag
                           诊断解个数 (×10 5 )  10                   诊断解个数 (×10 5 )  15
                            15

                                                                 10



                                                                  0
                             0 5                                  5
                               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
                                         电路实例数                                 电路实例数
                                          (c) c1908                             (d) c880
                                   MCS-MHS                              MCS-MHS
                                   HSDiag                        0.3    HSDiag
                           诊断解个数 (×10 5 )  10 5                 诊断解个数 (×10 5 )  0.2
                            15



                                                                 0.1

                             0                                    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
                                         电路实例数                                 电路实例数
                                          (e) c3540                            (f) c6288
                                     图 9 HSDiag  与  MCS-MHS  算法在  ISCAS-85  电路实验比较

                    图  10  比较不同截止时间内这两种算法求出的诊断解数, 其中横坐标表示截止的时间                         (s), 纵坐标表示诊断解
                 个数. 随着求解时间的增长, HSDiag       算法和   MCS-MHS  算法求解诊断的个数都在增加, 然而二者求出的解集增长
                 速度越来越缓慢, 这是在每求出一个解时, 都需要进行极小化来保证解集的极小性, 随着解集的增大, 极小化时间
                 增加, 耗时也越来越多. c499、c1908、c1355、c880      这  4  个电路, 在求解时间    100–300 s 时, 二者求出的解集相差
                 不大, HSDiag  比  MCS-MHS  算法多求出   30%  左右解集, 而随着求解时间的增长, 二者求出解集之差多达                   2  倍.
                 MCS-MHS  算法在求解诊断时需要找到关键的极小冲突集, 在遍历哈斯图时, 因生成的节点个数较多, 求出的冲突
                 集往往不是极小的. 随着计算时间的增加, 计算出的冲突集越多, 极小碰集中的冗余解就越多, 故求出的解集增长
                 越缓慢. HSDiag  算法可以通过极大可满足子集直接获得一个诊断, 因在获得一个诊断时也间接的访问其他诊断
                 解, 故可以快速获得更多诊断. c3540、c6288        电路, 生成的子句较多, 求解冲突集和求解极大可满足子集耗时都增
                 加, 二者求出的解集明显减少, 但是         HSDiag  算法仍能够给出部分诊断.
   163   164   165   166   167   168   169   170   171   172   173