Scipy_Shgo

class sherpa.optmethods.optscipy.Scipy_Shgo(name: str | None = None, **kwargs)[source] [edit on github]

Bases: ScipyBase

Optimizer using scipy.optimize.shgo.

The scipy.optimize.shgo function implements the simplicial homology global optimization algorithm. It is a global optimization algorithm that is designed to find the global minimum.

Sherpa will automatically convert statistics functions, input values, parameter limits etc. to the format required by the scipy function and those cannot be set by the user. Below is a list of attributes most likely to be be of interest for Sherpa users, see scipy.optimize.shgo documentation for details of all parameters.

n

Number of sampling points used in the construction of the simplicial complex.

Type:

int

iters

Number of iterations used in the construction of the simplicial complex. Default is 1.

Type:

int

callback

A callable called after each iteration.

Type:

callable

minimizer_kwargs

A dictionary of options to pass to the local minimizer.

Type:

dict

options

A dictionary of solver options. See the scipy.optimize.shgo documentation for a full list.

Type:

dict

sampling_method

Current built in sampling method options are halton, sobol and simplicial. See the scipy.optimize.shgo documentation for details.

Type:

str or function

workers

The number of workers to use for parallelization.

Type:

int or map-like callable

Attributes Summary

default_config

The default settings for the optimiser.

Methods Summary

fit(statfunc, pars, parmins, parmaxes[, ...])

Run the optimiser.

Attributes Documentation

default_config

The default settings for the optimiser.

Methods Documentation

fit(statfunc: Callable[[Sequence[float] | ndarray], tuple[float, ndarray]], pars: Sequence[float] | ndarray, parmins: Sequence[float] | ndarray, parmaxes: Sequence[float] | ndarray, statargs: Any | None = None, statkwargs: Any | None = None) tuple[bool, ndarray, float, str, dict[str, Any]] [edit on github]

Run the optimiser.

Changed in version 4.18.0: The statargs and statkwargs arguments are now ignored.

Changed in version 4.16.0: The statkwargs argument now defaults to None rather than {}.

Parameters:
  • statfunc (function) – Given a list of parameter values as the first argument and, as the remaining positional arguments, statargs and statkwargs as keyword arguments, return the statistic value.

  • pars (sequence) – The start position of the model parameter values.

  • parmins (sequence) – The minimum allowed values for each model parameter. This must match the length of pars.

  • parmaxes (sequence) – The maximum allowed values for each model parameter. This must match the length of pars.

  • statargs (optional) – This is currently unused.

  • statkwargs (dict, optional) – This is currently unused.

Returns:

newpars – The tuple contains: boolean indicating whether the optimization succeeded or not, the best fit parameters as a NumPy array, the statistic value at the best-fit location, a string message indicating the status, and a dictionary containing information about the optimisation (this depends on the optimiser).

Return type:

tuple