Optimization

Mathematical Optimization packages in Julia.

Organizations

JuMP

JuMP.jl : Modeling Mathematical Optimization (linear, mixed-integer, conic, semidefinite, nonlinear).

External solvers

Some of them require paid license to work.

Optimization.jl

Optimization.jl : brings together all of the optimization packages it can find, local and global, into one unified Julia interface. The following list comes from it README.

  • OptimizationBBO: for BlackBoxOptim.jl : An experimental, work-in-progress global optimization framework for Julia, supporting both multiand single-objective optimization problems, focused on (meta-)heuristic/stochastic algorithms (DE, PSO, CMA-ES etc).
  • OptimizationEvolutionary: for Evolutionary.jl : Evolutionary & genetic algorithms for Julia. Wikipedia: Genetic algorithm
  • OptimizationGCMAES for  GCMAES.jl: Gradient-based Covariance Matrix Adaptation Evolutionary Strategy for Real Blackbox Optimization.
  • OptimizationIpopt for Ipopt.jl
  • OptimizationLBFGSB for LBFGSB.jl: Julia wrapper for L-BFGS-B Nonlinear Optimization Code.
  • OptimizationMadNLP for MadNLP.jl: a solver for nonlinear programming with GPU support
  • OptimizationManopt for Manopt.jl : Optimization on Manifolds in Julia.
  • OptimizationMetaheuristics for Metaheuristics.jl : High performance metaheuristics for global optimization.
  • OptimizationMOI for MathOptInterface.jl
  • OptimizationMultistartOptimization for MultistartOptimization.jl
  • OptimizationNLopt for NLopt.jl : Package to call the NLopt nonlinear-optimization library from the Julia language.
  • OptimizationNLPModels for NLPModels.jl
  • OptimizationNOMAD for NOMAD.jl: a Julia interface for NOMAD, which is a C++ implementation of the Mesh Adaptive Direct Search algorithm (MADS), designed for difficult blackbox optimization problems.
  • OptimizationOptimJL for Optim.jl : Univariate and multivariate optimization solvers in Julia.
  • OptimizationOptimisers for FluxML’s Optimisers.jl.
  • OptimizationPRIMA for  PRIMA.jl: a Julia interface to the PRIMA library.
  • OptimizationQuadDIRECT for QuadDIRECT.jl: Global optimization without derivatives.
  • OptimizationSophia for Sophia optimizer (second-order stochastic optimizer).
  • OptimizationSpeedMapping for SpeedMapping.jl: General fixed point mapping acceleration and optimization in Julia.

Linear Programming and Optimization

Wikipedia: Linear Programming-Optimization

  • PiecewiseLinearOpt.jl : Optimizing over piecewise linear functions.
  • Tulip.jl : is an open-source interior-point solver for linear optimization, written in pure Julia. It implements the homogeneous primal-dual interior-point algorithm with multiple centrality corrections, and therefore handles unbounded and infeasible problems.

Nonlinear Programming

Wikipedia: Nonlinear Programming:  some of the constraints are not linear equalities or the objective function is not a linear function.

Julia smooth solvers

OptimizationProblems.jl: This package provides a collection of optimization problems in JuMP and ADNLPModels syntax.

  • AmplNLReader.jl : A Julia Interface to AMPL.
  • CUTEst.jl : Julia interface for CUTEst, a repository of constrained and unconstrained nonlinear programming problems for testing and comparing optimization algorithms.
  • HSL.jl : Julia interface to the HSL Mathematical Software Library.
  • JSOSuite.jl : accessing all the solvers available in the JuliaSmoothOptimizers organization.
  • LinearOperators.jl : Linear Operators for Julia. Operators behave like matrices but are defined by their effect when applied to a vector.
  • NLPModels.jl : Data Structures for non-linear programming (NLP) problems in Julia.

Misc