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