[Coin-ipopt] Quasi-Newton options and the C interface for Ipopt
Andreas Waechter
andreasw at watson.ibm.com
Thu Oct 7 13:23:28 EDT 2004
Hi Roman,
(I'm copying my reply to the Ipopt mailing list in case someone else ran
into the same problem.)
> Martin Burger and I use your IPOPT-Code for some topology optimization problem
> with stress constraints. The code works very fine and reliable and it was
> easy to install and use.
I'm very happy to hear this!
> Except for the following: Basically we want to use BFGS-updating but I could
> not manage to use the EV_H_DUMMY funtion as described in the README.IPOPT
> file. Is it a problem that it is not listed in the inferface file
> 'Ipopt_Interface.h' ?
> Somehow the linker never was able to find it.
> I tried e.g. to do the following call:
> problem = Ipopt_Create( n, m, nlb, ilb, bnds_l, nub, iub, bnds_u,
> Eval_F, Eval_C, Eval_G, Eval_A,
> EV_H_DUMMY );
> Even if I provide an interface on my own for EV_H_DUMMY it doesn't work.
>
> So could you please give me a hint how EV_H_DUMMY and BFGS is used?
If you want to use the C interface for Ipopt in the quasi-Newton mode, you
don't need to set the function for evaluating the Hessian of the
Lagrangian. You can simply set the Eval_H argument in Ipopt_Create to
NULL (i.e. you would have "NULL" instead of "EV_H_DUMMY" above). I just
tried this with the C example (example.c), and it worked.
This wasn't documented in the code. I just added a comment in
Ipopt_Interface.c stating this explicitly.
Many thanks for pointing this out!
> Another thing is that we would like to incoperate our own stopping criteria
> provided by an own function. Do you think something like this is possible?
With the current Fortran version of the code this is not quite
straight-forward. Admittedly, the code is a bit messy... If you want,
you could try to have a look at the subroutine OPTERROR in the file
error.F, which implements the current calculation of the optimality error.
We are working in a complete reimplementation of Ipopt in C++, which
should be much easier to understand and more modular, and with that it
would be much easier to replace the stopping criteria (we hope to have a
beta version out soon). Anyway, we can continue the discussion offline
(not over the mailing list) if you want.
Cheers,
Andreas
More information about the Coin-ipopt
mailing list