Group for Research in Decision Analysis

Modeling and optimization tools in Julia: an introduction to JuMP and JSO

Alexis Montoison Polytechnique Montréal, Canada

Dominique Orban Associate Professor, Department of Mathematics and Industrial Engineering, Polytechnique Montréal, Canada

Abel Soares Siquiera Universidade Federal do Paraná, Brazil

Mathieu Tanneau Polytechnique Montréal, Canada

Presentation material can be found here: (JSO) and (JuMP).
The recording of the workshop can be found here:

The Julia programming language is gaining substantial momentum in the OR community, with numerous tools and solvers being developed.

In this workshop, we introduce two modeling and optimization tools in Julia: JuMP and JuliaSmoothOptimizers.

Due to space restrictions, the number of participants is limited. Please register here:

For those unable to attend, the workshop will be recorded and broadcast live (more details will follow).

Worshop program:

Modeling and solving Mixed-Integer Linear Programs with JuMP

JuMP is an open-source modeling language for mathematical programming in Julia. It makes it possible to model and solve several classes of problems such as MILPs, in a solver-agnostic way.

This tutorial is a hands-on introduction to JuMP's syntax and functionalities. It is aimed at an audience of OR practitioners with little to no familiarity with JuMP. We will focus on modeling and solving MILPs throughout two practical examples: the Facility Location Problem (and a few variants), and the Traveling Salesman Problem.

Developing optimization software with JuliaSmoothOptimizers

JuliaSmoothOptimizers is an organization on GitHub containing a collection of Julia packages for Nonlinear Optimization software development, testing, and benchmarking. We provide tools for building models, access to repositories of problems, linear algebra tools, and line search and trust-region subproblems. We focus on giving the researcher/developer the tools to go from nothing to prototype, and from there to large scale. JSO is free software.

In this talk, we'll present the JuliaSmoothOptimizers packages with examples of use. We'll show the development of a prototype for a simple method, showcasing some of our tools, and compare our method against a well-known solver on a well-known collection of problems. We'll also present future projects and open problems that can be tackled by interested parties.