Optimization packages for the Julia language.
The ecosystem of Julia packages is growing very fast. There are packages hosted in the JuliaOpt GitHub organization which are not introduced in the home page and other optimization related packages that are not part of JuliaOpt.
JuMPeR.jl: for robust optimization
MultiJuMP.jl: for multi-objective optimization
JuMPChance.jl: for probabilistic chance constraints
StochDynamicProgramming.jl: for discrete-time stochastic optimal control problems
PolyJuMP.jl: for polynomial optimization
StructJuMP.jl: for block-structured optimization
NLOptControl.jl: for formulating and solving nonlinear optimal control problems
Developers: Thinking about how to name your JuMP extension? While we’re happy you’re building on top of JuMP, please do not use JuMP in the name of the package without explicit permission from the JuMP developers.
Optim.jl: implementations in Julia of standard optimization algorithms for unconstrained or box-constrained problems such as BFGS, Nelder-Mead, conjugate gradient, etc.
LsqFit.jl: least-squares non-linear curve fitting in Julia
JuliaSmoothOptimizers: a collection of tools primarily designed for developing solvers for smooth nonlinear optimization
NEOS.jl: an interface to the NEOS Optimization Server
BlackBoxOptim.jl: a derivative-free, global optimizer that supports multi-objective optimization problems
Pajarito - a state-of-the-art solver for mixed-integer convex optimization written in Julia
DifferentialDynamicProgramming.jl: for differential dynamic programming problems
OptimPack.jl: Julia bindings for the OptimPack library
SumOfSquares.jl: sum-of-squares reformulation for PolyJuMP.jl
VariationalInequality.jl: uses JuMP modeling language for variational inequality problems
Complementarity.jl: uses JuMP modeling language for linear/nonlinear/mixed complementarity problems and solves using a Julia interface to the PATH Solver. This package also enables @complements
for modeling complementarity constraints.
NLsolve.jl: Julia solvers for systems of nonlinear equations and mixed complementarity problems
Graphs.jl: Julia’s standard package for shortest path algorithms, minimum spanning tree algorithms, random graph generation, etc.
LightGraphs.jl: a similar package to Graphs.jl
NetworkFlows.jl: solves max-flow problems, min-cut problems, etc.
Munkres.jl: solves optimal assignment problems using the Hungarian algorithm
PowerModels.jl: solves various power network flow problems
RobustShortestPath.jl: solves robust shortest path problems
TrafficAssignment.jl: solves network user equilibrium problems
Evolutionary.jl: evolutionary strategies and genetic algorithms
GeneticAlgorithms.jl: genetic algorithms
StochasticSearch.jl: stochastic local search algorithms such as simulated annealing and tabu search
TravelingSalesmanHeuristics.jl: a heuristic algorithm for solving the Traveling Salesman Problem (TSP)