Optimization
Mathematical Optimization packages in Julia
Organizations¶
Optimization Frameworks¶
- jump-dev/JuMP.jl : Modeling Mathematical Optimization (linear, mixed-integer, conic, semidefinite, nonlinear).
- SciML/Optimization.jl : brings together all of the optimization packages it can find, local and global, into one unified Julia interface.
- JuliaSmoothOptimizers/JSOSuite.jl : One stop solutions for all things optimization.
Bindings for external solvers¶
Some of them require paid license to work.
- JuliaOpt/GLPKMathProgInterface.jl : Interface between the GLPK.jl wrapper and MathProgBase.jl.
- JuliaOpt/NLopt.jl : Package to call the NLopt nonlinear-optimization library from the Julia language.
- JuliaSmoothOptimizers/AmplNLReader.jl : A Julia Interface to AMPL.
- JuliaSmoothOptimizers/CUTEst.jl : Julia interface for CUTEst, a repository of constrained and unconstrained nonlinear programming problems for testing and comparing optimization algorithms.
- JuliaSmoothOptimizers/HSL.jl : Julia interface to the HSL Mathematical Software Library.
- jump-dev/AmplNLWriter.jl : an interface between
MathOptInterface.jl
and AMPL-enabled solvers. - jump-dev/Cbc.jl : Interface to the Coin-OR Cbc solver for mixed-integer programming.
- jump-dev/CPLEX.jl : An interface for using IBM's CPLEX Optimizer™ from the Julia language.
- jump-dev/CSDP.jl : Julia wrapper to CSDP semidefinite programming solver.
- jump-dev/ECOS.jl : Julia wrapper for the ECOS conic optimization solver.
- jump-dev/GLPK.jl : GLPK wrapper module for Julia.
- jump-dev/Gurobi.jl : a Julia interface for the commercial Gurobi Optimizer.
- jump-dev/Ipopt.jl : Julia interface to the Ipopt nonlinear solver.
- jump-dev/KNITRO.jl : Julia interface for KNITRO solver.
- jump-dev/SCS.jl : Julia Wrapper for SCS.
- jump-dev/Xpress.jl : A Julia interface for the FICO Xpress solver.
- MOSEK/Mosek.jl : Interface to the Mosek solver in Julia.
- odow/NEOSServer.jl : A Julia interface for the NEOS Optimisation Server.
Genetic algorithm¶
- wildart/Evolutionary.jl : Evolutionary & genetic algorithms for Julia.
Linear Programming and Optimization¶
Wikipedia: Linear Programming-Optimization
- ds4dm/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.
- joehuchette/PiecewiseLinearOpt.jl : Optimizing over piecewise linear functions.
- JuliaSmoothOptimizers/NLPModels.jl : Data Structures for Optimization Models.
- jump-dev/Clp.jl : Interface to the Coin-OR Linear Programming solver (CLP)
Nonlinear Programming¶
Wikipedia: Nonlinear Programming
- jump-dev/BARON.jl : A wrapper for the BARON mixed-integer nonlinear programming solver.
- jump-dev/Convex.jl : A Julia library for mathematical programming that makes it easy to formulate and fast to solve nonlinear convex optimization problems.
- mlubin/ConicNonlinearBridge.jl : Wrapper to solve conic optimization problems with derivative-based nonlinear solvers.
- PSORLab/EAGO.jl : A development environment for robust and global optimization. EAGO stands for Easy-Advanced Global Optimization.
Misc¶
- baggepinnen/Hyperopt.jl : A package to perform hyperparameter optimization. Currently supports random search, latin hypercube sampling and Bayesian optimization.
- blegat/EntropicCone.jl : Entropic Cone approximation and optimization.
- chkwon/TrafficAssignment.jl : A package for traffic assignment that loads the network data and finds the user equilibrium traffic pattern.
- floswald/SMM.jl : Simulated Method of Moments for Julia.
- infiniteopt/InfiniteOpt.jl : An interface for infinite-dimensional optimization problems. e.g. stochastic programming, dynamic programming, space-time optimization. See also the YouTube video.
- jmejia8/Metaheuristics.jl : High performance metaheuristics for optimization purely coded in Julia.
- joehuchette/CutPools.jl : Pools of cutting planes for JuMP models.
- JuDO-dev/Progradio.jl : Projected Gradient Optimization. Julia Con 2023 video
- JuliaIntervals/CharibdeOptim.jl : A Julia implementation of the cooperative solver Charibde in which it uses two parallel running algorithms Differential Evolution and Interval Branch & Contract algorithm to achieve solution of any difficult problem.
- JuliaIntervals/IntervalConstraintProgramming.jl : Calculates the feasible region for a set of real-valued inequalities with Julia.
- JuliaManifolds/Manopt.jl : Optimization on Manifolds in Julia.
- JuliaNLSolvers/LsqFit.jl : Simple curve fitting functionality from
Optim.jl
has been moved into its own package. - JuliaNLSolvers/Optim.jl : A basic optimization algorithms implementation.
- JuliaOpt/MathProgBase.jl : Solver-independent functions (incl. linprog and mixintprog) and low-level interface for Mathematical Programming.
- JuliaOpt/SemidefiniteModels.jl : A MathProgBase extension for Semidefinite Modelling.
- JuliaSmoothOptimizers/LinearOperators.jl : Linear Operators for Julia. Operators behave like matrices but are defined by their effect when applied to a vector.
- JuliaStochOpt/StructDualDynProg.jl : Implementation of SDDP (Stochastic Dual Dynamic Programming) using the StructJuMP modeling interface.
- jump-dev/PolyJuMP.jl : A JuMP extension for Polynomial Optimization.
- jump-dev/SumOfSquares.jl : Sum of Squares Programming for Julia.
- osqp/OSQP.jl : A Julia wrapper for the Operator Splitting Quadratic Program (OSQP) solver is a numerical optimization package.
- rdeits/Mayday.jl : Sums-of-Squares optimization through semidefinite programming (SDP) in Julia, powered by JuMP.
- robertfeldt/BlackBoxOptim.jl : An experimental, work-in-progress global optimization framework for Julia, supporting both multi- and single-objective optimization problems, focused on (meta-)heuristic/stochastic algorithms (DE, PSO, CMA-ES etc).
- SciML/Surrogates.jl : Surrogate modeling and optimization.
- sisl/AutomotiveDrivingModels.jl : Driving simulation architecture for Julia.
- StructJuMP/StructJuMP.jl : A block-structured optimization framework for JuMP.
- timholy/QuadDIRECT.jl : Global optimization without derivatives.