Optimization
In mathematics and computer science, an optimization problem is a problem of finding the best solution from all the feasible solutions. They can broadly be divided into two categories depending upon the variables:
- Continuous (continuous optimization problem)
- Discrete (combinatorial optimization problem)
Some of the problems that can be categorized as optimization problems are given here:
- Shortest path
- Maximum flow through a network
- Vehicle routing
Julia, in particular, provides a number of optimization packages, the group of which is collectively called as JuliaOpt. The two most notable packages used are:
- JuMP (Julia for Mathematical Programming)
Convex.jl
Both of these are Algebraic modeling languages (AMLs), which sit over MathProgBase.jl
.
JuMP
JuMP is an AML implemented in Julia. Readers coming from a Python background may be familiar with PuLP. It currently supports several open source solvers for a wide variety of problem cases. Some of its features include:
- User friendliness
- Speed
- Solver...