39、时间序列上的因果检查与草图绘制

时间序列上的因果检查与草图绘制

在系统分析领域,因果分析一直是一个重要的研究方向。过去,因果定义大多停留在理论层面,而如今,随着技术的发展,自动化的因果分析工具逐渐崭露头角,CATS 就是这样一款工具,它将反应式系统中的因果关系研究推向了自动化的新阶段。

手工制作的因果检查实例

为了深入了解 CATS 的性能,研究人员首先进行了一系列手工制作的因果检查实例测试。以下是部分测试结果:
| 实例 | 结果 | 时间(秒) |
| — | — | — |
| Spurious Arbiter [18] | ✗ | 0.6 |
| Arbiter simple [18] | ✓ | 1.2 |
| Arbiter [18] | ✓ | 9.7 |
| Example 1 | ✓ | 0.9 |
| Example 1, mod | ✗ | 1.0 |
| Example 6, odd | ✓ | 1.4 |
| Example 6, globally | ✗ | 0.7 |
| Example 7 | ✓ | 2.1 |
| Example 8 | ✓ | 1.1 |
| Example 8 mod | ✗ | 1.2 |
| TP Left [18, Thm. 6] | ✗ | 0.3 |
| TP Right [18, Thm. 6] | ✓ | 1.1 |

以 Example 6 为例,考虑一个为两个进程建模的简单仲裁器系统。每个进程可以发出请求((I = {r0, r1})),并可能得到授权((O = {g0, g1}))。该仲裁器偏向进程 0,即当两个进程都发出请求时,优先处理进程 0 的请求。假设观察到的跟踪为 (({r0, r1}{r0, g0})^\omega),我们关注的效果是 (\phi_E = \neg g1),即进程 1 永远得不到授权。CATS 可以自动验证原因 (\phi_C = \exists q.q \land (q \leftrightarrow \neg q) \land (q \rightarrow r0)),表明原因是进程 0 在所有奇数位置发出请求。特别地,CATS 还能推断出 (r0) 不是原因(实例 Example 6, globally),因为偶数位置的请求与效果无关。这种精确的原因无法用 LTL 表达,需要 QPTL 中的 (\omega) - 正则性。

Syntcomp 评估

在前面的手工实例测试中,我们了解了 CATS 在特定理论场景下的表现。接下来,研究人员对 CATS 在更大规模的基准测试集上的性能进行了评估。具体操作步骤如下:
1. 获取反应式系统 :使用反应式综合竞赛(SYNTCOMP)的基准测试,该竞赛包含一系列 LTL 公式,用于指定各种反应式系统的要求。
2. 合成策略/系统 :使用现有的 LTL 合成工具(如 ltlsynt)为每个可实现的 LTL 规范合成策略/系统,超时时间为 5 分钟,最终得到 204 个不同规模的系统。
3. 生成跟踪和公式 :对于每个 SYNTCOMP 系统,随机生成 10 个不同的套索跟踪,并使用 spot 的 randltl 分别在输入和输出上生成随机的原因和效果公式,总共得到 204 * 10 = 2040 个因果检查实例。

通过对这些实例的测试,研究人员发现绝大多数实例可以在 10 秒内解决。同时,CATS 的运行时间取决于所需的检查次数,由于其基于因果检查公式的分解进行增量检查,例如已经违反 PC2 的实例将不再进行进一步检查,因此整体运行时间取决于通过的阶段数。其流程可以用以下 mermaid 流程图表示:

graph LR
    A[获取 SYNTCOMP 基准测试] --> B[合成策略/系统]
    B --> C[生成套索跟踪和公式]
    C --> D[使用 CATS 进行因果检查]
    D --> E{是否违反 PC2?}
    E -- 是 --> F[停止检查]
    E -- 否 --> G[继续检查]
因果草图绘制评估

因果分析的一个典型用例是对反例进行分析,用户可以利用找到的原因从具体的错误跟踪中提取最小错误,从而有效地调试系统。下面通过两个具体例子来展示 CATS 在因果草图绘制方面的能力。

Example 7 :考虑一个简单系统,其中输出 E 标记错误。模型检查器可能返回具体路径 (\pi = {i1, i2}^4({E})^\omega),但该路径无法明确指出哪些输入实际上导致了错误。使用 CATS 并提供适当的草图,它可以计算出原因 (\phi_C = i1 \land (i1 \lor i2)),该原因精确地描述了与错误相关的事件:i1 必须在第一步成立,并且在第三步 i1 或 i2 必须成立以避免自循环。这个原因与具体跟踪 (\pi) 紧密相关,仅描述了避免该具体示例中错误所需的最小更改。

Example 8 :另一个系统中,具体路径为 (\pi = {i}^2({E})^\omega),CATS 可以自动验证原因 (\phi_C = i \lor \neg i) 对于效果 (\phi_E = E) 成立。这个原因是析取的,因为需要在第一步和第二步对 i 进行干预以避免效果。与之前的方法相比,CATS 支持的符号原因可以非常简洁地描述此类效果,而之前的方法要么局限于有限变量设置和合取原因,要么只能推理事件的顺序而不能使用 (\neg) 来推理具体时间。

当使用 CATS 进行因果草图绘制评估时,具体操作如下:
1. 生成随机系统 :使用 spot 的 randaut 生成 100 个不同规模(状态数在 10 到 50 之间)的随机系统,并随机标记一个状态为新鲜的 E 命题。
2. 验证可达性并计算跟踪 :使用模型检查器(如简单的广度优先搜索)验证错误状态是否可达,如果可达,则计算一个具体的(套索)跟踪到达错误状态所需的步数 (n)。
3. 推断原因 :使用 CATS 推断 (\phi_E = \square^n E) 的原因,根据命题 1,可以通过探索适当的草图来完成。

