Best global optimization technique

The performance of an optimization algorithm varies greatly depending on the problem at hand. Often performance may vary with strategy and algorithm parameter settings as well. hence the question "which is the best algorithm" is inherently tricky, if possible at all, to answer. Especially in a thread like this.
Instead I was wondering if anyone had any suggestions based on my current progress. I have a fairly simple 4 parameter problem which should be optimized within constraints. It seems that many local minima exist so I have been playing around with a combination of local solvers such as fminsearchbnd and patternsearch, and global solvers such as GlobalSearch, genetic algorithms, Multistart and Differential evolution. Currently the best compromise between speed and accuracy seems to be a combination of fminsearchbnd for quick improvement of a rough initial guess and the application of Differential Evolution to determine the global solution.
The latter is a bit slow though and in my mind a 4 parameter problem should not be this tricky. Well, at least not this problem anyway. So I was wondering if anyone had any suggestions for alternative algorithms or methods that I may think of, or any recommendations as to improve my current method in general?
As suggested above this is meant merely as a "thoughts and suggestions" thread, as specific recommendations are tricky with this particular topic.
Cheers
Jakob

3 commentaires

José-Luis
José-Luis le 22 Avr 2014
How about brute force? It sounds doable with 4 parameters...
What's the priority: efficiency or accuracy? Your question is impossible to answer. You could use prior experience to guess at what's best.
What's best will depend on the response surface and there is no algorithm that can absolutely guarantee that you will find the global optimum.
You could try a package like OSTRICH (C++) or DREAM that essentially either allow you to test a bunch of algorithms or optimize using a combination of methods.
If you have an idea of what the response surface looks like, you could use the Gaussian/Jacobian to accelerate your optimization. But then you are introducing assumptions...
Jakob Sievers
Jakob Sievers le 22 Avr 2014
I should add that the optimization is used on several thousand individual 4-parameter problems and accuracy is quite essential so I am afraid brute force is out of the question.
Furthermore, I think it might be important to clarify that the objective function runs very rapidly which is why I was thinking maybe alternatives approaches exist.
DREAM looks interesting. i will look into that immediately.
Thanks for your comment!
José-Luis
José-Luis le 22 Avr 2014
My pleasure.

Connectez-vous pour commenter.

Réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by