DCISolver - Dynamic Control of Infeasibility Solver
DCI is a solver for equality-constrained nonlinear problems, i.e., optimization problems of the form
min f(x) s.t. c(x) = 0.
It uses other JuliaSmoothOptimizers packages for development.
In particular, NLPModels.jl is used for defining the problem, and SolverCore for the output.
It uses LDLFactorizations.jl by default to compute the factorization in the tangent step. Follow HSL.jl's MA57
installation for an alternative.
The feasibility steps are factorization-free and use iterative methods from Krylov.jl
References
Bielschowsky, R. H., & Gomes, F. A. Dynamic control of infeasibility in equality constrained optimization. SIAM Journal on Optimization, 19(3), 1299-1325 (2008). 10.1007/s10589-020-00201-2
How to Cite
If you use DCISolver.jl in your work, please cite using the format given in CITATION.bib.
Installation
- LDLFactorizations.jl is used by default. Follow HSL.jl's
MA57
installation for an alternative. pkg> add DCISolver
Example
using DCISolver, NLPModels
# Rosenbrock
nlp = ADNLPModel(x -> 100 * (x[2] - x[1]^2)^2 + (x[1] - 1)^2, [-1.2; 1.0])
stats = dci(nlp, nlp.meta.x0)
# Constrained
nlp = ADNLPModel(x -> 100 * (x[2] - x[1]^2)^2 + (x[1] - 1)^2, [-1.2; 1.0],
x->[x[1] * x[2] - 1], [0.0], [0.0])
stats = dci(nlp, nlp.meta.x0)