Abstract Graphical Model

Graphical models are a parametrized abstract type GraphicalModel{T, L} where T is the type of the graph and L is the type of labelings of the graph, this is either a NamedTuple type or Nothing. Being an abstract type there is no constructor for a graphical model. All graphical models are subtypes of GraphicalModel, and they inherit their type parameters from the graph that is passed to the constructor. See the section corresponding to the graphical model type you would like to work with.

Attributes

The following functions are attributes for all graphical models.

model_ringMethod
model_ring(GM::GraphicalModel)

Returns a polynomial ring where the indeterminants correspond to the defining parameters of the model.

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
parameter_ringMethod
parameter_ring(GM::GraphicalModel)

Returns a polynomial ring where the indeterminants parametrize the variety of possible defining parameter values for the model.

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
parametrizationMethod
parametrization(GM::GraphicalModel)

Returns a map from the model ring to the parameter ring.

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source

Vanishing ideal

Ensuring that any concrete graphical model (one that is a subtype of GraphicalModel) have implementations for the above attributes ensures that we can compute the vanishing ideal. In can be the case that certain graphical models will benefit from certain algorithms, and in those cases the vanishing_ideal will be overloaded for that specific type. In all other cases the vanishing ideal computation will fallback to this general function. There is a keyword argument for setting algorithm which is set to :eliminate by default, other possibilities are :f4 and :markov.

If you are only interested in generators up to a certain degree, considering using components_of_kernel with parametrization.

vanishing_idealMethod
vanishing_ideal(M::GraphicalModel; algorithm::Symbol = :eliminate)

Compute the vanishing ideal for a graphical model M. This is done by computing the kernel of the parametrization.

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source

Extending functionality

One major design decision was to allow for the graphs and their labels to parametrize the graphical models. This allows users to create their own graphical model types and gives them the possibility to overload the appropriate attribute functions. In this way, users can reuse the implementations for the functions defined for the abstract grpahical models, which avoids code duplication and also allows for the application of theorems for specific types of graphical models.