Uppaal - 当条件变为真时如何强制转换?

Uppaal - How to force a transition when a condition becomes true?

我希望能够在条件变为真时立即强制转换。

例如在这个 Example 中,我想强制从系统 next 从状态 S0 转换到 S1 一旦全局变量 a 变为 5。守卫是不够的,因为在触发转换之前,一旦达到 5,a 仍然可以递增。我真的需要触发转换然后继续递增 a.

有简单的方法吗?我尝试通过在状态中添加不变量来创建死锁。

使用频道同步。几种方法:

  1. increment进程上声明chan message;并添加message!同步,在next进程转换上添加message?,以及使用守卫的另一个转换来检查 a 的值并相应地移动到另一个位置。

  2. 声明 urgent broadcast chan ASAP; 并在 next 边缘使用 ASAP!,这将使此转换在启用后立即变得紧急(即守卫满意) .紧急转换仅支持整数守卫。

你可以简单地在S0状态下添加不变量a<=5