Simplex

GPyOpt does this and that…

class olympus.planners.Simplex(goal='minimize', disp=False, maxiter=None, maxfev=None, initial_simplex=None, xatol=0.0001, fatol=0.0001, adaptive=False, init_guess=None, init_guess_method='random', init_guess_seed=None)[source]

Nelder-Mead simplex algorithm. Implementation from SciPy.

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

  • disp (bool) – Set to True to print convergence messages.

  • maxiter (int) – Maximum allowed number of iterations. Will default to N*200, where N is the number of variables, if neither maxiter or maxfev is set. If both maxiter and maxfev are set, minimization will stop at the first reached.

  • maxfev (int) – Maximum allowed number of function evaluations. Will default to N*200, where N is the number of variables, if neither maxiter or maxfev is set. If both maxiter and maxfev are set, minimization will stop at the first reached.

  • initial_simplex (array_like of shape (N + 1, N)) – Initial simplex. If given, overrides x0. initial_simplex[j,:] should contain the coordinates of the j-th vertex of the N+1 vertices in the simplex, where N is the dimension.

  • xatol (float, optional) – Absolute error in xopt between iterations that is acceptable for convergence.

  • fatol (number, optional) – Absolute error in func(xopt) between iterations that is acceptable for convergence.

  • adaptive (bool, optional) – Adapt algorithm parameters to dimensionality of problem. Useful for high-dimensional minimization.

  • init_guess (array, optional) – initial guess for the optimization

  • init_guess_method (str) – method to construct initial guesses if init_guess is not provided. Choose from: random

  • init_guess_seed (str) – random seed for init_guess_method

Methods

tell([observations])

Provide the planner with all previous observations.

ask([return_as])

suggest new set of parameters

recommend([observations, return_as])

Consecutively executes tell and ask: tell the planner about all previous observations, and ask about the next query point.

optimize(emulator[, num_iter, verbose])

Optimizes a surface for a fixed number of iterations.

set_param_space(param_space)

Defines the parameter space over which the planner will search.

ask(return_as=None)

suggest new set of parameters

Parameters

return_as (string) – choose data type for returned parameters allowed options (dict, array)

Returns

newly generated parameters

Return type

ParameterVector

optimize(emulator, num_iter=1, verbose=False)

Optimizes a surface for a fixed number of iterations.

Parameters
  • emulator (object) – Emulator or a Surface instance to optimize over.

  • num_iter (int) – Maximum number of iterations allowed.

  • verbose (bool) – Whether to print information to screen.

Returns

Campaign object with information about the optimization, including all parameters

tested and measurements obtained.

Return type

campaign (Campaign)

recommend(observations=None, return_as=None)

Consecutively executes tell and ask: tell the planner about all previous observations, and ask about the next query point.

Parameters
  • observations (list of ???) –

  • return_as (string) – choose data type for returned parameters allowed options (dict, array)

Returns

newly generated parameters

Return type

list

set_param_space(param_space)

Defines the parameter space over which the planner will search.

Parameters

param_space (ParameterSpace) – a ParameterSpace object defining the space over which to search.

tell(observations=<olympus.campaigns.observations.Observations object>)

Provide the planner with all previous observations.

Parameters

observations (Observations) – an Observation object containing all previous observations. This defines the history of the campaign seen by the planner. The default is None, i.e. there are no previous observations.