Comments on: Selecting the Granularity You Want in GlobalSearch or MultiStart https://blogs.mathworks.com/loren/2014/05/20/selecting-the-granularity-you-want-in-globalsearch-or-multistart/?s_tid=feedtopost Loren Shure is interested in the design of the MATLAB language. She is an application engineer and writes here about MATLAB programming and related topics. Mon, 25 Sep 2017 00:27:18 +0000 hourly 1 https://wordpress.org/?v=6.2.2 By: Alan Weiss https://blogs.mathworks.com/loren/2014/05/20/selecting-the-granularity-you-want-in-globalsearch-or-multistart/#comment-42192 Fri, 23 May 2014 12:22:18 +0000 https://blogs.mathworks.com/loren/?p=899#comment-42192 Dan, it sounds as if you have a very difficult global minimization problem. It sounds as if the problem is that nearly any algorithm quickly gets stuck in a local minimum.

I guess that I would try using MultiStart with lsqnonlin in order to sample as many start points as possible. You might want to look at Isolated Global minimum in the documentation for a sort of case study of a related problem.

Good luck,

Alan

]]>
By: Dan https://blogs.mathworks.com/loren/2014/05/20/selecting-the-granularity-you-want-in-globalsearch-or-multistart/#comment-42110 Thu, 22 May 2014 13:35:40 +0000 https://blogs.mathworks.com/loren/?p=899#comment-42110 I’ve tried working with pretty much every search tool in the GADS toolbox trying to find the best solver for my problem, and I would appreciate any insight you could offer. I’m working in a system with a potentially enormous number of local minima, with very steep slopes. What I’m trying to do is to fit a combination of decaying sinusoids (say 4-8) to irregularly sampled noisy data. i.e.

 y = sum(amp.*exp(-decay*(t-t0))*sin(f*(t-t0))
Assuming all the individual sinusoids share the same t0, but each will have its own amplitude, decay rate, and frequency

So far the only moderately effective solution I’ve found is to use a genetic solver with a custom mutation functions where I combine adaptive feasible, small spread gaussians, and uniform mutation AND I periodically run lsqnonlin in order to make sure that I’m at a local minimum. I’ve customized the crossover function so that I’m combining the contributions of the sinusoids as groups (i.e. keep a particular frequency coupled with it’s amplitude and decay rate). I’ve bound the problem as tightly as I can, which obviously helps. The problem is that I can often get stuck in solutions that are local minima.

I’ve tried patternsearch, globalsearch, multistart, simulatedannealing, etc. But I’ve not had great luck finding a computation that can reliably even get close. I’ve also tried using multiple populations with migration, in the hopes that each population will find a piece of the problem and then they will combine later.

Any suggestions?
Thanks.

]]>