Skip to article frontmatterSkip to article content

Symbolic Module

The symbolic module in GTSAM deals with the structure of factor graphs and Bayesian networks, independent of the specific numerical types of factors (like Gaussian or discrete). It allows for analyzing graph connectivity, determining optimal variable elimination orders, and understanding the sparsity structure of the resulting inference objects.

This is crucial for efficient inference, as the symbolic elimination steps determine the computational complexity and memory requirements of the numerical factorization.

The classes here are used primarily to illustrate symbolic elimination. Internally, GTSAM does analyze the structure of other factor graph types without explicitly converting to a symbolic factor graph.

Classes

Here’s an overview of the key classes in the symbolic module:

Factor Graph

Elimination Products

These classes represent the results of symbolic variable elimination:

Elimination Structures

These classes represent intermediate structures used during the elimination process:

Importance Performing symbolic analysis can be used for:

  1. Choosing an Optimal Ordering: Finding an ordering that minimizes fill-in (new connections created during elimination) is key to efficient numerical factorization.
  2. Predicting Computational Cost: The structure of the Bayes net or Bayes tree determines the complexity of subsequent numerical operations like solving or marginalization.
  3. Memory Allocation: Knowing the structure allows for pre-allocation of memory for the numerical factorization. The symbolic module provides the foundation for GTSAM’s efficient inference algorithms.