模型检验手册的阅读学习

模型检测手册阅读

模型检测手册:是为研究人员和研究生谁有兴趣开发形式主义,算法,软件工具的复杂系统,特别是硬件和软件系统的计算机辅助验证。

关于模型检测
模型检测是一种计算机辅助的动态系统分析方法,它可以被状态转换系统建模。从数学逻辑、程序设计语言、硬件设计和理论计算机科学的研究传统中,模型检测现在被广泛用于工业硬件和软件的验证。证明一个软件系统是正确的需要更多的努力、知识、培训和独创性,而不是以试错的方式编写软件。编码和核查之间的这种不对称是计算机辅助核查的主要动机,即使用计算机对软件和硬件进行核查。
1972年Djkstra在图灵奖演讲的理想世界中,程序在智力上是可管理的,每个程序与程序正确性的数学证明密切相关。而图灵中的两大问题:一是中止问题,二是莱斯定理。
图灵停机问题的了解
在写程序过程中会有这样一种现象,程序写好开始运行后等了半天毫无反应,既没有报错,又没有停止,让人不知所措。出现这种情况,一般有两种成因。一是程序运行的时间的确比较耗时,而编程人员又忘记编制任何运行中的动态提示功能,导致机器好像毫无反应。如果是这种情况,很好解决,只要增加运行中的屏幕提示,比如打印某个变量的状态或计算某种进度即可。但另一种情况会比较麻烦,就是程序执行陷入了死循环,永不停止。如果是这样,那么就必须跟踪查找死循环发生的位置并修改相应程序代码。
因此程序员们都期望能够有理论大牛发明一个判断程序来提前预判死循环是否会在程序中出现。把一段即将运行的代码作为字符串序列输入到该判断程序中,判断程序直接通过某种算法分析被输入程序的结构,并给出预报结果:该程序可以或不可以在有限时间内完成计算停止。这就是有名的停机判定问题。
这里说的有限时间是一种纯理论概念,一个算法即使所需执行时间要200亿年,超过宇宙的寿命,它在理论上也被认为是可停机的,也就是说“有限时间”无论是1秒还是100亿年,只要有终止的时候就可以称之为“在有限时间内结束运行”。

当逻辑在计算机科学中是不可决定性和难解性的同义词时,模型检测的发明标志着一种范式的转变,即用逻辑来寻找错误。在硬件和软件行业,伪造而不是核实。

建模:有限状态转移图为硬件等有限状态系统的描述提供了充分的形式,也为软件和通信协议的有限状态抽象提供了充分的形式。

规范:时序逻辑为描述状态转换系统的正确性属性提供了一个自然的框架。

算法:有决定程序,以确定有限的状态转换结构是否模型的时序逻辑公式。此外,当公式在结构中不正确时,决策程序可以产生诊断反例。

算法上的挑战:设计能适应现实问题的模型检测算法。

模型检测中的主要实际问题是Kripke结构中状态的组合爆炸——“状态爆炸问题”。由于每个状态表示给定时间点的全局系统状态,所以状态本质上是正在调查的系统的内存快照,因此,状态空间的大小与内存大小成指数关系。因此,即使对于相对较小的系统,也不可能直接计算和分析整个相应的Kripke结构。事实上,在大多数情况下,状态空间不是有限的(例如,无界内存,无界并行进程的数量),这导致了建模的挑战。

建模挑战:将模型检测框架扩展到Kripke结构和时序逻辑之外。Kripke结构是各种通信有限状态机的自然表示。
为了建模和指定无界迭代和递归、无界并发和分布、进程创建和重构、无界数据类型、实时和网络物理系统、概率计算、安全方面等,并有效地抽象这些特征,我们需要扩展建模和规范框架,超越Kripke结构和经典的时序逻辑。其他扩展牺牲了可决定性,但保持了模型检测的能力,以自动、系统地在系统设计过程的早期发现bug。

模型检测的主要优点有三方面:

首先,模型检测是一种系统的算法方法,可以计算机化,理想情况下是完全自动化的。因此,模型检测工具的目标和承诺是在设计过程中由硬件和软件工程师使用,而不需要验证专家的帮助。

其次,模型检测可以应用于设计过程的不同阶段,包括抽象模型和实现的代码。虽然任何一种模型检测工具通常局限于特定的建模和规范语言,但这种方法并不局限于任何级别或形式,可以应用于不同的级别,用于不完整的系统和部分规范,以发现不同种类的bug。

第三,可能也是最重要的一点,模型检测特别能很好地处理并发性并行过程之间的相互作用是系统设计中复杂性和错误的主要来源之一。

最后收获的一点:测试只是调试,模型检测是为了验证模型而进行的系统调试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值