aGrUM  0.16.0
defaultJunctionTreeStrategy.h
Go to the documentation of this file.
1 
30 #ifndef GUM_DEFAULT_JUNCTION_TREE_STRATEGY_H
31 #define GUM_DEFAULT_JUNCTION_TREE_STRATEGY_H
32 
34 
35 namespace gum {
36 
45  public:
46  // ############################################################################
48  // ############################################################################
50 
53 
56 
59 
62 
64  virtual DefaultJunctionTreeStrategy* newFactory() const final;
65 
67 
71  copyFactory(StaticTriangulation* triangulation = nullptr) const final;
72 
74 
75 
76  // ############################################################################
78  // ############################################################################
80 
87  virtual bool requiresFillIns() const final;
88 
90 
100  virtual const CliqueGraph& junctionTree() final;
101 
103 
107  virtual void setTriangulation(StaticTriangulation* triangulation) final;
108 
113  virtual const NodeProperty< NodeId >& createdCliques() final;
114 
121  virtual NodeId createdClique(const NodeId id) final;
122 
124  virtual void clear() final;
125 
127 
128  private:
130  bool __has_junction_tree{false};
131 
134 
138 
140  void __computeJunctionTree();
141  };
142 
143 } /* namespace gum */
144 
145 #endif /* GUM_DEFAULT_JUNCTION_TREE_STRATEGY_H */
virtual NodeId createdClique(const NodeId id) final
returns the Id of the clique of the junction tree created by the elimination of a given node during t...
virtual DefaultJunctionTreeStrategy * copyFactory(StaticTriangulation *triangulation=nullptr) const final
virtual copy constructor
virtual DefaultJunctionTreeStrategy * newFactory() const final
create a clone not assigned to any triangulation algorithm
virtual void setTriangulation(StaticTriangulation *triangulation) final
assigns the triangulation to the junction tree strategy
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25
The class for generic Hash Tables.
Definition: hashTable.h:679
void __computeJunctionTree()
computes a junction tree from an elimination tree
NodeProperty< NodeId > __node_2_junction_clique
indicates which clique of the junction tree was created by the elimination of a given node (the key o...
virtual const NodeProperty< NodeId > & createdCliques() final
returns, for each node, the clique of the junction tree which was created by its deletion ...
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.
virtual bool requiresFillIns() const final
indicates whether the junction tree strategy needs fill-ins to work properly
Basic graph of cliques.
Definition: cliqueGraph.h:58
CliqueGraph __junction_tree
the junction tree computed by the algorithm
virtual void clear() final
resets the current junction tree strategy data structures
base class for all non-incremental triangulation methods
virtual const CliqueGraph & junctionTree() final
returns the junction tree computed
bool __has_junction_tree
a boolean indicating whether the junction tree has been constructed
Size NodeId
Type for node ids.
Definition: graphElements.h:98
An algorithm producing a junction given the elimination tree produced by a triangulation algorithm...