评估结果如下表所示:
| 平均跟踪长度(avg. |π|) | 平均检查的原因候选数(avg. #check) | 平均原因检查时间(avg. tcheck) | 平均总时间(avg. t) | 找到原因的百分比(avg. success) |
| — | — | — | — | — |
| 6.28 | 169.1 | 2.08 s | 2.19 s | 86% |

虽然 CATS 会探索许多候选原因,但大多数可以通过对 PC1 的低成本跟踪检查提前修剪,实际的检查时间(占 CATS 总计算时间的绝大部分)是合理的,因为平均只有少数 169.1 个候选原因会进入昂贵的超属性模型检查阶段。不过,CATS 显然无法与专门的反例分析方法竞争,但其优势在于依赖先进的理论,不仅适用于反例分析,还适用于任意因果关系。尽管有强大的理论基础,但 CATS 在小系统中表现良好,并为原因的存在提供了有力保证。

综上所述,CATS 展示了基于先进因果理论验证原因在实践中的可行性,并且草图绘制是推断原因的可行方法。对于未来的工作,直接合成((\omega) - 正则)原因是一个有趣的尝试方向,在这样的发展中,CATS 可以作为有用的基线和调试工具。

时间序列上的因果检查与草图绘制

时间有界效果的原因

在使用基于因果关系的分析处理反例时,我们经常会遇到形如 (\square^n E)(其中 (n \in N))的效果,我们将这类效果称为时间有界效果。对于这类效果,我们可以从理论上证明,在 Coenen 等人的因果框架内,一个由 (n \in N) 界定的时间有界效果有原因,当且仅当它有一个时间有界的原因,即一个仅涉及前 (n) 步的原因。具体命题如下:

命题 1 :设 (\phi_E = \square^n \psi) 是一个效果,其中 (\psi) 不包含时间运算符,(\pi) 是一个跟踪。那么,在 (\pi) 上存在 (\phi_E) 的原因,当且仅当存在一个最多使用 (n) 个嵌套 (\square) 且不包含其他时间运算符的原因。

这意味着,当我们寻找形如 (\square^n E) 的原因时,只需要检查涉及前 (n) 个位置的原因即可。很容易看出,存在一个原因草图可以捕获所有此类候选原因(一个简单的析取范式,其原子形式为 (\square^j \psi),其中 (j \leq n))。

自动绘制原因草图

为了评估 CATS 的原因草图绘制能力,研究人员进行了如下操作:
1. 生成随机系统 :利用 spot 的 randaut 生成 100 个不同大小(状态数在 10 到 50 之间)的随机系统,并且随机标记其中一个状态带有一个新的 (E) 命题。
2. 验证可达性与计算跟踪 :运用模型检查器(这里使用简单的广度优先搜索)来验证错误状态是否可达。若可达,则计算出一条具体的(套索)跟踪,假设该跟踪在 (n) 步后到达错误状态。
3. 推断原因 :使用 CATS 来推断 (\phi_E = \square^n E) 的原因。根据前面提到的命题 1,这可以通过探索合适的草图来实现。

具体的流程可以用以下 mermaid 流程图展示:

graph LR
    A[生成随机系统] --> B[验证错误状态可达性]
    B -- 可达 --> C[计算到达错误状态的跟踪步数 n]
    C --> D[使用 CATS 探索草图推断原因]
    B -- 不可达 --> E[结束流程]

评估结果呈现在下面的表格中:
| 指标 | 数值 |
| — | — |
| 平均反例跟踪长度(avg. (\vert\pi\vert)) | 6.28 |
| 平均检查的原因候选数(avg. #check) | 169.1 |
| 平均原因检查时间(avg. tcheck) | 2.08 s |
| 平均总时间(avg. t) | 2.19 s |
| 找到原因的百分比(avg. success) | 86% |

从这些结果中我们可以发现,尽管 CATS 会探索大量的候选原因,但大部分候选原因可以通过对 PC1 进行低成本的跟踪检查而被提前排除。实际用于检查的时间(占据了 CATS 总计算时间的绝大部分)是比较合理的,因为平均而言,在 169.1 个候选原因中,只有少数会进入到成本较高的超属性模型检查阶段。

不过,CATS 也存在一定的局限性。它显然无法与专门用于反例分析的方法相竞争。然而,CATS 的巨大优势在于它所依赖的先进理论,该理论并不局限于反例分析,而是适用于任意的因果关系。凭借着强大的理论基础(可以追溯到 Halpern 和 Pearl 的开创性定义),CATS 为原因的存在提供了有力的保证,并且在小型系统中表现出色。

总结与展望

因果分析在系统分析领域有着悠久的历史。过去,大多数关于全面因果定义的研究(主要源于哲学领域)主要集中在有限的环境中。而近期的工作开始探讨反应式系统中的因果关系,其中原因和效果涉及系统的无限行为。

在本文中,我们介绍了 CATS 这一工具,它是首个将反应式系统中的因果关系研究推向自动化的工具。有了 CATS,因果定义不再仅仅是纯粹的理论研究,而是可以在实际系统中进行全自动的应用和测试。这使得我们能够发现和验证因果关系,并且为尝试更高级的因果定义提供了一个实验平台。

通过 CATS,我们已经证明了基于先进因果理论验证原因在实际中是可行的,并且草图绘制是一种推断原因的有效方法。对于未来的研究方向,直接合成((\omega) - 正则)原因是一个值得尝试的方向。在这样的研究发展过程中,CATS 可以作为一个有用的基准和调试工具,帮助我们更好地探索因果关系在反应式系统中的应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值