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

3598                                                       软件学报  2025  年第  36  卷第  8  期


                 图测试用例, 我们选取在该论文中展示的             Nav11  地图进行实验. 该案例的地图上包含          5×5  个网格. 因此, 当地图上
                 有  1  个车辆时, 对应的混成自动机模型有         25  个离散节点, 车辆中有     5  个连续变量. 而当考虑     2  个车辆在地图上的
                 组合行为时, 对应的混成自动机模型有            25×25=625  个离散节点, 当考虑   3  个车辆在地图上的组合行为时, 对应的混
                 成自动机模型有      25×25×25=15625  个离散节点, 此时路径爆炸问题带来的挑战巨大.
                    在导航系统中, 1    个、2  个和  3  个车辆的场景下, 系统规约共有         17  条, 主要包括以下   4  大类要求.
                    • 车辆不进入危险网格:       ¬F [t 1 ,t 2 ] (Q = q i ), 车辆避免在危险时间区间  [t 1 ,t 2 ] 进入地图上的  i 号网格;
                    • 车辆不进入危险区域:        ¬F [t 1 ,t 2 ] (|x− x d | < l/2 ∧ |y−y d | < m/2), 车辆避免在危险时间区间  [t 1 ,t 2 ]  进入地图上以
                 (x d ,y d )  为中心的, 大小为  l×m  的矩形危险区域;
                                                           )
                                       ( √
                                               2
                                                      2
                    • 车辆远离危险点:     G [0,60]  (x− x d ) +(y−y d ) > D d , 1 h  内车辆距危险点总远于危险距离常数  D d ;
                                                            )
                                      ( √
                                              2
                                                      2
                    • 车辆间防止碰撞:     ¬F   (x 1 − x 2 ) +(y 1 −y 2 ) ⩽ D safe , 两车距离避免小于等于安全距离常数  D safe .
                    我们对上述系统的       25  个系统规约进行反例生成实验. 所有实验都在同一台                PC  机上进行  (Intel Core i5-12500,
                 16 GB RAM, Ubuntu 22.04.4 LTS). 由于反例生成过程中使用的优化求解算法的效果具有随机性, 所以在                  25  个案
                 例里, 每个算法都被执行了        100  次, 以对算法性能进行准确可靠的评估. 所有反例生成算法执行时, 其中的优化算
                 法的总迭代次数      (即系统行为的仿真模拟次数上限) 在血糖控制系统以及                    1  个和  2  个车辆的导航系统中均为
                 10 000, 在规模和路径数目都巨大的导航系统           (3  个车辆) 中为  100 000. 此外, 在实验中, 路径过滤算法采用默认配
                 置, 仅对布尔和线性约束进行         SMT  求解. 路径动态选择算法中的         UCB  探索利用平衡参数      c 统一配置为常数值      1.
                                                     c 值通常能使置信区间更宽, 效果更好; 而在低维问题上较小的   值
                                                                                                     c
                 尽管在实践中, 我们发现在高维问题上较大的
                 往往效果更佳, 但我们在实验中选择统一设置参数值, 以评估路径动态选择优化技术的通用性, 确保实验结果具有
                 尽可能广泛的适用性.

                 4.3   实验结果与分析
                    在  4  个系统的  25  条规约下, 反例生成实验结果见表         4, 包括使用  SNIFF  中原始的基于路径进行反例生成的基
                 本方法, 加上面向规约的路径过滤优化算法, 加上路径动态选择的优化算法, 以及同时加上两个优化技术扩展后的
                 反例生成方法的实验结果. 每种情况我们都列出了其                 100  次反例生成的成功率, 成功找到不安全行为的平均耗时,
                 以及成功找到不安全行为的平均需要消耗的优化算法的总迭代次数                       (即系统行为的仿真模拟次数).

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

                                                                                             路径过滤和
                                基本方法              路径过滤                   路径动态选择
                                                                                              动态选择
                                                                                      迭代
                  系统    规约                                                      成功率
                             成功 耗时 迭代      成功 耗时 迭代 过滤路径数/ 成功 耗时 迭代                   次数   成功 耗时 迭代
                            率 (%) (s)  次数 率 (%)  (s)  次数  总路径数   率 (%)  (s)  次数  提升   消耗 率 (%)  (s)  次数
                                                                                倍数
                                                                                      倍数
                         s1   83  5.9 6 673  74  5.7  6 374  0/6  100  2.3  2 770  1.2  0.4  100  2.0  2 310
                         s2   45  5.4 6 288  40  5.1  6 017  0/6   94  3.0  3 666  2.1  0.6  89  3.2  4 038
                         s3   21  5.2 6 228  28  6.1  6 665  0/6   70  3.5  4 471  3.3  0.7  66  3.9  5 077
                 血糖控制    s4   12  5.3 6 198  9  4.5  6 184  0/6    36  4.1  5 384  3.0  0.9  52  4.3  5 841
                  系统     s5   52  6.0 3 605  47  5.5  3 395  0/6   96  7.9  3 344  1.8  0.9  96  9.3  3 913
                         s6   91  5.1 3 394  92  6.0  3 724  0/6  100  4.2  1 879  1.1  0.6  100  4.3  1 953
                         s7  100  3.5 4 429  100  0.9  1 405  3/6  100  0.9  950  1.0  0.2  100  0.3  256
                         s8   79  7.7 5 864  96  6.8  3 577  3/6   97  7.0  2 991  1.2  0.5  99  6.7  2 298
                         s9   20  0.3 3 300  57  0.3  2 722  7/10  86  0.5  4 272  4.3  1.3  89  0.4  3 747
                         s10  36  0.3 3 468  81  0.4  3 358  7/10  98  0.4  3 581  2.7  1.0  99  0.3  2 584
                 导航系统
                         s11  59  0.3 3 099  93  0.2  2 060  7/10  100  0.3  2 698  1.7  0.9  100  0.2  1 844
                 (1个车辆)
                         s12  17  0.4 3 218  33  0.4  3 297  7/10  60  0.6  5 377  3.5  1.7  67  0.5  4 334
                         s13  26  0.4 3 630  75  0.4  3 531  7/10  93  0.4  3 907  3.6  1.1  97  0.3  2 844
   170   171   172   173   174   175   176   177   178   179   180