32 #ifndef GUM_PARTIAL_ORDERED_TRIANGULATION_H 33 #define GUM_PARTIAL_ORDERED_TRIANGULATION_H 35 #include <agrum/tools/graphs/algorithms/triangulations/eliminationStrategies/defaultPartialOrderedEliminationSequenceStrategy.h> 36 #include <agrum/tools/graphs/algorithms/triangulations/junctionTreeStrategies/defaultJunctionTreeStrategy.h> 37 #include <agrum/tools/graphs/algorithms/triangulations/staticTriangulation.h> 68 const JunctionTreeStrategy& JTStrategy
70 bool minimality =
false);
90 const NodeProperty< Size >* domsizes,
91 const List< NodeSet >* partial_order,
92 const PartialOrderedEliminationSequenceStrategy& elimSeq
94 const JunctionTreeStrategy& JTStrategy
96 bool minimality =
false);
134 virtual void setGraph(
const UndiGraph* graph,
const NodeProperty< Size >* domsizes)
final;
140 virtual void setPartialOrder(
const List< NodeSet >* partial_order)
final;
PartialOrderedTriangulation(PartialOrderedTriangulation &&from)
move constructor
PartialOrderedTriangulation(const PartialOrderedTriangulation &from)
copy constructor
INLINE void emplace(Args &&... args)
virtual PartialOrderedTriangulation * newFactory() const
returns a fresh triangulation (over an empty graph) of the same type as the current object ...
PartialOrderedTriangulation & operator=(const PartialOrderedTriangulation &)
forbid copy operator
PartialOrderedTriangulation(const PartialOrderedEliminationSequenceStrategy &elimSeq=DefaultPartialOrderedEliminationSequenceStrategy(), const JunctionTreeStrategy &JTStrategy=DefaultJunctionTreeStrategy(), bool minimality=false)
default constructor
class for graph triangulations for which we enforce a given partial ordering on the nodes elimination...
virtual void setPartialOrder(const List< NodeSet > *partial_order) final
sets the elimination sequence's partial order (only a reference is stored)
virtual PartialOrderedTriangulation * copyFactory() const final
virtual copy constructor
virtual void initTriangulation_(UndiGraph &graph) final
the function called to initialize the triangulation process
const List< NodeSet > * _partial_order_
the partial ordering to apply to eliminate nodes
virtual ~PartialOrderedTriangulation()
destructor
virtual void setGraph(const UndiGraph *graph, const NodeProperty< Size > *domsizes) final
initialize the triangulation data structures for a new graph
PartialOrderedTriangulation(const UndiGraph *graph, const NodeProperty< Size > *domsizes, const List< NodeSet > *partial_order, const PartialOrderedEliminationSequenceStrategy &elimSeq=DefaultPartialOrderedEliminationSequenceStrategy(), const JunctionTreeStrategy &JTStrategy=DefaultJunctionTreeStrategy(), bool minimality=false)
constructor with a given graph