[Ipopt] is this a bug? bad evaluation of the objective function at the optimum
Pedro C. Alvarez
pedroc at eio.uva.es
Tue May 5 14:31:21 EDT 2015
Thank you very much Stefan and Tony for your answers!!
Thanks to them I've discovered 'my bug'. The derivatives were ok, but the
objective function had a mistake I couldn't see due to the number of the
decimal digits shown (by R) for the controls at the optimum. I saw
Optimal value of controls: 0.25 0.50 0.75 1.00
but the values with more decimal digits are:
Optimal value of controls: 0.2500000026 0.5000000051 0.7500000076 1.00000001
and when the controls exceed 1.0 there was a bug in my objective function.
Thanks again, and sorry for my clumsiness,
Pedro.
El Martes, 5 de mayo de 2015 08:04:48 Tony Kelman escribió:
> I don't see anything unexpected here. Are you sure there's a primal-dual
> feasible solution with objective value of -9.0328125e+01? At iteration 16
> the primal infeasibility inf_pr was zero, but the dual infeasibility inf_du
> was nonzero. It looks like it maybe should have converged after iteration 6,
> but maybe the Newton step wasn't quite small enough yet. From iteration 7
> until 16 the dual infeasibility was increasing, which is a bit strange.
> Check your derivatives as Stefan said.
>
> -Tony
>
>
> -----Original Message-----
> From: Stefan Vigerske
> Sent: Tuesday, May 05, 2015 7:56 AM
> To: Pedro C. Alvarez ; ipopt at list.coin-or.org
> Subject: Re: [Ipopt] is this a bug? bad evaluation of the objective function
> at the optimum
>
> 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)
> >
> > jective...............: -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.
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
--
--
-----------------------------------------------------
-----------------------------------------------------
Pedro César Alvarez Esteban
Dpto. de Estadística e Investigación Operativa
Facultad de Ciencias
Universidad de Valladolid
Paseo de Belén, 7
47011 Valladolid (SPAIN)
-----------------------------------------------------
Tfo: +34 983 423930
Fax: +34 983 423013
E-mail: pedroc at eio.uva.es
-----------------------------------------------------
More information about the Ipopt
mailing list