Glossary#
This glossary defines key terms used throughout the PyOED documentation.
Terms are cross-referenceable from any RST page using the
:term:`Term Name` role.
- 3D-Var#
- Three-dimensional variational assimilation#
A filtering data-assimilation method that minimises the variational cost function
\[J(\theta) = \tfrac{1}{2}\|\theta - \theta_b\|^2_{\Sigma_b^{-1}} + \tfrac{1}{2}\|y - H(\theta)\|^2_{\Sigma_\epsilon^{-1}}\]for a single observation time step. In PyOED, 3D-Var is implemented as
VanillaThreeDVarand related classes.- 4D-Var#
- Four-dimensional variational assimilation#
An extension of 3D-Var to multiple observation times. The cost function is summed over the full observation window, requiring the adjoint of the forward model. In PyOED, 4D-Var is implemented as
VanillaFourDVar.- A-optimality#
An optimality criterion that minimises the trace of the posterior covariance matrix:
\[\Phi_A(\zeta) = \operatorname{tr}\!\left(\Sigma_{\text{post}}(\zeta)\right).\]Minimising \(\Phi_A\) minimises the average posterior variance across all components of the inferred quantity. In PyOED, use the
'Bayesian A-opt'criterion name withSensorPlacementBayesianInversionOED.- Adjoint#
The transpose of the TLM, mapping from observation space back to state/parameter space. Adjoints enable efficient gradient computation for large-scale variational assimilation. In PyOED, implemented as
Jacobian_T_matvec().- D-optimality#
An optimality criterion that minimises the log-determinant of the posterior covariance (equivalently, maximises the determinant of the Fisher information matrix):
\[\Phi_D(\zeta) = \log\det\!\left(\Sigma_{\text{post}}(\zeta)\right).\]Minimising \(\Phi_D\) minimises the volume of the posterior uncertainty ellipsoid. Use
'Bayesian D-opt'in PyOED.- Design space#
The set of admissible experimental designs \(\mathcal{D}\). For sensor placement this is the unit hypercube \([0,1]^n\) (relaxed) or the Boolean hypercube \(\{0,1\}^n\) (binary). PyOED’s active design space refers to the subset of sensors currently turned on (design entry > 0); the package can automatically project computations onto the active subspace via the
PROJECT_ONTO_ACTIVE_DESIGN_SPACEglobal setting (seepyoed.configs.SETTINGS).- Design vector#
The vector \(\zeta \in \mathcal{D}\) that parameterises the experimental design. In sensor placement each entry weights a candidate sensor. In PyOED the design vector is stored as
designand updated viaupdate_design().- E-optimality#
An optimality criterion that minimises the largest eigenvalue of the posterior covariance:
\[\Phi_E(\zeta) = \lambda_{\max}\!\left(\Sigma_{\text{post}}(\zeta)\right).\]Minimising \(\Phi_E\) reduces the worst-case posterior variance. Use
'Bayesian E-opt'in PyOED.- EIG#
- Expected Information Gain#
An information-theoretic optimality criterion measuring the expected reduction in Shannon entropy from prior to posterior:
\[\text{EIG}(\zeta) = \mathbb{E}_{p(y|\zeta)}\!\left[ D_{\mathrm{KL}}\!\left(p(\theta|y,\zeta)\,\|\,p(\theta)\right) \right].\]EIG equals the mutual information between the parameter \(\theta\) and the observation \(y\) for a given design \(\zeta\).
- InverseProblem#
The abstract base class for all data-assimilation (inversion) methods in PyOED. An
InverseProblembrings together a model, prior, observation operator, and observation error model and exposessolve()to compute the MAP estimate and posterior.- Kalman filter#
An exact recursive Bayesian filter for linear Gaussian state-space models. The filter propagates the posterior mean and covariance forward in time and updates them with each new observation. PyOED provides
KalmanFilterand a complex-valued variant.- Kalman smoother#
An extension of the Kalman filter that reprocesses the full observation sequence (forward-backward pass) to produce a smoothed estimate of the state trajectory. See
KalmanSmoother.- KL divergence#
- Kullback–Leibler divergence#
A measure of the difference between two probability distributions \(P\) and \(Q\):
\[D_{\mathrm{KL}}(P \| Q) = \int p(\theta)\,\log\frac{p(\theta)}{q(\theta)}\,d\theta.\]In Gaussian OED the KL divergence from prior to posterior has a closed-form expression; see
kl_divergence().- MAP estimate#
- Maximum A Posteriori estimate#
The mode of the posterior distribution:
\[\theta^* = \arg\max_\theta\,p(\theta|y) = \arg\min_\theta\!\left[ -\log p(y|\theta) - \log p(\theta) \right].\]For Gaussian models MAP coincides with the minimum of the 3D-Var / 4D-Var cost function. In PyOED the MAP estimate is returned by
solve().- Observation operator#
The (potentially nonlinear) map \(\mathcal{H}: \mathbb{R}^{n_x} \to \mathbb{R}^{n_y}\) from model state to observations. In PyOED it is an instance of
ObservationOperatorand itsapply()method evaluates the forward map.- OED#
- Optimal Experimental Design#
A framework for selecting experiments (e.g., sensor locations, measurement times, input signals) that maximise the information gained from the data, typically measured by an optimality criterion such as A-optimality or expected information gain. PyOED focuses on model-constrained OED, where the information depends on a simulation model of the physical system.
- Posterior#
The updated probability distribution \(p(\theta|y)\) over the unknown parameter or state after assimilating observations \(y\) via Bayes’ rule:
\[p(\theta|y) \propto p(y|\theta)\,p(\theta).\]For Gaussian linear problems the posterior is also Gaussian with covariance \(\Sigma_{\text{post}}\) that drives A/D/E-optimality criteria.
- Prior#
The probability distribution \(p(\theta)\) over the unknown model parameter or state before any observations are assimilated. In PyOED a prior is an instance of
ErrorModel(commonlyGaussianErrorModel) and is registered with the inverse problem viaregister_prior().- PyOED configurations#
The dataclass-based configuration system that backs every PyOED object. Each class is paired with a
PyOEDConfigsdataclass (decorated withset_configurations()) so that all settings are validated, introspectable, and can be updated at runtime viaupdate_configurations().- REINFORCE#
A policy-gradient reinforcement-learning algorithm applied to OED. The experimental design is treated as a stochastic policy, and REINFORCE estimates the gradient of the expected criterion w.r.t. the policy parameters using Monte Carlo rollouts. In PyOED, see
ReinforceOptimizerand the binary variantBinaryReinforceOptimizer.- Relaxed optimisation#
A continuous relaxation of a combinatorial (binary) OED problem that allows the design vector to take values in \([0,1]^n\). This enables gradient-based solvers. After optimisation, the relaxed solution is typically rounded to a binary design. In PyOED, the
SupportsRelaxedOptimizationprotocol identifies criteria that expose agrad_designmethod, andScipyOptimizeris the default gradient-based solver used with relaxed designs.- Robust OED#
An OED formulation that accounts for uncertainty in model hyperparameters (e.g., noise level, prior variance) by marginalising the criterion over a distribution of uncertain parameters. PyOED provides
RobustSensorPlacementBayesianInversionOEDand theSupportsRobustOptimizationprotocol.- Sensor placement#
A combinatorial OED problem where the design variable is a binary vector \(\zeta \in \{0,1\}^n\) indicating which sensors are active. PyOED solves sensor placement via relaxed (continuous) optimisation — allowing \(\zeta \in [0,1]^n\) — or greedy / REINFORCE-based binary search.
Key classes:
SensorPlacementBayesianInversionOED,GreedyBinaryOptimizer,BinaryReinforceOptimizer.- Tangent linear model#
- TLM#
The Jacobian of the observation operator (or forward model), i.e., the first-order linearisation around a given state. The TLM is used in 4D-Var gradient computations and in computing the linear Bayesian posterior covariance.