admin管理员组文章数量:1534210
模型检测
- 模型检测的基本思想是用状态迁移系统(S)表示并发系统的行为,用模态/
时序公式(F)描述系统的性质。这样,“系统是否具有所期望的性质?”就转化
为数学问题“S 是否是F 的模型?”。
常见的模态/时序逻辑
- 模型检测中最常用的逻辑有计算树逻辑(CTL-Computation Tree Logic)
、命题线性时序逻辑(PLTL-Propositional Linear Temporal Logic)
和命题mu-演算。其中表示能力最强的是命题mu-演算。为了实际应用的需要,出现了这些逻辑的各种(如实时、概率)扩展。
计算树逻辑(CTL)
-
概念:一个系统的运行可以看成是系统状态的变化。系统状态变化的可能性可以表示成树状结构。比如说一个并发系统从一个初始状态开始运行,由于行为的不确定性,它可以有多个可能的后续状态,每个这样的状态又可以有多个可能的后续状态,依此类推可以产生一棵状态树。
-
组成:计算树逻辑CTL 是一种分叉时序逻辑。CTL 可以描述状态的前后关系和分枝情况。描述一个状态的基本元素是原子命题符号。CTL公式由原子命题,逻辑连 接符和模态算子组成。
-
CTL 的逻辑连接符包括:not(非), or(或),and(与)。
-
模态算子包括:E(Exists a path),A(All paths),X(Next-time),U(Until),F(Future),G(Global)。前两个算子描述分枝情况,后四个算子描述状态的前后关系。CTL中描述分枝情况和描述状态的前后关系的算子成对出现,即一个描述分枝情况的算子后面必须有一个描述状态的前后关系的算子。
- E 表示对于某一个分枝
- A 表示对于所有分枝
- X 表示下一状态
- U 表示直至某一状态
- F 表示现在或以后某一状态
- G 表示现在和以后所有状态
-
-
产生规则:原子命题是CTL 公式;如果p,q 是CTL 公式,则not p,p or q,p and q, EX p,E(pU q),EF p,EG p,AX p,A(p U q),AF p,AG p 是CTL 公式。
- 例如公式EF p 表示:一定会沿某条路径达到一个满足p 的状态。
-
时间复杂度:对CTL 公式存在线性时间的模型检测算法,即算法的最坏时间复杂度与|S||F|成正比,这里|S|是状态迁移系统的大小,|F|是逻辑公式的长度。
命题线性时序逻辑(PLTL)
- 概念:系统状态变化的可能性既可以看成是一种树状结构,又可以看成是所有可能的系统初始状态经历各种可能变化的集合,也就是把一颗树看成是有限或无限条路径的集合。一条路径所代表的是系统的一次可能的运行情况。
- 组成:命题线性时序逻辑关心的是系统的任意一次运行中的状态以及它们之间的关系。PLTL 公式由原子命题,逻辑连接符和模态算子组成。
- PLTL 的逻辑连接符包括:not,or,and。
- 模态算子包括:U(Until),◇(Eventually),□(Always)。◇表示现在或以后某一状态(类似CTL 的F), □表示现在和以后所有状态(类似CTL 的G)。
- 产生规则:原子命题是PLTL 公式;如果p,q 是PLTL 公式,则not p,p or q,p and q, ◇p,□p 是PLTL 公式。
- 例如公式◇□p 表示:某个时刻后所有的状态都满足p。
- 时间复杂度:算法的复杂性是多项式空间完备的,目前最好的算法时间复杂度对系统状态数呈线性而对公式长度呈指数。
- 与CTL的区别:PLTL 和CTL 的表达能力不同,各有所长。PLTL 模型检测的常用方法是将所要检测的性质即PLTL 公式的补转换成Buchi 自动机,然后求其与表示系统的自动机的交。如果交为空,则说明系统满足所要检测的性质;否则生成一个反例,说明不满足的原因。
命题mu-验算
- 概念:系统状态的改变总是由某种动作引起的。mu-演算关心的是系统的动作与状态之间的关系。描述动作的基本元素是动作符号。
- 组成:mu-演算公式由原子命题,命题变量,逻辑连接符,模态算子和不动点算子组成。
- 逻辑连接符包括:not,or,and
- 模态算子:对于每个动作符号a,有两个模态算子**[ a ]和< a >**。[ a ]表示对所有的a 动作, < a >表示对某个a 动作。
- 不动点算子有最小不动点算子μ和最大不动点算子v。
- 产生规则:原子命题和命题变量是mu-演算公式;如果p,q 是mu-演算公式,则not p,p or q,p and q,[ a ]p,< a >p,μX.p,vX.p 是mu-演算公式。
- 例如公式μX.(p or [a]X)表示:在任何无穷的a-路径上一定会有某个满足p 的状态。
- 特点:mu-演算的主要缺点是公式不易读懂,其优点是它的表示能力非常强。其表示能力主要来自于最大与最小不动点的任意交错嵌套。CTL 和PLTL 都可以嵌入到它的真子集中,并且相应的子集具有与CTL 和PLTL 相同的复杂度的模型检测算法。因此很多学者将mu-演算作为模型检测的一般框架加以研究。
- 时间复杂度:目前已知的最好的检测算法时间复杂度关于公式的交错嵌套深度成指数增长。
参考文献:朱雪阳等.模型检测研究进展.
版权声明:本文标题:几种模态时序逻辑的对比(CTL、PLTL、mu-演算) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1726872903a1088034.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论