[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