I have an optimization problem where several optima can exist at different input values, and I need to find as many as possible. As an example consider the cross-in-tray function, which has four distinct optima at (±1.3, ±1.3).

cross-in-tray function

I know lots of optimization techniques which will find one of the four optima, but what if you need to find all four? Can anyone suggest a good approach? Thanks!


  • $\begingroup$ This is a great question (and it's obviously important in statistics), but I'm wondering if it would be better suited for Math.SE because it has some pretty wide applicability. $\endgroup$ Sep 20, 2014 at 1:48

1 Answer 1


This is a difficult problem that I have been asking myself lately.

A naive approach is to use space filling or random sampling, filter the data so that you are looking at the ones with the lowest function values, and then generate clusters in that region of the performance space. This gives you distinct areas in the design space, of high performance, which can be further optimized. However, this approach doesn't help if you have local minima which are significantly worse than the global minima. It also doesn't work if the minima are in very small regions that will not be found by random sampling.

Another naive approach is find a "global optimum", save it, then penalize that area of the design space, so the next optimum is found on the next run.

Hopefully someone can present a "good" algorithm to directly detect how many modes the problem has. I'd be interested in the response.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.