|
gtsam 4.1.1
gtsam
|
An elimination tree is a data structure used intermediately during elimination.
In future versions it will be used to save work between multiple eliminations.
When a variable is eliminated, a new factor is created by combining that variable's neighboring factors. The new combined factor involves the combined factors' involved variables. When the lowest-ordered one of those variables is eliminated, it consumes that combined factor. In the elimination tree, that lowest-ordered variable is the parent of the variable that was eliminated to produce the combined factor. This yields a tree in general, and not a chain because of the implicit sparse structure of the resulting Bayes net.
This structure is examined even more closely in a JunctionTree, which additionally identifies cliques in the chordal Bayes net.
Advanced Interface | |
| class | ::EliminationTreeTester |
| Allow access to constructor and add methods for testing purposes. | |
| EliminationTree () | |
| Protected default constructor. | |
| const FastVector< sharedNode > & | roots () const |
| Return the set of roots (one for a tree, multiple for a forest) | |
| const FastVector< sharedFactor > & | remainingFactors () const |
| Return the remaining factors that are not pulled into elimination. | |
| void | swap (This &other) |
| Swap the data of this tree with another one, this operation is very fast. | |
Standard Constructors | |
| EliminationTree (const FactorGraphType &factorGraph, const VariableIndex &structure, const Ordering &order) | |
| Build the elimination tree of a factor graph using pre-computed column structure. More... | |
| EliminationTree (const FactorGraphType &factorGraph, const Ordering &order) | |
| Build the elimination tree of a factor graph. More... | |
| EliminationTree (const This &other) | |
| Copy constructor - makes a deep copy of the tree structure, but only pointers to factors are copied, factors are not cloned. | |
| This & | operator= (const This &other) |
| Assignment operator - makes a deep copy of the tree structure, but only pointers to factors are copied, factors are not cloned. | |
Testable | |
| bool | equals (const This &other, double tol=1e-9) const |
| Test whether the tree is equal to another. | |
| void | print (const std::string &name="EliminationTree: ", const KeyFormatter &formatter=DefaultKeyFormatter) const |
| Print the tree to cout. | |
Standard Interface | |
| std::pair< boost::shared_ptr< BayesNetType >, boost::shared_ptr< FactorGraphType > > | eliminate (Eliminate function) const |
| Eliminate the factors to a Bayes net and remaining factor graph. More... | |
Public Types | |
| typedef GRAPH | FactorGraphType |
| The factor graph type. | |
| typedef GRAPH::FactorType | FactorType |
| The type of factors. | |
| typedef boost::shared_ptr< FactorType > | sharedFactor |
| Shared pointer to a factor. | |
| typedef BAYESNET | BayesNetType |
| The BayesNet corresponding to FACTOR. | |
| typedef BayesNetType::ConditionalType | ConditionalType |
| The type of conditionals. | |
| typedef boost::shared_ptr< ConditionalType > | sharedConditional |
| Shared pointer to a conditional. | |
| typedef GRAPH::Eliminate | Eliminate |
| typedef boost::shared_ptr< Node > | sharedNode |
| Shared pointer to Node. | |
Classes | |
| struct | Node |
Protected Types | |
| typedef EliminationTree< BAYESNET, GRAPH > | This |
| This class. | |
| typedef boost::shared_ptr< This > | shared_ptr |
| Shared pointer to this class. | |
Protected Attributes | |
| FastVector< sharedNode > | roots_ |
| concept check | |
| FastVector< sharedFactor > | remainingFactors_ |
|
protected |
Build the elimination tree of a factor graph using pre-computed column structure.
| factorGraph | The factor graph for which to build the elimination tree |
| structure | The set of factors involving each variable. If this is not precomputed, you can call the Create(const FactorGraph<DERIVEDFACTOR>&) named constructor instead. |
|
protected |
Build the elimination tree of a factor graph.
Note that this has to compute the column structure as a VariableIndex, so if you already have this precomputed, use the other constructor instead.
| factorGraph | The factor graph for which to build the elimination tree |
| std::pair< boost::shared_ptr< BAYESNET >, boost::shared_ptr< GRAPH > > gtsam::EliminationTree< BAYESNET, GRAPH >::eliminate | ( | Eliminate | function | ) | const |
Eliminate the factors to a Bayes net and remaining factor graph.
| function | The function to use to eliminate, see the namespace functions in GaussianFactorGraph.h |