-
Notifications
You must be signed in to change notification settings - Fork 230
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
Confusing behavior of f_abstol with Fminbox #821
Comments
Because you are setting the inner tolerance while maintaining the outer tolerance of the barrier method. However, it appears that I never added Remember though, that setting f_abstol only controls the change in two consecutive evaluations. It's just telling you that there's little progress, not necessarily that you're close to the optimum. |
Indeed, I tried |
Yes, this is quite easy to fix. I will try to prioritize it. But please understand that f_abstol does not guarantee that you're in some proximity of a solution. It's just a restriction on the changes if |
To be honest, I don't know enough theory to understand how these practically differ. It seems to me that the change in f value should be directly related to the gradient. In particular, the problem of nearly flat regions that aren't near the global minimum applies just as much to g_abstol as to f_abstol, doesn't it? In any case, I find that outer_g_abstol has no effect, at least for the Rosenbrock function. However, g_abstol does have the desired effect. I'm using the syntax |
So I'm going to close the fact that these weren't passed to the convergence checker, but in general you should be aware that if you make the inner optimization more lenient you can expect to have more outer iterations and vice versa, but it's not always the case. There's a balance between following the central path more or less exactly. |
I'm leaving this here rather than making an issue because I think it might be essentially the same thing (and maybe has already been fixed on master) It seems to me that f_calls_limit is ignored as well.
|
I'm having a hard time understanding why having a higher (more lenient) tolerance results in more iterations when using Fminbox.
Note that if I switch to unbounded optimization (switch the comment) I get the expected behavior of increasing iterations:
[3, 18, 21, 21, 23, 23, 23, 24, 24, 24, 24, 24]
Is this expected behavior?
More pragmatically, I have a bounded optimization problem where I only need three digits of precision and I can see that the optimizer is spending the vast majority of iterations within this range of the final result, no matter what I set f_abstol to.
The text was updated successfully, but these errors were encountered: