NLPStopping: A Stopping for NLPModels
The Stopping-structure can be adapted to any problem solved by iterative methods. We discuss here NLPStopping a specialization of an AbstractStopping for problems of type NLPModels. We highlight here the specifities of such instance:
- The problem is an NLPModel
- The problem has a funcion-evaluation counter, so we setup a maximum-counters structure in the meta.
- The State is an NLPAtXwith entries corresponding to usual information for nonlinear optimization models.
- The unboundedness check verifies that the objective function is unbounded below for minimization problems, and above for maximization;
- The problem is declared infeasibility if the score is Inffor minimization problems, and-Inffor maximization.
nlp = ADNLPModel(x->sum(x.^2), zeros(5))
nlp_at_x = NLPAtX(zeros(5))
meta  = StoppingMeta(max_cntrs = init_max_counters())
stp   = NLPStopping(pb, meta, state)By default for NLPStopping the optimality function is a function checking the KKT conditions using information in the State. The function fill_in! computes all the missing entries in the State. This is an potentially expensive operation, but might be useful.