JuliaSmoothOptimizers is an organization on GitHub containing a collection of Julia packages for Nonlinear Optimization software development, testing, and benchmarking. We provide tools for building models, access to repositories of problems, subproblem solving, linear algebra, and solving problems.
Below there is a brief summary of packages.
NLPModels This package provides general guidelines to represent optimization problems in Julia and a standardized API to evaluate the functions and their derivatives. The main objective is to be able to rely on that API when designing optimization solvers in Julia. Includes model creation from direct Julia functions and JuMP, and provides Nonlinear Programming and Nonlinear Least Squares models.
CUTEst This package provides an interface to CUTEst, a repository of constrained and unconstrained nonlinear programming problems for testing and comparing optimization algorithms, derived from the abstract model on NLPModels.
AmplNLReader Provides access to AMPL Models. Uses NLPModels.jl.
OptimizationProblems Implements several problems in JuMP format. Can be used with NLPModels for easy multiplatform access to problems.
NLSProblems This package provides some optimization problems using the NLPModels interface. It is similar to to OptimizationProblems, except that it's specific for Nonlinear Least Squares, using the subtype AbstractNLSModels.
LinearOperators Operators behave like matrices (with some exceptions) but are defined by their effect when applied to a vector. They can be transposed, conjugated, or combined with other operators cheaply. The costly operation is deferred until multiplied with a vector.
BenchmarkProfiles Julia translation of the performance and data profiles of Elizabeth Dolan, Jorge Moré and Stefan Wild. Uses the Plots library, enabling the use of various backends.
HSL Julia interface to some HSL packages for sparse linear algebra.
Krylov This package implements iterative methods for the solution of linear systems of equations and linear least-squares problems. It is appropriate, in particular, in situations where such a problem must be solved but a factorization is not possible
LDLFactorization A translation of Tim Davis's Concise LDL Factorization, part of SuiteSparse. This package is appropriate for matrices A that possess a factorization of the form LDLᵀ without pivoting, where L is unit lower triangular and D is diagonal (indefinite in general), including definite and quasi-definite matrices.
LimitedLDLFactorization A Port of LLDL to Julia See optimizers/lldl. LLDL is a limited-memory LDL' factorization for symmetric matrices.
MUMPS Julia interface to MUMPS. MUMPS is a library for the solution of large linear systems using a factorization. Structure can be exploited, such as symmetry, or symmetry and definiteness. The factorization and solve phases can be performed in parallel.
PROPACK A Julia interface to PROPACK, a library for the computation of the truncated singular value decomposition of matrices or linear operators. PROPACK only requires operator-vector products to estimate singular values and singular vectors.
JuliaSmoothOptimizers. Dominique Orban and Abel Soares Siqueira. Zenodo. Apr, 2019. 10.5281/zenodo.2655082