# [Ipopt] is this a bug? bad evaluation of the objective function at the optimum

Stefan Vigerske stefan at math.hu-berlin.de
Tue May 5 10:56:32 EDT 2015

```Hi,

bugreports should probably better go into the bugtracking system. There,
you could also attach your R code to reproduce the issue.
I don't know if anyone would actually look at it in the near future, though.

If you want to investigate by yourself, then enabling the derivative
checker is usually a good first iteration.

Stefan

On 05/04/2015 05:56 PM, Pedro C. Alvarez wrote:
> Hi all,
>
> I am starting to use Ipopt (through R interface), and I found this surprising
> 'bug'(?) related to the value of the objective function at the optimum. Ipopt
> finds correctly the optimum, but the value of the objective at the optimum is
> incorrect.
> I paste below the output of IPopt. Observe that at iteration #17 the value of
> the objective is worst that at #16 (which is approx the good value of the
> objective at the optimum).
>
> The problem I am trying to solve is a very easy convex problem with linear
> constraints.
>
> Any clue would be appreciated?
>
> thank very much,
> Pedro.
>
> ------------------------------------------------------------------------------------------------
> This is Ipopt version 3.12.0, running with linear solver mumps.
> NOTE: Other linear solvers might be more efficient (see Ipopt documentation).
>
> Number of nonzeros in equality constraint Jacobian...:        0
> Number of nonzeros in inequality constraint Jacobian.:        8
> Number of nonzeros in Lagrangian Hessian.............:        4
>
> Total number of variables............................:        4
>                       variables with only lower bounds:        0
>                  variables with lower and upper bounds:        0
>                       variables with only upper bounds:        0
> Total number of equality constraints.................:        0
> Total number of inequality constraints...............:        5
>          inequality constraints with only lower bounds:        0
>     inequality constraints with lower and upper bounds:        5
>          inequality constraints with only upper bounds:        0
>
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr
> ls
>     0 -7.3757500e+01 0.00e+00 3.23e+01  -1.0 0.00e+00    -  0.00e+00 0.00e+00
> 0
>     1 -8.9257486e+01 0.00e+00 3.20e+01  -1.0 1.70e+00    -  3.01e-02 1.10e-01f
> 1
>     2 -8.9941241e+01 0.00e+00 4.12e+01  -1.0 2.66e-01    -  9.10e-01 4.03e-02f
> 1
>     3 -8.9814517e+01 0.00e+00 1.42e-14  -1.0 3.57e-03    -  1.00e+00 1.00e+00f
> 1
>     4 -9.0308405e+01 0.00e+00 1.42e-14  -2.5 6.09e-03    -  1.00e+00 1.00e+00f
> 1
>     5 -9.0327373e+01 0.00e+00 1.42e-14  -3.8 2.34e-04    -  1.00e+00 1.00e+00f
> 1
>     6 -9.0328119e+01 0.00e+00 1.42e-14  -5.7 9.21e-06    -  1.00e+00 1.00e+00f
> 1
>     7 -9.0328122e+01 0.00e+00 2.11e+00  -8.6 1.13e-07    -  1.00e+00 3.95e-01f
> 2
>     8 -9.0328124e+01 0.00e+00 6.53e+00  -8.6 6.53e-08    -  1.00e+00 3.40e-01f
> 2
>     9 -9.0328125e+01 0.00e+00 1.60e+01  -8.6 3.70e-08    -  1.00e+00 3.00e-01f
> 2
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr
> ls
>    10 -9.0328125e+01 0.00e+00 3.75e+01  -8.6 1.74e-08    -  1.00e+00 3.99e-02f
> 5
>    11 -9.0328125e+01 0.00e+00 4.80e+01  -8.6 1.23e-08    -  1.00e+00 2.64e-02f
> 6
>    12 -9.0328125e+01 0.00e+00 5.15e+01  -8.6 1.06e-08    -  1.00e+00 7.46e-03f
> 8
>    13 -9.0328125e+01 0.00e+00 5.25e+01  -8.6 1.01e-08    -  1.00e+00 4.84e-04f
> 12
>    14 -9.0328125e+01 0.00e+00 5.27e+01  -8.6 1.00e-08    -  1.00e+00 2.44e-04f
> 13
>    15 -9.0328125e+01 0.00e+00 5.28e+01  -8.6 9.98e-09    -  1.00e+00 1.22e-04h
> 14
>    16 -9.0328125e+01 0.00e+00 5.28e+01  -8.6 9.97e-09    -  1.00e+00 6.10e-05h
> 15
>    17 -8.1203126e+01 0.00e+00 1.42e-14  -8.6 9.97e-09    -  1.00e+00 1.00e+00w
> 1
>
> Number of Iterations....: 17
>
>                                     (scaled)                 (unscaled)
> Objective...............:  -8.1203125989310649e+01   -8.1203125989310649e+01
> Dual infeasibility......:   1.4210854715202004e-14    1.4210854715202004e-14
> Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
> Complementarity.........:   2.5161412838377742e-09    2.5161412838377742e-09
> Overall NLP error.......:   2.5161412838377742e-09    2.5161412838377742e-09
>
>
> Number of objective function evaluations             = 91
> Number of objective gradient evaluations             = 18
> Number of equality constraint evaluations            = 0
> Number of inequality constraint evaluations          = 91
> Number of equality constraint Jacobian evaluations   = 0
> Number of inequality constraint Jacobian evaluations = 18
> Number of Lagrangian Hessian evaluations             = 17
> Total CPU secs in IPOPT (w/o function evaluations)   =      0.009
> Total CPU secs in NLP function evaluations           =      0.024
>
> EXIT: Optimal Solution Found.
>
>
>
>
>
>

```