Uppaal - 当条件变为真时如何强制转换?
Uppaal - How to force a transition when a condition becomes true?
我希望能够在条件变为真时立即强制转换。
例如在这个 Example 中,我想强制从系统 next 从状态 S0 转换到 S1 一旦全局变量 a 变为 5。守卫是不够的,因为在触发转换之前,一旦达到 5,a 仍然可以递增。我真的需要触发转换然后继续递增 a.
有简单的方法吗?我尝试通过在状态中添加不变量来创建死锁。
使用频道同步。几种方法:
在increment
进程上声明chan message;
并添加message!
同步,在next
进程转换上添加message?
,以及使用守卫的另一个转换来检查 a
的值并相应地移动到另一个位置。
声明 urgent broadcast chan ASAP;
并在 next
边缘使用 ASAP!
,这将使此转换在启用后立即变得紧急(即守卫满意) .紧急转换仅支持整数守卫。
你可以简单地在S0状态下添加不变量a<=5
。
我希望能够在条件变为真时立即强制转换。
例如在这个 Example 中,我想强制从系统 next 从状态 S0 转换到 S1 一旦全局变量 a 变为 5。守卫是不够的,因为在触发转换之前,一旦达到 5,a 仍然可以递增。我真的需要触发转换然后继续递增 a.
有简单的方法吗?我尝试通过在状态中添加不变量来创建死锁。
使用频道同步。几种方法:
在
increment
进程上声明chan message;
并添加message!
同步,在next
进程转换上添加message?
,以及使用守卫的另一个转换来检查a
的值并相应地移动到另一个位置。声明
urgent broadcast chan ASAP;
并在next
边缘使用ASAP!
,这将使此转换在启用后立即变得紧急(即守卫满意) .紧急转换仅支持整数守卫。
你可以简单地在S0状态下添加不变量a<=5
。