[Coin-ipopt] Re: Jacobian\ Hessian information in IPOPT

Andreas Waechter andreasw at watson.ibm.com
Wed Feb 28 10:31:54 EST 2007


Hi Saeed,

Please send messages with questions regarding Ipopt to the Ipopt mailing 
list (http://list.coin-or.org/mailman/listinfo/coin-ipopt). You will need 
to sign up before you can post a message.  I'm sending my reply to your 
message to the list now.

> I have a question about IPOPT and would really appreciate it if you 
> could help me with that. I am using IPOPT via AMPL; I would like to get 
> the Jacobian and Hessian information that IPOPT generates for further 
> analysis. Is there any way I can do that?

What you could do is to set the print level to a higher values (see the 
options documentation).  At some point, Ipopt will write out also the 
entries of the matrices.  But that is not really nice output, it is 
mainly meant for debugging.  (Since that will probably produce a lot of 
output, you probably want to write it into a file, see the output_file and 
file_print_level options).

A further issue you will face is that you will need the mapping between 
the Ipopt variable and constraint numbering and the AMPL names.  To some 
degree, you could do that by generation additional output files from AMPL 
using the AMPL option

option auxfiles 'rc';

which will generate a .row and .col file (or something similar), which 
lists all variables and constrants in the order it is given to Ipopt. 
However, Ipopt internally sorts out all fixed variables (i.e. they don't 
appear in the numbering of Ipopt's variables), and it groups the equality 
and inequality constraints into separate groups.  That will probably screw 
up the numbering so much that it is difficult to get any useful 
information from the Ipopt output...

> Also, I would like to know if 
> there is a way of feeding the analytical Jacobian/Hessian information 
> for a specific problem to IPOPT (as we do in Matlab).

If you are using AMPL, it is already computing the first and second 
derivatives for you, and gives them to Ipopt.  That is the great thing 
about a modelling language like AMPL or GAMS, since one doesn't have to 
worry about writing code for derivatives (which is usually inviting a lot 
of bugs...)

I hope this helps,

Andreas




More information about the Coin-ipopt mailing list