51#ifndef DOXYGEN_SHOULD_SKIP_THIS
The base class for all elimination sequence algorithms used by triangulation algorithms.
Base Class for all the algorithms producing a junction given a set of cliques/subcliques resulting fr...
bool _has_junction_tree_
a boolean indicating whether the junction tree has been constructed
const CliqueGraph & maxPrimeSubgraphTree() override
returns a junction tree of maximal prime subgraphs
NodeProperty< NodeId > _reverse_elim_order_
the elimination order (access by NodeId)
void setFillIns(bool)
sets/unsets the record of the fill-ins in the standard triangulation procedure
const NodeProperty< NodeId > & reverseEliminationOrder()
returns a table indicating, for each node, at which step it was deleted by the triangulation process
JunctionTreeStrategy * junction_tree_strategy_
the junction tree strategy used by the triangulation
void _computeMaxPrimeJunctionTree_()
computes the junction tree of the maximal prime subgraphs
void _computeEliminationTree_()
returns an elimination tree from a triangulated graph
JunctionTreeStrategy & junctionTreeStrategy() const
returns the junction tree strategy used by the triangulation
const UndiGraph * originalGraph() const
returns the graph to be triangulated
bool _has_triangulation_
a boolean indicating whether we have parformed a triangulation
bool _we_want_fill_ins_
a boolean indicating if we want fill-ins list with the standard triangulation method
EliminationSequenceStrategy * elimination_sequence_strategy_
the elimination sequence strategy used by the triangulation
NodeProperty< NodeId > _node_2_max_prime_clique_
indicates which clique of the max prime junction tree was created by the elmination of a given node (...
CliqueGraph _max_prime_junction_tree_
the maximal prime subgraph junction tree computed from the junction tree
const UndiGraph * _original_graph_
a pointer to the (external) original graph (which will be triangulated)
bool _has_elimination_tree_
a boolean indicating whether the elimination tree has been computed
bool _minimality_required_
indicates whether the triangulation must be minimal
virtual bool isMinimalityRequired() const final
indicates wether minimality is required
EliminationSequenceStrategy & eliminationSequenceStrategy() const
returns the elimination sequence strategy used by the triangulation
const NodeProperty< NodeId > & createdJunctionTreeCliques() override
returns the Ids of the cliques of the junction tree created by the elimination of the nodes
NodeId createdJunctionTreeClique(const NodeId id) override
returns the Id of the clique of the junction tree created by the elimination of a given node during t...
const CliqueGraph & junctionTree() override
returns a compatible junction tree
void _triangulate_()
the function that performs the triangulation
const std::vector< NodeId > & eliminationOrder() override
returns an elimination ordering compatible with the triangulated graph
std::vector< NodeId > _elim_order_
the order in which nodes are eliminated by the algorithm
CliqueGraph _elim_tree_
the elimination tree computed by the algorithm
bool _has_max_prime_junction_tree_
indicates whether a maximal prime subgraph junction tree has been constructed
const CliqueGraph * _junction_tree_
the junction tree computed by the algorithm
NodeId createdMaxPrimeSubgraph(const NodeId id) override
returns the Id of the maximal prime subgraph created by the elimination of a given node during the tr...
const CliqueGraph & eliminationTree() override
returns the elimination tree of a compatible ordering
Base class for undirected graphs.
Size Idx
Type for indexes.
Size NodeId
Type for node ids.
HashTable< NodeId, VAL > NodeProperty
Property on graph elements.
gum is the global namespace for all aGrUM entities
base class for all non-incremental triangulations.