故障树中的实际因果关系

arXiv cs.AI 论文

摘要

本文应用Halpern & Pearl的实际因果关系理论到故障树,通过回答系统为何发生故障来实现故障诊断。它对实际因果关系的概念进行了分类,将其与最小割集联系起来,并讨论了计算复杂性和算法。

arXiv:2607.01840v1 公告类型:新 摘要:故障树被广泛用作复杂系统的有效风险模型,回答“什么可能出错?”的问题,尤其是通过最小割集分析。我们从Halpern & Pearl的实际因果关系理论角度研究故障树。这使我们能够使用故障树来回答“为什么出错了?”这一问题,这对故障诊断至关重要。我们根据故障树的图结构和逻辑结构,对每个不同的实际因果关系概念进行了完整分类,并展示了最小割集如何产生实际原因。
查看原文
查看缓存全文

缓存时间: 2026/07/03 05:46

# 故障树中的实际因果关系 来源:https://arxiv.org/html/2607.01840 11institutetext:荷兰特温特大学 22institutetext:荷兰拉德堡德大学 22email:\{g\.g\.c\.caltais,m\.a\.lopuhaa,m\.i\.a\.stoelinga\}@utwente\.nl###### 摘要 故障树被广泛用作复杂系统有效的风险模型,通过最小割集分析回答*可能出什么问题?*这一问题。我们从 Halpern & Pearl 的实际因果关系理论角度研究故障树。这使得我们能够利用故障树回答*为什么会出问题?*这一对故障诊断至关重要的问题。我们根据故障树的图结构和逻辑结构,对每种不同的实际因果关系概念进行了完整分类,并展示了最小割集如何产生实际原因。此外,我们讨论了在故障树中计算因果关系的复杂性,并开发了相应的算法。 ## 1 引言 参见图注 Figure 1: 一个建模“鱼门铃”的故障树,该系统支持乌得勒支水系中的洄游鱼类:公众观察员和操作员都能在看到水下摄像头中的鱼时按响门铃以打开船闸。如果电力故障(基本事件,BE)或警报故障(与门)发生,则船闸无法打开(或门);警报故障发生在公众和操作员都未采取行动的情况下。

“鱼门铃”(visdeurbel)是一项公民科学倡议,旨在支持洄游鱼类通过荷兰主要城市乌得勒支的水道\[29 (https://arxiv.org/html/2607.01840#bib.bib20),31 (https://arxiv.org/html/2607.01840#bib.bib1)\]。水下摄像头提供船闸前鱼类的实时画面。船闸操作员可通过两种方式收到警报:公众观察者在看到鱼时可按响虚拟门铃,或者操作员可直接观看摄像头画面。该系统有助于鱼类洄游,并提高公众对生态的认识。此示例说明了不同组件和故障(电力故障、公众故障和操作员故障)如何导致系统级故障(船闸未能打开)。

故障树是一种结构化、层次化的模型,用于分析复杂系统中的故障传播\[36 (https://arxiv.org/html/2607.01840#bib.bib23),37 (https://arxiv.org/html/2607.01840#bib.bib44)\]。故障树能够采用自上而下的演绎方法进行故障分析,利用逻辑门(例如,与门、或门)将系统故障分解为组件故障的组合。在故障树术语中,此类门的输入通常被称为由该门标记的更高层原因的*直接原因*\[39 (https://arxiv.org/html/2607.01840#bib.bib18)\]。故障树广泛应用于航空航天\[7 (https://arxiv.org/html/2607.01840#bib.bib3)\]、核能\[15 (https://arxiv.org/html/2607.01840#bib.bib4)\]和网络安全\[30 (https://arxiv.org/html/2607.01840#bib.bib2)\]等安全关键行业,能够实现对系统可靠性、风险评估和故障传播的结构化推理。它们作为强大的设计工具,帮助工程师识别薄弱环节并优先制定缓解策略。图1 (https://arxiv.org/html/2607.01840#S1.F1) 给出了“鱼门铃”的故障树。

作为风险模型,故障树主要用于分析潜在故障:*可能出什么问题?* 这通过最小割集分析完成:最小割集是一组需要同时发生才能导致系统故障的基本故障事件。找到故障树的最小割集后,再根据其大小、可能性和共同原因进行分析,以确定系统的整体可靠性。

Halpern-Pearl 框架中的实际因果关系。另一方面,因果关系在事后提出*为什么会出问题?* 这一问题。在计算机科学中,Halpern 和 Pearl\[16 (https://arxiv.org/html/2607.01840#bib.bib42)\] 提出的实际因果关系框架尤为流行。在实际因果关系中,系统被建模为一个*因果模型*:一个由变量组成的有向无环图,每个变量由其输入的函数描述。系统的背景由初始变量的值给出。在此类系统中,可以使用*do-演算*\[33 (https://arxiv.org/html/2607.01840#bib.bib40)\] 执行*干预*以强行设置某些变量。这使得能够超越相关性,基于*反事实*定义因果关系,描述如果某些条件不同将会发生什么。该方法已成功应用于故障定位\[2 (https://arxiv.org/html/2607.01840#bib.bib10)\]、调试\[9 (https://arxiv.org/html/2607.01840#bib.bib8)\]和故障推理\[21 (https://arxiv.org/html/2607.01840#bib.bib7)\]等问题。

事件分析和故障树。虽然故障树主要用于通过风险评估预防故障,但它们也是*事件分析*或*诊断*中的重要工具:当系统发生故障时,了解发生了什么以及为什么发生,以防止其再次发生。形式化的因果关系框架对于系统化的事件分析将是重要的资产。尽管故障树在诊断中的应用已通过系统化方法得到充分研究\[19 (https://arxiv.org/html/2607.01840#bib.bib11),25 (https://arxiv.org/html/2607.01840#bib.bib15),32 (https://arxiv.org/html/2607.01840#bib.bib17),35 (https://arxiv.org/html/2607.01840#bib.bib16)\],但*当前文献中缺少将实际因果关系系统应用于故障树的研究。* 到目前为止,实际因果关系与故障树之间的关联仅限于从跟踪数据生成故障树\[23 (https://arxiv.org/html/2607.01840#bib.bib36)\],以及将*攻击树*(≈\approx 适用于网络安全的故障树)翻译为因果模型,但未研究其实际原因\[20 (https://arxiv.org/html/2607.01840#bib.bib39)\]。

贡献。我们的主要贡献是将实际因果关系框架应用于故障树。我们考虑最常见的故障树类型,即静态、一致的故障树。这些可以表述为布尔变量的有向无环图,这些变量通过其作为与门/或门的功能成为其输入的函数。因此,故障树可以直接从实际因果关系的角度进行研究。这本身并不令人惊讶,但所有函数都是布尔型且非递减这一事实,使得我们能够比在常规因果模型中获得更深入的理解。首先,它为我们提供了实际因果关系的简洁分类。对于实际因果关系文献中三个主要的因果关系定义\[18 (https://arxiv.org/html/2607.01840#bib.bib35)\](*原始*: AC-o,*更新*: AC-u,*修改*: AC-m),我们在给定背景下对故障树中事件失效的实际原因进行分类,从而允许对故障树进行直接的因果分析(定理6.1 (https://arxiv.org/html/2607.01840#S6.Thmtheorem1)、6.2 (https://arxiv.org/html/2607.01840#S6.Thmtheorem2) 和 6.3 (https://arxiv.org/html/2607.01840#S6.Thmtheorem3))。这些分类不仅考虑了故障树的布尔性质,还考虑了其图结构。相比之下,故障树分析通常仅考虑底层的布尔函数。这导致了一个令人惊讶的事实:*等效的故障树作为因果模型可能表现不同。* 从实际因果关系的角度来看,这是一个特性而非缺陷:在实际因果关系中,中间门不仅仅是虚拟变量,而是代表真实世界的事件或子系统,可以作为干预的目标。对于故障树,AC-o、AC-u、AC-m 形成了一个定义因果关系的谱系,从更强调图结构到完全强调布尔性质。由于 AC-m 只关注故障树的布尔性质,AC-m 与最小割集的关系更强。事实上,我们的结果允许我们根据 AC-m 对最小割集进行分类(推论1 (https://arxiv.org/html/2607.01840#Thmcorollary1))。其次,我们研究了最小割集与 AC-o 和 AC-u 之间的关系。由于最小割集是导致故障的*潜在*路径,而实际原因是特定场景中导致故障的事件,我们不能期望它们相同。事实上,在稳健系统中,最小割集通常较大以防止单点故障,但实际原因通常较小:事实上,已知对于 AC-o,并且我们证明对于 AC-u,实际原因仅是单元素集。尽管如此,最小割集和实际原因之间存在明确关系。我们证明,如果我们以最小割集作为背景,那么它的所有元素都是实际原因(定理7.1 (https://arxiv.org/html/2607.01840#S7.Thmtheorem1))。此外,对于 AC-o 和 AC-u,在给定背景下,我们证明每个已发生的最小割集的每个元素都是一个实际原因(定理7.2 (https://arxiv.org/html/2607.01840#S7.Thmtheorem2))。如果故障树是(图论意义上的)树而非有向无环图,或者它是析取范式,那么逆命题也成立。第三,我们确定了确定原因的难度(定理8.1 (https://arxiv.org/html/2607.01840#S8.Thmtheorem1)),表明对于 AC-u 和 AC-m,这比一般情况复杂度更低,并利用我们对故障树中实际因果关系的分类,开发了寻找 AC-o 和 AC-m 所有原因的算法(第9节 (https://arxiv.org/html/2607.01840#S9))。将这些算法推广到 AC-u 不会产生比朴素算法显著的理论加速;我们将快速算法的开发留给未来的工作。总结而言,我们的贡献是:

1. 从故障树到因果模型的转换,使我们能够将实际因果关系的概念应用于故障树(定义6 (https://arxiv.org/html/2607.01840#Thmdefinition6))。
2. 对于故障树,根据其图结构和布尔结构对 AC-o、AC-u 和 AC-m 进行分类(定理6.1 (https://arxiv.org/html/2607.01840#S6.Thmtheorem1)、6.2 (https://arxiv.org/html/2607.01840#S6.Thmtheorem2)、6.3 (https://arxiv.org/html/2607.01840#S6.Thmtheorem3))。
3. 我们证明,当最小割集作为背景时,故障树中的最小割集元素成为实际原因(定理7.1 (https://arxiv.org/html/2607.01840#S7.Thmtheorem1))。
4. 我们证明,给定一个背景,所有已发生的最小割集都会在 AC-o 和 AC-u 中产生实际原因(定理7.2 (https://arxiv.org/html/2607.01840#S7.Thmtheorem2))。这表征了树形故障树和析取范式故障树的最小割集。
5. 我们证明,确定故障树中的实际原因对于 AC-o 和 AC-m 是 NP-完全的,对于 AC-u 是多项式时间的(定理10)。
6. 我们给出了寻找 AC-o 和 AC-m 故障树中实际原因的算法(第9节 (https://arxiv.org/html/2607.01840#S9))。
7. 所有上述论断的证明和说明性示例。

## 2 故障树

在一个有向图 \(V,E\) 中,*根节点*或*汇点*是没有出边的顶点;*叶节点*(*源点*)是没有入边的顶点。一个顶点 v 的*输入*是其前驱节点:\(\{\it Inp\}(v)=\{w \in V \mid (w,v) \in E\}\)。

故障树。故障树是一种系统化的图形化工具,用于分析系统为什么会发生故障。故障树分析通过将系统级故障分解为其原因,并将这些原因分解为子原因,直到找到根本原因。这些根本原因被称为*基本事件*,由树的叶节点表示;参见图1 (https://arxiv.org/html/2607.01840#S1.F1)。更高级别的故障通过*与门*(当所有子原因都必须发生才能传播故障时)或*或门*(当单个子原因就足够时)连接。形式上,故障树是一个有向无环图,其非叶节点标记为与门和或门。

###### 定义 1 一个*故障树*是一个三元组 \(T=(V,E,\gamma)\),其中 \((V,E)\) 是一个有唯一根节点 \(\{\it Root\}_T\) 的有向无环图,且 \(\gamma \colon V\rightarrow \{\mathtt{BE},\mathtt{OR},\mathtt{AND}\}\) 满足 \(\gamma(v)=\mathtt{BE}\) 当且仅当 v 是源点。

| 缩写 | 全称 |
| :--- | :--- |
| AC | 实际因果关系 |
| AC-m | 修改后的实际因果关系 (§5.3) |
| AC-o | 原始实际因果关系 (§5.1) |
| AC-u | 更新后的实际因果关系 (§5.2) |
| BE | 基本事件 (§2) |
| CM | 因果模型 (§3.1) |
| FT | 故障树 (§2) |
| MCS | 最小割集 (§2) |

图 2: 使用的缩写。

如果图 \((V,E)\) 是一棵(有向)树,即没有顶点有两个后继,则故障树称为*树形*的。在其他情况下,我们称之为*有向无环图形*的。故障树的节点通常称为*事件*:树的根节点 \(\{\it Root\}_T\) 称为*顶事件*,叶节点是*基本事件*,所有其他节点是*中间事件*。我们记 \(\operatorname{BE}_T=\{v \in V \mid \gamma(v)=\mathtt{BE}\}\) 为基本事件集合。如果 T 在上下文中明确,我们省略下标。图1 (https://arxiv.org/html/2607.01840#S1.F1) 中的故障树包含三个基本事件:电力故障 (\(\mathsf{EF}\))、公众故障 (\(\mathsf{PF}\)) 和操作员故障 (\(\mathsf{OF}\)),一个中间事件警报故障 (\(\mathsf{AF}\)),以及顶事件船闸故障 (\(\mathsf{LF}\))。

状态向量。一个*状态向量*指示每个基本事件的状态,即该基本事件是否发生故障。记 \(\mathbb{B}:=\{0,1\}\);T 的一个状态向量是 \(\vec{u}\in\mathbb{B}^{\operatorname{BE}}\),其中 \(u_v=1\) 表示基本事件 v 已发生故障,\(u_v=0\) 表示 v 正常运行。我们经常将状态向量与其基本事件集合等同:给定一个集合 \(C\subseteq \operatorname{BE}\),其状态向量 \(\{\vec{u}\}^C\) 由 \(u^C_v=1\)(对于 \(v\in C\))和 \(u^C_v=0\)(对于 \(v\notin C\))给出。给定 \(b\in\mathbb{B}\),我们记 \(\vec{u}[v\leftarrow b]\) 为与 \(\vec{u}\) 相同的向量,但将 v 设置为 b:\((\vec{u}[v\leftarrow b])_v=b\),且对于 \(v\neq v'\),\((\vec{u}[v\leftarrow b])_{v'}=(\vec{u})_{v'}\)。

结构函数。故障树的语义由其结构函数定义。给定一个状态向量 \(\vec{u}\) 和一个节点 v,\(\{\Phi\}_T(\vec{u},v)\) 指示节点 v 在状态向量 \(\vec{u}\) 上是否发生故障。

###### 定义 2 一个故障树 T 的*结构函数*是一个函数 \(\{\Phi\}_T \colon \mathbb{B}^{\operatorname{BE}_T} \times V \rightarrow \mathbb{B}\),递归定义如下:

\[
\{\Phi\}_T(\vec{u},v)=
\begin{cases}
\vec{u}_v & \text{如果 } \gamma(v)=\mathtt{BE} \\
\bigvee_{w\in{\it Inp}(v)} \{\Phi\}_T(\vec{u},w) & \text{如果 } \gamma(v)=\mathtt{OR} \\
\bigwedge_{w\in{\it Inp}(v)} \{\Phi\}_T(\vec{u},w) & \text{如果 } \gamma(v)=\mathtt{AND}
\end{cases}
\]

我们缩写 \(\{\Phi\}_T(\vec{u}) = \{\Phi\}_T(\vec{u}, \{\it Root\}_T)\),并对于基本事件集合 C,记 \(\{\Phi\}_T(C,v) = \{\Phi\}_T(\{\vec{u}\}^C, v)\)。如果两个故障树 T 和 T' 具有相同的结构函数,即对于所有 \(\vec{u}, v\) 有 \(\{\Phi\}_T(\vec{u},v) = \{\Phi\}_{T'}(\vec{u},v)\),则称它们是*等效的*。

图1 (https://arxiv.org/html/2607.01840#S1.F1) 中故障树的结构函数由 \(\Phi(\vec{u}) = u_{\mathsf{EF}} \vee (u_{\mathsf{PF}} \wedge u_{\mathsf{OF}})\) 给出。特别地,\(\Phi(0,1,0)=0\) 且 \(\Phi(1,1,0)=1\),也写作 \(\Phi(\{\mathsf{PF}\})=0\) 和 \(\Phi(\{\mathsf{EF},\mathsf{PF}\})=1\)。

割集。一个*割集*是导致顶事件发生故障的基本事件集合;如果没有任何真子集是割集,则该割集是最小的。最小割集是故障树分析中的关键工具。

相似文章

基于反事实链和因果图的LLM可解释性

Hugging Face Daily Papers

本文提出了一种四阶段方法,用于构建建模LLM推理过程的因果图,利用反事实增强实现稳定的因果发现,并提供透明、概念级的可解释性。

协调基于一致性的诊断与基于实际因果关系的解释

arXiv cs.AI

本文在可解释人工智能(XAI)的框架下,建立了基于一致性的诊断(Consistency-Based Diagnosis)与实际因果关系(Actual Causality)之间的联系。其目标是将这两个领域融合,以提升人工智能及可解释数据管理中的解释能力。

当思维链更明智时:多轮推理模型中的失败模式

Hugging Face Daily Papers

本文通过引入CoT-Output安全矩阵分析了多轮推理模型中的失败模式,揭示了诸如在监控线索下伪装对齐率增加以及上下文注入失败(即安全的内部推理被有害输出覆盖)等悖论。