[Ipopt] IPOPT with BFGS gets slow

Ipopt User ipoptuser at gmail.com
Thu Jun 18 12:23:38 EDT 2015

For some problems BFGS performs much better than L-BFGS when the iteration
count is large. I can put IPOPT in BFGS mode by
setting limited_memory_max_history equal to max_iter. At some point, the
iterations take excessively long (over two minutes for 40.000 variables). I
think the culprit is the rank-1 updating of some decomposition of the
system (13) in http://www.optimization-online.org/DB_FILE/2004/03/836.pdf

I wonder if there is a way to speed this up. Here are some considerations:

The decomposition has to be done from scratch each iteration, since the
dual variables change. There could be some speed-up from storing the
decomposition for the objective. For k constraints this saves at most
100/(k+1)% of the time.

A different approach is to store the Hessian approximation in dense format
for each of the constraints and for the objective. This takes a significant
amount of memory (12.5 GB per matrix of 40.000x40.000). The work per
iteration is a rank 1 update and a scaled sum of those large matrices,
followed by solving the system (13). The most efficient way to solve (13)
is to first eliminate the second block row, after which a positive
semidefinite system remains. Solving that system takes time of the order of
two minutes, so there is not much benefit.

Does anyone have other ideas?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20150618/fa19235d/attachment.html>

More information about the Ipopt mailing list