A Python toolkit for risk-informed, white-box decision-making on complex systems
Are you looking for a risk assessment tool that handles simultaneously multiple types of variables AND complex systems? Then MBNPy is the right tool for you!
As a companion toolkit of matrix-based Bayesian network (MBN), MBNPy is a probabilistic analysis tool specialised for large-scale, discrete-state system events. MBNPy integrates Bayesian network (BN) and System Reliability methods (SRMs) to address multiple types of variables and complex systems together.
Bayesian network
Bayesian network (BN) is a probabilistic graphical model that visualises statistical dependencies between variables. A typical BN graph for a system event is as follows:
BN is a very useful tool for probabilistic analysis of engineering systems:
a complex joint probability distribution can be readily quantified by being broken down to local distributions between directly connected components; and
new information can be systematically incorporated to update an entire model through observation nodes.
However, the problem arises from the converging structure between components $X_1, \cdots, X_N$ and system $S$. The relationship is defined by the $(N+1)$-dimensional distribution $P(S | X_1, \cdots, X_N)$.
When a system has 50 binary-state components, there are more than $10^{15}$ possible state combinations; if a combination can be analysed for 0.001 seconds, it takes 35,702 years to complete computation.
Matrix-based BN
MBN and its companion toolkit MBNpy solve this challenge by two approahces:
It provides encoding algorithms to quantify $P(S | X_1, \cdots, X_N)$ for various classes of system events. A summary of solvable system classes is available at MBNPy's system catalogue.
It provides advanced BN inference and optimisation algorithms specialised for handling large-scale systems.
Citation
For general use of MBNPy, Byun and Song (2021) can be cited. For other specific uses, a summary of developments and publications are available at Publications.