patternsearch converging much slower than NOMAD
8 views (last 30 days)
Both NOMAD (https://www.gerad.ca/nomad/) and patternsearch (https://de.mathworks.com/help/gads/patternsearch.html) implement a mesh-adaptive direct search (MADS) algorithm. However, I'm finding that for my problem, NOMAD with the default configuration requires about 1000 function evaluations to find the optimum, whereas patternsearch requires much more (>20k). I've played around with all the configuration parameters for patternsearch (e.g., search function, poll method, complete/partial searching & polling), but to no avail: I'm unable to speed up the convergence of patternsearch. Any advice on how to speed up the convergence of patternsearch?
A complete description of the NOMAD algorithm can be found here: http://doi.acm.org/10.1145/1916461.1916468. Judging from a cursory glance, it seems that they use different searching + polling strategies:
- "By default, the search step first executes the speculative search consisting of one trial point generated alongside the last successful direction." - this strategy does not seem to be available in patternsearch?
- For polling, they use the OrthoMADS method "introduced recently [Abramson et al. 2009b], where no more randomness is involved and which are orthogonal (hence their name)." While the OrthoMADS paper is listed in the references section of the Matlab patternsearch page, it's never mentioned above, so I'm unsure what to do to use the OrthoMADS polling strategy. To me, none of the polling strategies described here sounds like OrthoMADS.
Unfortunately, I cannot provide my example here, but I can say that it's a maximum-likelihood estimation problem for a Kalman filter model, i.e., I am minimizing the negative log likelihood of the data. The problem is smooth and deterministic but not necessarily convex. There are 8 variables to be optimized.
(I'm sorry to say, but the whole documentation on patternsearch is awfully cluttered and disorganized and far below the usual MathWorks standards, which doesn't make this any easier.)
Many thanks in advance for any comments!