[Coin-ipopt] nlp info not coherent ? --- Another question

tmtuan at laas.fr tmtuan at laas.fr
Thu Oct 25 17:08:58 EDT 2007


Hi Waechter,

- I have had recieved a similar response from Stefan Vigerske and after
recalculation I found that the number of variables is correct if we take
into account the automatic removal of fixed variables.

- Exactly, I use a Hessian-approximation because computing the derivatives
in my system is quite complicated.

- In fact my problem is a neuro-robotics optimal control one, in which
there are 37 state variables and 12 control variables, I take 100 points
for discretization. Unfortunately I did not find a desired result even
after 10000 iterations. The last line displayed:

9996r 1.7984284e-01 1.55e+03 6.26e+03  -0.8 1.13e+02    -  4.99e-03
1.09e-04f  1
9997r 1.7984385e-01 1.55e+03 6.25e+03  -0.8 1.13e+02    -  3.62e-04
5.22e-04f  1
9998r 1.7984391e-01 1.55e+03 6.25e+03  -0.8 1.13e+02    -  1.93e-04
3.02e-05f  1
9999r 1.7981980e-01 1.56e+03 6.17e+03  -0.8 1.13e+02    -  1.89e-04
1.29e-02f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du
alpha_pr  ls
10000r 1.7983695e-01 1.56e+03 6.15e+03  -0.8 1.11e+02    -  7.48e-03
3.92e-03f  1

Number of Iterations....: 10000

                                   (scaled)                 (unscaled)
Objective...............:   1.7983694522090285e-01    1.7983694522090285e-01
Dual infeasibility......:   2.5855925516815796e+02    2.5855925516815796e+02
Constraint violation....:   1.5563374314188695e+03    1.5563374314188695e+03
Complementarity.........:   2.0996926453861958e-01    2.0996926453861958e-01
Overall NLP error.......:   1.5563374314188695e+03    1.5563374314188695e+03


Number of objective function evaluations             = 21072
Number of objective gradient evaluations             = 36
Number of equality constraint evaluations            = 21274
Number of inequality constraint evaluations          = 0
Number of equality constraint Jacobian evaluations   = 10204
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations             = 0
Total CPU secs in IPOPT (w/o function evaluations)   =   2098.954
Total CPU secs in NLP function evaluations           =   2761.459

EXIT: Maximum Number of Iterations Exceeded.

Note that from around the 20th iteration, the next ones are always in
restauration state (with r).

Do you think the result presented above is normal or there is something
wrong in logic ?
Do you think that the result will be better if we do calculate
"explicitly" Hessian ?

Normaly for a large system like mine, how to adjust parameters in order to
make the program converge ?

Any advice is welcome !

Thanks,

> Hi Tran,
>
> Always glad to hear about someone new using Ipopt ;-)
>
> My assumption is that some of the variables (4900-4833=67) in your problem
> formulation are fixed, i.e., their lower and upper bounds are identical,
> so those variables don't need to be considered in the optimization and can
> be treated as constants.  In that case, the layer of the Ipopt code that
> is preparing what the actualy Ipopt solver code sees is removing those
> variables, together with the columns of the Jacobian corresponding to
> those fixed variables.  This would explain the difference in the output
> that you describe.
>
> Just as a side comment:  I see that the number of nonzeros in the Hessian
> is 0.  So, either you are solving an LP (in which case you might want to
> try to set the mehrotra_algorithm option to "yes", which will make Ipopt
> work much like the standard LP interior point algorithm, but it is not
> very much tested and can fail, particularly if you give Ipopt an
> infeasible LP) or you are using a quasi-Newton option to approximate the
> second derivatives.  In the second case, if you can obtain second
> derivatives from your model, it might pay off in terms of speed an
> robustness.
>
> I hope this makes sense.
>
> Andreas
>
> On Wed, 24 Oct 2007, Tran Minh Tuan wrote:
>
>> Hi all,
>>
>> I am a new commer to Ipopt with an optimal control problem. Here are
>> some
>> infos from my program (in C version):
>>
>> // values given into CreateIpoptProblem
>> ----------------- nlp -----------------
>> number of variables = 4900
>> number of constraint functions = 3664
>> number of non-zero elements in Jacobian of the constraints = 42972
>>
>> // values read from IpoptProblem structure
>> ----------> info from nlp problem <------------
>> n = 4900
>> m = 3664
>> nele_jac = 42972
>> nele_hess = 0
>> index_style = 0
>>
>> // values got when calling IpoptSolve
>> Number of nonzeros in equality constraint Jacobian...:    42629
>> Number of nonzeros in inequality constraint Jacobian.:        0
>> Number of nonzeros in Lagrangian Hessian.............:        0
>>
>> Total number of variables............................:     4833
>>                     variables with only lower bounds:        0
>>                variables with lower and upper bounds:      594
>>                     variables with only upper bounds:        0
>> Total number of equality constraints.................:     3664
>> 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
>>
>> So we can see that the values before calling Ipopt are coherent but the
>> value
>> of number of variables and non-zero elements are not correct ? Could you
>> explain me why ?
>>
>> Thanks a lot,
>> _______________________________________________
>> Coin-ipopt mailing list
>> Coin-ipopt at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/coin-ipopt
>>
>





More information about the Coin-ipopt mailing list