octave-maintainers
[Top][All Lists]
Advanced

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

Re: bfgsmin and fminunc


From: Jaroslav Hajek
Subject: Re: bfgsmin and fminunc
Date: Mon, 18 May 2009 10:08:29 +0200

On Fri, May 15, 2009 at 9:44 AM, Michael Creel <address@hidden> wrote:
>
> I have had a look at fminunc.m, and it looks nice in general. I would suggest
> using central diff gradient. In my experience, the increased time per
> iteration is usually offset by fewer iterations needed for convergence, due
> to better accuracy. I see a "guarded_eval" - what is that? I would also
> suggest setting max iters to infinite, or a lot higher than 400. Some
> problems are just hard to solve.
>
> I may try to take advantage of the fast  cholupdate code in bfgsmin,
> probably this summer when I have time.
>
> Maybe it would be nice to have a set of test functions for optimization
> algorithms, to be able compare performance and verify the capability of
> finding correct solutions. I used a set when I first wrote bfgsmin, but I
> haven't used it in a while. I'll see if I can resurrect it and give it a
> friendly interface.
>
> M.
>

Michael,

thanks for your comments. I have reworked the FD part of fsolve and
fminunc so that they now use central diffs by default, controllable
using the FinDiffType option.
While the superlinear/subquadratic termination of the BFGS seems to
work fine in fminunc (which is the primary aim), the global
convergence props for strongly nonquadratic functions (such as
Rosenbrock's) is something that depends, according to my observations,
crucially on the strategy of updating the trust region.
So far the strategy was very simple, based on the original MINPACK
code. I replaced it with something slightly more elaborate now, but I
think there's still a lot to improve. It seems most researchers
consider the trust region strategy either equally or more powerful
compared to line searches, but OTOH the line search strategies seem
far better investigated.
In the present state fminunc differs pretty much from bfgsmin - trust
region/line search, factorized full BFGS/direct inverse full BFGS or
LBFGS. I wanted fminunc to stay close to fsolve and exploit the
"duality" between solving nonlinear systems and minimizing
functionals, and to be suitable for small or moderate size problems,
just like fsolve is. I think that a basic, Matlab-compatible local
minimization tool should be part of Octave core, but an user seriously
concerned with optimization should undoubtedly get the optimization
toolbox.
The optim toolbox needs some clean-up and also should eventually use
the optimget/optimset mechanism now provided by core Octave, that
allows case-insensitive option setting and warns when options are
misspelled.
Any more testing/suggestions/code contributions etc. are surely welcome.

regards

-- 
RNDr. Jaroslav Hajek
computing expert & GNU Octave developer
Aeronautical Research and Test Institute (VZLU)
Prague, Czech Republic
url: www.highegg.matfyz.cz



reply via email to

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