This is an old revision of the document!


Installation

Step 1:

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
home_test_julia.1486458904.txt.gz · Last modified: 2018/06/18 15:10 (external edit)
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0