ampgo

SeparableModelResult.ampgo(params=None, **kws)

Find the global minimum of a multivariate function using AMPGO.

AMPGO stands for ‘Adaptive Memory Programming for Global Optimization’ and is an efficient algorithm to find the global minimum.

Parameters:
  • params (Parameters, optional) – Contains the Parameters for the model. If None, then the Parameters used to initialize the Minimizer object are used.
  • **kws (dict, optional) –

    Minimizer options to pass to the ampgo algorithm, the options are listed below:

    local: str (default is 'L-BFGS-B')
        Name of the local minimization method. Valid options are:
        - 'L-BFGS-B'
        - 'Nelder-Mead'
        - 'Powell'
        - 'TNC'
        - 'SLSQP'
    local_opts: dict (default is None)
        Options to pass to the local minimizer.
    maxfunevals: int (default is None)
        Maximum number of function evaluations. If None, the optimization will stop
        after `totaliter` number of iterations.
    totaliter: int (default is 20)
        Maximum number of global iterations.
    maxiter: int (default is 5)
        Maximum number of `Tabu Tunneling` iterations during each global iteration.
    glbtol: float (default is 1e-5)
        Tolerance whether or not to accept a solution after a tunneling phase.
    eps1: float (default is 0.02)
        Constant used to define an aspiration value for the objective function during
        the Tunneling phase.
    eps2: float (default is 0.1)
        Perturbation factor used to move away from the latest local minimum at the
        start of a Tunneling phase.
    tabulistsize: int (default is 5)
        Size of the (circular) tabu search list.
    tabustrategy: str (default is 'farthest')
        Strategy to use when the size of the tabu list exceeds `tabulistsize`. It
        can be 'oldest' to drop the oldest point from the tabu list or 'farthest'
        to drop the element farthest from the last local minimum found.
    disp: bool (default is False)
        Set to True to print convergence messages.
    
Returns:

Object containing the parameters from the ampgo method, with fit parameters, statistics and such. The return values (x0, fval, eval, msg, tunnel) are stored as ampgo_<parname> attributes.

Return type:

MinimizerResult

New in version 0.9.10.

Notes

The Python implementation was written by Andrea Gavana in 2014 (http://infinity77.net/global_optimization/index.html).

The details of the AMPGO algorithm are described in the paper “Adaptive Memory Programming for Constrained Global Optimization” located here:

http://leeds-faculty.colorado.edu/glover/fred%20pubs/416%20-%20AMP%20(TS)%20for%20Constrained%20Global%20Opt%20w%20Lasdon%20et%20al%20.pdf