multidimensional optimization

Fabrice Rossi rossi@ufrmd.dauphine.fr
Fri Nov 26 06:57:00 GMT 1999


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


More information about the Gsl-discuss mailing list