[Ipopt] quasi-newton method internals

Ipopt User ipoptuser at gmail.com
Wed Nov 12 14:10:10 EST 2014


The quasi-newton method in IPOPT is not described in any publication as far
as I can tell. I am trying to understand its specifics, especially how it
exploits the low rank of the Hessian to solve system (13) in
http://www.optimization-online.org/DB_FILE/2004/03/836.pdf

The best starting point to gain insight is by looking at the changes in the
code when the quasi-newton method was added:
https://projects.coin-or.org/Ipopt/changeset?old=607&old_path=&new=608&new_path=

I think the main logic is in these two files:
https://projects.coin-or.org/Ipopt/browser/branches/dev/LinAlg/IpLowRankUpdateSymMatrix.cpp?rev=608
https://projects.coin-or.org/Ipopt/browser/branches/dev/Algorithm/IpLowRankAugSystemSolver.cpp?rev=608

In the latter file, it seems as the Sherman-Morrison formula is used (line
152), but I don't see where. I also don't see how the inverse of W_k could
make solving (13) easier. Why is the inverse of the Hessian used (I
remember reading that a cholesky factorization is numerically superior
while SNOPT uses LU factorization)? I'm not looking for a full explanation,
but a few hints would be greatly appreciated, thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20141112/9a4967dd/attachment.html>


More information about the Ipopt mailing list