[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Optimization toolbox (re-starting)

From: Etienne Grossmann
Subject: Optimization toolbox (re-starting)
Date: Thu, 11 Jan 2001 09:53:03 +0000
User-agent: WEMI/1.13.7 (Shimada) FLIM/1.13.2 (Kasanui) Emacs/20.7 (i386-debian-linux-gnu) (with unibyte mode)


  I almost completed a general minimization function. The synopsis is
as follows :

[x0,v,nev] = powell_min (f,args,ctl) - Minimize f using Powell's method

f     : string : Name of function. Must return a real value
args  : list   : Arguments passed to f.
     or RxC    : f's only argument
ctl   : 4      : (Optional) Control variables, described below

x0  : RxC  : Local minimum of f
v   : 1    : Value of f in x0
nev : 1    : Number of function evaluations

ctl(1)       : 1 or 2 : Select stopping criterion amongst :
ctl(1)==1    : Stopping criterion : Stop search when value doesn't
               improve, as tested by 

             ctl(2) > Deltaf/max(|f(x)|,1)

               where Deltaf is the decrease in f observed in the last
               iteration (each iteration consists R*C line searches). 
ctl(1)==2    : Stopping criterion : Stop search when updates are small,
               as tested by 

             ctl(2) > max { dx(i)/max(|x(i)|,1) | i in 1..N }

               where  dx is the change in the x that occured in the last
               iteration.                                 Default=1

ctl(2)       : Threshold used in stopping tests.          Default=sqrt(eps)
ctl(3)       : Position of the minimized argument in args Default=1
ctl(4)       : Maximum number of function evaluations     Default=inf

Default values will be used if ctl is not passed. nan's are replaced
by default values.

  Any comments, suggestions? My intent was to have a function with
little overhead (no named options) and still be flexible : extra
parameters can be passed to minimized function. 

  I plan to write minimization functions that use 1st (conjugate
gradient method) and 2nd (Newton-like method) for minimizing
functions. The synopsis would be of the same kind. Also, I will write
a fancier front-end function like "minimize (f, args, options)" with
named options, mostly for command-line usage.



ps : The function "powell_min" evaluates the minimized function
     exclusively through my function "leval" ([...] = leval (f,list)). 
     "powell_min" would have less overhead if "leval" made it into
     mainstream octave as a built-in function rather than a
     m-file. Should I send a patch to the documentation (for

Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:
How to fund new projects:
Subscription information:

reply via email to

[Prev in Thread] Current Thread [Next in Thread]