Skip to content

shuds13/generator_standard

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 

Repository files navigation

Overview

This repository is an effort to standardize the interface of the generators in optimization libraries such as Xopt, optimas, libEnsemble, rsopt.

The objective of this effort is for these different libraries to be able to use each other's generators with little effort.

Example: using Xopt generators in optimas

Definitions

  • Generator:

    A generator is an object that recommends points to be evaluated in an optimization. It can also receive data (evaluations from past or on-going 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's gen_f function.

    *Examples:

    • Xopt: here is the generator for the Nelder-Mead method. All Xopt generators implement the methods generate (i.e. make recommendations) and add_data (i.e. receive data).
    • optimas: here is the base class for all generators. It implements the methods ask (i.e. make recommendations) and tell (i.e. receive data).

Standardization

Each type of generator (e.g., Nelder-Nead, different flavors of GA, BO, etc.) will be a Python class that defines the following methods:

  • Constructor:

    The constructor will include variable positional and keyword arguments to accommodate the different options that each type of generator has.

  • ask():

    Returns set of points in the input space, to be evaluated next. TBD: how many points? Which (array) format for the returned data?

  • tell( X ):

    Feeds data (past evaluations) to the generator TBD: which (array) format for X?

About

Standardization for generators used in optimas, Xopt, libEnsemble...

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published