[Coin-ipopt] Ipopt with Automatic Differentiation
Kipp Martin
kipp.martin at chicagogsb.edu
Sat Apr 28 16:07:30 EDT 2007
Hi:
I am using the Ipopt callback functions and hooking them to the Coin
Automatic Differentiation project CppAD. I think an efficient way to
calculate the Hessian of the Lagrangian function is to:
1. Do a zero order forward sweep (this will give the objective function
values and constraint values at the current iterate and provide the
necessary information for eval_f and eval_g).
2. Loop over each primal variable x_{i} and do a first order forward
sweep. This will give column i of the Jacobian.
3. Inside the same loop over each primal variable do a second order
reverse sweep immediately after the first order forward sweep and get
row (column) i of the Hessian of the Lagrangian. However, in order to do
this I need to know the value of the Lagrange multipliers. These values
are not available eval_grad, they are only available in eval_h after the
Jacobian has been calculated, but I would like to do both operations at
the same time.
Is there a way to get access to the Lagrange multiplier vector lambda at
each iteration?
Thanks
--
Kipp Martin
Professor of Operations Research
and Computing Technology
University of Chicago
Graduate School of Business
5807 South Woodlawn Avenue
Chicago IL 60637
773-702-7456
http://gsbkip.chicagogsb.edu
http://www.coin-or.org/
More information about the Coin-ipopt
mailing list