1什么是故障树的模块?
故障树的独立模块是至少有两个底事件的集合,这些事件向上可以达到同一逻辑门(称为模块的顶点),并且必须通过此逻辑门才能到达顶事件。故障树的所有其他事件向上均不能到达该逻辑门。没有被其他模块包含的模块称为故障树的最大模块。
G1,G4,G5,G6与其子树构成了模块。G2和G3不够成模块。因为G9和G10两个基本事件没有到达同一个逻辑门。
2 算法思想
对故障树进行两次遍历,第一次遍历采用深度优先遍历的方法,对节点每访问一次做一个标记(访问到该节点用的步数)。标记1,第一次访问该节点的步数。标记2,第二次访问该节点用到步数。标记3,第三次访问该节点用到的步数。第二次遍历,遍历每一个节点的子节点,得到每个节点的所有子节点的最小和最大访问步数。
如果一个节点的所有子节点没有在该节点的第一次访问之前被访问过 ,并且也没有在该节点最后一次访问之后被访问过 ,那么该节点和其子节点就是一个模块。即
当满足下述条件时,结点 N 是独立模块:
(1)与其相连接的所有下层事件中,标记 1 的最小值 min 比结点 N 的标记 1的值大;
(2)与其相连接的所有下层事件中,标记 3 的最大值 max 比对结点 N 的标记2 的值小。
3.算法模拟
步数 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
事件 | G1 | G2 | G4 | E7 | E8 | G4 | G5 | E9 | E10 | G5 |
步数 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
事件 | G2 | G3 | G5 | E9 | E10 | G5 | G6 | E11 | E12 | G6 |
步数 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
事件 | G3 | G1 |
表2.1 深度访问步数
G1 | G2 | G3 | G4 | G5 | G6 | |
标记1 | 1 | 2 | 12 | 3 | 7 | 17 |
标记2 | 22 | 11 | 21 | 6 | 10 | 20 |
标记3 | 22 | 11 | 21 | 6 | 16 | 20 |
MIN | 2 | 3 | 7 | 4 | 8 | 18 |
MAX | 21 | 16 | 20 | 5 | 15 | 19 |
E7 | E8 | E9 | E10 | E11 | E12 | |
标记1 | 4 | 5 | 8 | 9 | 18 | 19 |
标记2 | 4 | 5 | 14 | 15 | 18 | 19 |
标记3 | 4 | 5 | 14 | 15 | 18 | 19 |
表2.2 标记表
由标记表可知,G1,G4,G5,G6以及底事件是独立模块。