The hybrid module provides classes and algorithms designed for inference in probabilistic graphical models involving both discrete and continuous variables. It extends the core concepts from the inference module to handle these mixed variable types, enabling the modeling and solving of systems with discrete modes, decisions, or states alongside continuous states.
Core Hybrid Concepts¶
HybridValues: Container holding assignments for discrete (
DiscreteValues), continuous (VectorValues), and nonlinear (Values) variables simultaneously.HybridFactor: Abstract base class for factors involving discrete and/or continuous variables.
HybridConditional: Type-erased wrapper for conditionals (Gaussian, Discrete, HybridGaussian) resulting from hybrid elimination.
Hybrid Factor Types¶
HybridNonlinearFactor: Represents a factor where a discrete choice selects among different
NonlinearFactor(NoiseModelFactor) components, potentially with associated scalar energies.HybridGaussianFactor: Represents a factor where a discrete choice selects among different Gaussian factor components, potentially with associated scalar energies.
HybridGaussianProductFactor: Internal decision tree structure holding pairs of
GaussianFactorGraphanddoublescalars, used during hybrid elimination.
Hybrid Factor Graphs¶
HybridFactorGraph: Base class for factor graphs designed to hold hybrid factors.
HybridNonlinearFactorGraph: A factor graph containing Nonlinear, Discrete, and/or
HybridNonlinearFactortypes, used to model nonlinear hybrid systems.HybridGaussianFactorGraph: A factor graph containing Gaussian, Discrete, and/or
HybridGaussianFactortypes, typically resulting from linearization. Supports hybrid elimination.
Hybrid Bayes Nets and Bayes Trees¶
HybridGaussianConditional: Represents a conditional density where continuous variables depend on discrete parents and continuous parents , implemented as a decision tree of
GaussianConditionals.HybridBayesNet: Represents the result of sequential variable elimination on a
HybridGaussianFactorGraphas a DAG ofHybridConditionals.HybridBayesTree: Represents the result of multifrontal variable elimination on a
HybridGaussianFactorGraphas a tree of cliques, each containing aHybridConditional.
Incremental Hybrid Inference¶
HybridGaussianISAM: Incremental Smoothing and Mapping (ISAM) algorithm for
HybridGaussianFactorGraphs, based on updating aHybridBayesTree.HybridNonlinearISAM: Wrapper providing an ISAM interface for nonlinear hybrid problems, managing linearization and an underlying
HybridGaussianISAM.HybridSmoother: An incremental fixed-lag smoother interface for hybrid systems, managing updates to a
HybridBayesNetposterior.
Hybrid Elimination Intermediates¶
HybridEliminationTree: Tree structure representing the dependencies during sequential elimination of a
HybridGaussianFactorGraph.HybridJunctionTree: Intermediate cluster tree structure used in multifrontal elimination, holding original factors within cliques before elimination.