chiark / gitweb /
put source code into src subdirectory
[nlopt.git] / src / algs / direct / README
1 The DIRECT algorithm (DIviding RECTangles) is a derivative-free global
2 optimization algorithm invented by Jones et al.:
3
4         D. R. Jones, C. D. Perttunen, and B. E. Stuckmann,
5         "Lipschitzian optimization without the lipschitz constant,"
6         J. Optimization Theory and Applications, vol. 79, p. 157 (1993).
7
8 This is a deterministic-search algorithm based on systematic division
9 of the search domain into smaller and smaller hyperrectangles.
10
11 The implementation is based on the 1998-2001 Fortran version by
12 J. M. Gablonsky at North Carolina State University, converted to C by
13 Steven G. Johnson.  The Fortran source was downloaded from:
14
15         http://www4.ncsu.edu/~ctk/SOFTWARE/DIRECTv204.tar.gz
16
17 Gablonsky et al implemented a modified version of the original DIRECT
18 algorithm, as described in:
19
20         J. M. Gablonsky and C. T. Kelley, "A locally-biased form
21         of the DIRECT algorithm," J. Global Optimization 21 (1),
22         p. 27-37 (2001).
23
24 Both the original Jones algorithm (NLOPT_GN_DIRECT) and the
25 Gablonsky modified version (NLOPT_GN_DIRECT_L) are implemented
26 and available from the NLopt interface.  The Gablonsky version
27 makes the algorithm "more biased towards local search" so that it
28 is more efficient for functions without too many local minima.
29
30 Also, Gablonsky et al. extended the algorithm to handle "hidden
31 constraints", i.e. arbitrary nonlinear constraints.  In NLopt, a
32 hidden constraint is represented by returning NaN (or Inf, or
33 HUGE_VAL) from the objective function at any points violating the
34 constraint.
35
36 Further information on the DIRECT algorithm and Gablonsky's
37 implementation can be found in the included userguide.pdf file.