Randomly multiply started optimizations for global problems
Updated 6 Mar 2007

View License

Some optimization problems have very simple surfaces to optimize. The optimizer simply proceeds downhill to the unique minimizer and returns happily - all is good in the world. Sadly, more often the objective function has multiple local minimizers, you as the user provide poor starting values, and the optimization returns what is essentially junk for a solution. My response would typically be that you needed to provide better starting values. At that time, I'd also try to explain the idea of a basin of attraction for any minimum. Its the set of points that when used as starting values, will allow a given optimizer to converge to a given local minimum.

Starting values that lie in the basin of attraction of the global minimizer are not always that easy to choose for all problems. One solution is to use a randomly multiply started optimizer. Thus, generate lots of starting values, then start the optimizer from each such point. Or start from only the very best of those sampled points.

RMSEARCH puts a simple framework around this task, automatically generating random samples for you, testing which result in the best initial points, then starting your chosen optimizer at that set of points, finally compiling the results.

RMSEARCH can be used with 7 different optimizers:

fminbnd, fmincon, fminsearch, fminsearchbnd, fminsearchcon, fzero, lsqnonlin.

Fmincon requires the optimization toolbox, while fminsearchbnd and fminsearchcon can be found right here on the file exchange:



Cite As

John D'Errico (2024). RMSEARCH (https://www.mathworks.com/matlabcentral/fileexchange/13733-rmsearch), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2006b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Linear Programming and Mixed-Integer Linear Programming in Help Center and MATLAB Answers
Tags Add Tags

Inspired by: Optimization Tips and Tricks

Community Treasure Hunt

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

Start Hunting!



Version Published Release Notes

Fixed a bug that sometimes did not search diligently enough for a root near the top of the domain for fzero.