BITS for GAPS

Bayesian Information-Theoretic Sampling for hierarchical GAussian Process Surrogates.

bits_for_gaps is a small library for information-theoretic sequential experimental design with Bayesian hierarchical Gaussian-process (GP) surrogates. Prior physical knowledge is encoded through priors on the GP hyperparameters; new data are chosen by maximizing the predictive differential entropy of the resulting hierarchical posterior, so hyperparameter uncertainty – not just predictive variance – drives data acquisition. Many other adaptive sampling methods in literature use the GP’s predictive variance and ignore uncertainty in the hyperparameters themselves, which (we argue) matters most exactly when data are scarce. BITS for GAPS addresses this limitation.

BITS for GAPS framework overview: a hierarchical Gaussian process surrogate (GAPS) places priors on the kernel hyperparameters; Bayesian information-theoretic sampling (BITS) repeatedly selects the next input by maximizing the predictive differential entropy and collects data there; the result is an information-optimal surrogate whose predictions average over the hyperparameter posterior.

The BITS for GAPS framework. A hierarchical GP surrogate (GAPS) carries priors on its kernel hyperparameters; BITS repeatedly picks the next input by maximizing the predictive differential entropy of the hierarchical posterior, collects data there, and updates the surrogate; predictions then average over the hyperparameter posterior. Graphical abstract from the paper (© 2026 The Authors, CC BY 4.0).

Reference

K. D. Jones and A. W. Dowling, “BITS for GAPS: Bayesian Information-Theoretic Sampling for hierarchical GAussian Process Surrogates,” Computers & Chemical Engineering 211 (2026) 109650. doi:10.1016/j.compchemeng.2026.109650

The paper is also bundled in the repository — paper/bits_for_gaps_paper.pdf — redistributed under CC BY 4.0, so you can read the method alongside the code. Please cite the DOI.

Source code

bits_for_gaps is developed in the open at github.com/dowlinglab/bits_for_gaps — source, the worked examples, the paper-reproduction scripts, and the issue tracker. Install the library with pip install bits_for_gaps; the examples and reproduction scripts live in the repository only (see Installation).

Where to start

  • New to the library? Start with Installation then Quickstart – a pure-Python example that runs in seconds, no Julia required.

  • Want the math? Theory summarizes the method and links to the paper for the full derivations.

  • Want the paper’s case study? The VLE/distillation example walks through the H2O-PrOH vapor-liquid-equilibrium example that motivated the method.

  • Want to reproduce the published figures? Reproducing the paper’s results points at the reproduction scripts and what they need.

  • Curious what changed from the original paper code? Improvements over the original paper code – bugs found and fixed, robustness hardening, and architecture wins, specifically.

  • Looking for a specific class or function? API reference.