Decision Diagram Algorithms to Extract Minimal Cutsets of Finite Degradation Models
<p>A high pressure protection system taken from ISO/TR 12489 (system TA4).</p> "> Figure 2
<p>A fault tree describing the failures of the TA4 HIPPS.</p> "> Figure 3
<p>Hasse diagrams for some typical finite degradation structures.</p> "> Figure 4
<p>Hasse diagram for the finite degradation structure <math display="inline"><semantics> <mrow> <msup> <mi mathvariant="bold">WDF</mi> <mn>2</mn> </msup> <mo>=</mo> <mi mathvariant="bold">WDF</mi> <mo>⊗</mo> <mi mathvariant="bold">WDF</mi> </mrow> </semantics></math>.</p> "> Figure 5
<p>The decision diagram encoding the state variable <tt>S2</tt>.</p> "> Figure 6
<p>Approximation schemes for the extraction of minimal cutsets.</p> "> Figure A1
<p>The S2ML + FDS model for the TA4 system. Part 1: domains and operators.</p> "> Figure A2
<p>The S2ML + FDS model for the TA4 system. Part 2: classes for the different types of components.</p> "> Figure A3
<p>The S2ML + FDS model for the TA4 system. Part 3: description of the HIPPS.</p> ">
Abstract
:1. Introduction
2. Illustrative Example
2.1. Description
2.2. Classification of Failures
- All other components may fail (independently). Their probabilities of failure follow negative exponential distributions. The parameters of these distributions are given in Table 1. Safe failures are always detected.
- The system is maintained once a year (once in 8760 hours). The production is stopped during the maintenance. Components are as good as new after the maintenance.
2.3. Discussion
- Which algebraic properties such a logic should they obey so that usual notions of reliability engineering (minimal cutsets, top-event probability, importance measures, safety integrity levels…) can be lifted-up into the logic?
- Once the mathematical foundations have been established, how to perform efficiently calculations of risk indicators?
3. Finite Degradation Models
3.1. Finite Degradation Structures
- C is a finite set of constants.
- is a partial order over C.
- is the unique lower bound of C, i.e., the unique element such that for all .
3.2. Product
- stands for the Cartesian product of C and D.
- For all and , if and only if and .
- .
3.3. Formulas
- For all , .
- .
- such that .
- Constants, i.e., members of support sets of finite degradation structures of , are well formed formulas. The type of a constant is the finite degradation structure it comes from.
- Variables of are well-formed formulas. The type of a variable V is simply its domain.
- If o is an operator of such that , and are well formed formulas of types , then is a well formed formula of type s.
- If f is reduced to a constant c, then .
- If f is reduced to a variable V, then .
- If f is in the form , then .
3.4. Finite Degradation Models
- , , is a finite set of state variables.
- , , is a finite set of flow variables.
- is a finite set of equations such that for :
- –
- is the jth variable of .
- –
- is a formula built over .
- –
3.5. Semantics
3.6. Probability Measures
4. Minimal Cutsets
4.1. Definition
- A product is a cutset for the observer if .
- A cutset for is minimal if none of its proper subproducts is a cutset.
4.2. Minimal States
- .
- There is no other state of such that and .
4.3. Decomposition Theorem
- , or
- and .
5. Decision Diagram Algorithms
5.1. Implicative Normal Form
- Consequences of the implications of f are literals built over the same variable.
- Hypotheses of the implications of f are pairwisely disjoint products.
5.2. Decision Diagrams
- Indices of the literals built over a variable must be consecutive, i.e., it is not allowed to intertwine indices associated with literals built over different variables.
- For any variable and , if , then .
- The leaf nil.
- Other leaves, which are labeled with constants.
- Internal nodes, which are labeled with the index of a literal and have two out-edges: the then out-edge and the else out-edge.
5.3. Operations
- , for some constant c. In this case, the unique table is looked up for the node , which is added if it did not exist before.
- , for some state variable V. In this case, the decision diagram associated with this variable is built. This decision diagram is made of a series of internal nodes in the form , where i is the index of the literal , as illustrated in Figure 5 for the variable S2 of our example.
- , for some flow variable W. In this case, the decision diagram associated with W is calculated (via the equation defining W) and returned.
- for some operator . In this case, the decision diagrams for the arguments , …, are calculated, then the operator is applied onto these decision diagrams. The application of may require the applications of more primitive operators. For instance, the calculation of requires first the calculation of , then the calculation of .
Algorithm 1 Pseudo-code for the function that performs binary operation on decision diagrams. | |
1 | define PerformBinaryOperation(op: operation, m: Node, n: Node) |
2 | r = CalculateTerminalResult(op, m, n) |
3 | if r!=None: |
4 | return r |
5 | r = LookForEntryInCache(op, m, n) |
6 | if r!=None: |
7 | return r |
8 | if m==□c and n==Δ(j,n1,n0): |
9 | r1 = PerformBinaryOperation(op, m, n1) |
10 | r0 = PerformBinaryOperation(op, m, n0) |
11 | r = NewNode(j, r1, r0) |
12 | else if m==Δ(i,m1,m0) and n==□(d): |
13 | r1 = PerformBinaryOperation(op, m1, n) |
14 | r0 = PerformBinaryOperation(op, m0, n) |
15 | r = NewNode(i, r1, r0) |
16 | else if m==Δ(i,m1,m0) and n==Δ(j,n1,n0) and i<j: |
17 | k = GetOtherwiseChild(i, n) |
18 | r1 = PerformBinaryOperation(op, m1, k) |
19 | r0 = PerformBinaryOperation(op, m0, k) |
20 | r = NewNode(i, r1, r0) |
21 | else if m==Δ(i,m1,m0) and n==Δ(j,n1,n0) and i>j: |
22 | k = GetOtherwiseChild(j, m) |
23 | r1 = PerformBinaryOperation(op, k, n1) |
24 | r0 = PerformBinaryOperation(op, k, n0) |
25 | r = NewNode(i, r1, r0) |
26 | else m==Δ(i,m1,m0) and n==Δ(i,n1,n0) |
27 | r1 = PerformBinaryOperation(op, m1, n1) |
28 | r0 = PerformBinaryOperation(op, m0, n0) |
29 | r = NewNode(i, r1, r0) |
30 | AddEntryToCache(op, m, n, r) |
31 | return r |
32 | |
33 | define GetOtherwiseChild(i: index, m: Node) |
34 | if m==Node(j, m1, m0) and Variable(i)==Variable(j) |
35 | return GetOtherwiseChild(i, m0) |
36 | return m |
Discussion
5.4. Extraction of Minimal Cutsets
- They have two leaves: the leaf which encodes the set containing only the empty product and the leaf which encodes the empty set of products.
- An internal node encodes the set of products defined by the pivot decomposition (Lemma 4), i.e.,
Algorithm 2 Pseudo-code for the function extracting the minimal cutsets. | |
1 | ExtractMinimalCutsets(U: UpperSet, m: Node) |
2 | if m==□c: |
3 | if c in U: |
4 | return NewLeaf(1) |
5 | return NewLeaf(0) |
6 | r = LookForEntryInCache(ExtractMinimalCutsets, U, m) |
7 | if r!=None: |
8 | return r |
9 | m==Δ(i,m1,m0) |
10 | r0 = ExtractMinimalCutsets(U, m0) |
11 | r1 = ExtractMinimalCutsets(U, m1) |
12 | r1 = Prune(i, r1, r0) |
13 | r = NewZBDDNode(i, r1, r0) |
14 | AddEntryToCache(ExtractMinimalCutsets, U, m, r) |
15 | return r |
Algorithm 3 Pseudo-code for the function Prune implementing the without operator. | |
1 | Prune(i: Index, m: Node, n: Node) |
2 | if n==nil: |
3 | return m |
4 | if n==□(1): |
5 | return nil |
6 | n==Δ(j,n1,n0) |
7 | if Variable(i)!=Variable(j): |
8 | r = Without(m, n) |
9 | else if Constant(i)>Constant(j): |
10 | r = Without(m, n1) |
11 | r = Prune(i, r, n0) |
12 | else: |
13 | r = Prune(i, m, n0) |
14 | return r |
Algorithm 4 Pseudo-code for the function Without implementing the without operator. | |
1 | Without(m: Node, n: Node) |
2 | if m==nil or n==□(1): |
3 | return nil |
4 | if m==□(1) or n==nil: |
5 | return m |
6 | m==Δ(i,m1,m0) |
7 | n==Δ(j,n1,n0) |
8 | if i>j: |
9 | return Without(m, n0) |
10 | r = LookForEntryInCache(Without, m, n) |
11 | if r!=None: |
12 | return r |
13 | if i<j: |
14 | r0 = Without(m0, n) |
15 | r1 = Prune(i, m1, n) |
16 | else: // i==j |
17 | r0 = Without(m0, n0) |
18 | r1 = Without(m1, n1) |
19 | r1 = Prune(i, r1, n0) |
20 | r = NewZBDDNode(i, r1, r0) |
21 | AddEntryToCache(Without, m, n, r) |
22 | return r |
6. Approximation Schemes
6.1. Rational
6.2. Implementation
Algorithm 5 Pseudo-code for the truncation algorithm. | |
1 | define TruncateDecisionDiagram(m: Node, pr: probability) |
2 | if m==nil: |
3 | return nil |
4 | if pr<threshold: |
5 | return NewLeaf(⊥) |
6 | if m==□c: |
7 | return NewLeaf(c) |
8 | m==Δ(i,m1,m0) |
9 | r1 = TruncateDecisionDiagram(m1, pr*p(i)) |
10 | r0 = TruncateDecisionDiagram(m0, pr) |
11 | r = NewNode(i, r1, r0) |
12 | return r |
6.3. Complexity
7. Experimental Results
7.1. Modeling
7.2. Results
8. Conclusions
- The concept of finite degradation structure, which is the core of combinatorial models used in reliability engineering.
- Two decomposition theorems, one for minimal cutsets and one for the “without” operator, which generalize those proposed by the first author for the Boolean case.
- The technology of decision diagrams, which generalizes Minato’s zero-suppressed binary decision diagrams so to handle discrete variables and functions.
Author Contributions
Funding
Acknowledgments
Conflicts of Interest
Appendix A. S2ML + FDS Model for the Illustrative Use Case
References
- Rasmussen, N.C. Reactor Safety Study. An Assessment of Accident Risks in U.S. Commercial Nuclear Power Plants; Technical Report WASH 1400, NUREG-75/014; U.S. Nuclear Regulatory Commission: Rockville, MD, USA, 1975.
- Rauzy, A. Notes on Computational Uncertainties in Probabilistic Risk/Safety Assessment. Entropy 2018, 20, 162. [Google Scholar] [CrossRef]
- Andrews, J.D.; Moss, R.T. Reliability and Risk Assessment, 2nd ed.; ASM International: Materials Park, OH, USA, 2002. [Google Scholar]
- Kumamoto, H.; Henley, E.J. Probabilistic Risk Assessment and Management for Engineers and Scientists; IEEE Press: Piscataway, NJ, USA, 1996. [Google Scholar]
- Lisnianski, A.; Levitin, G. Multi-State System Reliability; Quality, Reliability and Engineering Statistics, World Scientific: London, UK, 2003. [Google Scholar]
- Natvig, B. Multistate Systems Reliability Theory with Applications; Wiley: Hoboken, NJ, USA, 2010. [Google Scholar]
- Zaitseva, E.; Levashenko, V. Reliability analysis of multi-state system with application of multiple-valued logic. Int. J. Qual. Reliab. Manag. 2017, 34, 862–878. [Google Scholar] [CrossRef]
- Stewart, W.J. Introduction to the Numerical Solution of Markov Chains; Princeton University Press: Princeton, NJ, USA, 1994. [Google Scholar]
- Ajmone-Marsan, M.; Balbo, G.; Conte, G.; Donatelli, S.; Franceschinis, G. Modelling with Generalized Stochastic Petri Nets; Wiley Series in Parallel Computing; John Wiley and Sons: New York, NY, USA, 1994. [Google Scholar]
- Rauzy, A. Guarded Transition Systems: A new States/Events Formalism for Reliability Studies. J. Risk Reliab. 2008, 222, 495–505. [Google Scholar] [CrossRef]
- Batteux, M.; Prosvirnova, T.; Rauzy, A. AltaRica 3.0 in 10 Modeling Patterns. Int. J. Crit.-Comput.-Based Syst. 2019, 9, 133–165. [Google Scholar] [CrossRef]
- Rauzy, A.; Yang, L. Finite Degradation Structures. J. Appl. Logics Ifcolog J. Logics Their Appl. 2019, 6, 1471–1495. [Google Scholar]
- Fussel, J.B.; Vesely, W.E. A New Methodology for Obtaining Cut Sets for Fault Trees. Trans. Am. Nucl. Soc. 1972, 15, 262–263. [Google Scholar]
- Berg, U. RISK SPECTRUM, Theory Manual; RELCON Teknik AB: Sundbyberg, Sweden, 1994. [Google Scholar]
- Rauzy, A. Anatomy of an Efficient Fault Tree Assessment Engine. In Proceedings of the International Joint Conference PSAM’11/ESREL’12, Helsinki, Finland, 25–29 June 2012; Virolainen, R., Ed.; Curran Associates, Inc.: Red Hook, NY, USA, 2012; pp. 3333–3343. [Google Scholar]
- Rauzy, A. Mathematical Foundation of Minimal Cutsets. IEEE Trans. Reliab. 2001, 50, 389–396. [Google Scholar] [CrossRef]
- Jung, W.S.; Han, S.H.; Ha, J. A fast BDD algorithm for large coherent fault trees analysis. Reliab. Eng. Syst. Saf. 2004, 83, 369–374. [Google Scholar] [CrossRef]
- Xing, L.; Amari, S.V. Binary Decision Diagrams and Extensions for System Reliability Analysis; Scrivener Publishing, Wiley: Beverly, MA, USA, 2015. [Google Scholar]
- Minato, S.I. Zero-Suppressed BDDs for Set Manipulation in Combinatorial Problems. In Proceedings of the 30th ACM/IEEE Design Automation Conference, DAC’93, Dallas, TX, USA, 14–18 June 1993; pp. 272–277. [Google Scholar] [CrossRef]
- International Organization for Standardization. ISO/TR 12489:2013 Petroleum, Petrochemical and Natural Gas Industries—Reliability Modelling and Calculation of Safety Systems; International Organization for Standardization: Geneva, Switzerland, 2013. [Google Scholar]
- International Electrotechnical Commission. International IEC Standard IEC61508—Functional Safety of Electrical/Electronic/Programmable Safety-Related Systems (E/E/PE, or E/E/PES); International Electrotechnical Commission: Geneva, Switzerland, 2010. [Google Scholar]
- International Organization for Standardization. ISO26262 Functional Safety—Road Vehicle; International Standardization Organization: Geneva, Switzerland, 2012. [Google Scholar]
- Awodey, S. Category Theory. In Oxford Logic Guides; Oxford University Press: Oxford, UK, 2010; Volume 52. [Google Scholar]
- Davey, B.A.; Priestley, H.A. Introduction to Lattices and Order; Cambridge University Press: Cambridge, UK, 2002. [Google Scholar]
- Morreale, E. Recursive Operators for Prime Implicant and Irredundant Normal Form Determination. IEEE Trans. Comput. 1970, C-19, 504–509. [Google Scholar] [CrossRef]
- Brace, K.S.; Rudell, R.L.; Bryant, R.S. Efficient Implementation of a BDD Package. In Proceedings of the 27th ACM/IEEE Design Automation Conference, Orlando, FL, USA, 24–28 June 1990; pp. 40–45. [Google Scholar] [CrossRef]
- Wegener, I. Branching Programs and Binary Decision Diagrams—Theory and Applications; SIAM Monographs on Discrete Mathematics and Applications, SIAM: Philadelphia, PA, USA, 2000. [Google Scholar]
- Rauzy, A. Some Disturbing Facts about Depth First Left Most Variable Ordering Heuristics for Binary Decision Diagrams. J. Risk Reliab. 2008, 222, 573–582. [Google Scholar] [CrossRef]
- Rudell, R.L. Dynamic Variable Ordering for Ordered Binary Decision Diagrams. In Proceedings of the IEEE International Conference on Computer Aided Design, Santa Clara, CA, USA, 7–11 November 1993; Lightner, M., Jess, J.A.G., Eds.; pp. 42–47. [Google Scholar]
- Rauzy, A. BDD for Reliability Studies. In Handbook of Performability Engineering; Misra, K.B., Ed.; Elsevier: Amsterdam, The Netherlands, 2008; pp. 381–396. [Google Scholar]
- Nusbaumer, O.; Rauzy, A. Fault Tree Linking versus Event Tree Linking Approaches: A Reasoned Comparison. J. Risk Reliab. 2013, 227, 315–326. [Google Scholar] [CrossRef]
- Epstein, S.; Rauzy, A.; Wakefield, D. Can We Trust PRA: Take 3. In Proceedings of the 8th International Conference on Probabilistic Safety Assessment and Management, New Orleans, LO, USA, 14–18 May 2006. [Google Scholar]
- Valiant, L.G. The Complexity of Enumeration and Reliability Problems. SIAM J. Comput. 1979, 8, 410–421. [Google Scholar] [CrossRef]
- Viennot, X.G. Trees Everywhere. In Proceedings of the 15th Colloquium on Trees in Algebra and Programming, CAAP’90, Copenhagen, Denmark, 15–18 May 1990; Number 431 in LNCS. Springer: Berlin/Heidelberg, Germany, 1990; pp. 18–41. [Google Scholar]
- Batteux, M.; Prosvirnova, T.; Rauzy, A. From Models of Structures to Structures of Models. In Proceedings of the IEEE International Symposium on Systems Engineering (ISSE 2018), Roma, Italy, 1–3 October 2018. [Google Scholar] [CrossRef]
- Papadopoulos, Y.; Walker, M.; Parker, D.; Rüde, E.; Hamann, R.; Uhlig, A.; Grätz, U.; Liend, R. An approach to optimization of fault tolerant architectures using HiP-HOPS. J. Eng. Fail. Anal. 2011, 18, 590–608. [Google Scholar] [CrossRef]
Parameter | Sensor | Logic Solver | Isolation Valve |
---|---|---|---|
Safe failure rate | 3.00 × 10−6 h | 3.00 × 10−7 h | NA |
Dangerous detected failure rate | 3.00 × 10−7 h | 6.00 × 10−7 h | 2.90 × 10−6 h |
Dangerous undetected failure rate | 3.00 × 10−7 h | NA | 2.90 × 10−7 h |
V | V | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
w | fs | fd | fu | w | fs | fd | fu | ||||
U | w | w | fs | fd | fu | U | w | w | fs | w | w |
fs | fs | fs | fd | fd | fs | fs | fs | fs | fs | ||
fd | fd | fs | fd | fd | fd | w | fs | fd | fu | ||
fu | fu | fs | fd | fu | fu | w | fs | fu | fu |
TA4 | SB1‖SB2 | |
SB1 | S1⧁LS1⧁V1 | |
SB2 | SL2⧁LS2⧁AL2 | |
SL2 | S2‖S3 | |
AL2 | V1‖V2 |
S2=w∧S3=w→SL2=w | |
∧ | S2=w∧S3=fs→SL2=fs |
∧ | S2=w∧S3=fd→SL2=w |
∧ | S2=w∧S3=fu→SL2=w |
∧ | S2=fs→SL2=fs |
∧ | S2=fd∧S3=w→SL2=w |
∧ | S2=fd∧S3=fs→SL2=fs |
∧ | S2=fd∧S3=fd→SL2=fd |
∧ | S2=fd∧S3=fu→SL2=fu |
∧ | S2=fu∧S3=w→SL2=w |
∧ | S2=fu∧S3=fs→SL2=fs |
∧ | S2=fu∧S3=fd→SL2=fu |
∧ | S2=fu∧S3=fu→SL2=fu |
S1.input | w | S1.output | S1.input⧁S1.state | ||
S2.input | w | S2.output | S2.input⧁S2.state | ||
S3.input | w | S3.output | S3.input⧁S3.state | ||
LS1.input | S1.output | LS1.output | LS1.input⧁LS1.state | ||
LS2.input | S2.output‖S3.output | LS2.output | LS2.input⧁LS2.state | ||
V1.input | LS1.output‖LS2.output | V1.output | V1.input⧁V1.state | ||
V2.input | LS2.output | V2.output | V2.input⧁V2.state | ||
state | V1.output‖V2.output |
Model | ||
---|---|---|
Failed safe | 6.31 × 10−2 | 1.21 × 10−1 |
Failed dangerous | 2.43 × 10−4 | 9.57 × 10−4 |
Failed dangerous undetected | 3.85 × 10−5 | 1.46 × 10−4 |
Probabilities | Minimal Cutsets | |
---|---|---|
1.31 × 10−2 | 2.59 × 10−2 | S1.state=fs |
1.31 × 10−2 | 2.59 × 10−2 | LS1.state=fs |
1.31 × 10−2 | 2.59 × 10−2 | S2.state=fs |
1.31 × 10−2 | 2.59 × 10−2 | S3.state=fs |
1.31 × 10−2 | 2.59 × 10−2 | LS2.state=fs |
Probabilities | Minimal Cutsets | |
---|---|---|
2.26 × 10−9 | 1.81 × 10−8 | S1.state=fd, S2.state=fd, S3.state=fd |
3.45 × 10−6 | 1.38 × 10−5 | S1.state=fd, LS2.state=fd |
4.53 × 10−9 | 3.61 × 10−8 | LS1.state=fd, S2.state=fd, S3.state=fd |
6.89 × 10−6 | 2.75 × 10−5 | LS1.state=fd, LS2.state=fd |
2.18 × 10−8 | 1.73 × 10−7 | S2.state=fd, S3.state=fd, V1.state=fd |
3.31 × 10−5 | 1.32 × 10−4 | LS2.state=fd, V1.state=fd |
1.59 × 10−4 | 6.29 × 10−4 | V1.state=fd, V2.state=fd |
Probabilities | Minimal Cutsets | |
---|---|---|
2.26 × 10−9 | 1.81 × 10−8 | S1.state=fu, S2.state=fd, S3.state=fd |
3.45 × 10−6 | 1.38 × 10−5 | S1.state=fu, LS2.state=fd |
2.26 × 10−9 | 1.81 × 10−8 | S1.state=fd, S2.state=fu, S3.state=fd |
2.26 × 10−9 | 1.81 × 10−8 | S1.state=fd, S2.state=fd, S3.state=fu |
4.53 × 10−9 | 3.61 × 10−8 | LS1.state=fd, S2.state=fu, S3.state=fd |
4.53 × 10−9 | 3.61 × 10−8 | LS1.state=fd, S2.state=fd, S3.state=fu |
2.18 × 10−8 | 1.73 × 10−7 | S2.state=fu, S3.state=fd, V1.state=fd |
2.18 × 10−8 | 1.73 × 10−7 | S2.state=fd, S3.state=fu, V1.state=fd |
2.19 × 10−9 | 1.75 × 10−8 | S2.state=fd, S3.state=fd, V1.state=fu |
3.33 × 10−6 | 1.33 × 10−5 | LS2.state=fd, V1.state=fu |
1.60 × 10−5 | 6.36 × 10−5 | V1.state=fu, V2.state=fd |
1.60 × 10−5 | 6.36 × 10−5 | V1.state=fd, V2.state=fu |
© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Rauzy, A.; Yang, L. Decision Diagram Algorithms to Extract Minimal Cutsets of Finite Degradation Models. Information 2019, 10, 368. https://doi.org/10.3390/info10120368
Rauzy A, Yang L. Decision Diagram Algorithms to Extract Minimal Cutsets of Finite Degradation Models. Information. 2019; 10(12):368. https://doi.org/10.3390/info10120368
Chicago/Turabian StyleRauzy, Antoine, and Liu Yang. 2019. "Decision Diagram Algorithms to Extract Minimal Cutsets of Finite Degradation Models" Information 10, no. 12: 368. https://doi.org/10.3390/info10120368
APA StyleRauzy, A., & Yang, L. (2019). Decision Diagram Algorithms to Extract Minimal Cutsets of Finite Degradation Models. Information, 10(12), 368. https://doi.org/10.3390/info10120368