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, 1989 — Some 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
niternornsimis given: setsniter = maxiterandnsim = 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 |
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
See also