NLopt Algorithms

From AbInitio

Revision as of 04:30, 12 November 2008; Stevenj (Talk | contribs)
(diff) ←Older revision | Current revision | Newer revision→ (diff)
Jump to: navigation, search
NLopt
Download
Release notes
FAQ
NLopt manual
Introduction
Installation
Tutorial
Reference
Algorithms
License and Copyright

NLopt includes implementations of a number of different optimization algorithms. These algorithms are listed below, including links to the original source code (if any) and citations to the relevant articles in the literature (see Citing NLopt).

Even where I found available free/open-source code for the various algorithms, I modified the code at least slightly (and in some cases noted below, substantially) for inclusion into NLopt. I apologize in advance to the authors for any new bugs I may have inadvertantly introduced into their code.

Contents

Nomenclature

Each algorithm in NLopt is identified by a named constant, which is passed to the NLopt routines in the various languages in order to select a particular algorithm. These constants are of the form NLOPT_{G,L}{N,D}_xxxx, where G/L denotes global/local optimization and N/D denotes derivative-free/gradient-based algorithms, respectively.

For example, the NLOPT_LN_COBYLA constant refers to the COBYLA algorithm (described below), which is a local (L) derivative-free (N) optimization algorithm.

Many of the algorithms have several variants, which are grouped together below.

Global optimization

DIRECT and DIRECT-L

Controlled Random Search (CRS) with local mutation

Multi-level single-linkage (MLSL)

StoGO

Local derivative-free optimization

COBYLA (Constrained Optimization BY Linear Approximations)

NEWUOA + bound constraints

PRAXIS (PRincipal AXIS)

Nelder-Mead Simplex

Sbplx (based on Subplex)

Local gradient-based optimization

MMA (Method of Moving Asymptotes)

Low-storage BFGS

Preconditioned truncated Newton

Shifted limited-memory variable-metric

Personal tools