aGrUM  0.16.0
orderedTriangulation.h
Go to the documentation of this file.
1 
29 #ifndef GUM_ORDERED_TRIANGULATION_H
30 #define GUM_ORDERED_TRIANGULATION_H
31 
32 #include <vector>
33 
37 
38 namespace gum {
39 
40 
49  public:
50  // ############################################################################
52  // ############################################################################
54 
56 
62  const OrderedEliminationSequenceStrategy& elimSeq =
65  bool minimality = false);
66 
68 
86  const UndiGraph* graph,
87  const NodeProperty< Size >* domsizes,
88  const std::vector< NodeId >* sequence,
89  const OrderedEliminationSequenceStrategy& elimSeq =
92  bool minimality = false);
93 
96 
99 
106  virtual OrderedTriangulation* newFactory() const final;
107 
109  virtual OrderedTriangulation* copyFactory() const final;
110 
112  virtual ~OrderedTriangulation();
113 
115 
116  // ############################################################################
118  // ############################################################################
120 
122 
129  virtual void setGraph(const UndiGraph* graph,
130  const NodeProperty< Size >* domsizes) final;
131 
133 
135  virtual void setOrder(const std::vector< NodeId >* order) final;
136 
138 
139  protected:
141 
150  virtual void _initTriangulation(UndiGraph& graph) final;
151 
152 
154 
155  const std::vector< NodeId >* __order{nullptr};
156 
158 
159  private:
162  };
163 
164 } /* namespace gum */
165 
166 #endif /* GUM_ORDERED_TRIANGULATION_H */
virtual ~OrderedTriangulation()
destructor
An Elimination sequence algorithm that imposes a given complete ordering on the nodes elimination seq...
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25
OrderedTriangulation(const OrderedEliminationSequenceStrategy &elimSeq=OrderedEliminationSequenceStrategy(), const JunctionTreeStrategy &JTStrategy=DefaultJunctionTreeStrategy(), bool minimality=false)
default constructor
The class for generic Hash Tables.
Definition: hashTable.h:679
virtual OrderedTriangulation * copyFactory() const final
virtual copy constructor
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.
const std::vector< NodeId > * __order
the elimination sequence to apply
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
virtual void setOrder(const std::vector< NodeId > *order) final
sets the sequence of elimination (only the reference is stored)
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
OrderedTriangulation & operator=(const OrderedTriangulation &)
forbid copy operator
virtual void _initTriangulation(UndiGraph &graph) final
the function called to initialize the triangulation process
virtual OrderedTriangulation * newFactory() const final
returns a fresh triangulation over the same graph and of the same type as the current object (using t...
class for graph triangulations for which we enforce a given complete ordering on the nodes eliminatio...
base class for all non-incremental triangulation methods
Base class for undirected graphs.
Definition: undiGraph.h:109
virtual void setGraph(const UndiGraph *graph, const NodeProperty< Size > *domsizes) final
initialize the triangulation data structures for a new graph
An algorithm producing a junction given the elimination tree produced by a triangulation algorithm...