M1QN3/std M1QN3/std#

Description#

M1QN3 minimizer: limited-memory quasi-Newton (L-BFGS) algorithm.

M1QN3 is a quasi-Newton optimisation algorithm originally developed at INRIA (France) for minimising functions with a large number of variables. It implements a limited-memory BFGS (L-BFGS) update with a Wolfe line search.

Algorithm reference: Gilbert & Lemaréchal, 1989Some numerical experiments with variable-storage quasi-Newton algorithms, Mathematical Programming 45, 407–435.

Original code documentation: INRIA M1QN3 page

The original Fortran code was translated to Python by F. Chevallier (LSCE, 2005).

License: GNU General Public License (listed in the Free Software Directory).

YAML arguments#

The following arguments are used to configure the plugin. pyCIF will return an exception at the initialization if mandatory arguments are not specified, or if any argument does not fit accepted values or type:

Optional arguments#

niter : int, optional

maximum number of iterations

nsim : int, optional

maximum number of simulations

maxiter : int, optional, default 1

Fallback iteration limit used when neither niter nor nsim is given: sets niter = maxiter and nsim = 2 * maxiter.

dxmin : float, optional, default 1e-20

absolute precision on x; optional

df1 : float, optional, default 0.01

expected decrease for f

epsg : float, optional, default 1e-20

relative precision on the gradient

mode : int, optional, default 0

Internal M1QN3 mode flag (expert use only). Controls initial scaling (DIS vs SIS) and warm/cold start. See M1QN3 manual for details.

nupdates : int, optional, default 5

number of updates; for experts only

Requirements#

The current plugin requires the present plugins to run properly:

Requirement name

Requirement type

Explicit definition

Any valid

Default name

Default version

simulator

Simulator

True

True

gausscost

std

YAML template#

Please find below a template for a YAML configuration:

 1minimizer:
 2  plugin:
 3    name: M1QN3
 4    version: std
 5    type: minimizer
 6
 7  # Optional arguments
 8  niter: XXXXX  # int
 9  nsim: XXXXX  # int
10  maxiter: XXXXX  # int
11  dxmin: XXXXX  # float
12  df1: XXXXX  # float
13  epsg: XXXXX  # float
14  mode: XXXXX  # int
15  nupdates: XXXXX  # int