Help about use of tiny_step_tol
mottelet opened this issue · 2 comments
Hello,
I am solving a numerically kind of ill-posed optimization problem (my gradient is not exact as it is approximated) and I have difficulties to stop the optimization. I try to use the tiny_step_tol parameter, but it does not seem to work. I have read in the documentation that only repeated violation of the step tolerance will stop the optimization. How do you control the macimum number of repeated violations ?
S.
I think it is 2:
Ipopt/src/Algorithm/IpBacktrackingLineSearch.cpp
Lines 393 to 419 in 1e0a5df
But it needs the step in the dual variables to be tiny (tiny_step_y_tol
) as well for the first time.
(The t/T character is shown in the iteration log.)
In the next iteration, only tiny_step_tol
is relevant to set the tiny_step flag in IpData()
.
If that is set, and no update for mu is computed, then Ipopt will terminate:
Ipopt/src/Algorithm/IpMonotoneMuUpdate.cpp
Lines 158 to 161 in 1e0a5df
However, there is some probably undocumented condition in the detection of a tiny step. If the constraint violation is still "large", then there can be no tiny steps, apparently:
Ipopt/src/Algorithm/IpBacktrackingLineSearch.cpp
Lines 1256 to 1263 in 1e0a5df
OK thanks.