Planners

Olympus provides wrappers for a number of algorithms. These can be accessed by importing the specific planner class from the olympus.planners module, or via the Planner function. For instance, to load the GPyOpt algorithm, you can use the Planner function:

from olympus.planners import Planner
planner = Planner(kind='Gpyopt')

The above is equivalent to importing the class Gpyopt directly:

from olympus.planners import Gpyopt
planner = Gpyopt()

This latter approach, however, allows for more control over the algorithm behaviour via the input arguments of the Gpyopt class.

Here below are all the planners available in Olympus.

Bayesian Algorithms

These algorithms employ a sequential model-based approach for the global optimization of black-box functions without requiring derivatives. More specifically, the function to be optimized is approximated by a surrogate model that is refined as more data is collected. Based on this model, an acquisition function that evaluates the utility of candidate points can be defined, leading to the balanced exploration and exploitation of the search space of interest.

Evolutionary Algorithms

These are population and heuristic based algorithms inspired by biological evolution. They mimic mechanisms such as reproduction, mutation, recombination, and selection to iteratively improve the fitness of a population. Each individual in the population represent a point in the search space, and their fitness corresponds to the objective evaluated at that point. Similar to Bayesian optimization algorithms, no gradient information is required and they can be used for the global optimization of black-box functions.

Gradient Methods

These algorithms use derivative information (gradient or Hessian) at the current point to determine the location of the next point to be evaluated. These approaches are efficient on convex optimization problems, but are not guaranteed to find the global optimum.

Grid-Like Searches

These algorithms define a set of points in parameter space to be evaluated at the start of the optimization campaign. Thus, the number of points to be evaluated needs to be chosen in advance. At every step of the campaign, the next point to be evaluated is chosen deterministically. While being a global optimization strategies, their cost scales exponentially with the number of parameters. Alternatives to standard full grid approaches involve the use of low discrepancy sequences to sample more effectively high dimensional spaces.

Others

These are algorithms the do not easily fit the categories above.

Planner Function

olympus.planners.Planner(kind='ConjugateGradient', goal='minimize', param_space=None)[source]

Convenience function to access planners via a slightly higher level interface It returns a certain planner with defaults arguments by keyword.

Parameters
  • kind (str or AbstractPlanner) – Keyword identifying one of the algorithms available in Olympus. Alternatively, you can pass a custom algorithm that is a subclass of AbstractPlanner.

  • goal (bool) – The optimization goal, either ‘minimize’ or ‘maximize’. Default is ‘minimize’.

  • param_space (ParamSpace) – A ParameterSpace object defining the space over which to search.

Returns

An instance of the chosen planning algorithm.

Return type

Planner