[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