0

我正在寻找一种适当的形式主义(即时间逻辑)来模拟以下情况

  1. 可能会有事件发生在离散的事件中(取决于下面详述的条件)。
  2. 有状态。这种状态不能用固定数量的变量来表达。但是,可以用线性列表/数组来表示它,其中每个条目由有限数量的变量组成。
  3. 在任何事件发生之前,状态是固定的。
  4. 在任何时间点,事件都是可能的。它们具有固定的结构(带有一些变量)。可能的事件受当前状态的约束。
  5. 事件将导致状态立即改变。
  6. 事件也可能导致持续的状态变化。例如,一个变量(上述数组的条目之一)在一段时间内(立即或在指定延迟后)将其值从 0 更改为 1。
  7. 还应该可以以“事件E之后某个条件C成立的最早时间点”的形式指定离散的时间点,并在该点开始连续的状态改变。

是否有现有的时间逻辑来模拟这样的事情?

还应该可以表达所需的条件,如下所示:

  1. 参考某个时间点:数组所有条目的某个特定变量的总和不能超过某个阈值。
  2. 提到随时间的变化:对于所有可能的时间间隔,某个变量的值(同样,来自所述数组的每个条目)[实际上,而不是为每个条目计算的某个算术表达式]的变化不得快于给定阈值。

应该有一个模型检查器,可以检查所有可能的场景是否满足所有条件。如果不是这种情况,它应该打印一个可能的场景并告诉我哪个条件不满足。换句话说,它应该区分描述可能场景的条件和在这些场景中必须满足的条件,而不仅仅是告诉我“不可能”。

4

1 回答 1

0

您需要一个语言更灵活的模型检查器。从技术上讲,无限状态空间系统的模型检查是开放的研究问题,通常在算法上无法确定。时间逻辑更典型地与问题下的属性有关。

考虑到您分享的项目信息有限,为什么不试试 Spin/Promela,它受到 C 语言的粗略启发,并且具有可以被视为数组的“缓冲区”。至少你可以模拟你的系统?

于 2019-06-26T16:44:30.463 回答