This is the mail archive of the
gsl-discuss@sourceware.cygnus.com
mailing list for the GSL project.
Re: multidimensional optimization
Hi.
I've finished a preliminary, buggy, alpha (etc.) version of the
multidimensional optimization part of GSL I've proposed to code last month.
I'm not at all asking for inclusion, but for review. The question is how
should I make the code available? I've added a new directory (multmin) which
can be released as a tar file, but I've also a patch to the min directory
(basically a bracketing algorithm).
The implementation follows the general idea discussed in the list. Basically,
I've targeted descent algorithms, i.e., algorithms in which one performs a one
dimensional minimization along a direction given by the algorithm (the
gradient for steepest descent for instance). As suggested by Brian Gough, the
line search (one dimensional minimization) is not at all embedded into the
global algorithm. In fact, the algorithm produces a direction and updates a
structure that allows to view the multidimensional function as a one
dimensional one. The pseudo loop is therefore:
init
do
compute next direction (d)
find an initial bracketing for line search
init 1d minimization
do
loop for 1d min
perform the step (i.e. replace x by x+ed, where e is the minimum of
g(e)=f(x+ed)
check for convergence
I've tried to follow the structure of the multiroots package check in by
Brian. As a side effect, I've used gsl_vector everywhere.
Fabrice Rossi