SATMCS: An Efficient SAT-Based Algorithm and Its Improvements for Computing Minimal Cut Sets - Luo, Weilin; Wei, Ou; Wan, Hai (IEEE transactions on reliability, 2021)
Fault tree analysis (FTA) is a prominent reliability analysis method, which is widely used in safety-critical industries. Computing the minimal cut sets (MCSs) of a fault tree, i.e., finding all the smallest combinations of the basic events that cause system failures, is a fundamental step in FTA. Since coherent fault trees are the most common in industrial systems in practice, they are the focus of this article. Computing MCSs is a computationally hard problem. Classical methods have been proposed based on manipulation of Boolean expressions and binary decision diagrams. However, given the inherent intractability of computing MCSs in practice, there are still limitations on time and memory in these methods. Therefore, developing new methods over different paradigms remains to be an interesting research direction. In this article, motivated by recent progress on modern Boolean satisfiability problem (SAT) solvers, we present a new method for computing MCSs based on SAT, namely SATMCS . Specifically, given a fault tree, we iteratively search for a cut set based on the conflict-driven clause learning framework. By exploiting local propagation graph, which characterizes the partial failure propagation based on the cut set, we provide efficient algorithms for extracting an MCS. The new MCS is learned as a block clause for SAT solving, and the conflict clauses in iterations are incrementally recorded, which helps to prune search space and ensures completeness of the results. Moreover, we adopt a jump-chronological backtracking strategy to prepare the next iteration, which allows for reusing the same search steps in SAT solving. We compare SATMCS with state-of-the-art commercial tools on practical fault trees. Although SATMCS is only a prototype, it shows comparable performance in time consumption with one tool ( XFTA ), and in various cases, it outperforms the others ( FaultTree + and Commander ). Besides, SATMCS exhibits much better performance on memory usage than these tools. Specifically, SATMCS consumes about one order of magnitude less memory usage in most instances.