# Overview TBNpy is a Python toolkit for **tensor-based Bayesian network (TBN) modelling**, designed to handle high-dimensional probabilistic models within the Bayesian network framework. The library enables scalable probabilistic reasoning for complex infrastructure and engineering systems, where conventional Bayesian network implementations become computationally limiting. ## TBNPy: Python toolkit for tensor-based Bayesian network (TBN) Bayesian network is a powerful framework for probabilistic reasoning under uncertainty. However, traditional implementations often struggle with: - Large numbers of variables and states - Flexible or user-defined inference tasks TBNpy addresses these challenges by: - Accelerated Monte Carlo sample generation through tensor-based operations - Support for customised variables and probability distributions In this way, TBNpy aims to bring **model-based information** (through Bayesian network structures and probability distributions) and **numerical efficiency** (through Monte Carlo sampling and tensor operations) together within a unified framework. ## What TBNpy is for TBNpy is particularly suited to: - System-level risk assessment of large-scale infrastructure networks - Dynamic risk analysis in engineering systems - Research and prototyping of advanced Bayesian inference algorithms ## TBNpy workflows A typical TBNpy workflow consists of the following steps: 1. **BN graph structure** Define the Bayesian network structure using nodes and directed edges. 2. **Variable definition** Specify each variable’s name and (optionally) its state space. 3. **Probability distribution definition** Define probability distributions conditional on parent variables. - For discrete and tractable variables, use conditional probability tensors (CPTs). - For continuous or intractable variables, use custom probability distribution classes. - Custom distributions must accept tensor inputs, and all operations must be implemented using PyTorch tensor operations. 4. **Inference** Perform probabilistic inference using Monte Carlo sampling–based methods.