al. to be more weighted towards local search. Does not support
unconstrainted optimization. There are also several other variants of
the DIRECT algorithm that are supported:
-.BR NLOPT_GLOBAL_DIRECT ,
+.BR NLOPT_GN_DIRECT ,
which is the original DIRECT algorithm;
-.BR NLOPT_GLOBAL_DIRECT_L_RAND ,
+.BR NLOPT_GN_DIRECT_L_RAND ,
a slightly randomized version of DIRECT-L that may be better in
high-dimensional search spaces;
-.BR NLOPT_GLOBAL_DIRECT_NOSCAL ,
-.BR NLOPT_GLOBAL_DIRECT_L_NOSCAL ,
+.BR NLOPT_GN_DIRECT_NOSCAL ,
+.BR NLOPT_GN_DIRECT_L_NOSCAL ,
and
-.BR NLOPT_GLOBAL_DIRECT_L_RAND_NOSCAL ,
+.BR NLOPT_GN_DIRECT_L_RAND_NOSCAL ,
which are versions of DIRECT where the dimensions are not rescaled to
a unit hypercube (which means that dimensions with larger bounds are
given more weight).
and should be linked via -lnlopt_cxx (via a C++ compiler, in order
to link the C++ standard libraries).
.TP
-.B NLOPT_LN_SUBPLEX
+.B NLOPT_LN_NELDERMEAD
Perform a local (L) derivative-free (N) optimization, starting at
.IR x ,
-using the Subplex algorithm of Rowan et al., which is an improved
-variant of Nelder-Mead simplex algorithm. (Like Nelder-Mead, Subplex
-often works well in practice, even for discontinuous objectives, but
-there is no rigorous guarantee that it will converge.) Subplex is
-best for unconstrained optimization, but constrained optimization also
-works (both for simple bound constraints via
-.I lb
-and
-.I ub
-as well as nonlinear constraints via the crude technique of returning
-+Inf when the constraints are violated, as explained above).
+using the Nelder-Mead simplex algorithm, modified to support bound
+constraints. Nelder-Mead, while popular, is known to occasionally
+fail to converge for some objective functions, so it should be
+used with caution. Anecdotal evidence, on the other hand, suggests
+that it works fairly well for discontinuous objectives. See also
+.B NLOPT_LN_SBPLX
+below.
+.TP
+.B NLOPT_LN_SBPLX
+Perform a local (L) derivative-free (N) optimization, starting at
+.IR x ,
+using an algorithm based on the Subplex algorithm of Rowan et al.,
+which is an improved variant of Nelder-Mead (above). Our
+implementation does not use Rowan's original code, and has some minor
+modifications such as explicit support for bound constraints. (Like
+Nelder-Mead, Subplex often works well in practice, even for
+discontinuous objectives, but there is no rigorous guarantee that it
+will converge.) Nonlinear constraints can be crudely supported
+by returning +Inf when the constraints are violated, as explained above.
.TP
.B NLOPT_LN_PRAXIS
Local (L) derivative-free (N) optimization using the principal-axis
search uses the derivative/nonderivative algorithm set by
.I nlopt_set_local_search_algorithm
(currently defaulting to
-.I NLOPT_LD_LBFGS
+.I NLOPT_LD_MMA
and
-.I NLOPT_LN_SUBPLEX
+.I NLOPT_LN_COBYLA
for derivative/nonderivative searches, respectively). There are also
two other variants, \fBNLOPT_GD_MLSL\fR and \fBNLOPT_GN_MLSL\fR, which use
pseudo-random numbers (instead of an LDS) as in the original MLSL algorithm.
Some of the algorithms also support using low-discrepancy sequences (LDS),
sometimes known as quasi-random numbers. NLopt uses the Sobol LDS, which
is implemented for up to 1111 dimensions.
-.SH BUGS
-Currently the NLopt library is in pre-alpha stage. Most algorithms
-currently do not support all termination conditions: the only
-termination condition that is consistently supported right now is
-.BR maxeval .
.SH AUTHORS
Written by Steven G. Johnson.
.PP
-Copyright (c) 2007-2008 Massachusetts Institute of Technology.
+Copyright (c) 2007-2014 Massachusetts Institute of Technology.
.SH "SEE ALSO"
nlopt_minimize(3)