So, after receiving a bunch of requests for the AMPGO global optimization code and the associated benchmarks, I decided to put what I have on the public domain. I don't have that much time to work on it myself *but* I would still appreciate bug reports and feature requests. The AMPGO algorithm code and the 184 ND test functions - plus 20 1D test functions - live here: https://code.google.com/p/ampgo/ The algorithm itself can be tuned to use various local optimizers from the SciPy stack - and also from the OpenOpt stack, although the overall performances of the OpenOpt algorithms ranges between poor and abysmal - with the exception of the BOBYQA algorithm, and I'd say it's high time whoever is developing SciPy should include it as numerical optimization option. The AMPGO code as it stands is *not* suitable for inclusion into SciPy: the docstrings are almost non-existent, the return values are probably not compatible with the SciPy standards and in any case I am using SciPy 0.12.b1 still. Some time ago a kind soul provided me with the analytic definition of the gradient of the Tunnelling function inside AMPGO but I never managed to code it. This will give a great boost to AMPGO for problems with readily available gradient information. My main page of results and conclusions about global optimization algorithms available in Python is here: http://infinity77.net/global_optimization/ All the conclusions and results and ranking criteria are based on the *number of function evaluations*: everything else- like CPU time and internal algorithm performances, has been scrapped in the most brutal and merciless way. Most of us deal with real life problems where a single function evaluation (a simulation) may take hours to complete, so a few milliseconds gain in the internal algorithm processing feels like a joke. That,of course, has not stopped any of the "big" Global Optimization Projects (see COCONUT and funny friends), nor any of the reported benchmarks for "famous" solvers (BARON, I'm looking at you) from using ridiculous CPU-time metrics. Comments and suggestions are most welcome - especially if they help improving the overall performance of the AMPGO code (Tunnelling function gradient is a good start) or fixing bugs in the test functions - I'm sure there are a few lurking by, it's not that easy to stay focused while coding so much numerical optimization bruhaha. -- Andrea. "Imagination Is The Only Weapon In The War Against Reality." http://www.infinity77.net # ------------------------------------------------------------- # def ask_mailing_list_support(email): if mention_platform_and_version() and include_sample_app(): send_message(email) else: install_malware() erase_hard_drives() # ------------------------------------------------------------- #
On 2 October 2014 05:39, Andrea Gavana <andrea.gavana@gmail.com> wrote:
So, after receiving a bunch of requests for the AMPGO global optimization code and the associated benchmarks, I decided to put what I have on the public domain. I don't have that much time to work on it myself *but* I would still appreciate bug reports and feature requests. <SNIP>
Comments and suggestions are most welcome - especially if they help improving the overall performance of the AMPGO code (Tunnelling function gradient is a good start) or fixing bugs in the test functions - I'm sure there are a few lurking by, it's not that easy to stay focused while coding so much numerical optimization bruhaha. -- Andrea.
Andrea, thank you for making all that available, that's certainly a large amount of work, wow. For my part I am particularly interested in the benchmark suite and would like to see that eventually included in scipy as a way of benchmarking scipy.optimize. I have a small amount of spare time to work on this and would like to take this on. Firstly, what do people think about inclusion of such a large set of benchmarking functions to the code base for scipy.optimize? We have a small amount, but could do with a lot more. Secondly, Andrea, would you mind if I worked towards this end goal? cheers, Andrew.
Andrew, On 2 October 2014 00:23, Andrew Nelson <andyfaff@gmail.com> wrote:
On 2 October 2014 05:39, Andrea Gavana <andrea.gavana@gmail.com> wrote:
So, after receiving a bunch of requests for the AMPGO global optimization code and the associated benchmarks, I decided to put what I have on the public domain. I don't have that much time to work on it myself *but* I would still appreciate bug reports and feature requests. <SNIP>
Comments and suggestions are most welcome - especially if they help improving the overall performance of the AMPGO code (Tunnelling function gradient is a good start) or fixing bugs in the test functions - I'm sure there are a few lurking by, it's not that easy to stay focused while coding so much numerical optimization bruhaha. -- Andrea.
Andrea, thank you for making all that available, that's certainly a large amount of work, wow. For my part I am particularly interested in the benchmark suite and would like to see that eventually included in scipy as a way of benchmarking scipy.optimize. I have a small amount of spare time to work on this and would like to take this on. Firstly, what do people think about inclusion of such a large set of benchmarking functions to the code base for scipy.optimize? We have a small amount, but could do with a lot more.
Secondly, Andrea, would you mind if I worked towards this end goal?
I don't have any problem with it, and I'd be happy if the benchmark suite ended up into scipy. I'd be even happier if AMPGO could make it as well... Andrea. "Imagination Is The Only Weapon In The War Against Reality." http://www.infinity77.net
participants (2)
-
Andrea Gavana -
Andrew Nelson