Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Increase frequency of Sbplx change without triggering early termination #577

Open
A-J-F-Mackintosh opened this issue Nov 27, 2024 · 1 comment

Comments

@A-J-F-Mackintosh
Copy link

A-J-F-Mackintosh commented Nov 27, 2024

Hi,

Thanks for all your work on nlopt, it is an excellent library.

I am interested in using the Sbplx algorithm for gradient-free optimisation of functions with high dimensions (e.g. 3 < n < 12) in python. I was hoping that SBPLX would perform better than Nelder-Mead on such problems, but so far I have found that it is less efficient and more likely to get stuck in local optima.

I have observed that the SBPLX algorithm can spend a long time optimising a single sub-space of the problem, even if it is making very little progress. Increasing the ftol or xtol leads to a more dynamic algorithm that will more frequently move between subspaces rather than use many iterations optimising a single one. However, increasing those tolerances also leads to the algorithm terminating before it has found the true optimum value.

I think that a more agile Sbplx behaviour would be helpful for my optimisation problem. So, is there a way to set different stopping criteria for the optimisation of sub-spaces and the problem as a whole? For example, could I set two different maxeval values, one to tell the Sbplx algorithm to switch subspaces and another to stop the optimisation as a whole? Or two ftol values?

Many thanks,

Alex

@stevengj
Copy link
Owner

One could add an algorithm-specific parameter for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants