Computing Library › Applications
Applications

Bayesian Experimental Design

Choosing which experiment or simulation to run next so that its result is expected to reduce uncertainty the most.

The core idea

Experiments and high-fidelity simulations are expensive. Bayesian experimental design (BED) treats the choice of what to run next as an optimization problem: pick the design point whose result is expected to be most informative about the quantities you care about. Instead of a fixed test matrix, the matrix adapts as evidence arrives.

Information as the objective

Kronos motion — design envelope

BED maximizes expected information gain: the expected reduction in the entropy of the posterior over model parameters. Formally you compute the mutual information between the unknown parameters and the outcome of a candidate experiment, then choose the candidate that maximizes it. High-value experiments are those where models currently disagree, because the result discriminates between them.

python
import numpy as np

def expected_info_gain(candidates, predict, prior_samples):
    # predict(theta, x) -> outcome; measure entropy reduction
    gains = []
    for x in candidates:
        ys = np.array([predict(t, x) for t in prior_samples])
        # spread of predictions ~ how much this x discriminates
        gains.append(np.var(ys))
    return candidates[int(np.argmax(gains))]

Where it helps at Kronos

Because the breeder must hit a tritium breeding ratio near 1.8 with real geometry, BED helps rank the neutronics and blanket studies that shrink the uncertainty band on that number fastest, rather than running cases in arbitrary order.

Caveats

BED is only as good as the prior and the forward model. A confident but wrong model will confidently pick the wrong next experiment. It is paired with uncertainty quantification and periodic model checks so the design loop does not amplify its own blind spots.