help-gsl
[Top][All Lists]
Advanced

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

Re: [Help-gsl] gsl_multimin_fminimizer_nmsimplex2


From: Andrew W. Steiner
Subject: Re: [Help-gsl] gsl_multimin_fminimizer_nmsimplex2
Date: Fri, 14 Jun 2013 09:00:58 -0700

It is a known weakness of the Nelder-Mead simplex minimizer algorithm
itself (having little to do with the GSL implementation) that it may fall
into limit cycles where the algorithm never converges. This is especially
the case in functions with a high degree of symmetry and low noise. The
nmsimplex2 function is a little better about this than nmsimplex, but still
has problems with some functions. I don't know of an elegant solution to
this. I often alternate back and forth a couple times between simplex and
simulated annealing minimizers to help combat this issue.

Take care,
Andrew
(http://o2scl.sourceforge.net)


On Fri, Jun 14, 2013 at 8:36 AM, Graeme Paterson <address@hidden> wrote:

> I'm trying to minimize a function that sometimes has a minimum that's
> constant over some extended 'area'
> The minimizers nmsimplex and nmsimplex2 bounce around and never exit (
> until the iteration limit ).
>
> To reproduce change the return statement in in the example function my_f
> in the manual to:
>
>     double rv = 10.0 * (x - dp[0]) * (x - dp[0]) + 20.0 * (y - dp[1]) * (y
> - dp[1]) + 30.0;
>     if( rv < 31 ) return 31.0; else return rv;
>
>  or even simpler, just
>     return 31;
>
> I tried it with gsl 1.15 in linux ( and 1.8 and 1.14 in windows )
>
> gcc -Wall -c -DHAVE_INLINE mm.c
> gcc mm.o -lgsl -lgslcblas
>
> ~/gsl/mm$ gcc --version
> gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
>
>
>
>


reply via email to

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