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
GaussianFactorGraph
anddouble
scalars, 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
HybridNonlinearFactor
types, used to model nonlinear hybrid systems. - HybridGaussianFactorGraph: A factor graph containing Gaussian, Discrete, and/or
HybridGaussianFactor
types, 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
GaussianConditional
s. - HybridBayesNet: Represents the result of sequential variable elimination on a
HybridGaussianFactorGraph
as a DAG ofHybridConditional
s. - HybridBayesTree: Represents the result of multifrontal variable elimination on a
HybridGaussianFactorGraph
as a tree of cliques, each containing aHybridConditional
.
Incremental Hybrid Inference¶
- HybridGaussianISAM: Incremental Smoothing and Mapping (ISAM) algorithm for
HybridGaussianFactorGraph
s, 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
HybridBayesNet
posterior.
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.