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
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.
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
- Prioritizing which materials-irradiation coupons to model first
- Choosing plasma-scenario points that best constrain confinement scaling
- Selecting neutronics cases that most reduce spread in the tritium breeding estimate
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.