This repository is the official implementation of the paper "Dependence in constrained Bayesian optimization: When do we need it and how does it help?".
The BibTex reference is:
@article{zhang2023dependence,
title={Dependence in constrained Bayesian optimization: When do we need it and how does it help?},
author={Zhang, Shiqiang and Lee, Robert M and Shafei, Behrang and Walz, David and Misener, Ruth},
journal={Optimization Letters},
pages={1--17},
year={2023},
publisher={Springer}
}
To install requirements:
pip install -r requirements.txt
To optimize a function with different methods shown in the paper, run this command:
python main.py $fun_index $method_index $budget
where $fun_index is the index of function, $method_index is the index of method, and $budget is the number of iterations.
main.py
.
The rest of the files correspond to:
-
acquisitions.py: implements six acquisitions used in the paper, consist of two unconstrained acquisitions (
constrained_expected_improvement
andconstrained_adaptive_sampling
) and three ways to calculate the possibility of feasibility (independent_probability_of_feasibility
,dependent_probability_of_feasibility
, andindependent_probability_of_feasibility_MOGP
). -
functions.py: defines all benchmarks used in the paper.
-
models.py: implements two models used in the paper (
Independent_MOGP
andDependent_MOGP
). The first one consists of multiple Gaussian processes, the second one is a multiple output Gaussian process. -
plot_utils.py: plots numerical results.
Shiqiang Zhang. Funded by an Imperial College Hans Rausing PhD Scholarship.