A mixed search space combines continuous input dimensions with discrete choices among alternatives. In multifidelity optimization, the query location may vary continuously while the selected fidelity—such as a low- or high-fidelity function—remains discrete. section 9.3.2
This structure changes how acquisition scores are optimized. BoTorch’s optimize_acqf_mixed handles the continuous bounds together with a fixed_features_list that enumerates allowable values for each discrete column. For example, fidelity values can be supplied as fixed alternatives while the location remains continuously optimized. section 9.3.2
Choosing a cost-effective fidelity
A multifidelity MES policy can score queries at both low and high fidelity. When low-fidelity evaluations provide more information per unit cost, the best acquisition point uses the low-fidelity option; when evidence or costs change, a high-fidelity query may become preferable. section 9.3.2
from botorch.optim.optimize import optimize_acqf_mixed
next_x, acq_val = optimize_acqf_mixed(
policy,
bounds=torch.cat( #1
[bounds, torch.tensor([0.5, 1.0]).unsqueeze(-1)], dim=1 #1
), #1
fixed_features_list=[{1: cost.item()} for cost in fidelities], #2
q=1,
num_restarts=20,
raw_samples=50,
)
Inspect the BoTorch call that combines continuous bounds with enumerated discrete fidelity values. section 9.3.2
