52、通用空检查算法:高效性与应用探索

通用空检查算法:高效性与应用探索

1. 判定SCC是否为固有弱组件

判定一个强连通分量(SCC)是否为固有弱组件(即不混合接受和拒绝循环),可通过两次空检查实现:一次使用原始接受公式,另一次使用互补接受公式。若其中一次空检查成功,则该SCC为固有弱组件。

2. 旧版与新版空检查实现

2.1 新版算法优化

算法1已在Spot的2.8版本中实现,其实现具有以下额外优化:
- SCC枚举优化 :第2行中对图G的SCC枚举,采用基于Dijkstra的算法,该算法还会为每个SCC记录集合Moccur和Mevery。因此,第10 - 12行的测试可移至该SCC枚举算法中,且该算法可配置为一旦找到第12行(或第10行)返回⊥的SCC就停止。若找到这样的SCC,第2 - 3行的循环甚至不会执行,避免了使用更复杂条件对SCC进行一些无用的递归。
- 移除函数优化 :移除函数并非实现为返回新自动机的函数。相反,SCC枚举算法接受一组标记,用于定义哪些转换在SCC中应被禁止(这通过将标记转换的目标保留在一组二级SCC根集中实现,如Bloemen等人的Fstate)。这样可确保算法能原地运行,无需复制自动机。
- 顶级调用优化 :顶级的is_empty调用首先检查接受条件是否具有$\bigwedge_{m\in M’} Fin(m) \land \phi’$的形式。若是,则将$M’$传递给初始SCC枚举算法,并从一开始就禁止相关转换。

2.2 旧版算法情况

在算法1实现之前,Spot仅具有针

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值