Markov Network

a Markov network as an unoriented graph and as a factor graph

A Markov network is a undirected probabilistic graphical model. It represents a joint distribution over a set of random variables. In pyAgrum, the variables are (for now) only discrete.

A Markov network uses a undirected graph to represent conditional independence in the joint distribution. These conditional independence allow to factorize the joint distribution, thereby allowing to compactly represent very large ones.

\[P(X_1,\cdots,X_n)\propto\prod_{i=1}^{n_c} \phi_i(C_i)\]

Where the \(\phi_i\) are potentials over the \(n_c\) cliques of the undirected graph.

Moreover, inference algorithms can also use this graph to speed up the computations.