Open frapac opened 1 month ago
Results on CUTEst are out (comparing this PR with MadNLP 0.8.4). It looks like we just improve very slightly the total number of iterations. In terms of computation time, we are slower. Also we are less robust now than before. pprof-iter.pdf pprof-cpu.pdf
Currently investigating what's going on.
Benchmark is improved if we use the fix in #361 in this PR: pprof-cpu.pdf
SparseCallback
: remove the fixed variables and reduce problem's dimension in MadNLPDenseCallback
: keep the fixed variables frozen (as done previously). On the contrary toSparseCallback
, we don't remove the fixed variables as this would require duplicating the Hessian and the Jacobian matrices to evaluate the model, which could be expensive if we are memory bounded.fixed_handler
if the problem has no fixed variable:NoFixedVariable
.nlp
through the callback wrappercb
to avoid side effect.get_index_constraint
and stores indexes directly in the callback wrappercb
.Solve #70, #229
Warning: this PR adds a small breaking change in
create_kkt_system
(we removeind_cons
from the arguments) but I think it's worth the change, as the previous situation was error prone. Now, we make sure we store all the problem's information inside the callback wrappercb
.Preliminary results on
space_shuttle_reentry
shows that the current PR improves slightly the convergence (less iterations, less feasibility restoration), see the logs in attachment:Benchmark on CUTEst is under way.