aGrUM  0.16.0
defaultPartialOrderedEliminationSequenceStrategy.h
Go to the documentation of this file.
1 
46 #ifndef GUM_DEFAULT_PARTIAL_ORDERED_ELIMINATION_SEQUENCE_STRATEGY_H
47 #define GUM_DEFAULT_PARTIAL_ORDERED_ELIMINATION_SEQUENCE_STRATEGY_H
48 
53 
54 namespace gum {
55 
84  public:
85  // ############################################################################
87  // ############################################################################
89 
91 
96  double theRatio = GUM_QUASI_RATIO,
97  double theThreshold = GUM_WEIGHT_THRESHOLD);
98 
100 
116  UndiGraph* graph,
117  const NodeProperty< Size >* dom_sizes,
118  const List< NodeSet >* subsets,
119  double ratio = GUM_QUASI_RATIO,
120  double threshold = GUM_WEIGHT_THRESHOLD);
121 
123 
134 
138 
141 
147  newFactory() const final;
148 
150 
160  copyFactory() const final;
161 
163 
164 
165  // ############################################################################
167  // ############################################################################
169 
171 
182  virtual bool setGraph(UndiGraph* graph,
183  const NodeProperty< Size >* dom_sizes) final;
184 
187  virtual void clear() final;
188 
190 
192  virtual NodeId nextNodeToEliminate() final;
193 
200  virtual void askFillIns(bool do_it) final;
201 
209  virtual bool providesFillIns() const final;
210 
213  virtual bool providesGraphUpdate() const final;
214 
216 
218  virtual void eliminationUpdate(const NodeId node) final;
219 
222  virtual const EdgeSet& fillIns() final;
223 
225 
226  private:
230 
233 
236 
239 
241  bool __provide_fill_ins{false};
242 
243 
245 
247 
249  void __createSimplicialSet();
250  };
251 
252 } /* namespace gum */
253 
254 #endif /* GUM_DEFAULT_PARTIAL_ORDERED_ELIMINATION_SEQUENCE_STRATEGY_H */
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
virtual void clear() final
clears the sequence (to prepare, for instance, a new elimination sequence)
void __createSimplicialSet()
create a new simplicial set suited for the current graph
#define GUM_WEIGHT_THRESHOLD
Definition: simplicialSet.h:41
virtual void eliminationUpdate(const NodeId node) final
performs all the graph/fill-ins updates provided (if any)
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
virtual DefaultPartialOrderedEliminationSequenceStrategy * newFactory() const final
creates a new elimination sequence of the same type as the current object, but this sequence contains...
virtual bool providesFillIns() const final
indicates whether the fill-ins generated by the eliminated nodes, if needed, will be computed by the ...
virtual const EdgeSet & fillIns() final
in case fill-ins are provided, this function returns the fill-ins due to all the nodes eliminated so ...
virtual void askFillIns(bool do_it) final
if the elimination sequence is able to compute fill-ins, we indicate whether we want this feature to ...
NodeProperty< double > __log_weights
for each node, the weight of the clique created by the node&#39;s elimination
double __simplicial_ratio
the ratio used by __simplicial_set for its quasi-simplicial nodes
virtual NodeId nextNodeToEliminate() final
returns the new node to be eliminated within the triangulation algorithm
Generic doubly linked lists.
Definition: list.h:372
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25
double __simplicial_threshold
the threshold used by __simplicial_set to determine small cliques
An Elimination sequence algorithm that imposes a given partial ordering on the nodes elimination sequ...
NodeId __nodeToEliminate(const PriorityQueue< NodeId, double > &possibleNodes)
returns the best possible node to be eliminated
The class for generic Hash Tables.
Definition: hashTable.h:679
UndiGraph * graph() const noexcept
returns the current graph
SimplicialSet * __simplicial_set
the simplicial set used for determining the best nodes to eliminate
Base class for all elimination sequence algorithm that impose a given partial ordering on the nodes e...
Class enabling fast retrieval of simplicial, quasi and almost simplicial nodes.
Definition: simplicialSet.h:60
virtual bool providesGraphUpdate() const final
indicates whether the elimination sequence updates by itself the graph after a node has been eliminat...
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
virtual DefaultPartialOrderedEliminationSequenceStrategy * copyFactory() const final
virtual copy constructor
virtual bool setGraph(UndiGraph *graph, const NodeProperty< Size > *dom_sizes) final
sets a new graph to be triangulated
Base class for undirected graphs.
Definition: undiGraph.h:109
DefaultPartialOrderedEliminationSequenceStrategy(double theRatio=GUM_QUASI_RATIO, double theThreshold=GUM_WEIGHT_THRESHOLD)
default constructor (uses an empty graph)
#define GUM_QUASI_RATIO
Definition: simplicialSet.h:40
Size NodeId
Type for node ids.
Definition: graphElements.h:98
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.