[Ipopt] Optimization Restoration Failed with derivative test Turned Off

Andreas Waechter andreasw at watson.ibm.com
Tue Feb 2 11:18:52 EST 2010


Hi James,

Whether you use the derivative checker before the optimization of not 
should make no different at all in the performance of the optimizer and 
the steps it takes (unless you code evaluating functions does things 
differently depending on how many times it is called).  If you see those 
differences, it might be that there is a memory bug, in the sense that 
some code you wrote for evaluating values or derivatives of problem 
functions uses uninitialized memory.  I would suggest to run your program 
through a memory checker, such as valgrind.

Regards,

Andreas

On Mon, 18 Jan 2010, James Henderson wrote:

> Dear all,
>
> I have perform a optimziation on sereval constraints, but it got a Restoration  error.
> So i try to check my derivative with derivative_test, but the optimization complete willout any error .
> What wrong? Can anyone help me?
>
> Here is the config that i used.
> app->Options()->SetStringValue("linear_solver","ma57");
> app->Options()->SetStringValue("hessian_approximation","limited-memory");
> app->Options()->SetStringValue("mu_strategy","adaptive");
> app->Options()->SetNumericValue("tol",1e-6);
> app->Options()->SetStringValue("output_file", "ipopt.out");
> app->Options()->SetStringValue("derivative_test","first-order");
>
> Result with "derivative_test" TURN OFF.
> _______________________________________________________________________
> This is Ipopt version 3.8.1, running with linear solver ma57.
>
> Number of nonzeros in equality constraint Jacobian...:       42
> Number of nonzeros in inequality constraint Jacobian.:        0
> Number of nonzeros in Lagrangian Hessian.............:        0
>
> Total number of variables............................:       24
>                     variables with only lower bounds:        0
>                variables with lower and upper bounds:        0
>                     variables with only upper bounds:        0
> Total number of equality constraints.................:        3
> Total number of inequality constraints...............:        0
>        inequality constraints with only lower bounds:        0
>   inequality constraints with lower and upper bounds:        0
>        inequality constraints with only upper bounds:        0
> ...........................................
> ...........................................
> ...........................................
>
> Restoration phase is called at point that is almost feasible,
>  with constraint violation 2.566013e-010. Abort.
>
> Number of Iterations....: 195
>
>                                   (scaled)                 (unscaled)
> Objective...............:  2.2523138589658242e+002   2.2523138589658242e+002
> Dual infeasibility......:  1.1164060188109137e-001   1.1164060188109137e-001
> Constraint violation....:  2.5037278276009942e-010   1.2779235839843750e-004
> Complementarity.........:  0.0000000000000000e+000   0.0000000000000000e+000
> Overall NLP error.......:  1.4541283701645372e-005   1.1164060188109137e-001
>
>
> Number of objective function evaluations             = 1254
> Number of objective gradient evaluations             = 197
> Number of equality constraint evaluations            = 1359
> Number of inequality constraint evaluations          = 0
> Number of equality constraint Jacobian evaluations   = 197
> Number of inequality constraint Jacobian evaluations = 0
> Number of Lagrangian Hessian evaluations             = 0
> Total CPU secs in IPOPT (w/o function evaluations)   =      1.688
> Total CPU secs in NLP function evaluations           =      0.000
>
> EXIT: Restoration Failed!
>
> ______________________________________________________________________
>
>
> Result with "derivative_test" TURN ON.
> _______________________________________________________________________
>
> 267 2.2523150e+002 1.82e-013 8.64e-001 -11.0 1.99e-007    -  1.00e+000 5.00e-001h  2
> 268 2.2523150e+002 9.08e-014 1.48e+000 -11.0 6.16e-007    -  1.00e+000 6.25e-002f  5
> 269 2.2523150e+002 0.00e+000 1.47e+000 -11.0 2.53e-008    -  1.00e+000 7.81e-003h  8
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
> 270 2.2523150e+002 1.82e-013 6.61e-002 -11.0 1.16e-008    -  1.00e+000 1.00e+000f  1
>
> Number of Iterations....: 270
>
>                                   (scaled)                 (unscaled)
> Objective...............:  2.2523149818590414e+002   2.2523149818590414e+002
> Dual infeasibility......:  6.6127993191644308e-002   6.6127993191644308e-002
> Constraint violation....:  1.8155029017110257e-013   7.6293945312500000e-006
> Complementarity.........:  0.0000000000000000e+000   0.0000000000000000e+000
> Overall NLP error.......:  8.6080174524167095e-007   6.6127993191644308e-002
>
>
> Number of objective function evaluations             = 1456
> Number of objective gradient evaluations             = 271
> Number of equality constraint evaluations            = 1582
> Number of inequality constraint evaluations          = 0
> Number of equality constraint Jacobian evaluations   = 271
> Number of inequality constraint Jacobian evaluations = 0
> Number of Lagrangian Hessian evaluations             = 0
> Total CPU secs in IPOPT (w/o function evaluations)   =      2.234
> Total CPU secs in NLP function evaluations           =      0.016
>
> EXIT: Optimal Solution Found.
> __________________________________________________________________________
>
> Thank you .
>
>
> James
>
>
>
>
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>
>



More information about the Ipopt mailing list