Page 176 - 《软件学报》2025年第8期
P. 176

王佳宛 等: 基于混成自动机路径过滤与动态选择的               CPS  系统反例生成                              3599


                                              表 4    反例生成性能比较实验结果        (续)

                                                                                             路径过滤和
                                基本方法              路径过滤                   路径动态选择
                                                                                              动态选择
                                                                                      迭代
                  系统    规约                                                      成功率
                             成功 耗时 迭代      成功 耗时 迭代 过滤路径数/ 成功 耗时 迭代                   次数   成功 耗时 迭代
                            率 (%) (s)  次数 率 (%)  (s)  次数  总路径数   率 (%)  (s)  次数  提升   消耗 率 (%)  (s)  次数
                                                                                倍数
                                                                                      倍数
                         s14  35  0.7 3 050  78  1.0  3 435  70/100  97  1.0  3 839  2.8  1.3  99  0.9  2 757
                         s15  35  0.6 2 666  95  0.8  2 915  70/100  100  0.8  3 143  2.9  1.2  100  0.6  2 180
                         s16  37  0.7 3 024  98  0.6  1 895  70/100  99  0.7  2 954  2.7  1.0  100  0.5  1 857
                 导航系统 s17     26  0.6 3 278  43  1.0  3 195  91/100  30  0.8  3 026  1.2  0.9  48  0.5  1 396
                 (2个车辆) s18   23  0.6 3 616  52  1.3  4 159  91/100  27  0.8  3 034  1.2  0.8  54  0.6  1 472
                         s19  38  0.7 3 510  67  1.1  4 083  70/100  81  1.7  5 325  2.1  1.5  87  1.4  4 160
                         s20  31  0.6 2 603  74  1.1  3 898  70/100  92  1.1  3 819  3.0  1.5  100  0.9  2 859
                         s21  41  0.7 2 947  99  0.6  2 153  70/100  99  0.7  2 930  2.4  1.0  100  0.6  2 029
                         s22  11  5.2 25 156  83  7.4  22 610 973/1 000  19  9.5  32 263  1.7  1.3  87  7.0  13 354
                 导航系统 s23     19  8.5 31 654  61  8.7  27 235 700/1 000  63  9.9  28 165  3.3  0.9  75  8.1  23 701
                 (3个车辆) s24   13  6.3 23 545  22  7.2  25 235 400/1 000  23  8.8  26 580  1.8  1.1  26  8.0  25 512
                         s25  4  11.9 56 162  65  10.4 24 446 973/1 000  24  10.6 31 143  6.0  0.6  71  7.6  14 918
                     平均       38  3.3 8 824  66  3.3  7 103  54%   75  3.2  7 660  2.5  0.9  84  2.9  5 489


                    RQ1: 面向规约的路径过滤算法能否有效过滤路径, 能否提升基于路径的反例生成的性能?
                    表  4  中的第  6–9  列为仅采用路径过滤优化后的反例生成实验数据. 其中, 第               9  列展示了  4  个系统的总路径数
                 以及面向每条规约可以过滤的一定不存在不安全行为的路径数目. 可以看到, 实验中的                           4  个系统场景分别有     6  条、
                 10  条、100  条和  1 000  条系统路径. 其中, 在包含多个车辆的导航系统中, 由于组合爆炸效应, 系统总路径数较多.
                 根据第   9  列数据, 可以看出面向规约的路径过滤算法并不能保证在所有场景规约下都能过滤路径. 例如, 在规约
                 s1–s6  中, 规约与每条路径上的约束都不存在直接冲突, 因此没有路径被过滤. 然而, 在绝大多数例子中, 该算法都
                 检测到了可以提前过滤的路径. 该列数据显示, 在我们实验的                   25  个案例中, 默认配置下的路径过滤算法平均能够
                 过滤一半以上     (54%) 的路径, 大幅减少了需要通过耗时的优化算法进行反例生成的路径数量.
                    此外, 根据第    4.2  节的实验设置, 实验中的路径过滤算法采用默认配置               (仅对布尔和线性约束进行        SMT  求解),
                 这可能导致部分通过非线性约束求解可被过滤的路径未被检测到. 因此, 我们进行了额外的补充实验, 评估忽略非
                 线性约束对路径过滤效果和效率的影响. 我们对表                4  中  25  个案例的统计显示, 算法    1  中需进行  SMT  求解的约束
                 里, 非线性约束占比      32%. 若在实验的路径过滤过程中, 对这部分非线性约束也进行                   SMT  求解, 则平均可过滤的
                 路径比例可以从      54%  进一步提升至    58%, 但整体耗时也将增加至原来的          10  倍以上. 我们通过进一步分析发现, 非
                 线性约束求解对路径过滤有效性提升增益较小主要是因为对非线性约束进行                           SMT  求解返回   UNKNOWN   结果的
                 概率较高, 而返回     UNSAT  结果的概率非常低. 尽管如此, 为了适应用户的系统规约与场景需求的多样性, 我们路
                 径过滤算法的实现上依然提供了配置选项, 允许用户自主选择是否对非线性等复杂约束进行                              SMT  求解.
                    而从反例生成的总体性能来看, 与基础方法相比, 加上我们的路径过滤优化后, 平均成功率从                             38%  提升到了
                 66%, 并且耗时并未因为路径过滤算法导致明显的增加. 反例生成成功率的提升主要是由于我们实验设置了对系
                 统进行反例生成的系统行为仿真次数上限, 即所有路径的反例生成优化算法的总迭代次数上限. 因此, 当需反例生
                 成的路径个数大幅减少时, 每条需进行反例生成的路径可以执行的优化迭代次数就会大幅增加.
                    综上所述, 实验结果表明, 面向规约的路径过滤算法能够有效过滤路径, 并提升基于路径的反例生成性能.
                    RQ2: 多臂老虎机算法指导的动态路径选择能否提高基于路径的反例生成的成功率和效率?
                    表  4  的第  10–14  列为仅采用路径动态选择优化后的反例生成实验数据. 从最后一行的平均数据来看, 加上路
                 径动态选择优化后, 反例生成的成功率有高达               2.5  倍的性能提升, 而找到系统不安全行为所消耗的平均迭代次数
                 反而下降到了原先的        0.9  倍. 在绝大多数例子里, 找到不安全行为需要的迭代次数都是下降或者几乎不变的, 而在
   171   172   173   174   175   176   177   178   179   180   181