[Ipopt-tickets] [Ipopt] #20: endless loop in BacktrackingLineSearch
Ipopt
coin-trac at coin-or.org
Tue Nov 21 06:24:29 EST 2006
#20: endless loop in BacktrackingLineSearch
------------------------------+---------------------------------------------
Reporter: stefan | Owner: ipopt-team
Type: defect | Status: new
Priority: normal | Component: Ipopt
Version: 3.2 (C++ Version) | Severity: blocker
Keywords: |
------------------------------+---------------------------------------------
Hi,
in LaGO I sometimes have to (locally) minimize a function over a box. For
this, I use IPOPT (from stable/3.2/).
When I'm compiling everything in debug-mode (enable_debug=yes), it works
very fine (thank you :-)). But when I compile normally with shared
libraries, IPOPT gets sometimes stucked in an endless loop in {{{
BacktrackingLineSearch::DoBacktrackingLineSearch }}}.
The detailed output starts with
{{{
--> Starting filter line search in iteration 12 <--
Storing current iterate as backup acceptable point.
The current filter has 0 entries.
Relative step size for delta_x = 2.427925e-14
minimal step size ALPHA_MIN = 0.000000E+00
Starting checks for alpha (primal) = 1.00e+00
Checking acceptability for trial step size alpha_primal_test=
1.000000e+00:
New values of barrier function = -1.6128927434177887e+04 (reference
-1.6128927434178349e+04):
New values of constraint violation = 0.0000000000000000e+00 (reference
0.0000000000000000e+00):
reference_theta = 0.000000e+00 reference_gradBarrTDelta = -1.648828e-21
Checking Armijo Condition...
Failed...
}}}
and later the following lines are repeating again and again:
{{{
Starting checks for alpha (primal) = 4.94e-324
Checking acceptability for trial step size alpha_primal_test=4.940656e-
324:
New values of barrier function = -1.6128927434177796e+04 (reference
-1.6128927434178349e+04):
New values of constraint violation = 0.0000000000000000e+00 (reference
0.0000000000000000e+00):
reference_theta = 0.000000e+00 reference_gradBarrTDelta = -1.648828e-21
Checking Armijo Condition...
Failed...
}}}
From the code, this loop is executed as long as alpha_primal>alpha_min or
n_step=0.
Since alpha_min is 0, I don't wonder that this happen actually.
From {{{acceptor_->CalculateAlphaMin()}}}, it looks like alpha_min is zero
because my constraint violation is 0.
I'm not sure whether this is a bug in IPOPT, i.e. some case is not
handled, or whether something went wrong on the way from the call of IPOPT
in LaGO to this backtracking method (since it seem to work fine in debug
mode, maybe due to compiler flags that are set different then).
But anyway it looks for me like there is a potential endless loop in this
method due to a zero alpha_min in case of zero constraint violation.
Best regards,
Stefan
--
Ticket URL: <https://projects.coin-or.org/Ipopt/ticket/20>
Ipopt <http://projects.coin-or.org/Ipopt>
Interior-point optimizer for nonlinear programs.
More information about the Ipopt-tickets
mailing list