aGrUM 2.3.2
a C++ library for (probabilistic) graphical models
gum::JunctionTreeStrategy Class Referenceabstract

Base Class for all the algorithms producing a junction given a set of cliques/subcliques resulting from a triangulation. More...

#include <junctionTreeStrategy.h>

Inheritance diagram for gum::JunctionTreeStrategy:
Collaboration diagram for gum::JunctionTreeStrategy:

Public Member Functions

Accessors / Modifiers
virtual bool requiresFillIns () const =0
 indicates whether the junction tree strategy needs fill-ins to work properly
virtual const CliqueGraphjunctionTree ()=0
 returns the junction tree computed
virtual void setTriangulation (StaticTriangulation *triangulation)=0
 assigns the triangulation to the junction tree strategy
virtual void moveTriangulation (StaticTriangulation *triangulation)
 assigns a new triangulation to the junction tree strategy during a move construction
virtual const NodeProperty< NodeId > & createdCliques ()=0
 returns, for each node, the clique of the junction tree which was created by its deletion
virtual NodeId createdClique (const NodeId id)=0
 returns the Id of the clique of the junction tree created by the elimination of a given node during the triangulation process
virtual void clear ()=0
 resets the current junction tree strategy data structures

Protected Attributes

StaticTriangulationtriangulation_ {nullptr}
 the triangulation to which the junction tree is associated

Constructors / Destructors

virtual ~JunctionTreeStrategy ()
 destructor
virtual JunctionTreeStrategynewFactory () const =0
 create a clone not assigned to any triangulation algorithm
virtual JunctionTreeStrategycopyFactory (StaticTriangulation *triangulation=nullptr) const =0
 virtual copy constructor
 JunctionTreeStrategy ()
 default constructor
 JunctionTreeStrategy (const JunctionTreeStrategy &from)
 copy constructor
 JunctionTreeStrategy (JunctionTreeStrategy &&from)
 move constructor

Detailed Description

Base Class for all the algorithms producing a junction given a set of cliques/subcliques resulting from a triangulation.

Definition at line 66 of file junctionTreeStrategy.h.

Constructor & Destructor Documentation

◆ ~JunctionTreeStrategy()

gum::JunctionTreeStrategy::~JunctionTreeStrategy ( )
virtual

destructor

Definition at line 73 of file junctionTreeStrategy.cpp.

73 {
74 // for debugging purposes
75 GUM_DESTRUCTOR(JunctionTreeStrategy);
76 }
JunctionTreeStrategy()
default constructor

References JunctionTreeStrategy().

Here is the call graph for this function:

◆ JunctionTreeStrategy() [1/3]

gum::JunctionTreeStrategy::JunctionTreeStrategy ( )
protected

default constructor

Definition at line 54 of file junctionTreeStrategy.cpp.

54 {
55 // for debugging purposes
56 GUM_CONSTRUCTOR(JunctionTreeStrategy);
57 }

References JunctionTreeStrategy().

Referenced by gum::DefaultJunctionTreeStrategy::DefaultJunctionTreeStrategy(), gum::DefaultJunctionTreeStrategy::DefaultJunctionTreeStrategy(), JunctionTreeStrategy(), JunctionTreeStrategy(), JunctionTreeStrategy(), ~JunctionTreeStrategy(), copyFactory(), and newFactory().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ JunctionTreeStrategy() [2/3]

gum::JunctionTreeStrategy::JunctionTreeStrategy ( const JunctionTreeStrategy & from)
protected

copy constructor

Definition at line 60 of file junctionTreeStrategy.cpp.

60 :
61 triangulation_(from.triangulation_) { // for debugging purposes
62 GUM_CONS_CPY(JunctionTreeStrategy);
63 }
StaticTriangulation * triangulation_
the triangulation to which the junction tree is associated

References JunctionTreeStrategy(), and triangulation_.

Here is the call graph for this function:

◆ JunctionTreeStrategy() [3/3]

gum::JunctionTreeStrategy::JunctionTreeStrategy ( JunctionTreeStrategy && from)
protected

move constructor

Definition at line 66 of file junctionTreeStrategy.cpp.

66 :
67 triangulation_(from.triangulation_) {
68 // for debugging purposes
69 GUM_CONS_MOV(JunctionTreeStrategy);
70 }

References JunctionTreeStrategy(), and triangulation_.

Here is the call graph for this function:

Member Function Documentation

◆ clear()

virtual void gum::JunctionTreeStrategy::clear ( )
pure virtual

resets the current junction tree strategy data structures

Implemented in gum::DefaultJunctionTreeStrategy.

◆ copyFactory()

virtual JunctionTreeStrategy * gum::JunctionTreeStrategy::copyFactory ( StaticTriangulation * triangulation = nullptr) const
pure virtual

virtual copy constructor

Parameters
triangulationif triangulation is different from nullptr, this becomes the new triangulation algorithm associated with the junction tree strategy

Implemented in gum::DefaultJunctionTreeStrategy.

References JunctionTreeStrategy().

Referenced by gum::StaticTriangulation::StaticTriangulation().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createdClique()

virtual NodeId gum::JunctionTreeStrategy::createdClique ( const NodeId id)
pure virtual

returns the Id of the clique of the junction tree created by the elimination of a given node during the triangulation process

Implemented in gum::DefaultJunctionTreeStrategy.

◆ createdCliques()

virtual const NodeProperty< NodeId > & gum::JunctionTreeStrategy::createdCliques ( )
pure virtual

returns, for each node, the clique of the junction tree which was created by its deletion

Implemented in gum::DefaultJunctionTreeStrategy.

◆ junctionTree()

virtual const CliqueGraph & gum::JunctionTreeStrategy::junctionTree ( )
pure virtual

returns the junction tree computed

The idea behind this method is that the JunctionTreeStrategy asks its assigned triangulation (see method setTriangulation) all the data it needs to compute correctly the junction tree. For instance, it may asks for a triangulated graph or an elimination tree, or even the order of elimination of the nodes, etc. All these data are available from the triangulation class. Knowing these data, the junctionTreeStrategy computes and returns a junction tree corresponding to the triangulated graph.

Implemented in gum::DefaultJunctionTreeStrategy.

◆ moveTriangulation()

void gum::JunctionTreeStrategy::moveTriangulation ( StaticTriangulation * triangulation)
virtual

assigns a new triangulation to the junction tree strategy during a move construction

Definition at line 80 of file junctionTreeStrategy.cpp.

80 {
81 triangulation_ = triangulation;
82 }

References triangulation_.

◆ newFactory()

virtual JunctionTreeStrategy * gum::JunctionTreeStrategy::newFactory ( ) const
pure virtual

create a clone not assigned to any triangulation algorithm

Implemented in gum::DefaultJunctionTreeStrategy.

References JunctionTreeStrategy().

Here is the call graph for this function:

◆ requiresFillIns()

virtual bool gum::JunctionTreeStrategy::requiresFillIns ( ) const
pure virtual

indicates whether the junction tree strategy needs fill-ins to work properly

If the junctionTreeStrategy needs fill-ins to work properly, its assigned triangulation instance (see method setTriangulation) will be commited to compute them.

Implemented in gum::DefaultJunctionTreeStrategy.

◆ setTriangulation()

virtual void gum::JunctionTreeStrategy::setTriangulation ( StaticTriangulation * triangulation)
pure virtual

assigns the triangulation to the junction tree strategy

Implemented in gum::DefaultJunctionTreeStrategy.

Member Data Documentation

◆ triangulation_

StaticTriangulation* gum::JunctionTreeStrategy::triangulation_ {nullptr}
protected

The documentation for this class was generated from the following files: