28 #ifndef GUM_STATIC_TRIANGULATION_H 29 #define GUM_STATIC_TRIANGULATION_H 179 bool minimality =
false);
199 bool minimality =
false);
320 std::vector< Arc >& merged_cliques,
329 #ifndef GUM_NO_INLINE 331 #endif // GUM_NO_INLINE const CliqueGraph & junctionTree()
returns a compatible junction tree
const UndiGraph & triangulatedGraph()
returns the triangulated graph
const UndiGraph * originalGraph() const
returns the graph to be triangulated
void clear()
reinitialize the graph to be triangulated to an empty graph
void setMinimalRequirement(bool)
sets/unset the minimality requirement
virtual bool isMinimalityRequired() const final
indicates wether minimality is required
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 (...
void __triangulate()
the function that performs the triangulation
bool __has_max_prime_junction_tree
indicates whether a maximal prime subgraph junction tree has been constructed
virtual ~StaticTriangulation()
destructor
EliminationSequenceStrategy * _elimination_sequence_strategy
the elimination sequence strategy used by the triangulation
const UndiGraph * __original_graph
a pointer to the (external) original graph (which will be triangulated)
virtual void _initTriangulation(UndiGraph &graph)
the function called to initialize the triangulation process
const EdgeSet & fillIns()
returns the fill-ins added by the triangulation algorithm
void __computeMaxPrimeJunctionTree()
computes the junction tree of the maximal prime subgraphs
bool __has_triangulated_graph
a boolean indicating whether we have constructed the triangulated graph
JunctionTreeStrategy * _junction_tree_strategy
the junction tree strategy used by the triangulation
UndiGraph __triangulated_graph
the triangulated graph
NodeId createdMaxPrimeSubgraph(const NodeId id)
returns the Id of the maximal prime subgraph created by the elimination of a given node during the tr...
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
NodeProperty< NodeId > __reverse_elim_order
the elimination order (access by NodeId)
std::vector< EdgeSet > __added_fill_ins
a vector containing the set of fill-ins added after each node elimination (used by recursive thinning...
The class for generic Hash Tables.
JunctionTreeStrategy & junctionTreeStrategy() const
returns the junction tree strategy used by the triangulation
bool __has_triangulation
a boolean indicating whether we have parformed a triangulation
const CliqueGraph & eliminationTree()
returns the elimination tree of a compatible ordering
bool __has_junction_tree
a boolean indicating whether the junction tree has been constructed
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
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 ...
CliqueGraph __max_prime_junction_tree
the maximal prime subgraph junction tree computed from the junction tree
const std::vector< NodeId > & eliminationOrder()
returns an elimination ordering compatible with the triangulated graph
Base Class for all the algorithms producing a junction given a set of cliques/subcliques resulting fr...
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
NodeProperty< NodeSet > __elim_cliques
the cliques formed by the elimination of the nodes
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
virtual StaticTriangulation * copyFactory() const =0
virtual copy constructor
virtual StaticTriangulation * newFactory() const =0
returns a fresh triangulation of the same type as the current object but over an empty graph ...
EliminationSequenceStrategy & eliminationSequenceStrategy() const
returns the elimination sequence strategy used by the triangulation
const NodeProperty< NodeId > & createdJunctionTreeCliques()
returns the Ids of the cliques of the junction tree created by the elimination of the nodes ...
The base class for all elimination sequence algorithms used by triangulation algorithms.
bool __we_want_fill_ins
a boolean indicating if we want fill-ins list with the standard triangulation method ...
bool __has_fill_ins
indicates whether we actually computed fill-ins
bool __minimality_required
indicates whether the triangulation must be minimal
base class for all non-incremental triangulation methods
const CliqueGraph * __junction_tree
the junction tree computed by the algorithm
void __computeEliminationTree()
returns an elimination tree from a triangulated graph
Base class for undirected graphs.
Size Idx
Type for indexes.
bool __has_elimination_tree
a boolean indicating whether the elimination tree has been computed
virtual void setGraph(const UndiGraph *graph, const NodeProperty< Size > *domsizes)
initialize the triangulation data structures for a new graph
void __computeMaxPrimeMergings(const NodeId node, const NodeId from, std::vector< Arc > &merged_cliques, NodeSet &mark) const
used for computing the junction tree of the maximal prime subgraphs
EdgeSet __fill_ins
the fill-ins added during the whole triangulation process
Interface for all the triangulation methods.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
void __computeRecursiveThinning()
removes redondant fill-ins and compute proper elimination cliques and order
StaticTriangulation & operator=(const StaticTriangulation &)
forbid copy operator
std::vector< NodeId > __elim_order
the order in which nodes are eliminated by the algorithm
const CliqueGraph & maxPrimeSubgraphTree()
returns a junction tree of maximal prime subgraphs
Size NodeId
Type for node ids.
NodeId createdJunctionTreeClique(const NodeId id)
returns the Id of the clique of the junction tree created by the elimination of a given node during t...
CliqueGraph __elim_tree
the elimination tree computed by the algorithm
StaticTriangulation(const EliminationSequenceStrategy &elimSeq, const JunctionTreeStrategy &JTStrategy, bool minimality=false)
default constructor: without any graph
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.