Documentation | CI | Coverage | Release | DOI |
---|---|---|---|---|
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
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
If you use DCISolver.jl in your work, please cite using the format given in CITATION.bib.
- LDLFactorizations.jl is used by default. Follow HSL.jl's
MA57
installation for an alternative. pkg> add DCISolver
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)