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 VanillaThreeDVar and 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 with SensorPlacementBayesianInversionOED.

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_SPACE global setting (see pyoed.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 design and updated via update_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 InverseProblem brings together a model, prior, observation operator, and observation error model and exposes solve() 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 KalmanFilter and 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 ObservationOperator and its apply() 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 (commonly GaussianErrorModel) and is registered with the inverse problem via register_prior().

PyOED configurations#

The dataclass-based configuration system that backs every PyOED object. Each class is paired with a PyOEDConfigs dataclass (decorated with set_configurations()) so that all settings are validated, introspectable, and can be updated at runtime via update_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 ReinforceOptimizer and the binary variant BinaryReinforceOptimizer.

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 SupportsRelaxedOptimization protocol identifies criteria that expose a grad_design method, and ScipyOptimizer is 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 RobustSensorPlacementBayesianInversionOED and the SupportsRobustOptimization protocol.

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.