Author JuliaSmoothOptimizers
2 Stars
Updated Last
1 Month Ago
Started In
April 2015

DCISolver - Dynamic Control of Infeasibility Solver

CI codecov GitHub docs-latest docs-dev 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

How to Cite

If you use DCISolver.jl in your work, please cite using the format given in CITATION.bib.


  1. LDLFactorizations.jl is used by default. Follow HSL.jl's MA57 installation for an alternative.
  2. 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)

Used By Packages

No packages found.