MonCar

class sherpa.optmethods.MonCar(name='moncar')[source] [edit on github]

Bases: sherpa.optmethods.OptMethod

Monte Carlo optimization method.

This is an implementation of the differential-evolution algorithm from Storn and Price (1997) [1]. A population of fixed size - which contains n-dimensional vectors, where n is the number of free parameters - is randomly initialized. At each iteration, a new n-dimensional vector is generated by combining vectors from the pool of population, the resulting trial vector is selected if it lowers the objective function.

ftol

The function tolerance to terminate the search for the minimum; the default is sqrt(DBL_EPSILON) ~ 1.19209289551e-07, where DBL_EPSILON is the smallest number x such that 1.0 != 1.0 + x.

Type:number
maxfev

The maximum number of function evaluations; the default value of None means to use 8192 * n, where n is the number of free parameters.

Type:int or None
verbose

The amount of information to print during the fit. The default is 0, which means no output.

Type:int
seed

The seed for the random number generator.

Type:int
population_size

The population of potential solutions is allowed to evolve to search for the minimum of the fit statistics. The trial solution is randomly chosen from a combination from the current population, and it is only accepted if it lowers the statistics. A value of None means to use a value 16 * n, where n is the number of free parameters.

Type:int or None
xprob

The crossover probability should be within the range [0.5,1.0]; default value is 0.9. A high value for the crossover probability should result in a faster convergence rate; conversely, a lower value should make the differential evolution method more robust.

Type:num
weighting_factor

The weighting factor should be within the range [0.5, 1.0]; default is 0.8. Differential evolution is more sensitive to the weighting_factor then the xprob parameter. A lower value for the weighting_factor, coupled with an increase in the population_size, gives a more robust search at the cost of efficiency.

Type:num

References

[1]Storn, R. and Price, K. “Differential Evolution: A Simple and Efficient Adaptive Scheme for Global Optimization over Continuous Spaces.” J. Global Optimization 11, 341-359, 1997. http://www.icsi.berkeley.edu/~storn/code.html

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, pars, parmins, parmaxes, statargs=(), statkwargs={}) [edit on github]

Run the optimiser.

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) – Additional positional arguments to send to statfunc.
  • statkwargs (optional) – Additional keyword arguments to send to statfunc.
Returns:

newpars – The model parameters after the optimiser has run.

Return type:

tuple