Whether you are new to optimisation or an old-hand at it, learning about some of the advanced tools for solving optimisation problems can help you to be more productive and translate ideas into practice. The optimisation tools sessions at AMSI Optimise will cover:
- Using the Julia language for mathematical (integer) programming
- Optimisation modelling using MiniZinc and constraint programming
- IBM’s Watson Analytics for analysing and visualising data
- A small case study to test your skills at modelling and solving optimisation problems
For these sessions, please bring your own laptop on Wednesday, 28th June. The following software will be discussed, some of which should be pre-installed on your laptop:
- Julia: Optional – Load the free software JuliaPro (Personal) from https://juliacomputing.com/products/juliapro.html
Installing this is optional as there is a browser version called JuliaBox which requires no installation. JuliaBox is adequate for the problems we will tackle in the workshop. If you intend to work on more complex problems later the it will be worth loading JuliaPro which also allows using commercial solvers like CPLEX,Gurobi, etc, but it is a big package (1.5Gb).
- MiniZinc software is freely available from http://www.minizinc.org/software.html. It comes bundled with the free constraint programming solvers (Geocode & Chuffed) and the CBC integer programming solver. Interfaces to a range of other solvers are available.
- Watson Analytics: No installation required. A cloud version is available. Participants are recommended to complete the free registration at https://www.ibm.com/analytics/watson-analytics/us-en/ before the workshop. Watson Analytics offers the benefits of advanced analytics without the complexity. A smart data discovery service available on the cloud, it guides data exploration, automates predictive analytics and enables effortless dashboard and infographic creation.
Note that guest Wi-Fi (or Eduroam Wi-Fi for academic participants) will be available at the venue.
Case Study: South African Health Worker Allocation
The case study will consider the problem of healthcare in underserved regions. Without healthcare workers, there can be no healthcare provided. When considering regions without as many workers available as ideal, the question of where to place the workers becomes essential in order to ensure the health of the population and also equity in the provision of healthcare between regions.
Based on a population in South Africa, we take a statistical regression model and use it to optimise worker allocation on the basis of expected number of healthcare visits. This problem can be approached from a MIP and/or a CP perspective and will be used as a case study for program participants. Data and some context will be provided to allow the participants to discuss and form their own opinions on the most appropriate objectives and constraints for the problem.
Julia as Mathematical Modelling Language for Integer Programming
Julia is a high-level, high-performance dynamic programming language for numerical computing. It uses just-in-time compilation for speed and has many facilities for mathematical and high performance computing. Of particular interest for the optimisation community is the JuMP library. This provides a domain-specific modelling language for mathematical optimization embedded in Julia. It currently supports a number of open-source and commercial solvers for a variety of problem classes, including linear programming, (mixed) integer programming, second-order conic programming, semidefinite programming, and nonlinear programming.
JuMP, like many other modelling environments, makes it easy to specify and solve optimization problems without expert knowledge, but the features of Julia can be leveraged to allow complex algorithms to be implemented including using callbacks and iterative solution techniques. JuMP is also fast with benchmarking showing similar performance to special-purpose commercial modelling tools such as AMPL.
The hands-on sessions will provide an introduction to Julia and JuMP with emphasis on how to set up and solve mixed integer linear programming problems using this tool.
Constraint Modelling with MiniZinc
Constraint programming solvers differ from integer programming by having a much richer set of specialised constraints. In the past this has made it difficult to model combinatorial optimisation problems in a solver independent way, as each solver has a slightly different collection of such advanced constraints. MiniZinc is a free and open source constraint modelling language that has been developed here in Melbourne at Monash University in collaboration with Data61 and the University of Melbourne. It uses smart constraint mapping and remodelling techniques to allow a constraint model to be mapped into many different constraint and integer programming solvers.
The hands-on session will introduce participants to the power of this flexible constraint modelling approach. MiniZinc comes with an IDE and a number of bundled solvers, so you can get started straight away. The session will start from simple puzzle problems and then introduce participants to more advanced modelling techniques for different areas such as scheduling, logistics and timetabling. Participants will also be given some pointers for more advanced topics, such as how MiniZinc can be used to go beyond modelling a problem to controlling the solution approach used in solving optimisation problems.