[SciPy-Dev] optimize - add algorithm for global optimization: GenSA

Jacob Stevenson jstevenson131 at gmail.com
Tue Nov 10 11:56:14 EST 2015


Just to be clear, I don't think high dimensionality is one of
basinhopping's weak points.  Researchers use it regularly in cases with
hundreds or thousands of dimensions.  I saw in one of the GenSa papers
<https://journal.r-project.org/archive/2013-1/xiang-gubian-suomela-etal.pdf>
they mention the Thompson problem, so as an example here's
<http://journals.aps.org/prl/abstract/10.1103/PhysRevLett.110.165502> a
paper using basinhopping on a Thompson-like problem with with 600 atoms (free
version
<http://www.researchgate.net/profile/Halim_Kusumaatmaja/publication/236914161_Defect_Motifs_for_Constant_Mean_Curvature_Surfaces/links/00b7d5398a0f06bf22000000.pdf>
).

I wasn't trying to say that one method was better than the other, I was
just pointing out that basinhopping does have some weak points and it would
be nice to fill those in.  More specifically, basinhopping builds on top of
the abilities of local optimizers, and local optimizers often work best
when the function is reasonably continuous and smooth.  So if you try to
use basinhopping with lbfgs on a function with a lot of discontinuities,
you're going to have a bad day.

On Tue, 10 Nov 2015 at 15:29 Robert Kern <robert.kern at gmail.com> wrote:

> On Tue, Nov 10, 2015 at 2:05 PM, Gubian, Sylvain <Sylvain.Gubian at pmi.com>
> wrote:
> >
> > Dear All,
> >
> > Thanks a lot for Jake, Andrew, Chuck and Sturla comments.
> >
> > I would like to address some comments so that I would know how to go
> forward, like doing a pull request whenever you think it makes sense.
>
> I think it's time to see the code, whether in the form of a pull request
> against scipy or just a release of the current code as a standalone package.
>
> > @Jake: As you mentioned, there are situations where basinhopping may not
> work as well as PyGenSA, especially in cases of high number of parameters.
> This implementation has actually been focused on solving high dimension
> problems. However, it also works for very simple problems, but in those
> cases it might show non-optimal performance (in terms of avg number of
> function calls). The battery test shows that in general, the number of
> successes is almost always better than basinhopping, PyGenSA is a robust
> implementation.
> >
> > As attached, a PDF version of the poster I presented to PyCon UK
> Coventry in September 2015 showing a performance benchmark.
>
> This was not attached.
>
> --
> Robert Kern
> _______________________________________________
> SciPy-Dev mailing list
> SciPy-Dev at scipy.org
> https://mail.scipy.org/mailman/listinfo/scipy-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20151110/9c0574bd/attachment.html>


More information about the SciPy-Dev mailing list