3.7 JuMP (Julia – open source)

Julia is a high-performance language for scientific computation (see JuliaLang). While in Phyton a multitude of packages compete with each other, in Julia exists one dominant package for mathematical modeling: JuMP. A somewhat outdated but still convenient book has be written on JuMP with many model examples ([3].

To install JuMP and solver packages, the package manager Pkg of Julia must be used:

  using Pkg
  Pkg.add("JUMP")
  Pkg.add("GLPK")
  Pkg.add("HIGHS")
  Pkg.add("IPOPT")

To install commercial solvers, first install the solver libraries, then add a path and install a package as follows (sometimes the package has to be built). For example, to install the commercial solver CPLEX or Gurobi follow the instructions at CPLEX package and Gurobi package.

  ENV["CPLEX_STUDIO_BINARIES"] = "<pathToCplexBin>"
  using Pkg
  Pkg.add("CPLEX")
  Pkg.build("CPLEX")

To illustrate modeling in Julia/JuMP, three examples are used.

   3.7.1 Facility Location (facilityLoc)
   3.7.2 Urban Planning: A Puzzle (uplanning)
   3.7.3 The Passport Problem (passport)