[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