[SciPy-Dev] Consideration of differential evolution minimizer being added to scipy.optimize.

Geoff Oxberry goxberry at gmail.com
Wed Mar 5 01:46:47 EST 2014


On Tue, Mar 4, 2014 at 2:01 PM, Andrea Gavana <andrea.gavana at gmail.com>wrote:

> Hi Ralf & All,
>
>
> On Tuesday, March 4, 2014, Ralf Gommers wrote:
>
>>
>>
>>
>> On Tue, Mar 4, 2014 at 3:21 AM, Andrew Nelson <andyfaff at gmail.com> wrote:
>>
>>> I have written some code implementing the differential evolution
>>> minimization algorithm, as invented by Storn and Price.  It's a
>>> stochastic technique, not gradient based, but it's quite good at
>>> finding global minima of functions.
>>>
>>> (see http://www1.icsi.berkeley.edu/~storn/code.html,
>>> http://en.wikipedia.org/wiki/Differential_evolution)
>>>
>>> I'd like it to be considered for inclusion in scipy.optimize, and have
>>> tried to write it as such. Can anyone give advice of how to go about
>>> polishing the code, such that it's suitable for inclusion in
>>> scipy.optimize?
>>>
>>
>> Hi Andrew. What I'd like to see is some benchmarking to show that your
>> algorithm has at least comparable performance to optimize.basinhopping. DE
>> uses similar principles as simulated annealing (if with better performance
>> from what I can tell from a quick literature search), and we just
>> deprecated optimize.anneal because of its hopelessly poor performance. In
>> light in that experience I think that for any new optimization algorithm we
>> add we should first benchmark it.
>>
>> Andrea Gavana has posted a nice set of benchmarks before:
>> http://article.gmane.org/gmane.comp.python.scientific.devel/18383, you
>> could contact him to add your algorithm (or do a similar comparison
>> yourself). Seeing your code in a comparison like
>> http://infinity77.net/global_optimization/multidimensional.html would be
>> useful.
>>
>
>
One of the typical plots used to assess performance is a "performance
profile", which was defined in "Benchmarking Optimization Software with
Performance Profiles" by Dolan and Moré (http://arxiv.org/pdf/cs/0102001.pdf).
I didn't see any plots in this format. Do you plan on presenting
performance data in this manner? The solved problems versus function
evaluations looks pretty close to this sort of presentation. This sort of
format also avoids some of the pitfalls mentioned on your site re:
performance comparisons.

A couple publications have done benchmarking on these sorts of algorithms:
"Benchmarking Derivative-Free Optimization Methods" by Moré and Wild (
http://www.optimization-online.org/DB_FILE/2008/01/1883.pdf, relevant code
is at www.mcs.anl.gov/~more/dfo), and "Derivative-Free optimization: a
review of algorithms and comparison of software implementation" by
Sahinidis and Rios (
http://www2.peq.coppe.ufrj.br/Pessoal/Professores/Arge/COQ897/dfo-Sahinidis.pdf,
relevant code is at http://archimedes.cheme.cmu.edu/?q=dfocomp) How does
your benchmark compare to the benchmarks in these references?

Are there references in your benchmark suite? I was curious as to the
source of some of the functions, but couldn't find any references in a
quick perusal of your benchmark site.


> I haven't been able yet to adapt AMPGO to scipy standards, even though I
> got a couple of very interesting replies to my question "how do I implement
> the gradient of the Tunnelling Function?" the last time I posted on the
> scipy mailing list. The 'minimize' interface in scipy is very cumbersome in
> my humble opinion, so I struggle to find the willpower to adapt AMPGO to
> scipy.
>
> That said, I'll be very happy to add Andrew's code to my set of
> benchmarks. I can actually take a shot at it tomorrow and I'll post
> the updated benchmark results on the web page you mentioned.
>
>
>
>> Another question is if we think this is in scope for scipy.optimize,
>> given that PyGMO has this same algorithm and a number of similar ones.
>>
>
> I really, *really* wanted to try the algorithms in the PyGMO distribution,
> but unfortunately there is no support (not even compilation guidelines) for
> 64 bit Windows. Basically it appears it cannot be done, and I don't have
> any other platform but Windows 64bit. That put PyGMO into the "Great
> Excluded" category in the AMPGO home page you linked above, and it is
> disheartening to see such lack of interest from PyGMO for a very much
> mainstream platform as Windows 64bit is. Maybe that will change over time...
>
> Thank you for the heads up, I'll post again when I get the results ready.
>
> Andrea.
>
>
>
>> Cheers,
>> Ralf
>>
>>
>>
>>>
>>> https://github.com/andyfaff/DEsolver
>>>
>>> cheers,
>>> Andrew.
>>>
>>>
>>> --
>>> _____________________________________
>>> Dr. Andrew Nelson
>>>
>>>
>>> _____________________________________
>>> _______________________________________________
>>> SciPy-Dev mailing list
>>> SciPy-Dev at scipy.org
>>> http://mail.scipy.org/mailman/listinfo/scipy-dev
>>>
>>
>>
>
> --
>
>
> _______________________________________________
> SciPy-Dev mailing list
> SciPy-Dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-dev
>
>


-- 
Geoffrey Oxberry, Ph.D., E.I.T.
goxberry at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20140304/101f5603/attachment.html>


More information about the SciPy-Dev mailing list