[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) |
Hello,
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
ARGUMENTS
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
RETURNED VALUES
x0 : RxC : Local minimum of f
v : 1 : Value of f in x0
nev : 1 : Number of function evaluations
CONTROL VARIABLES
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.
Cheers,
Etienne
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
2.1.3[23])?
-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.
Octave's home on the web: http://www.octave.org
How to fund new projects: http://www.octave.org/funding.html
Subscription information: http://www.octave.org/archive.html
-------------------------------------------------------------
- Optimization toolbox (re-starting),
Etienne Grossmann <=