-
Notifications
You must be signed in to change notification settings - Fork 48
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
Issue with convergence when using PRAXIS #723
Comments
Thanks for proving an MWE! Looking at the NLopt docs, I'm not sure PRAXIS is an algorithm I'd recommend:
The optimization problem here is indeed bounded (we don't allow variances to be negative). The |
@palday thanks for getting back to me about this! I definitely appreciate your work maintaining this project. For our use case, we use BOBYQA for all of our final models, but use PRAXIS for preliminary testing of variables. Our datasets can become very large and PRAXIS outperforms BOBYQA by a wide margin in terms of performance (at least in our test cases). Do you know if there is a way to get PRAXIS working by modifying the stopping condition? |
The problem in the MWE is that the optimizer winds up oscillating around the optimum.
Examining the change in values, I get julia> minimum(abs, diff(obj))
2.0605739337042905e-13
julia> minimum(abs, diff(theta))
1.0706571629270911e-7 This suggests that you could achieve convergence either by setting in the optsum either However, setting this for |
To follow up on this issue and #742 , using PRIMA.bobyqa produces julia> x, info = bobyqa(objective!(model), model.optsum.initial; xl=model.optsum.lowerbd)
([0.5518592883381098], PRIMA.Info(11.04666952249386, 15, PRIMA.SMALL_TR_RADIUS, 0.0, Float64[], Float64[])) In other words, it took only 15 evaluations to converge to what seems to be a good optimum. |
Models that are run with PRAXIS as the optimizer will not terminate. In the simple example below, the model will spin indefinitely but if manually stopped, it will return the expected coefficients. BOBYQA works correctly in this case.
Version Info:
Example code:
The text was updated successfully, but these errors were encountered: