This is an old revision of the document!
Table of Contents
Installation
Step 1:
- Option a: Get an account on JuliaBox.com to run julia/JuMP script without installing anything on the local computer
- Option b: Install Julia for your platform (http://julialang.org/downloads/)
Step 2:
Run, only once, the following code to install JuMP language and a couple of open source solvers:
Pkg.update() # To refresh the list of newest packages Pkg.add("JuMP") # The mathematical optimisation library Pkg.add("GLPKMathProgInterface") # A lineaqr and MIP solver Pkg.add("Ipopt") # A non-linear solver Pkg.add("DataFrames") # A library to deal with dataframes (R-like tabular data)
Model components
Importing the libraries
You will need to import as a minima the JuMP
module. If you wish to specify a solver engine rather than letting JuMP select a suitable one, you will need to import also the module relative to the solver, e.g. Ipopt
or GLPKMathProgInterface
# Import of the JuMP and DataFrames modules (the latter one just to import the data from a header-based table, as in the original trasnport example in GAMS using JuMP, DataFrames
Defining the "sets"
JuMP doesn't really have a concept of sets, but it uses the native containers available in the core Julia language\\Variables, parameters and constraints can be indexed using these containers.
While many works with position-based lists, I find more readable using dictionaries instead. So the “sets” are represented as lists, but then everything else is a dictionary with the elements of the list as keys.
One note: it seems that Julia/JuMP don't like much the “-” symbol, so I replaced it to “_”.
## Define sets ## # Sets # i canning plants / seattle, san-diego / # j markets / new-york, chicago, topeka / ; plants = ["seattle","san_diego"] # canning plants markets = ["new_york","chicago","topeka"] # markets