aGrUM
0.15.1

Interface for all the triangulation methods. More...
#include <triangulation.h>
Public Member Functions  
Constructors / Destructors  
virtual Triangulation *  newFactory () const =0 
returns a fresh triangulation of the same type as the current object but with an empty graph More...  
virtual Triangulation *  copyFactory () const =0 
virtual copy constructor More...  
virtual  ~Triangulation () 
destructor More...  
Accessors / Modifiers  
virtual void  setGraph (const UndiGraph *graph, const NodeProperty< Size > *domsizes)=0 
initialize the triangulation data structures for a new graph More...  
virtual const EdgeSet &  fillIns ()=0 
returns the fillins added by the triangulation algorithm More...  
virtual const std::vector< NodeId > &  eliminationOrder ()=0 
returns an elimination ordering compatible with the triangulated graph More...  
virtual Idx  eliminationOrder (const NodeId)=0 
returns the index of a given node in the elimination order (0 = first node eliminated) More...  
virtual const UndiGraph &  triangulatedGraph ()=0 
returns the triangulated graph More...  
virtual const CliqueGraph &  eliminationTree ()=0 
returns the elimination tree of a compatible ordering More...  
virtual const CliqueGraph &  junctionTree ()=0 
returns a compatible junction tree More...  
double  maxLog10CliqueDomainSize () 
returns the max of log10DomainSize of the cliques in the junction tree. More...  
virtual NodeId  createdJunctionTreeClique (const NodeId id)=0 
returns the Id of the clique created by the elimination of a given node during the triangulation process More...  
virtual const NodeProperty< NodeId > &  createdJunctionTreeCliques ()=0 
returns the Ids of the cliques of the junction tree created by the elimination of the nodes More...  
virtual const CliqueGraph &  maxPrimeSubgraphTree ()=0 
returns a junction tree of maximal prime subgraphs More...  
virtual NodeId  createdMaxPrimeSubgraph (const NodeId id)=0 
returns the Id of the maximal prime subgraph created by the elimination of a given node during the triangulation process More...  
virtual void  clear ()=0 
reinitialize the graph to be triangulated to an empty graph More...  
const NodeProperty< Size > *  domainSizes () const 
returns the domain sizes of the variables of the graph to be triangulated More...  
Protected Attributes  
const NodeProperty< Size > *  _domain_sizes {nullptr} 
the domain sizes of the variables/nodes of the graph More...  
Protected Member Functions  
Triangulation ()  
default constructor More...  
Triangulation (const NodeProperty< Size > *domsizes)  
constructor with a domain size specified More...  
Triangulation (const Triangulation &)  
prevent copy constructor except when using newFactory More...  
Triangulation (Triangulation &&)  
prevent move constructor except when used by children More...  
Interface for all the triangulation methods.
Definition at line 47 of file triangulation.h.

virtual 
destructor
Definition at line 52 of file triangulation.cpp.

protected 
default constructor
Definition at line 40 of file triangulation.cpp.

protected 
constructor with a domain size specified
Definition at line 46 of file triangulation.cpp.

protected 
prevent copy constructor except when using newFactory
Definition at line 58 of file triangulation.cpp.

protected 
prevent move constructor except when used by children
Definition at line 64 of file triangulation.cpp.

pure virtual 
reinitialize the graph to be triangulated to an empty graph
Implemented in gum::IncrementalTriangulation, and gum::StaticTriangulation.

pure virtual 
virtual copy constructor
note that we return a pointer as it enables subclasses to return pointers to their types, not Triangulation pointers. See item 25 of the more effective C++.
Implemented in gum::IncrementalTriangulation, gum::PartialOrderedTriangulation, gum::OrderedTriangulation, gum::DefaultTriangulation, gum::StaticTriangulation, and gum::UnconstrainedTriangulation.
returns the Id of the clique created by the elimination of a given node during the triangulation process
Implemented in gum::IncrementalTriangulation, and gum::StaticTriangulation.

pure virtual 
returns the Ids of the cliques of the junction tree created by the elimination of the nodes
Implemented in gum::IncrementalTriangulation, and gum::StaticTriangulation.
returns the Id of the maximal prime subgraph created by the elimination of a given node during the triangulation process
Implemented in gum::IncrementalTriangulation, and gum::StaticTriangulation.
const NodeProperty< Size >* gum::Triangulation::domainSizes  (  )  const 
returns the domain sizes of the variables of the graph to be triangulated

pure virtual 
returns an elimination ordering compatible with the triangulated graph
Implemented in gum::IncrementalTriangulation, and gum::StaticTriangulation.
returns the index of a given node in the elimination order (0 = first node eliminated)
Implemented in gum::IncrementalTriangulation, and gum::StaticTriangulation.

pure virtual 
returns the elimination tree of a compatible ordering
Implemented in gum::IncrementalTriangulation, and gum::StaticTriangulation.

pure virtual 
returns the fillins added by the triangulation algorithm
Implemented in gum::IncrementalTriangulation, and gum::StaticTriangulation.

pure virtual 
returns a compatible junction tree
Implemented in gum::IncrementalTriangulation, and gum::StaticTriangulation.
Referenced by maxLog10CliqueDomainSize().
double gum::Triangulation::maxLog10CliqueDomainSize  (  ) 
returns the max of log10DomainSize of the cliques in the junction tree.
This is usefull for instance to estimate the complexity (both in space and in time) of the inference that will use the junction tree.
This method is not 'const' since it can be called before building any junction tree and hence it needs to build it...
Definition at line 70 of file triangulation.cpp.
References _domain_sizes, and junctionTree().
Referenced by gum::MaxInducedWidthMCBayesNetGenerator< GUM_SCALAR, ICPTGenerator, ICPTDisturber >::__checkConditions().

pure virtual 
returns a junction tree of maximal prime subgraphs
Implemented in gum::IncrementalTriangulation, and gum::StaticTriangulation.

pure virtual 
returns a fresh triangulation of the same type as the current object but with an empty graph
note that we return a pointer as it enables subclasses to return pointers to their types, not Triangulation pointers. See item 25 of the more effective C++.
Implemented in gum::IncrementalTriangulation, gum::PartialOrderedTriangulation, gum::OrderedTriangulation, gum::DefaultTriangulation, gum::StaticTriangulation, and gum::UnconstrainedTriangulation.

private 
prevent copy operator

pure virtual 
initialize the triangulation data structures for a new graph
graph  the graph to be triangulated, i.e., the nodes of which will be eliminated 
domsizes  the domain sizes of the nodes to be eliminated 
Implemented in gum::IncrementalTriangulation, gum::PartialOrderedTriangulation, gum::OrderedTriangulation, and gum::StaticTriangulation.

pure virtual 
returns the triangulated graph
Implemented in gum::IncrementalTriangulation, and gum::StaticTriangulation.

protected 
the domain sizes of the variables/nodes of the graph
Definition at line 152 of file triangulation.h.
Referenced by gum::OrderedTriangulation::_initTriangulation(), gum::PartialOrderedTriangulation::_initTriangulation(), gum::StaticTriangulation::_initTriangulation(), maxLog10CliqueDomainSize(), and gum::StaticTriangulation::setGraph().