Skip to content

dancewithDianTong/COMBOO

Repository files navigation

COMBOO

Constrained Multi-objective Bayesian Optimization through Optimistic Constraints Estimation.

This repository contains the experimental code for COMBOO, as described in the paper:

Li, Diantong, Fengxue Zhang, Chong Liu, and Yuxin Chen. “Constrained Multi-objective Bayesian Optimization through Optimistic Constraints Estimation.” arXiv preprint arXiv:2411.03641, 2024.

This paper is accepted by AISTATS 2025(Poster). If you use this code in your research, please consider citing the paper (see the Citation section below).


Overview

COMBOO is designed to perform constrained multi-objective Bayesian optimization on several benchmark functions. The repository includes implementations for both constrained experiments and non-constrained baseline comparisons. Detailed instructions, data files, and experiment notebooks are provided.


Citation

If you use this repository, please cite the paper using the following BibTeX entry:

@InProceedings{pmlr-v258-li25a,
  title = 	 {Constrained Multi-objective Bayesian Optimization through Optimistic Constraints Estimation},
  author =       {Li, Diantong and Zhang, Fengxue and Liu, Chong and Chen, Yuxin},
  booktitle = 	 {Proceedings of The 28th International Conference on Artificial Intelligence and Statistics},
  pages = 	 {370--378},
  year = 	 {2025},
  editor = 	 {Li, Yingzhen and Mandt, Stephan and Agrawal, Shipra and Khan, Emtiyaz},
  volume = 	 {258},
  series = 	 {Proceedings of Machine Learning Research},
  month = 	 {03--05 May},
  publisher =    {PMLR},
  pdf = 	 {https://raw.githubusercontent.com/mlresearch/v258/main/assets/li25a/li25a.pdf},
  url = 	 {https://proceedings.mlr.press/v258/li25a.html},
  abstract = 	 {Multi-objective Bayesian optimization has been widely adopted in scientific experiment design, including drug discovery and hyperparameter optimization. In practice, regulatory or safety concerns often impose additional thresholds on certain attributes of the experimental outcomes. Previous work has primarily focused on constrained single-objective optimization tasks or active search under constraints. The existing constrained multi-objective algorithms address the issue with heuristics and approximations, posing challenges to the analysis of the sample efficiency. We propose a novel constrained multi-objective Bayesian optimization algorithm \textbf{COMBOO} that balances active learning of the level-set defined on multiple unknowns with multi-objective optimization within the feasible region. We provide both theoretical analysis and empirical evidence, demonstrating the efficacy of our approach on various synthetic benchmarks and real-world applications.}
}

Environment

Experiments were conducted in Python 3.10.6. See hardware.txt for detialed hardware settings.

The Python packages used are:

  • BoTorch
  • Torch
  • numpy
  • gpytorch
  • platypus
  • scipy
  • GAUCHE
pip install -r requirements.txt

For platypus, see platypus.

Structure

(1) Clone the Repository:

git clone https://github.com/yourusername/COMBOO.git
cd COMBOO

(2) Install Dependencies:

pip install -r requirements.txt

(3) Run an Experiment Notebook:

Open one of the Jupyter notebooks in the experiments_COMBOO directory (e.g., toy_COMBOO_exp.ipynb) using your preferred Jupyter environment.

Repository Structure

The repository is organized as follows:

COMBOO/
├── experiments_COMBOO/
│   ├── branin-currin_COMBOO_exp.ipynb    # Jupyter notebook for the Branin-Currin experiment
│   ├── C2-DTLZ2_COMBOO_exp.ipynb         # Jupyter notebook for the C2-DTLZ2 experiment
│   ├── caco-2++_COMBOO_exp.ipynb         # Jupyter notebook for the Caco-2++ experiment
│   ├── disc_brake_design_COMBOO_exp.ipynb  # Jupyter notebook for the Disc Brake Design experiment
│   ├── ESOL+_COMBOO_exp.ipynb             # Jupyter notebook for the ESOL+ experiment
│   ├── penicillin_COMBOO_exp.ipynb         # Jupyter notebook for the Penicillin experiment
│   └── toy_COMBOO_exp.ipynb                # Jupyter notebook for the Toy function experiment
├── experiments_non_constrained/
│   ├── qNEHVI_peni_unconstrained.ipynb    # Notebook for the unconstrained qNEHVI experiment (Penicillin)
│   └── qNEHVI_toy_unconstrained.ipynb     # Notebook for the unconstrained qNEHVI experiment (Toy function)
├── experiments_benchmarks/
│   ├── MESMOC/                           # Contains Python scripts and text files for MESMOC benchmarks
│   │   └── ...                           # (Python files such as `MESMOC_branin_currin.py`, `model.py`, etc.)
│   ├── qNEHVI/                           # Contains Jupyter notebooks for qNEHVI benchmarks
│   │   └── ...                           # (e.g. `branin_currin_qNEHVI.ipynb`, `caco2++_qNEHVI.ipynb`, etc.)
│   └── qParEGO/                          # Contains Jupyter notebooks for qParEGO benchmarks
│       └── ...                           # (e.g. `qParEGO_branin_currin.ipynb`, etc.)
├── toolkits/
│   ├── Customized_Kernels.py             # Python module for custom GP kernels
│   ├── design.py                         # Python module for design-related functions
│   ├── metrics.py                        # Python module for performance metrics
│   └── peni.py                           # Python module with helper functions for penicillin experiments
├── README.md                             # Project readme
├── requirements.txt                      # Python dependency list

toolkits

the toolkits file contains peni.py, design.py and metrics.py

  • peni.py and design.py are numpy implementations of the Penicillin Function and the Disc Brake Design Problem.
  • metrics.py contains the implementations of the performance metrics mentioned in the paper.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contact

For questions, issues, or contributions, please open an issue on GitHub or contact the authors.

About

COMBOO's python implementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors