基于形式化方法的列车控制模型研究与实践
1. 模型检查工具的应用与挑战
在安全关键系统的建模和验证领域,Spin模型检查器有着广泛的应用。此前,它已被用于不同安全关键系统的建模和验证工作,例如在DEEP SPACE 1任务中,被应用于基于人工智能的航天器控制系统架构的多线程计划执行模块的验证。
在对高级符号表示的模型进行模型检查时,常见的做法是利用现有的模型检查器,如Spin、NuSMV、UPPAAL等。一些硬件设计人员习惯使用高级符号,如Bluespec,在处理低级符号时会遇到困难。因此,有人主张验证工具的符号应让设计者透明化,设计者能用高级符号指定模型和属性,而无需关注验证语言符号的复杂性。为实现这一目标,常采用的方法是将高级模型自动转换为现有模型检查器的模型,这需要定义从源符号到目标符号的映射,以及将模型检查器返回的反例反向转换为源符号的概念。
然而,这种转换往往会引入开销,影响验证的可扩展性。例如,将抽象状态机(ASM)转换为NuSMV、UML模型转换为Promela以及Simulink模型转换为NuSMV时,都存在这样的问题。
与之相对,近期出现了一种新的方法,即开发直接处理高级符号的模型检查器,如ProB可直接对B模型进行模型检查。有研究对ProB和Spin进行了比较,当B模型和Promela模型的状态数量相同时(针对同一问题开发的模型),Spin在性能上远超ProB,因为Spin直接用C语言进行验证,并采用了多种优化技术,如偏序约简、位状态哈希等,而ProB使用Prolog编写的解释器。但在某些情况下,ProB表现更优,它能避免Spin中出现的状态爆炸问题(如果不使用原子构造),采用混合的深度优先和广度优先策略,并利用高级模型中的对称性。
超级会员免费看
订阅专栏 解锁全文
58

被折叠的 条评论
为什么被折叠?



