This repository is an effort to standardize the interface of the generators in optimization libraries such as:
The objective of this effort is for these different libraries to be able to use each other's generators with little effort.
Examples:
Using
libEnsemblegenerators inOptimas: APOSMM NLopt - IBCDFOUsing
Xoptgenerators inOptimas: Multiple ExamplesUsing
Xoptgenerators inlibEnsemble: ExpectedImprovement - (with Xopt-style sim)Using
Optimasgenerators inlibEnsemble: Multi-Fidelity Ax GeneratorUsing
libEnsemblegenerators inXopt: APOSMM Generator
-
Generator:
A generator is an object that recommends points to be evaluated in an optimization. It can also receive data (evaluations from past or ongoing optimization), which helps it make more informed recommendations.
Note: The generator does not orchestrate the overall optimization (e.g. dispatch evaluations, etc.). As such, it is distinct from
libEnsemble'sgen_ffunction, and is not itself "workflow" software. -
Variables, Objectives, Constraints (VOCS):
A
VOCSis an object that specifies the names and types of components of the optimization problem that will be used by the generator. Each generator will validate that it can handle the specified set of variables, objectives, constraints, etc.
For complete API documentation, examples, and detailed specifications, see the official documentation:
https://generator-standard.readthedocs.io
The Python abstract classes that define the standard can be installed with:
pip install gest-api