我有一个简单的kripke结构,其中有3个状态,并具有以下转换:
s1 --> s2
s2 --> s1
s1 --> s3
s3 --> s3
s1是唯一的初始状态。我不希望循环s1到s2重复超过一定数量(例如两次)。在其他过渡系统中,我可以为过渡添加防护。
Q1:Kripke结构能否在过渡上设置防护装置?
Q2:如果可以,如何在NuSmv中对其建模?
谢谢
答案 0 :(得分:1)
您在这里比较苹果和橙子。带防护的模型(例如NuSMV中的模型)定义了一个状态空间,该状态空间又可以看作是Kripke结构(这里我们忽略诸如死锁之类的问题)。
警卫是建模方法的要素,而Kripke结构是用于描述状态空间的基本理论概念。
让我们举个例子:我们有一个带有变量v
的模型,该模型可以接受两个值1和2,其中初始值为1,以及两个带有警卫的转换:
a == WHEN v=1 THEN v:=2
b == WHEN v=2 THEN v:=1
结果状态空间为:
[v=1] --> [v=2]
[v=2] --> [v=1]
实际上这是一个Kripke结构(其中[v=1]
是唯一的初始状态,并且在节点上未定义任何标签)不包含任何防护。
更新: 每个节点的标签集的一个示例是所有布尔表达式,在那里计算结果为true。
总结一下您的两个问题: