mixle.doe.multifidelity module

Cost-aware multi-fidelity Bayesian optimization.

Many expensive objectives have cheap approximations – a coarser mesh, fewer Monte-Carlo samples, a shorter training run. Multi-fidelity BO exploits them: it spends cheap low-fidelity evaluations to locate good regions and reserves the expensive high-fidelity ones for refinement, reaching the optimum of the true (target) objective for a fraction of the cost of optimizing it directly.

multi_fidelity_minimize() follows the BOCA idea (Kandasamy et al. 2017): a single GP over the input augmented with a fidelity coordinate learns how fidelities correlate; each step picks the input by Expected Improvement at the target fidelity, then picks the fidelity that buys the most target-variance reduction per unit cost. It fits the torch GP surrogate.

multi_fidelity_minimize(objective, bounds, *, fidelities=(0.5, 1.0), costs=None, target=None, n_init=None, max_cost=40.0, n_candidates=256, maximize=False, seed=None, fit_kwargs=None)[source]

Cost-aware multi-fidelity Bayesian optimization of objective(x, s).

objective(x, s) returns the response at input x and fidelity s (one of fidelities); the largest fidelity (or target) is the true objective. costs is the per-fidelity evaluation cost (default: the fidelity value itself). The loop fits a GP over [x, s], proposes x by Expected Improvement at the target fidelity, then evaluates at the fidelity maximizing target-variance reduction per unit cost, until the cumulative cost reaches max_cost. Returns {'x', 'y', 'X', 'Y', 'cost'} – the best target-fidelity point and the full augmented history.

Parameters:
Return type:

dict[str, Any]