A GRaphical Universal Modeler (


aGrUM is a C++ library for graphical models.


pyAgrum is a Python wrapper for the C++ aGrUM library.

aGrUM is a C++ (17) library and contains :

  • dedicated fundamental data structures,
  • light directed and undirected graphs,
  • efficient and extensible multidimensional matrix,
  • classical state-of-the-art algorithms Bayesian Networks but also original ones,
  • no GUI,
  • tools for researcher (random generation of objets, introspection, etc.),
  • tools for integraters (listener, multiple format for bayes nets file, etc.).

aGrUM is (L)GPL, cross-platform (linux, windows, mac) and on gitlab (


Bayesian Network Input/Output bif/bifxml/dsl/net/uai/o3prm formats
Parallelized Exact Inference Variable Elimination, Shafer-Shenoy Inference, Lazy Propagation
Marginal targets , joint targets
Optimized Relevance Reasoning
Incremental inference
Approximated Inference Gibbs Sampling, Weighted Sampling, Importance Sampling
Loopy Belief Propagation
Gibbs, Weighted, Importance LoopySampling
Parallelized Parameter Learning Pure max-Likelihood, Laplace, Dirichlet
Multiple score
Parametric EM for missing values.
Parallelized Structural Learning score-based learning : Greedy Hill-Climbing, local search with tabu-list, K2
information-based learning : 3off2, miic (with latent confounder variable discovery)
Graphical constraints (forced arcs, forbidden arcs, initial structures, partial order, possible arcs)
Algorithms Exact and approximated distance/divergence between BNs (KL, Bhattacharya, Hellinger)
Mutual information, entropy
Simulation (generation of csv files)
Markov Blanket, essential graph
Markov network Input/Output uai
Parallelized Inference Shafer-Shenoy
Influence Diagram Input/Output bifxml
Inference Junction Trees
Probabilistic Relational Model Input/output O3PRM language parser
Exact inference Structured Variable Elimination (SVE)
Credal Networks Parallelized Approximated inference GL2U, MC Sampling
FMDP Input
Planning SVI, SPUDD
Multi-Valued Decision Diagram SPUnDD

Legend: original features in aGrUM.


Documentation & supports

Contributors, Projects and Applications