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

5550                                                      软件学报  2025  年第  36  卷第  12  期



                            20                                   20
                                   MCS-MHS                             MCS-MHS
                                   HSDiag                        15    HSDiag
                           诊断解个数 (×10 5 )  10 5                 诊断解个数 (×10 5 )  10 5
                            15





                             0                                   0
                               100 200 300 400 500 600 700 800 900  100 200 300 400 500 600 700 800 900
                                       电路截止时间 (s)                           电路截止时间 (s)
                                          (a) c499                            (b) c1355
                            20                                   25
                                  MCS-MHS                              MCS-MHS
                                  HSDiag                         20    HSDiag
                           诊断解个数 (×10 5 )  10 5                 诊断解个数 (×10 5 )  15
                            15

                                                                 10



                             0                                   5 0
                               100 200 300 400 500 600 700 800 900  100 200 300 400 500 600 700 800 900
                                       电路截止时间 (s)                           电路截止时间 (s)
                                          (c) c1908                           (d) c880
                            1.5                                  50
                                   MCS-MHS                             MCS-MHS
                                   HSDiag                              HSDiag
                                                                 40
                           诊断解个数 (×10 5 )  0.5                  诊断解个数 (×10 5 )  30
                            1.0
                                                                 20



                             0                                   10 0
                               100 200 300 400 500 600 700 800 900  100 200 300 400 500 600 700 800 900
                                       电路截止时间 (s)                           电路截止时间 (s)
                                          (e) c3540                           (f) c6288
                                     图 10 HSDiag  与  MCS-MHS  算法在  ISCAS-85  电路实验比较

                  3.2   等价类优化
                    在图  7  中, 虚线给出了等价类的切割位置, 对于          Polybox_(n+2)(n–1)/2  电路, 从左往右第  i 列组件个数为  n+1–i,
                 第  i 列与第  i+1  列之间变量  (导线) 的个数为    n+1–i. 也就是说, 如果从第    i 列和第  i+1  列切割电路, 那么需要选取
                 n+1–i 个变量. Fulladder_n  电路可以看成是由   n  个  Fulladder_1  组成, 只不过第  i 个电路的输出是第  i+1  个电路其中
                 的一个输入, 可见分割      Fulladder_n  电路只需要选取中间的连接变量.
                    图  11  是  HSDiag  算法在  Fulladder_n  电路进行等价分类, 其中|EC|=1  代表没有使用等价类策略, |EC|=8    代表把
                 电路编码均分成      8  个等价类. Fulladder 电路结构简单, 能够容易的划分等价类, 在每次分割时, 分割后等价类没有
                                         k
                 交集, 相当于对称分割, 即|EC|=2 时, 只需要选取         k 个传播变量   (从图  7  也可以看出). 在分解等价类时, 需要对选取
                 的变量进行赋值, 然赋值过程中就已经相当于求解. 我们把分解等价类选取变量阶段放到离线, 即获取分割点是在
                 对系统编码时获取, 在算法开始阶段, 直接当作参数直接调用. 在                  n=1000  时, 编码的变量及诊断解的个数较少, 所
                 以整体求解效率较快, 平均        0.2 s 内就能够返回所有的解. |EC|=8     时, 比没有调用等价类策略的         HSDiag  算法, 效率
                 提升约   5  倍. 而  n=16000  时, 编码整体规模较大, 求解时间都在     100 s 以上, 使用等价类策略后, 大幅度缩减编码规
   164   165   166   167   168   169   170   171   172   173   174