Opened 20 months ago

Closed 3 months ago

#289 closed clarification (migrated)

IpOpt reports non-optimal result in case max_iter is reached during watchdog phase

Reported by: danielw Owned by: ipopt-team
Priority: normal Component: Ipopt
Version: 3.12 Severity: normal
Keywords: Cc:


Dear IpOpt? developers,

I noticed that when IpOpt? reaches max_iter during watchdog phase, the reported objective function value can be larger than those observed in previous iterations. For example:

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 110  6.0009584e+01 0.00e+00 1.87e-01  -2.2 3.34e+00    -  2.79e-01 1.01e-02f  6
 111  6.0005710e+01 0.00e+00 1.30e-01  -2.2 9.29e-01    -  7.68e-01 2.69e-02f  5
 112  6.0000070e+01 0.00e+00 2.33e-01  -2.2 2.14e+00    -  4.26e-01 3.14e-02f  5
 113  7.4968410e+01 0.00e+00 1.52e+02  -2.2 8.35e-01    -  1.00e+00 1.00e+00w  1
                                   (scaled)                 (unscaled)
Objective...............:   7.4968409981615537e+01    7.4968409981615537e+01

I would have expected, that in such a case the result from the pre-watchdog iteration was returned (in the example above, iteration 112).

Is this intended behaviour?


Change History (2)

comment:1 Changed 20 months ago by stefan

From the log you post, I tend to agree.

Maybe there is a call to StopWatchDog() missing for the case where Ipopt stops on an iteration limit (or time limit, user interrupt, etc.). From a look at the code, I think this function should reset the point to the one from before the watchdog procedure started. But I also don't know for sure.

comment:2 Changed 3 months ago by stefan

  • Resolution set to migrated
  • Status changed from new to closed

This ticket has been migrated to GitHub and will be followed up there:

Note: See TracTickets for help on using tickets.