This repository is part of the submission at the Transactions in Machine Learning Research (TMLR) journal:
Discovering Model Structure of Dynamical Systems with Combinatorial Bayesian Optimization
This repository contains the code for the CBOSS optimizer and the experiments presented in the paper. The main optimizer function can be found at optimizers/CBOSS.py.
CBOSS is a Bayesian Optimization method used to solve combinatorial optimization problems subject to inequality and crash constraints:
where
-
$x$ is a vector of categorical decision variables denoted as$\boldsymbol x \in \mathcal X$ , defined over the combinatorial domain$\mathcal X = \mathcal X_1 \times \mathcal X_2 \times\dots \times \mathcal X_d$ with$d$ categorical decision variables with respective cardinalities$k_1, \dots, k_d$ . -
$f: \mathcal X \to \mathbb R$ is the objective function. -
$g_j: \mathcal X \to \mathbb R$ are the inequality constraints. -
$h: \mathcal X \to {0,1}$ are the binary equality constraints indicating evaluation "crashes".
The functions
where the noise
It implements surrogate models designed for combinatorial spaces and the acquisition function FRCHEI
that can handle inequality and crash constraints.
*(generated with notebooks/FRCHEI.ipynb
)
Note: for illustration purposes we show the acquisition function for an one-dimensional continuous variable. CBOSS employs FRCHEI to high-dimensional binary/categorical spaces.
See github.com/lucasrm25/Model-Structure-Selection-CBOSS for the specification of the benchmark problems.
To install the package, activate your python environment and run:
make build
make install
Python unit tests available at test/ can be run with:
make test
This project is licensed under the terms of the MIT license. See LICENSE for more details.
If you use this code in your research, please cite the following paper:
@article{
rath2024discovering,
title={Discovering Model Structure of Dynamical Systems with Combinatorial Bayesian Optimization},
author={Lucas Rath and Alexander von Rohr and Andreas Schultze and Sebastian Trimpe and Burkhard Corves},
journal={Transactions on Machine Learning Research},
issn={2835-8856},
year={2024},
url={https://openreview.net/forum?id=2iOOvQmJBK},
note={}
}