gtsam
Loading...
Searching...
No Matches
gtsam::HybridBayesTree Class Reference

Detailed Description

A Bayes tree representing a Hybrid density.

Inheritance diagram for gtsam::HybridBayesTree:

Public Member Functions

Standard interface
 HybridBayesTree ()=default
 Default constructor, creates an empty Bayes tree.
bool equals (const This &other, double tol=1e-9) const
 Check equality.
GaussianBayesTree choose (const DiscreteValues &assignment) const
 Get the Gaussian Bayes Tree which corresponds to a specific discrete value assignment.
double error (const HybridValues &values) const
 Error for all conditionals.
HybridValues optimize () const
 Optimize the hybrid Bayes tree by computing the MPE for the current set of discrete variables and using it to compute the best continuous update delta.
VectorValues optimize (const DiscreteValues &assignment) const
 Recursively optimize the BayesTree to produce a vector solution.
DiscreteValues mpe () const
 Compute the Most Probable Explanation (MPE) of the discrete variables.
void prune (const size_t maxNumberLeaves)
 Prune the underlying Bayes tree.
Public Member Functions inherited from gtsam::BayesTree< HybridBayesTreeClique >
bool equals (const This &other, double tol=1e-9) const
 check equality
void print (const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const
 print
size_t size () const
 number of cliques
bool empty () const
 Check if there are any cliques in the tree.
const Nodes & nodes () const
 Return nodes.
sharedClique operator[] (Key j) const
 Access node by variable.
const Roots & roots () const
 return root cliques
const sharedClique & clique (Key j) const
 alternate syntax for matlab: find the clique that contains the variable with Key j
BayesTreeCliqueData getCliqueData () const
 Gather data on all cliques.
size_t numCachedSeparatorMarginals () const
 Collect number of cliques with cached separator marginals.
sharedConditional marginalFactor (Key j, const Eliminate &function=EliminationTraitsType::DefaultEliminate) const
 Return marginal on any variable.
sharedFactorGraph joint (Key j1, Key j2, const Eliminate &function=EliminationTraitsType::DefaultEliminate) const
 return joint on two variables Limitation: can only calculate joint if cliques are disjoint or one of them is root
sharedFactorGraph joint (const KeyVector &keys, const Eliminate &function=EliminationTraitsType::DefaultEliminate) const
 Return a joint factor graph on an arbitrary set of variables.
sharedBayesNet jointBayesNet (Key j1, Key j2, const Eliminate &function=EliminationTraitsType::DefaultEliminate) const
 return joint on two variables as a BayesNet Limitation: can only calculate joint if cliques are disjoint or one of them is root
sharedBayesNet jointBayesNet (const KeyVector &keys, const Eliminate &function=EliminationTraitsType::DefaultEliminate) const
 Return a joint marginal Bayes net whose elimination order follows the first occurrence of each key.
void dot (std::ostream &os, const KeyFormatter &keyFormatter=DefaultKeyFormatter) const
 Output to graphviz format, stream version.
std::string dot (const KeyFormatter &keyFormatter=DefaultKeyFormatter) const
 Output to graphviz format string.
void saveGraph (const std::string &filename, const KeyFormatter &keyFormatter=DefaultKeyFormatter) const
 output to file with graphviz format.
Key findParentClique (const CONTAINER &parents) const
 Find parent clique of a conditional.
void clear ()
 Remove all nodes.
void deleteCachedShortcuts ()
 Clear all shortcut caches - use before timing on marginal calculation to avoid residual cache data.
void removePath (sharedClique clique, BayesNetType *bn, Cliques *orphans)
 Remove path from clique to root and return that path as factors plus a list of orphaned subtree roots.
void removeTop (const KeyVector &keys, BayesNetType *bn, Cliques *orphans)
 Given a list of indices, turn "contaminated" part of the tree back into a factor graph.
Cliques removeSubtree (const sharedClique &subtree)
 Remove the requested subtree.
void insertRoot (const sharedClique &subtree)
 Insert a new subtree with known parent clique.
void addClique (const sharedClique &clique, const sharedClique &parent_clique=sharedClique())
 add a clique (top down)
void addFactorsToGraph (FactorGraph< FactorType > *graph) const
 Add all cliques in this BayesTree to the specified factor graph.
gtsam::KeySet collectAffectedKeys (const gtsam::KeyVector &keys) const
 Returns the set of keys from the tree that are affected by a update to 'keys'.

Public Types

typedef HybridBayesTree This
typedef std::shared_ptr< This > shared_ptr
Public Types inherited from gtsam::BayesTree< HybridBayesTreeClique >
typedef HybridBayesTreeClique Clique
 The clique type, normally BayesTreeClique.
typedef std::shared_ptr< Clique > sharedClique
 Shared pointer to a clique.
typedef Clique Node
 Synonym for Clique (TODO: remove).
typedef sharedClique sharedNode
 Synonym for sharedClique (TODO: remove).
typedef HybridBayesTreeClique::ConditionalType ConditionalType
typedef std::shared_ptr< ConditionalType > sharedConditional
typedef HybridBayesTreeClique::BayesNetType BayesNetType
typedef std::shared_ptr< BayesNetType > sharedBayesNet
typedef HybridBayesTreeClique::FactorType FactorType
typedef std::shared_ptr< FactorType > sharedFactor
typedef HybridBayesTreeClique::FactorGraphType FactorGraphType
typedef std::shared_ptr< FactorGraphType > sharedFactorGraph
typedef FactorGraphType::Eliminate Eliminate
typedef HybridBayesTreeClique::EliminationTraitsType EliminationTraitsType
typedef FastList< sharedClique > Cliques
 A convenience class for a list of shared cliques.
typedef ConcurrentMap< Key, sharedClique > Nodes
 Map from keys to Clique.
typedef FastVector< sharedClique > Roots
 Root cliques.

Additional Inherited Members

Protected Types inherited from gtsam::BayesTree< HybridBayesTreeClique >
typedef BayesTree< HybridBayesTreeClique > This
typedef std::shared_ptr< This > shared_ptr
Protected Member Functions inherited from gtsam::BayesTree< HybridBayesTreeClique >
 ~BayesTree ()
 Destructor.
This & operator= (const This &other)
 Assignment operator.
 BayesTree ()
 Create an empty Bayes Tree.
 BayesTree (const This &other)
 Copy constructor.
void dot (std::ostream &s, sharedClique clique, const KeyFormatter &keyFormatter, size_t parentnum=0) const
 private helper method for saving the Tree to a text file in GraphViz format
void getCliqueData (sharedClique clique, BayesTreeCliqueData *stats) const
 Gather data on a single clique.
void removeClique (sharedClique clique)
 remove a clique: warning, can result in a forest
void fillNodesIndex (const sharedClique &subtree)
 Fill the nodes index for a subtree.
void collectAffectedPathKeys (gtsam::KeySet &traversedKeys, const sharedClique &clique) const
 Helper for collectAffectedKeys that recursively aggregates affected keys from a path from 'clique' to the root of tree.
Protected Attributes inherited from gtsam::BayesTree< HybridBayesTreeClique >
Nodes nodes_
 Map from indices to Clique.
Roots roots_
 Root cliques.

Member Function Documentation

◆ choose()

GaussianBayesTree gtsam::HybridBayesTree::choose ( const DiscreteValues & assignment) const

Get the Gaussian Bayes Tree which corresponds to a specific discrete value assignment.

Parameters
assignmentThe discrete value assignment for the discrete keys.
Returns
GaussianBayesTree

◆ mpe()

DiscreteValues gtsam::HybridBayesTree::mpe ( ) const

Compute the Most Probable Explanation (MPE) of the discrete variables.

Returns
DiscreteValues

◆ optimize() [1/2]

HybridValues gtsam::HybridBayesTree::optimize ( ) const

Optimize the hybrid Bayes tree by computing the MPE for the current set of discrete variables and using it to compute the best continuous update delta.

Returns
HybridValues

◆ optimize() [2/2]

VectorValues gtsam::HybridBayesTree::optimize ( const DiscreteValues & assignment) const

Recursively optimize the BayesTree to produce a vector solution.

Parameters
assignmentThe discrete values assignment to select the hybrid conditional.
Returns
VectorValues

◆ prune()

void gtsam::HybridBayesTree::prune ( const size_t maxNumberLeaves)

Prune the underlying Bayes tree.

Parameters
maxNumberLeavesThe max number of leaf nodes to keep.

Helper struct for pruning the hybrid bayes tree.

The discrete decision tree after pruning.

A function used during tree traversal that operates on each node before visiting the node's children.

Parameters
nodeThe current node being visited.
parentDataThe data from the parent node.
Returns
HybridPrunerData which is passed to the children.

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