Meek Rules Algorithm

class pyAgrum.MeekRules

MeekRules class applies the Meek rules to a mixed graph or PDAG (Partially Directed Acyclic Graph) in order to propagate orientation constraints and obtain a CPDAG (Completed Partially Directed Acyclic Graph) or a DAG (Directed Acyclic Graph).

The Meek Rules help complete the orientation of edges in a mixed graph, resulting in a CPDAG that reflects the possible causal relationships among variables while accounting for the observed conditional independencies in the data. The CPDAG is a more refined and directed version of the original PDAG (Partially Directed Acyclic Graph) obtained from the data.

choices()

Returns the list of the arbitrary choices made by the last execution of pyAgrum.MeekRules.progagatesToCPDAG or pyAgrum.MeekRules.progagatesToDAG.

Returns:

The list of the arbitrary choices made by the last execution of pyAgrum.MeekRules.progagatesToCPDAG or pyAgrum.MeekRules.progagatesToDAG. Each tuple represents a pyAgrum.Edge.

Return type:

list of tuple

propagate(mg)
Parameters:

mg (MixedGraph)

Return type:

MixedGraph

propagateToCPDAG(mg)

Propagates orientation constraints in the graph according to the Meek rules. The Meek rules are applied iteratively until no more orientation constraints can be propagated. And then arbitratily resolves float orientations. This method returns a pyAgrum.PDAG with the properties of CPDAG.

The arbitrary resolution of float orientations is not deterministic. It depends on the order of the edges in the graph. pyAgrum.MeekRules.Choices returns the list of the arbitrary choices made by the last execution of pyAgrum.MeekRules.progagatesToCPDAG.

Parameters:

mg (pyAgrum.MixedGraph) – The graph to be completed.

Returns:

The completed pyAgrum.PDAG (CPDAG).

Return type:

pyAgrum.PDAG

propagateToDAG(mg)

Calls propagateToCPDAG and then orients the remaining edges arbitrarily according to some heuristics. pyAgrum.MeekRules.Choices returns the list of the arbitrary choices made by the last execution of pyAgrum.MeekRules.progagatesToDAG.

Parameters:

mg (pyAgrum.MixedGraph or pyAgrum.PDAG) – The graph to be completed.

Returns:

The completed pyAgrum.DAG.

Return type:

pyAgrum.DAG