Adaptive optimization algorithm for black-box multi-objective optimization problems with binary constraints on the foundation of Bayes optimization. The algorithm aims to find the Pareto-optimal solution of
max [ y(x) ] s.t. f(x) = feasible
in an iterative procedure. Here, y(x) denotes the multi-dimensional goals and f(x) the binary feasibility of the problem (in the sense that certain design variables x lead to invalid goals). All technical details can be found in the paper "Adaptive Sampling of Pareto Frontiers with Binary Constraints Using Regression and Classification" (https://arxiv.org/abs/2008.12005).
Installation
Install via pip
or clone this repository. In order to use pip
, type:
$ pip install adasamp-pareto
Usage
The class AdaptiveSampler
is used to define and solve a problem instance. Simple example:
from adasamp import AdaptiveSampler
# Create instance
sampler = AdaptiveSampler(func, # Problem definition: function returns (goals Y, feasibility f)
X_limits, # Design variable limits to search solution in
Y_ref, # Reference point, has to be dominated by any goal Y
iterations, # Number of solver iterations
Y_model, # Regression model to predict goals Y
f_model) # Classification model to predict feasibility f
# Return the sampling suggestions X, the corresponding goals Y, and the corresponding feasibilities f.
X, Y, f = sampler.sample()
Demo notebooks can be found in the examples/ directory.
Documentation
Complete documentation is available: https://adasamp-pareto.readthedocs.io/en/latest.
📖 Citation
If you find this code useful in your research, please consider citing:
@misc{heesebortzCITE2020, title={Adaptive Sampling of Pareto Frontiers with Binary Constraints Using Regression and Classification}, author={Raoul Heese and Michael Bortz}, year={2020}, eprint={2008.12005}, archivePrefix={arXiv}, primaryClass={stat.ML} }
This project is currently not under development and is not actively maintained.