![]() |
aGrUM
0.20.3
a C++ library for (probabilistic) graphical models
|
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 fill-ins 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 46 of file triangulation.h.
|
virtual |
destructor
Definition at line 49 of file triangulation.cpp.
References gum::Set< Key, Alloc >::emplace().
|
protected |
default constructor
Definition at line 39 of file triangulation.cpp.
References gum::Set< Key, Alloc >::emplace().
|
protected |
constructor with a domain size specified
Definition at line 44 of file triangulation.cpp.
References gum::Set< Key, Alloc >::emplace().
|
protected |
prevent copy constructor except when using newFactory
Definition at line 54 of file triangulation.cpp.
References gum::Set< Key, Alloc >::emplace().
|
protected |
prevent move constructor except when used by children
Definition at line 59 of file triangulation.cpp.
References gum::Set< Key, Alloc >::emplace().
|
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 fill-ins 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.
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 64 of file triangulation.cpp.
References gum::Set< Key, Alloc >::emplace().
|
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 150 of file triangulation.h.