1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
From-scratch re-implementation of the DIRECT and DIRECT-L algorithms
described in:
D. R. Jones, C. D. Perttunen, and B. E. Stuckmann,
"Lipschitzian optimization without the lipschitz constant,"
J. Optimization Theory and Applications, vol. 79, p. 157 (1993).
J. M. Gablonsky and C. T. Kelley, "A locally-biased form
of the DIRECT algorithm," J. Global Optimization 21 (1),
p. 27-37 (2001).
I re-implemented the algorithms for a couple of reasons. First,
because I was interested in the algorithms and wanted to play with
them by trying some variations (originally, because I wanted to
experiment with a hybrid approach combining DIRECT with local search
algorithms, see hybrid.c). Second, I wanted to remove some arbitrary
restrictions in the original Fortran code, e.g. a fixed upper bound on
the number of function evaluations. Third, because it was fun to
code. As far as I can tell, my version converges in about the same
number of iterations as Gablonsky's code (with occasional slight
differences due to minor differences in how I break ties, etc.).
The code in this directory is under the same MIT license as the rest
of my code in NLopt (see ../COPYRIGHT).
Steven G. Johnson
|