38、抽象引导的模型检查:BDD - IDA*算法与GOLFER工具的研究与实践

抽象引导的模型检查:BDD - IDA*算法与GOLFER工具的研究与实践

1. 算法构建方法

在模型检查中,有两种重要的构建方法:反向构建和正向构建。
- 反向构建 :采用基于BDD的广度优先搜索(BFS)策略来探索近似模型$\hat{M}_{app}$,从抽象目标状态开始。将每个前沿BDD放入启发式哈希表中,迭代次数作为SPDB的条目。若遇到抽象初始状态,则终止搜索。
- 正向构建 :从抽象初始状态开始,临时存储每个前沿状态。当搜索检测到抽象目标时,从目标状态反向提取到初始状态的路径。构成该路径的BDD集合即为正向SPDB,此过程与标准不变性检查中的反例提取相同,且这里生成的路径是反向SPDB提取路径的子集。

若启发式合成过程在近似模型$\hat{M}_{app}$中找不到轨迹,根据引理1,原模型$M$不存在反例。

2. BDD分割算法

设$\sigma = {B_1, B_2, \ldots, B_n}$是通过上述三相过程合成的启发式(SPDB)。以下算法将一个BDD分割成几个不相交的子集:

Procedure SplitAndPush (Cost, S, σ)
for each Bi ∈σ do
    I ←S ↓Bi
    if (I ≠ φ)
        stack.push() ←(Cost + 1, i, I)
    S ←S ∧I
    if (S ≠ φ)
        stack.push() ←(Cost + 1, ∞, S)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值