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.
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.